我最近观看 了芬兰互联网安全专家的这段视频。大约在第 11 分钟左右,他谈到了隐藏在图像中并在图像即将显示时执行的病毒。
我想知道他们在技术上是如何做这样的事情的,我的意思是病毒是如何执行的,什么时候应该显示图片,以及为什么图片不会以某种方式受到损害。我认为计算机首先查看扩展程序,然后使用适当的程序打开它并让程序自行运行(我不希望普通的图像查看器能够在自身内部运行病毒)。显然它不会那样工作,但我问过的人都无法帮助我解决这个问题。
那么有谁知道他们是怎么做到的,原理?非常感谢你。
您的操作系统将选择一个程序并要求它打开图像是正确的。操作系统不会要求程序执行映像——那是无稽之谈。
但是,图像是复杂的格式,并且通常包含元数据(例如拍摄照片的日期和时间)和其他未直接显示的部分——您可以在其中隐藏内容而不会影响屏幕上的图像。因此,图像文件中可能潜伏着恶意数据。
此外,程序可能有错误,特别是缓冲区溢出。简而言之,病毒可以通过将太大的数据放入元数据部分来利用这一点——比解码图像的程序预期的要大。内部缓冲区溢出,并且有足够的技巧,病毒编写者能够将可执行代码放入内存中的正确位置,以便解码图像的程序最终会执行代码。这样,像图像这样无辜且“死”的文件可以承载漏洞利用。
它不必显示,它必须被阅读。
操作系统可能有一个缩略图生成线程,它将解析它找到的所有图像。该代码中的缓冲区溢出将允许代码执行而无需用户干预。
这适用于任何具有任何形式的自动读取功能的文件,以提取 mp3 的属性、索引 PDF 等。
病毒可以将信息存储在图像中,并且可以利用图像查看程序中的漏洞。它不能“感染”图像,而是恶意更改图像,以致可能打开它的程序将被破坏并在该过程中触发漏洞利用。
如果病毒将格式错误的数据放入图像中以利用程序 X,并且图像在程序 Y 中打开,则图像可能会因为格式太错误而无法渲染,或者会在那个程序。
所有这些东西的缺陷不在于图像格式,而在于图像解码器的实现。
一些图像格式指定了实际的代码部分,据说会在错误时执行。您可能会发现阅读 Windows 元文件图像格式和 MICE 漏洞很有趣。
维基百科说:“......该漏洞是 WMF 文件设计中的固有缺陷,因为此类文件的底层架构来自上一个时代,并且包括允许在 WMF 文件打开时执行实际代码的功能。” --- https://en.wikipedia.org/wiki/Windows_Metafile_vulnerability
同一篇文章还引用了 Secunia,但没有引用:“该漏洞是由于处理包含特制 SETABORTPROC 'Escape' 记录的 Windows Metafile 文件 ('.wmf') 时出现错误而引起的。此类记录允许任意用户- 当 WMF 文件的渲染失败时要执行的定义函数。”