ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

下一次从打印机里冒出的会是什么?——论UPnP的使用现状与风险

2021-04-13 10:54:24  阅读:282  来源: 互联网

标签:打印机 现状 MiniUPnPd 漏洞 使用 路由器 UPnP 设备


 Change 嘶吼专业版 

图片

今年早些时候,Chromecast流媒体加密狗、谷歌家庭设备和智能电视的用户都强制收获了一条来自youtube PewDiePie频道的推广信息。这次劫持事件据说是由管顶级流量的UP主们的一场粉丝争夺战引发的。报道称,***利用了配置不当的路由器,这些路由器启用了通用即插即用(Universal Plug - and - Play,简称UPnP)服务,导致路由器将公共端口对向私有设备,并向公共互联网开放。

许多设备(如照相机、打印机和路由器)都使用UPnP协议,使其能够自动发现及检查本地网络上的其他设备,并能相互通信来共享数据或流媒体。但在它带来便利的同时也带来了安全隐患,比如从***者控制设备到绕过防火墙保护等等,不一而足。

在上述事件之后,我们调查了家庭网络中与UPnP相关的事件,发现许多用户的设备中仍然使用UPnP协议。

图片

表1.启用了UPnP的主要设备类型

今年1月份,我们检测到有76%的路由器启用了UPnP协议,还有27%的媒体设备(例如DVD播放器和媒体流设备)也启用了UPnP。一旦UPnP中的漏洞被***者利用,路由器或其他设备就很容易变为代理,进而沦为混淆僵尸网络、分布式拒绝服务***(DDoS)或垃圾邮件活动的源头,并且让人几乎无法跟踪恶意活动的执行情况。此前已有过此类案例,利用路由器UPnP协议中的漏洞使之被迫连接到端口,发送垃圾邮件或其他恶意邮件。

IoT僵尸网络Satori就曾因利用UPnP漏洞而臭名昭着。该漏洞(CVE-2014-8361)是Realtek SDK miniigd UPnP SOAP接口中的命令注入漏洞。2015年5月,与此漏洞相关公告发布,并提供了相应的缓解措施,但根据我们收集的最新数据,许多设备仍在使用较旧的、可能易受***的UPnP版本。

图片

图1. Shodan中对UPnP检测的相关结果(2019年3月5日数据)

在线搜索引擎Shodan能呈现全球使用UPnP协议的设备的数量和分布情况。在扫描UPnP使用的标准端口1900后,我们检索出了1,649,719个设备。下表中列出了一些知名的UPnP库,MiniUPnPd和Custom(Broadcom的UPnP库)是大多数检索设备所使用的。

image.png

表2. Shodan显示结果中的前三个UPnP库(2019年3月5日数据)

image.pngUPnP相关的漏洞和家庭网络中的设备现状

通过我们自己的扫描工具,我们研究了家庭和其他小型网络环境中使用的UPnP库,并确定了可能导致设备容易受到***的因素。简而言之,我们发现大多数设备仍然使用旧版本的UPnP库,而这些UPnP库中存在的许多漏洞已被公布多年。

MiniUPnPd

我们的物联网扫描工具数据显示,启用UPnP的设备中有16%使用了MiniUPnPd库。 MiniUPnPd是一个知名的UPnP守护进程,用于NAT(网络地址转换)路由器提供端口映射协议服务。有趣的是,我们检测到安装了旧版本的MiniUPnPd的设备中,有24%在使用MiniUPnPd 1.0, 30%在使用MiniUPnPd 1.6,只有5%的设备使用MiniUPnPd 2.x版本(miniupnpd 2.1是最新版本)。

image.png

表3.MiniUPnPd各版本的使用比例

具有上述旧版本守护进程的设备必须进行更新,才能杜绝一些已知的高风险漏洞。例如,CVE-2013-0230是MiniUPnPd 1.0版本中的ExecuteSoapAction中基于堆栈的缓冲区溢出漏洞,允许***者执行任意代码;CVE-2013-0229是MiniUPnPd 1.4之前的一个ProcessSSDPRequest函数漏洞,它允许***者通过请求触发缓冲区的过度读取来引发拒绝服务(DoS);CVE-2017-1000494是MiniUPnPd 2.0版本之前的一个未初始化的堆栈变量漏洞,它允许***者发起DoS***(分段错误和内存损坏)。

Windows UPnP服务器

我们还发现,有18%的设备使用基于Windows的UPnP。这些设备,尤其是Microsoft Windows XP计算机(Windows NT 5.1),应检查是否已应用MS07-019补丁。(不过Windows XP在2014年4月已经寿终正寝,这意味着它不再受到微软的支持,安全问题也将得不到解决。)Windows XP自带的UPnP功能是开箱即用的,而该补丁能解决UPnP内存损坏漏洞CVE-2007-1204,(此漏洞允许远程***者在本地服务帐户上下文中运行任意代码)。

Libupnp(用于UPnP设备的可移植SDK)

用于UPnP设备的SDK(便携式软件开发工具包)libupnp是另一个众所周知的UPnP库,它能支持多种操作系统。根据我们的数据,检测设备中有5%在使用libupnp库包,虽然不占有很大比例,但我们注意到,具有该库的设备大多是1.6.18 / 1.6.19之前的版本(当前版本为1.8.4)。而在1.6.18之前版本里,unique_service_name函数中存在基于堆栈的缓冲区溢出漏洞(CVE-2012-5958),它允许远程***通过用户数据报协议(UDP)数据包执行任意代码。

image.png结论

对于用户来说,要确定设备是否有UPnP相关的漏洞或者是否受到了感染是很棘手的。有些设备可能隐藏在NAT之后,这样即使存在漏洞,用户也不会当即看到风险所在。为了防止利用UPnP相关漏洞的***,用户应该确保他们的设备的更新。如果怀疑设备被感染,应该重新启动该设备,将其重置为原始工厂设置,或者为了谨慎起见,将其全部替换。除非网络需要在设备中启用UPnP功能,否则最好在设备允许的情况下禁用。然而,需要注意的是,关闭UPnP可能也会连带禁用一些功能,包括本地设备的依赖关系,或者需要忽略来自设备的请求。

家庭用户也可以遵循这些措施以增加安全性:

1、使用趋势科家庭网络的HouseCal工具扫描家庭网络,并检查哪些设备的UPnP端口1900处于打开状态。

2、转到设备的设置页面(例如路由器的设置页面)以禁用UPnP。

3、根据需要手动配置端口转发设置。image.png



标签:打印机,现状,MiniUPnPd,漏洞,使用,路由器,UPnP,设备
来源: https://blog.51cto.com/u_15127538/2702529

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有