【问题标题】:How can a virus exist in an image?病毒如何存在于图像中?
【发布时间】:2012-03-29 09:01:47
【问题描述】:

我最近观看了一位芬兰互联网安全专家的this 视频。大约在第 11 分钟左右,他谈到了隐藏在图像中并在图像即将显示时执行的病毒。

我想知道他们在技术上是如何做到这样的事情的> 以及为什么图片没有以某种方式受到损害。我认为计算机首先查看扩展程序,然后使用适当的程序打开它并让程序自行运行(而且我不希望普通的图像查看器能够在自身内部运行病毒)。显然它不会那样工作,但我问过的人都无法帮助我解决这个问题。

那么有谁知道他们是怎么做到的,原理?非常感谢。

【问题讨论】:

  • en.wikipedia.org/wiki/Buffer_overflow,出现在众多图片阅读库中。
  • 由于缓冲区溢出,它被认为是 #1 经典安全问题。我推荐读这本书:amazon.com/Deadly-Sins-Software-Security-Programming/dp/…假设图像是10k,而accepting agent只取了9k,agent只取了9k,剩下的现在覆盖了相邻的内存地址。假设那些是密码,你就完了。您的密码已更改。
  • @CppLearner 你有“#1”声明的来源吗?我一直听说 SQL 注入在很大程度上是排名第一的(但同样我也没有手头的源代码)。 编辑 根据 OWASP 前 10 名,SQLI 对于 Web 应用程序 排名第一。仍然没有一般漏洞的来源。
  • @KonradRudolph Hm.. 经典。不是现代的。 SQL 出现在 1974 年,第一次记录缓冲区溢出发生在 1972 年……此外,缓冲区溢出直观上是编写代码时最危险的问题。
  • @KonradRudolph 你有没有提到图像读取库中的缓冲区溢出?这似乎是一种已经存在足够长的技术,已经得到了强化,尤其是 libtiff 等开源库。

标签: image security virus


【解决方案1】:

您的操作系统会选择一个程序并要求它打开图像是正确的。操作系统不会要求程序执行图像——那是无稽之谈。

但是,图像是复杂的格式,并且通常包含元数据(例如拍摄照片的日期和时间)和其他未直接显示的部分 - 您可以在其中隐藏内容而不会影响屏幕上的图像。因此,图像文件中可能潜伏着恶意数据。

此外,程序可能存在错误,尤其是buffer overflows。简而言之,病毒可以通过将太大的数据放入元数据部分来利用这一点——比解码图像的程序预期的要大。内部缓冲区溢出,只要有足够的技巧,病毒编写者就能够将可执行代码放入内存中的正确位置,以便解码图像的程序最终执行代码。这样一来,像图像这样无辜且“死”的文件就可以进行漏洞利用。

【讨论】:

  • –1 ... Matt Damon 对缓冲区溢出有什么了解?!
  • @EdS.,我认为鲁道夫先生暗示盖斯勒先生与达蒙先生相似。 哦,我投了反对票,因为我不同意。坏笑话>
  • 好吧,我当时没听懂这个笑话……但我很荣幸能被这样与马特·达蒙(Matt Damon)相提并论 :-)
  • @MartinGeisler 我认为这是“元数据”的一个很好的说明:) stackoverflow.com/a/5509538/230884
  • 只想指出,specializt 假设缓冲区溢出的影响是有限的(崩溃),这通常不是真的。
【解决方案2】:

它不必显示,它必须被阅读。

操作系统可能有一个缩略图生成线程,它将解析它找到的所有图像。该代码中的缓冲区溢出将允许代码执行而无需用户干预。

这适用于具有任何形式的自动读取功能的任何文件,以提取 mp3 的属性、索引 PDF 等。

【讨论】:

【解决方案3】:

病毒可以在图像中存储信息,并且可以利用图像查看程序中的漏洞。它不能“感染”图像,而是恶意更改图像,从而破坏可能打开它的程序并在该过程中触发漏洞利用。

如果病毒将格式错误的数据放入图像中以利用程序 X,并且图像在程序 Y 中打开,则图像可能由于格式太错误而无法呈现,或者将呈现为无辜或随机在该程序中查看图像。

所有这些东西的缺陷不在于图像格式,而在于图像解码器的实现。

【讨论】:

  • 修改文件导致恶意行为——为什么不称其为“感染”?
  • @BenVoigt,我不明白你的意思....你为什么称之为“感染”?该文件是从 Internet 下载的。只要您不打开它,它就会被有效地隔离。
  • @Pacerider:这就是隔离的意思。但我不明白它与我的评论有何关系。隔离的受感染文件仍然是受感染文件。而且您的隔离概念具有误导性...打开文件的不是显式用户操作,而是缩略图生成。要真正隔离文件,您应该拒绝读取权限。
【解决方案4】:

某些图像格式指定了实际的代码段,据说会在出错时执行。您可能会发现阅读 Windows 元文件图像格式和 MICE 漏洞很有趣。

维基百科说:“...该漏洞是 WMF 文件设计中的固有缺陷,因为此类文件的底层架构来自上一个时代,并且包括允许在 WMF 文件时执行实际代码的功能打开。” --- https://en.wikipedia.org/wiki/Windows_Metafile_vulnerability

同一篇文章还引用了 Secunia,但没有引用:“该漏洞是由于处理包含特制 SETABORTPROC 'Escape' 记录的 Windows Metafile 文件 ('.wmf') 时出现错误引起的。此类记录允许在 WMF 文件渲染失败时执行任意用户定义的函数。"

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2019-04-17
    • 1970-01-01
    • 2017-06-04
    相关资源
    最近更新 更多