近二十年来,DNS绑定攻击一直是讨论的主题。尽管浏览器提供商付出了努力,但仍然无法找到能够抵御这些攻击的防御系统。据说八年前这些问题已经解决了。但是这种类型的攻击会再次出现一个新的攻击向量。
一般而言,可以肯定的是,未来的盗版活动将通过多种现有攻击结合形成新的攻击媒介。这些新攻击媒介的一个很好的例子是攻击加密货币钱包的DNS反弹攻击。
在本文中,我们基于黑客攻击发现,攻击并采取设备的控制物联网设备上的网络分析普林斯顿(普林斯顿大学)和加州大学伯克利分校(加州大学伯克利分校)。该研究于2018年8月发表。
用于发现和攻击物联网设备的设备和黑客方法。
研究人员的目标是测试15个物联网设备。只有这些设备七个持有本地HTTP服务器,这样的研究主要集中在他们身上:谷歌的Chromecast谷歌主页,智能电视,智能开关和三个摄像头。
使用的攻击方法是:
误导受害者并诱使他们访问受攻击者控制的网站。
物联网设备位于受害者的本地网络中。
通过基于Web的攻击控制设备。
攻击持续时间
从技术上讲,这不是一个新的攻击媒介。该研究引用了之前的研究,发现使用这些攻击媒介的攻击者平均花费一分钟才能获得结果。有趣的是,一项着名的调查结果。
(您认为您对网络的了解不正确)表明,55%的用户在网站上花费不到15秒。似乎大多数用户不会受到互联网漏洞的影响。
但是在普林斯顿大学和加州大学伯克利分校,研究人员大大缩短了袭击的持续时间。研究人员表示,使用他们发现的方法,他们可以比以前的研究更快地发现和访问本地网络中的设备。排除Chrome,因为它会缓存DNS请求并在TTL低于某个阈值时忽略TTL。必须考虑到隔离设备(DMZ,防火墙内的内部网络)通常被认为是安全的,因为用户认为无法从外部访问设备。但是,通过此处描述的攻击,攻击者可以访问受害者内部网络上的浏览器。
发现HTTP端点
研究人员通过将这些设备连接到Raspberry Pi的无线接入点来分析这些设备。观察并分析从设备发送和接收的数据包,以及链接到每个设备的移动应用程序发送和接收的数据包。通过分析发现了GET请求端点和8个POST请求端点。这些端点用于标识发现阶段的IP地址。研究阶段
研究人员通过两个不同阶段进行研究,即发现阶段和访问阶段:
发现阶段的目标是在本地网络的浏览器中查找具有HTML5元素的IoT设备。
访问阶段的目标是通过重新连接DNS和发现的IP地址来访问HTTP端点。
1.发现阶段:识别物联网设备
使用WebRTC获取本地IP地址。
请求通过端口81发送到IP范围内的所有IP地址。由于端口81通常不忙,因此活动设备将立即响应TCP RST数据包。对于IP范围内的非活动设备,请求包将过期。
每个活动IP地址使用HTML5为35个GET端点接收在初始阶段收集的请求。根据返回的错误消息信息,攻击脚本将识别IP地址是否与七个设备中的一个匹配。
该研究计划使用三种不同的操作系统(Windows 10,MacOS和Ubuntu)和四种不同的浏览器(Chrome,Firefox,Safari,Microsoft Edge)。但是,只有Chrome和Firefox适合此项研究。因此,由于(基于Web的攻击发现和控制本地IoT设备),因此不使用Safari和Edge浏览器:
在Safari中,所有FETCH请求都已耗尽,这导致攻击脚本将所有IP地址识别为非活动状态。在Edge浏览器中,脚本可以使用FETCH请求来正确识别活动IP地址,但Edge不会公开详细的HTML5错误消息,因此攻击脚本无法识别Edge上的任何设备。
2.访问阶段:控制物联网设备
受害者访问受攻击者(domain.tld)控制的域名,浏览器执行攻击者网站上的恶意JavaScript代码。域名仍在攻击者服务器的IP中解析。
恶意脚本请求domain.tld中仅存在于攻击者服务器上的另一个资源。
如果受害者的本地DNS缓存仍然使用攻击者的远程IP解析,则/hello.php请求将返回字符串“hello”并重复步骤2。
但是,如果受害者缓存中的domain.tld过期,则会向攻击者发送新的DNS查询。
最后,将返回从发现阶段获得的本地IP,而不是攻击者的远程IP。/Hello.php不会以字符串“hello”响应,但会使用不同的内容,例如404错误,这表示恶意脚本。 DNS重新绑定攻击已成功。通过此攻击,恶意脚本会忽略相同来源的策略,并获得对设备上运行的Web应用程序的访问权限。攻击者现在可以在Google Chromecast,Google Home,智能电视和智能交换设备上执行重新启动或启动视频/音频文件。
如何防止对物联网设备的DNS反弹攻击
研究人员表示,用户,浏览器提供商,物联网提供商和DNS提供商必须采取预防措施,以避免DNS绑定攻击。以下是该研究中给出的一些措施:
用户可以在其浏览器中禁用WebRTC并防止私有IP泄露。攻击者可以通过向私有IP范围内的所有* .1地址(路由器地址)发送请求来发现用户的私有IP。
攻击者假定所有IoT设备的IP范围与受害者的PC具有相同的IP范围。用户可以通过配置路由器的DHCP服务器在另一个子网(例如/16)中分配IP地址。
用户可以通过从DNS响应中删除RFC 1918地址来安装dnsmasq以避免DNS反弹攻击。用户还可以使用dnsmasq中的OpenWRT路由器。
物联网提供商可以控制发送到Web界面的请求中的主机头。如果没有符合RFC 1918的私有IP,则可以阻止访问。
DNS提供商可以使用诸如dnswall之类的机制来过滤DNS响应的私有IP。
浏览器提供商可以开发限制公共网络访问私有IP范围的扩展。