恶意软件可以附加到图像上吗?

信息安全 病毒 攻击预防 图片
2021-09-07 11:16:41

我有少数员工使用公司的计算机,但这些人不是很精通技术。他们使用电子邮件客户端和消息传递客户端。

我很确定他们不会不假思索地点击电子邮件中的 .exe 或 .zip 文件,我知道这是一个值得关注的领域。

但是,我正在考虑图像。事实上,无论一个人在技术方面的能力如何,我相信将东西(代码或其他任何东西)附加到图像上可能会带来安全风险。

什么可以附加到图像上来伤害他人?

我相信图像会在“自动执行”或其他东西时带来安全风险。

计算机(当然也可以是手机或平板电脑)接收图像的方式有很多种:

  • 电子邮件
  • iMessage(或任何其他消息应用程序)
  • 某人右键单击并保存网页中的图像
  • 只是查看网页当然会将图像下载到缓存

对于以上四件事,我需要采取哪些预防措施?有人可以将一些代码附加到图像并执行吗?

我需要做些什么来防止图像被用于我的计算机?

我猜你不能只将代码附加到图像和 iMessage 某人的 iPhone 上。安卓呢?

4个回答

其他答案大多是关于通过隐写技术将任意代码附加到图像上,但这并不是很有趣,因为它要求用户参与提取和执行该代码。如果这是他们的目标,用户可以直接执行恶意代码。

实际上,您对查看图像时是否有可能执行意外的任意代码感兴趣。是的,攻击者有可能构建恶意图像(或声称是图像的东西),以具有已知缺陷的特定图像查看实现为目标。例如,如果图像查看器分配了一个缓冲区并通过简单的计算计算出必要的缓冲区大小width * height * bytes_per_pixel,则恶意图像可能会报告足够大的尺寸以导致上述计算溢出,然后导致查看器分配的缓冲区比预期的要小,然后当数据被读入时允许缓冲区溢出攻击。

具体例子:

一般来说,这类事情很难防范。你可以做的一些事情:

  • 保持您的系统和应用程序更新。
  • 启用DEP
  • 如果可能,启用ASLR 。
  • 避免以管理权限运行程序。
  • 在 Windows 上,微软的 EMET也可以提供一些保护。

是的,有办法“利用”缓冲区溢出。

有时代码可能需要通过单独的脚本执行,理论上您可以使用速记法从包含隐藏在图片中的代码的多个图像中组装病毒,但有更简单的方法。

基本上,许多计算机系统期望图像符合类型的确切规范,并且未能正确范围检查正在传递的格式/参数。

通过“设计”图像,使其在外部看起来符合但在内部不符合,可以触发堆栈损坏/缓冲区溢出,从而允许隐藏在图像中的代码在用户授权下执行。

但请注意,这不仅仅适用于图像,它可以适用于任何文件,看看 MS word 中最近的 RTF 漏洞利用。

您始终可以在任何文件的“空闲空间”中隐藏文件/程序/任何内容。然后您可以稍后运行脚本来提取和/或编译您隐藏的内容...例如,您可以在网站的多个图像中嵌入恶意可执行文件(或更小的脚本)。当用户访问网站时,他们会下载图像。

在此处了解有关 Slack Space 的更多信息:http: //www.computerhope.com/jargon/s/slack-space.htm,然后通过抓取十六进制编辑器自己玩弄它(http://mh-nexus.de/en /hxd/ ) 和乱七八糟的。

对于几乎任何文件格式,读取它的程序都可能存在一些可被恶意制作的文件利用的错误。

图像也可能发生(并且已经发生);但它通常仅限于读取它的单个特定程序(或库),而不是攻击所有此类程序的一般“带有恶意软件的图像”。

如果程序试图用它们做一些有趣的事情,即使是文本文件在理论上也不安全。博客评论文章中的 sql 注入本质上是“附加到文本的恶意软件”;Python 中存在一个漏洞,通过提交恶意文本数据并声称它是 UTF-7 编码,利用该解码器中的错误,允许崩溃(=拒绝服务);并且存在基于通过恶意近文本数据破坏 XML 解析器的攻击。