7

智能路由器安全特性分析 | WooYun知识库

 6 years ago
source link:
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

智能路由器安全特性分析

博文作者:zhuliang

0x00 前言


随着互联网的发展,越来越多公司推出了智能路由器,这些智能路由器给用户带来了众多便利的功能,同时也采用了一些传统路由器不具备的安全特性,本文在简要分析下这些安全特性,供相关技术人员参考。

0x01 概述


传统路由器有意或无意地使用了种种不安全的特性,如预留后门,这些后门原本是为了现场调试方便,但是也开放了黑客进入的通道。又比如某些路由器WPS(Wi-Fi Protected Setup)的PIN码是可以根据路由器MAC地址推导出来的,这使得即使用户设置了复杂的WiFi密码,黑客也可以轻易破解进而渗透。另外,大部分路由器在固件更新时都没进行签名校验,这使得黑客可以通过固件更新来植入木马,进而永久控制用户的路由器……等等这些不安全特性,是导致用户隐私泄露和财产损失的帮凶。 在这样的背景下,智能路由器采用了一些安全特性,特别值得赞赏。

0x02 安全特性


下面以路由器生产商为单位,介绍其采用的安全特性及其安全特性带来的好处。只做纯技术的探讨,不涉及其他。

0x03 360安全路由器


现场调试接口RSA-1024加密和校验

路由器生产商为了在排错或调试时能直接得到rootshell,通常会在路由器上预留后门,参考https://github.com/elvanderb/TCP-32764/http://www.cnvd.org.cn/flaw/show/CNVD-2013-15013,这些后门能为生产商所用,也能被黑客所利用。特别是能远程利用的后门,黑客能远程获得路由器的所有权限,配合其它攻击能造成用户财产上的损失。

360的C301路由器是这样做的:公钥/etc/defdata/debug_telnet.pub.key存在于路由器的固件里,生产厂商用与debug_telnet.pub.key对应的私钥加密特定U盘的序列号,并把加密结果存放到该U盘根目录下的telnet.boot文件中,向C301路由器的USB接口插入该U盘,后台自动运行如下的命令行,也就是启动telnet的服务端:

#!bash
/usr/sbin/telnetd -l/usr/sbin/login -u 360user:alpha360 -i br0 &

见程序debug_telnet如下代码:

enter image description here

enter image description here

telnet服务端启动后,只要telnet路由器的ip地址再输入用户名和密码(360useralpha360)便可以获得root shell

不难看出,要获得路由器的root shell有两个条件,一是要插入U盘,这要求能接触到路由器,同时也防止了远程利用;二是U盘根目录下的telnet.boot文件必须是用私钥加密U盘序列号的结果,而私钥掌握在生产商手中,黑客不能轻易获取到。

公钥的详情如下图所示:

enter image description here

总的来说,C301路由器采用非对称加密实现既能得到路由器的root权限,又能防止黑客获得root权限,相对于预留后门的做法,表现出值得传统路由器学习之处。

固件更新签名校验

C301路由器的固件采用了AES加密,解密后的固件里含有对该固件的签名,固件更新时会先进行签名校验,校验不通过则认为固件是篡改过的,从而拒绝固件更新。

0x04 小米路由器


固件更新签名校验

小米路由器进行固件更新时同样会进行签名校验,文件/usr/share/xiaoqiang/public.pem是它的公钥,用来校验签名正确与否。正因为这样,黑客如果想在不拆机的前提下刷入已植入木马的固件,只有两条路可走,一是通过入侵、社工或破解得到对应的私钥,然后对修改后的固件进行签名再刷入;二是通过漏洞,挖掘新的漏洞或者刷入有漏洞的旧版固件,然后再通过漏洞利用得到root shell进而刷入任意固件。一般来讲,第一条路是很难的,而为了堵住第二条路,可以通过限制降级来实现。

由此可见,在限制降级的前提下,在固件更新时进行签名校验,能有效地防止路由器被植入木马。

0x05 极路由


固件更新Hash校验

极路由进行固件升级的时候同样会进行校验,只不过是进行MD5的HASH检验,而不是用非对称算法来校验,虽然它下载固件时,用的是HTTP下载,可被劫持,但是固件的HASH信息是通过HTTPS来传输的,可保证安全,固件下载后会验证MD5值是否匹配,不匹配则不升级。这样只要保证升级服务器不被入侵就能保证刷入的固件是官方的。

固件升级时的校验被多次提到是因为它很重要。因为如果路由器被黑客通过管理界面刷入了被植马的固件,那么黑客就拥有了所有的权限,这样,我们平常教育用户使用复杂密码所付出的努力便付诸东流,不管设置多么复杂的密码、怎么经常修改密码黑客都可以通过木马获取到。

配置信息加密保存

极路由如mac地址、fac_uuid等配置信息是用DES算法加密后存在路由器的NOR FLASH上的,相对于传统路由器直接明文保存的,在有root shell的权限后,便可轻易得到WiFi密码、Web登录密码等敏感信息,加密保存在一定程度上提高了门槛。

WPS功能关闭

极路由是不提供WPS功能的,这样可以防止黑客通过WPS的PIN码破解,从而得到WiFi的WPA密码入侵。非要提供WPS功能的话,也应该做到下面两点,一是启用WPS防护,二是默认的PIN码要随机,不能推导出来。http://www.devttys0.com/2014/10/reversing-d-links-wps-pin-algorithm/和http://www.devttys0.com/2015/04/reversing-belkins-wps-pin-algorithm/就是两个反面例子,因为用户一般不会去修改默认的PIN码的,黑客只要根据MAC地址推导出PIN码后,便可以轻易破解出WiFi密码,不管密码有多复杂。

0x07 总结


尽管智能路由器在安全方面还有很大改进的空间,它所采用的安全特性,值得传统路由器生产商学习。

安全设计

为了保护用户的安全和防止用户因黑客入侵而造成损失,笔者认为,路由器厂商可以参考以下的安全设计规范。

enter image description here


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK