是否可以在图像文件中存储任意数据?


25

是否可以以图像文件(例如PNG图像)的形式存储任意数据(例如文档或程序)?我担心的是,有人可能会将供恶意软件使用的数据编码为图像,然后将其上传到Flickr之类的网站。


3
看看几年前让微软大失所望的MICE攻击
Synetech

1
是的,这是“会奖”页面中的链接。如果你擅自从该页面添加链接,那么你不妨添加这个这个这个这个这个这个,而且大多数都这样
Synetech

@Synetech:对不起;(现在已删除)注释中的链接来自Google搜索,而不是来自Wikipedia文章。
bwDraco

哦好的; 别担心。Wikipedia文章具有一些出色的技术规范(我将Microsoft,Sysinternals和GRC的大多数最佳技术规范链接在一起)。我记得那件事实际上比实际损害引起了更多炒作。在我的评论中,最后一个链接是有人自行制作的第三方补丁,直到微软发布并通过官方Windows Update对其进行补丁为止。:-P
Synetech

Answers:


22

对于大多数文件格式,可以。例如,PNG文件由类型化的块组成,因此您可以添加名为aAAAlOLZ带有任意数据的块。JPEG具有“特定于应用程序”的段;JPEG中的Exif标签实际上是此类标签中完整的TIFF结构。其他格式(例如GIF)是不可扩展的,但是它们通常确实有一个用于文本注释的字段。这已经被滥用了APPn

但是,有很多方法可以防止这种情况发生,例如,Imgur等网站会使用pngcrush或类似工具自动处理所有上传,从而丢弃了并非绝对需要的任何内容。

但是最后,无法防止数据交换。除了上述图像隐写术之外,您还拥有Twitter及其克隆,数十个pastebins(其中难以理解的帖子被认为是很正常的),旧博客帖子的评论形式(我仍然想记住这本建议的书), ...更现实的是,大多数恶意软件只会联系其“自己的”服务器。


19

没有恶意数据之类的东西。数据在执行之前不会变得恶意,这时不再是数据。这种问题不是图像,而是软件(Windows,Photoshop等)包含导致数据执行的错误的软件。这显然是主要软件供应商所关注的重要问题,您可以肯定地确定,一旦发现这些错误,他们将立即修复这些错误。

就是说,如其他答案所述,可以将不属于图像本身的数据添加到文件中。但是,这通常是有用的,甚至是标准做法。我认为,谨慎对待可执行文件比在互联网上发现随机映像更为重要。这里的风险不是很大。


“数据不会是恶意的”使用隐秘术通过无辜的渠道发送信息(例如信用卡号)的恶意软件呢?
rr-

12

图像文件(包括PNG)具有特定格式。文件的标题部分描述了图像,其后的任何数据都将被解释为图像数据(基于标题)。

但是,您可以在图像数据之后将任意数据附加到PNG的末尾,然后可以在以后读取。这将很容易检测-图像数据的末尾不应有任何数据。

或者,您可以使用隐写术将任意数据编码到图像本身中。除非您确切知道要查找的内容(通常需要先了解编码方法),否则这会以很大程度上无法检测的方式巧妙地改变图像本身。


我知道Adobe Fireworks实际上将额外的数据存储在png文件中(这不是图像的一部分)。
Jouke van der Maas 2011年

隐写术:stegosploit.info明显
火星罗伯逊
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.