NetUSB被爆存在远程溢出漏洞,影响大量路由器

业界 作者:站内编辑 2015-05-22 03:48:52
今天,SEC漏洞咨询实验室发布了一条公告,内容关于的是一个名叫NetUSB的软件组件中的一个漏洞。这篇报告旨在向大家提供关于这个漏洞的一些背景信息。 NetUSB是由一家名为KCodes的台湾软件公司所开发出来的专利技术,软件用于向用户提供“USB over IP”功能。由Linux内核驱动的服务器(TCP端口号20005)可以通过网络来使用插入了Linux嵌入式系统(例如一台路由器,一个接入点或一个专用的“USB over IP”工具箱)的USB设备。软件所使用的客户端支持Windows和OS X系统。它会与服务器进行连接,并且会在本地的嵌入式系统中模拟出插入的设备。对用户来说,这与使用一个真实插入了客户端系统的USB设备的体验是一样的。值得注意的是,我们的检测结果显示,所有的设备都可以使用NetUSB功能,而且即便是没有插入USB设备的服务器也仍然会处于运行状态。 我们最早在TP-Link设备上发现了NetUSB的内核驱动程序,并且我们决定花一些时间去对其进行研究。为了与服务器端建立链接,我们需要通过一个简单的相互身份验证。当使用AES静态密钥时,身份验证就完全没有意义了,此时的AES密钥可以在Windows和OS X版本客户端软件的内核驱动程序中找到。作为链接的起始部分,客户端会发送它所在计算机的名称。这是一个非常有趣的地方:客户端可以指定计算机名的长度。通过指定一个长度超过64个字母的计算机名,当接收到带有计算机名的套接字信息时,便会引发堆栈缓冲区溢出。所有的服务器端代码都会在内核模式中运行,所以这就是一个“罕见的”远程内核堆栈缓冲区溢出。 事实证明,不仅是TP-Link公司在其产品中使用了NetUSB。我们在“NetUSB.inf”文件中还发现26个相关的供应商产品,这些都是Windows平台下的客户端驱动程序。所以这些提供商很有可能拥有NetUSB技术的授权并且正在他们的产品中使用这项技术。在我们所发表的公告中,含有一个受影响设备的名单,SEC实验室已经对这些设备固件中的漏洞进行了验证。除非另有说明,这份名单并不包含所有受影响的供应商。 为了了解到底有多少设备受到了影响,我们从D-Link,NETGEAR,TP-LINK,Trendnet和ZyXEL厂商的网站上下载了一系列相应的固件镜像文件(实际上,我们把它们全部下载下来了)。然后,我们对这些固件进行了检测,检测这些固件镜像是否包含NetUSB内核驱动程序(NetUSB.ko)。从我们对固件镜像的分析中,我们发现了其中有92个产品含有NetUSB代码。你可以从我们所发布的公告中,找到受影响产品的名单。还有21家供应商的产品固件我们还未进行检测。许多受影响的设备都是高端设备,而且都是近期发布的产品(没错,即使是那些看起来像宇宙飞船的产品!)。 每一个供应商在使用NetUSB功能时都会用不同的术语。NETGEAR公司称其为ReadySHARE,其他的供应商简单地称其为”print sharing”或者”USB share port”。下面是一些例子: NetUSB1 图片1:TRENDNET产品中的NetUSB功能   NetUSB2 图片2:TRENDNET产品的NetUSB功能-”USB Share Port” NetUSB3 图片3:TP-Link产品的NetUSB功能 资源: http://www.trendnet.com/products/proddetail.asp?prod=105_TEW-812DRU http://www.tp-link.com/en/products/details/cat-9_Archer-C7.html 有一些迹象表明,当我们所持有的设备无法通过互联网来访问NetUSB功能时,一些设备会将端口号为20005的TCP端口暴露在互联网上。我们不知道这是否是由于用户错误的配置或特定设备的默认设置所引起的。但是,将NetUSB暴露在网络中,将会使攻击者获得目标主机USB设备的访问权限,而这实际上可以算是另一个漏洞了。 早在2015年2月,我们就曾尝试与KCodes公司取得联系,想要向他们提供包含概念验证漏洞代码的漏洞分析详细报告。但他们给我们回复了一些荒谬的信息,然后选择继续无视我们。后来,我们直接把漏洞信息发送给了TP-Link公司和NETGEAR公司。CERT/CC和其他CERT组织通知了一些其他的供应商——我们非常感谢各个组织的协调与配合! 在过去,我们已经见过了许多嵌入式设备中有漏洞的代码,这些漏洞会对设备的安全性产生巨大的影响。其中有一些漏洞是协议设计的问题(例如Wi-Fi保护程序https://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf),无论如何,客户端嵌入式系统的开发成本总是被控制为尽可能的低,因此供应商通常会在其产品中使用由廉价制造商(例如HP公司披露的Realtek CVE-2014-8361http://www.defensecode.com/public/DefenseCode_Broadcom_Security_Advisory.pdf)提供的漏洞缠身的代码或过期版本的开源软件(例如libupnp,MiniUPnPd https://hdm.io/writing/originals/SecurityFlawsUPnP.pdf)。 在这里,我们向大家展示了当前嵌入式系统不良的安全状态。由于这些供应商仍然在制造物联网设备,所以我们将会在未来看到更多类似的事件发生。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接