网站图标木马:利用ICO Alpha通道实现的可执行隐写术

发表
David NoeverDavid Noever 提交
作者: David Noever, Forrest McKee

摘要

本文提出了一种新颖的可执行隐写术方法,利用 ICO 图像文件的 alpha 透明度通道,在网页浏览器中嵌入并传递自解压 JavaScript 载荷。通过针对非透明 alpha 通道图像值的最低有效位(LSB),该方法成功地将压缩后的 JavaScript 代码隐藏在 favicon 图像中,且不影响视觉保真度。全球网络每天加载 2940 亿个 favicon,消耗 0.9 PB 的网络带宽。一项概念验证实现表明,一个 64x64 的 ICO 图像可以嵌入多达 512 字节的未压缩数据,或在使用轻量级两倍压缩后达到 0.8 KB。页面加载时,浏览器会作为标准行为获取 favicon,从而允许一个嵌入的加载器脚本使用原生 JavaScript API 和 canvas 像素访问,完全在内存中提取并执行载荷。这创建了一个无需额外网络或用户请求的两阶段隐蔽信道。在桌面和移动环境下的多种浏览器中进行的测试证实,嵌入的脚本能够成功且静默地执行。我们评估了其威胁模型,将其与规避基于 favicon 检测的多态网络钓鱼攻击联系起来,并分析了其规避内容安全策略和杀毒软件扫描的能力。我们将九个 MITRE ATT&CK 框架的目标示例映射为单行 JavaScript,以便在 ICO 文件中任意执行。文中还讨论了现有的隐写分析和净化防御措施,突显了它们在检测或消除 alpha 通道漏洞利用方面的局限性。研究结果表明,这是一种隐蔽且可重用的攻击面,模糊了静态图像和可执行内容之间的传统界限。由于当开发者未能成功加载 ICO 文件时,现代浏览器会报告静默错误,因此这种攻击面提供了一个有趣案例,即必要的网络行为反过来又损害了安全性。
查看 arXiv 页面查看 PDF

评论

David NoeverDavid Noever
论文提交者

在普遍存在的网络收藏夹图标 ICO 格式的透明层中嵌入隐写术

Michael BarryMichael Barry

重要的是要澄清代码混淆(包括隐写术等技术)与实际安全漏洞之间的区别。

虽然技术上可能通过隐写术等方法在图像中隐藏 JavaScript 代码,或以其他方式混淆它,但这本身并不会损害浏览器安全。现代网络浏览器的核心安全机制旨在以健壮的方式处理代码执行,无论代码看起来多么可见或“隐藏”。

浏览器安全主要依赖于沙盒机制。

这意味着即使恶意 JavaScript 执行,它也会在一个高度受限的环境中运行,从而阻止它直接访问您的系统或敏感数据。浏览器的同源策略进一步限制了来自一个源的脚本如何与来自另一个源的资源交互,提供了额外的保护层。

因此,混淆或隐藏代码的能力,虽然可能使分析更困难,但并不等同于绕过基本安全措施。浏览器安全策略旨在在沙盒内的执行点降低风险,而不是依赖于执行前扫描混淆代码。

Michael BarryMichael Barry

我不明白 JavaScript 恶意软件的集合与我所说的有何关联。能详细说明一下吗?

Michael BarryMichael Barry

算了,还是别提了。我刚意识到你就是那位做EICAR研究的人,那次研究我也批评过,而且我们当时意见不合。我就觉得你的名字很耳熟。我希望你不要认为我是在针对你,我没有。但这两篇论文都存在相同的推理缺陷,而且两次我都觉得有必要指出来。