您可以在图像文件中真正获得木马,如果是的话,将如何执行?


11

我刚刚数字化了几张唱片,并且需要一些封面。我的扫描仪不够大,无法扫描相册,因此我从网上搜索并下载了图像。

当我这样做时,Avast报告其中一个包含“ Win32:Hupigon-ONX”木马,并立即对其进行了隔离。不想冒险,我下载了另一个报告为干净的副本。

现在,这只是Avast的一个误报,还是jpg中确实存在木马?

如果有,它将如何执行?

我必须承认,木马和病毒的这一方面一直困扰着我。作为软件开发人员,我总是检查数组的长度等,因此我不明白为什么会发生缓冲区溢出之类的事情。我知道人们确实会偷工减料并犯错误,而且如果软件足够复杂,这些错误就会漏掉。

Answers:


11

映像文件中的漏洞利用了OS的映像处理代码中的缓冲区溢出漏洞。几年前,Windows的GDI层中发现了几个严重的缺陷-补丁已发布很久了,但漏洞利用图像仍然存在,或者仅仅是因为它们停留了下来,还是希望它们击中了尚未修补的计算机。 。

这种安全漏洞的常见原因是在调用堆栈上的函数之间传递图像数据,而没有正确检查数据的最大长度。可以通过巧妙地构造数据来充分利用此信息,这些数据过大并以某种方式排列,最终导致其最终覆盖堆栈帧中的代码(用其他代码覆盖)或覆盖指向将用于调用其他函数的代码的指针。或在被调用函数返回到调用方时(覆盖此类指针以使其指向漏洞利用代码),或以导致暴露另一个漏洞的方式覆盖数据。确切的方法取决于所讨论的安全漏洞。

如果代码支持,现代CPU的保护功能可以阻止大多数此类攻击。程序/库通过显式标记其哪些页面是数据以及哪些页面是代码而起作用-然后,如果试图将应为数据的内容(例如图像数据)中的任何内容尝试作为代码执行,则CPU将引发异常。IIRC Vista及更高版本和.Net的最新版本已对其所有库进行了重新调整以支持此保护,并且其他操作系统也支持该库,但这并不能阻止所有此类漏洞利用,只有在明确打开后才能起作用(否则,很多旧代码会中断)。


9

我必须承认,木马和病毒的这一方面一直困扰着我。作为软件开发人员,我总是检查数组的长度等,因此我不明白为什么会发生缓冲区溢出之类的事情。

好吧,欢迎来到现实世界;-)。缓冲区溢出&c。可能会以多种语言发生(尤其是那些具有手动内存管理功能的语言,例如C),而且随着开发人员犯错,它们的确会发生。

通常,缓冲区溢出只会使程序崩溃(违反分段或类似行为),但它可能允许攻击者执行代码->激活木马。

例如:

http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx

http://secunia.com/advisories/35216/

并解释如何允许代码执行:

/programming/460519/how-are-buffer-overflows-used-to-exploit-computers


我知道它们会发生-这只是我在处理数据时一直做的基本检查之一-检查我是否有足够的空间来分配数据。
克里斯(ChrisF)2010年

@ChrisF,需要确保进行检查的事实(而不是“计算机”本身就是问题所在。)
Zabba 2010年

@Zabba的意思是我在处理数据时“对程序进行编码以进行检查”。
ChrisF


2

我必须承认,木马和病毒的这一方面一直困扰着我。作为软件开发人员,我总是检查数组的长度等,因此我不明白为什么会发生缓冲区溢出之类的事情。我知道人们确实会偷工减料并犯错误,而且如果软件足够复杂,这些错误就会漏掉。

也许您正在检查所有的指针,数组等。但是您确定,您(可能)使用(可能)使用的任何3rd-patry库的所有程序员也都这样做了吗?

最简单的解决方案是下载“ image.jpg.exe”之类的文件或类似文件而不是实际图像。

此处已经描述了感染PC的更高级方法(例如,缓冲区溢出等)。


1
是的-但是我将文件夹选项更改为显示扩展名。我敢肯定,隐藏已知扩展会导致更多问题得以解决。实际上,我无法想到它真正解决的问题。
克里斯(ChrisF)2010年

完全确认-这是我在使用Windows时激活的第一个选项之一
Elvith 2010年

@ChrisF:好吧,显然它解决的问题是,否则用户在重命名文件时可能会意外更改文件的扩展名。这将导致出现一个常见的问题“我的文档图标看起来很滑稽,我无法再打开它。帮助!” :-)(是的,有时我会为我的家人提供技术支持)。
sleske

@sleske-重命名文件时Windows 7不会选择扩展名。
克里斯·弗里德(ChrisF)2010年

1
@ChrisF:有趣,不知道。但是,它曾经有所不同-至少Windows Server 2003选择重命名的全名。而且无论如何,如果用户可以编辑扩展名,他们将:-)。
sleske 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.