Total Pageviews

Sunday, 22 December 2013

智能路由器以及网络安全

TL; DR 请自行分辨智能路由器的功能与可能引入的安全威胁,并慎重考虑这种设备的应用。
声明: 本文作者与提到的品牌间没有利益关系。作者仅以网络安全研究人员的身份从技术角度对所提到的产品进行分析。
最近,市面上出现了一种『智能路由器』。然而,这种智能路由器其实提高了终端用户的安全威胁,并引入了部分新的安全挑战。这类安全威胁主要是引入了第三方信任关系而导致的。
首先,来纠正一处官方网站上的错误。根据其官方网站,这种路由器是『全球首款带操作系统的路由器』。这种说法,充分的暴露了此路由器生产厂商对于网 络协议以及基础架构的不了解。稍微懂一些计算机的工程师便知道,操作系统本身的这个概念便是非常模糊的。但凡可以管理计算机硬件资源、协调用户态应用程序 的计算机软件便可以称之为操作系统。从中国大陆市面上最常见的 TP-Link 路由器(至少是作者在国内的时候)到运行互联网核心业务的 Cisco 12000 系列路由器,操作系统也从 VxWorks 到 IOS,没有任何一个是没有操作系统的。
根据其官方主页的指示,这种路由器有自动升级的功能。对于此类功能,常见的攻击有 DNS 投毒/劫持 DNS 后跳转其升级服务器到攻击者的服务器上,通过伪造升级包的方式发起的攻击。对于没有签名,或者使用弱签名手段的方式进行的签名,很容易造成极高的安全风险。
其官方主页亦提示了此种路由器拥有带内远程管理的功能。通过来自新浪微博的讨论得知,这种带内管理的实现依赖于厂商设置的服务器进行的中转功能。因 此,我们可以容易的得出这样一个结论,即是此种路由器可以接受任意厂商下达的指令,即使这种指令是终端用户以及获得授权的管理员的意愿之外的。这将用户暴 露在以下的几种风险中:
  • 通过直接攻击厂商,获得控制机的权限,并下发指令
  • 通过记录下发指令的报文,对其进行逆向工程,合适时配合中间人攻击,成功破解其通讯协议后直接下发指令
  • 通过暴力破解或者社会工程学攻击终端用户,获取其权限并直接下发指令
对于开发者来说,最容易掉以轻心也最容易犯的错误便是 security by obscurity。
这种路由器值得注意的另一个功能,便是去除视频网站中附加的广告。在不讨论这种行为本身是否合乎视频网站的用户协议的前提下,我们很容易知道这种路 由器抑或直接进行了深度包检测并替换了含有某些规则的报文,亦或直接将视频网站跳转至第三方服务器。通过网友讨论,得知此路由器使用了第二种策略。而这种 策略必然是通过本地或者远程的数据查询对照而得出的。这又引入了一个新的问题——在用户的授权下,这种路由器将处理某些流量,使其重定向到第三方用户非信 任的服务器中。一方面,第三方服务器的安全性并没有得到验证;而另一方面,这种黑盒很有可能在用户不知情的情况下,有意或者无意的将某些用户未指定转发的 流量转发到第三方服务器上。
通过介绍,我们很容易得出这种网络设备的一部分能力:
  • 接受远程控制,即使这种控制来自于未经授权的攻击者
  • 自动的下载来自非信任区域的可执行文件,并在本地执行且替换本地的可执行文件
这个世界上,有另一种东西也符合上面的能力,这便是我们常说的 BotNet。远程控制服务器便是 C&C,而终端,则是用户购买来的智能路由器。

以下是阴谋论

推特网友 @chainkhoo 提到,在使用了这种路由器的加速功能后,发现 Google Account 在异地登陆。这种登陆是发生在关闭了加速功能后的,而报警显示,登陆的尝试来自于加速服务器上的。
It’s entirely possible to hijack accounts.google.com by redirecting SSL encrypted traffic to non-SSL traffic, i.e. proxying http://account.google.com to https://accounts.google.com and record what the f**k they want.
这个团队最近的宣传攻势相当强,而且已经公开宣传了翻墙。我想,这大概已经触犯了共产党的底线——而看到了上面的事实,又想一想现实——这大概就是 state sponsored hackers 吧!即赚钱,又获得了这么大的僵尸网络,还跪舔了有关部门。呵呵,贵国人挺厉害的。
from http://tifan.net/blog/2013/08/03/smart-routers-and-internet-security/

 爆出这个事情的时候,我还在想:“HTTPS是加密的啊!”,“SSL中间人攻击会报证书错误的啊!”。
后来其官方微博出来澄清,可能是由于IP地址变化过快导致Google锁定账号。
很凑巧,这个锁定前会导致用户当前计算机已登录的Google帐号被踢出,让用户重新登录。
这个重新登录又引发了钓鱼页面怀疑(类似下图)。
路由器这种东西想做钓鱼页面是很简单的,只要接到HTTP请求后,启动DNS劫持,并且发送一个HTTP301跳转指令让浏览器跳转到一个HTTP钓鱼服务器上,想收集什么就能收集什么。