近日,一种被称为NAT Slipstreaming的攻击破灭了人们对防火墙和路由器的安全性幻想。
安全研究员Samy Kamkar开发了一种基于JavaScript的攻击——NAT Slipstreaming,允许攻击者绕过受害人的网络地址转换(NAT)或防火墙安全控制,远程访问绑定到受害者计算机的任何TCP/UDP服务-如果首先诱骗了受害人,访问可能受到黑客控制的网站。
NAT为通过网络设备的流量重新映射IP地址空间,该技术在节省IPv4地址空间方面非常有效,此外安全人士还广泛认为NAT还有助于提高安全性,例如可以减少资产暴露(编者按:“万物直联”也是人们对5G安全性的最大担忧),但是NAT的安全光环被NAT Slipstreaming给彻底毁掉了。
NAT Slipstreaming的开发者Samy Kamkar指出,该攻击仅对支持应用程序级别网关(ALG)的NAT/防火墙有效,ALG是支持需要多个端口(控制通道和数据通道)协议才能工作的技术,例如VoIP协议、SIP和H323、文件传输协议(FTP)等。
NAT Slipstreaming是一种全新的数据包注入技术,可攻击所有主流浏览器。Kamkar在技术博客中详细介绍道:
NAT Slipstreaming通过定时攻击或WebRTC连接内部IP提取、自动远程MTU和IP碎片发现、TCP数据包massaging、TURN身份验证滥用、精确的数据包边界控制以及浏览器滥用造成的协议混乱等方式的组合,实现对浏览器与路由器防火墙NAT中内置的ALG链接追踪机制连接的利用。
由于是通过NAT或防火墙打开的目标端口,因此绕过了任何基于浏览器的端口限制。
简而言之,NAT Slipstreaming利用了某些路由器中的ALG部署方式,从而绕过了NAT。
Kamkar指出,解决NAT Slipstreaming暴露的安全缺陷对于厂商们来说可能是一个困难的挑战。
可以在路由器上禁用ALG,但这会带来不便(VoIP电话无法工作)。可以改进SIP ALG,但是SIP只是一部分,其他ALG同样会暴露问题。
可以在浏览器上阻止端口5060,但这并不能解决根本问题:“这事有些闹心。”
事实上,NAT Slipstreaming并不是严格意义上的“漏洞”,也“安全缺陷”是一个更准确的定义。
正如Kamkar所言:“一切协议和功能都符合标准,但是当它们组合在一起进行复杂交互的时候,糟心的问题产生了。”