UPnP 端口映射安全浅析

1. UPnP概述

UPnP(Universal Plug and Play, 通用即插即用)为微软推行的一个标准,由一系列协议组成,旨在方便联网设备之间互联互通,使得任何设备在接入网络后立刻可以被所在网络中的其他设备发现并进行控制。本文不讨论UPnP协议的工作原理,仅针对其中端口映射的功能作出安全分析。

2. UPnP端口映射

UPnP使用SOAP(Simple Object Access Protocol, 简单对象访问协议)来对设备进行控制,其中最为常用的控制命令为AddPortMapping和DeletePortMapping,设备可以使用该命令在网关设备中增加和删除一条端口映射记录。AddPortMapping命令有四个主要参数:公网IP、公网端口、内网端口和内网IP,其中公网IP一般不填写,表示任意公网IP。如图1,通过在路由器中进行端口映射,可以使任意公网地址通过指定端口访问到对应的内网设备。目前大部分家用无线路由器均带有UPnP功能,常见的用途为加快P2P软件访问网络的速度,如观看在线视频以及多点下载等,迅雷等软件在开启UPnP支持后会自动在路由器上进行端口映射。

1

3. 端口映射安全问题

虽然UPnP的端口映射可以使用户的某些上网行为更加流畅,但由于设备被暴露到公网,导致了设备可以被公网恶意扫描访问到,同时Shodan、Zoomeye等网站也可以爬取到此类设备,因此大大提升了内网设备被恶意攻击利用的风险。

2

UPnP的AddPortMapping命令中表示内网IP的参数名为NewInternalClient,网关设备一般都未对此参数进行认证,即使该地址对应的不是UPnP设备,甚至不是内网地址,在网关设备中均可以映射成功。UPnP认证功能不完善的问题,同样导致了一些安全隐患的产生。

  • 匿名通信:攻击者如果将NewInternalClient设置为公网IP,并在路由器中进行映射,则公网发送到路由器对应端口的请求会被转发到另一个公网地址上,也就是说该路由器会成为两个公网地址通信的跳板。由于一般路由器中不会对此类流量进行日志记录,因此攻击者可以利用多个路由器建立隐蔽的匿名通信信道。

3

  • 服务重定向:内网中搭建的服务(例如网站、邮件服务器等)都有相应的端口映射,供公网访问。攻击者可以先删除路由器中对应的端口映射记录,再将记录中内部服务的信息换成恶意服务器的地址与端口,并重新添加到端口映射列表中。这样公网访问这些服务时就会被重定向到攻击者所控制的虚假网站和服务器中,从而达到网络钓鱼、窃取信息等目的。

4

此外,UPnP端口映射还可能导致中间人等攻击形式,或用于僵尸网络命令与控制信道(C&C),危害十分严重。

4. 已有案例

2008年被发现的著名的Conficker僵尸网络就利用了UPnP端口映射。在感染设备后,Conficker会首先检查是否有防火墙的存在,如果有则会发送UPnP命令在防火墙上打开一个可供外部访问的端口,便于蠕虫的传播。新的可感染设备在被扫描到后会通过此端口取回Conficker相关程序,成为新的僵尸主机。

2013年1月Rapid7发布了关于UPnP安全漏洞的白皮书,报告表示全球大约有八千万独立IP会响应互联网中的UPnP SSDP发现请求,而其中有大约五分之一的UPnP设备还将SOAP API开放到了互联网中,使得攻击者可以对内网中的设备系统远程执行命令。

2015年卡内基梅隆大学软件工程学院的CERT发布报告称,UPnP由于其验证机制的缺陷导致了Filet-O-Firewall漏洞,用户使用特定浏览器访问攻击者的网站时,浏览器会被强制向本地防火墙发起UPnP请求,增加端口映射并家用路由器发送指令。

5. 防御措施

  • 关闭路由器上的UPnP功能。
  • 在路由器上对内网地址进行严格过滤。
  • 安装安全防护软件对异常流量进行监控。

6. 参考文献

  1. http://upnp.org/resources/whitepapers/UPnPEnablingIoT_2014.pdf
  2. http://www.upnp-hacks.org/
  3. http://slideplayer.com/slide/5176947/

 

*来源:ArkTeam  作者: Woody  Mottoin整理发布

原创文章,作者:Moto,如若转载,请注明出处:http://www.mottoin.com/article/network/89104.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code