摘要:互联网技术的迅猛发展,带动了宽带网络的全面普及。目前,消费级路由器成为网络用户接入互联网的一种重要方式,实现将有限宽带上网共享给其它他设备,如电脑、手机、平板电脑等都可以通过有线或是无线接入网络。但是,由于消费级路由器硬件缩水、固件裁剪、技术不完善、固件设计不合理等,消费级路由器的安全问题层出不穷,已经成为僵尸网络的劫持目标,其安全防护形势严峻。通过分析消费级路由器固件逆向、木马流程、木马产生原因,提出了几点安全防护思路。

引言

消费级路由器相对于工业级路由器,是指用于家庭、小微企业的网络接入设备,一般特指无线路由器。通过分析消费级路由器固件组成、固件逆向流程、固件木马产生原因,总结了几点安全防护建议。

路由器固件分析

从固件的组成、路由器防护手段两方面出发,对路由器固件进行简单概述。

1.1 路由器固件的组成

路由器固件本质是软件,是其正常工作的系统软件的集合。它存在于网络设备的只读ROM中,以二进制映像的形式存在,存储设备正常运转所需的各个组成部分,支撑网络设备的稳定运行和进行相关的网络寻址、数据转发等工作。

路由器的固件一般可以分为固件头、引导头、内核、文件系统和应用程序等不同部分。

路由器的固件承载于硬件系统。当前,路由器主流的CPU类型有MIPS、ARM、PowerPC和X86等。一般家用路由器为了功耗考虑,一般会采用低功耗的MIPS、ARM等。表1汇总了不同架构CPU性能和能耗方面的不同[1]。本文中逆向的无线路由器固件采用的是MIPS架构。

针对文件系统,常见的文件系统有YAFFS、JFFS2、SquashFS、CramFS、ROMFS和XfAT等。对于大多数网络设备而言,操作系统一般可以支撑多种不同类型的根文件,但有些操作系统只能支持特定根文件系统。常用的操作系统及其根文件系统类型,如表2所示。本文中逆向的无线路由器固件采用的是Linux操作系统,根文件采用的是Squashfs。Squashfs是一种基于Linux内核使用的压缩只读文件系统,具有占用资源少、运行速度快、掉电数据不丢失等特点。

路由器固件分析方法

固件分析主要通过获取固件,对其进行逆向、重组,了解程序执行逻辑,获取固件存在的漏洞。

2.1 固件获取

一种方法是从购买的设备中提取固件,使用TTL调试接口连接系统,然后使用dd命令的方式提取。另一种方法是通过拆机,将存储固件的Flash芯片从设备上取下,采用SPI Flash烧写器提取全部Flash中的全部固件[2]。

官方网站上下载,如网件、华硕、TP-LINK、D-Link等公司官网提供固件,部分提供GPL源码下载。

2.2 路由器固件逆向

固件逆向的方法主要是采用工具分析、模拟路由器固件。常用的分析工具有firmware-mod-kit、binwalk、lzma、squashfs-tools和ida等[3],模拟工具主要采用QEMU。

首先,通过分析固件函数的调用关系和程序执行过程,确认执行过程是否存在漏洞,如登录校验问题、HTTP页面问题、Telnet是否默认开启问题等。

其次,通过定位一些容易出现问题的函数,如system、strcpy、sprintf、strncpy和memcpy等,分析引用这些函数的地方,寻找命令注入、栈溢出漏洞。

最后,利用固件解包工具binwalk,提取固件的文件结构、程序、文件系统等。可以利用QEMU进行运行路由器固件的mips程序,动态分析具体程序的执行过程,发现其运行漏洞。

本文提及的采用binwalk提取固件的方法,提取的固件主要包含固件头部、文件系统和尾部三部分,如图1所示。

从提取的结果可以看出,固件采用大端,文件系统采用的是squashfs 3.0,如图2所示。

消费级路由器固件的木马植入流程分析

在获取固件漏洞的条件下,对消费级路由器进行木马植入。通过总结,一般的植入过程包含木马植入、木马运行和请求控制三个阶段。

木马植入阶段。木马植入程序包含后台控制程序和前端程序。前端程序运行于家用路由器,以三种方式存在。第一种是事先捆绑于某一正常的程序,当该程序执行时,捆绑的前端程序会释放于系统并执行。第二种是通过劫持系统的so文件,加载该so文件的程序运行时,会执行前端程序。一般,此类劫持会采用系统启动加载的程序,如httpd等。第三种是构造链接,利用wget、ftp等系统自带命令,在检测网络连接可用时,下载前端程序。

通过逆向,提取固件的文件系统内容,如图3所示。

分析系统中采用uhttpd web服务器程序,对其进行逆向分析发现漏洞,如图4所示。

木马运行阶段。木马成功植入后,当设定条件满足时,木马开始运行。首先检测、更改防火墙配置,使环境能满足木马执行要求,然后启动木马程序。

请求控制阶段。木马运行后,等待或主动连接木马后台程序。该阶段需要保证木马程序运行后对系统流量的影响,以及木马程序对端口占用易被检测等隐蔽问题。

图5为木马植入流程。可以看出,利用固件漏洞植入的木马具有隐蔽性。

消费级路由器固件安全问题产生原因分析

4.1 厂商对安全重视不够

由于消费级路由器售价较低,厂商设计时对其重视不足,部分厂商的固件甚至没有CRC校验,同时对暴出的漏洞固件更新升级不及时。

4.2 系统裁剪

为了节省成本,很多厂商的路由器会根据应用场景等不同,调整ROM和RAM的容量,并根据容量不同,对路由器系统进行不同程度裁剪。如果裁剪过多,可能会影响系统稳定、暴露出更多安全问题。

消费级路由器固件安全性建议

消费级无线路由器植入的木马一般具有隐蔽性。下面探讨如何避免消费级路由器被注入木马,或者在植入木马的条件下消除系统木马。

5.1 更改管理员密码

路由器有管理账号,这个管理账号需要及时修改,否则黑客会利用出厂默认密码登录路由器,进而攻击网络中的其他设备。

5.2 更新路由器固件

消费级路由器木马后门的产生,主要源于用户未及时升级有安全缺陷的路由器固件,而有缺陷的路由器固件被黑客注入木马。

通过及时更新官网公布的路由器固件、补丁包修补系统缺陷。更新固件时,选择不保存配置,可以清除已植入木马的劫持,同时提高防护能力。

5.3 关闭远程Web管理和DMZ功能

通过关闭Web管理和DMZ功能,对路由器的管理通过本地局域网进行,使互联网扫描手段无法对路由器进行扫描、探测。需要说明的是,远程Web管理和DMZ通常是关闭的。

5.4 关闭DHCP和开启IP MAC过滤

DHCP用于为局域网内的电脑自动分配IP地址,通过关闭DHCP功能,即使用户破解路由器的密码,仍无法获取正确的IP地址,是一种较为有效的安全防护措施。

启用消费级路由器中的IP地址过滤功能,仅允许IP地址在列表中的用户访问无线网络,通过在过滤规则中限定MAC地址,可以阻止非白名单列表IP、MAC对的用户连入网络。

结 语

消费级路由器是局域网和外网的接入点,对局域网的通信和数据安全至关重要,特别是黑客利用固件植入木马,隐蔽性强,危害大。因此,消费级路由器的安全必须引起重视。具体地,厂商需继续加强安全方面设计,将非法入侵拒之门外,而用户需树立安全意识,从而共同构建一套健壮、稳定、安全的局域网环境。

参考文献:

[1] 鲍庆国.嵌入式设备固件分析的关键技术研究[D].北京:北京工业大学,2016:27-33.

[2] 陈铭.软件漏洞逆向分析技术研究[D].成都:电子科技大学,2007:34-51.

[3] 胡刚.固件代码逆向分析关键技术研究[D].郑州:解放军信息工程大学,2011:46-52.

[4] OpenWRT.支持的路由器列表[EB/OL] .[2017-10-15].http://wiki.openwrt.org/toh/start, 2017,,id=ar9331.

作者:张旭博,贺彦钧,李建春

本文刊登在《通信技术》2018年第2期

声明:本文来自通信技术编辑部,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。