3

我读过一些图像查看器被适当篡改的图像(以特别适合的格式?不确定细节)攻击。

那么,如何才能彻底消除这种威胁呢?例如,假设我们为受影响的格式创建了一个用托管代码编写的查看器,并将图像转换为纯 BMP(或其他简单到无法破解其查看器的东西);问题会消失吗?如何首先转换为 BMP,然后引入一些普遍的小随机像素更改以更好地破坏可能的黑客攻击?

假设这个图像清理转换器将被合并到防火墙中,因此默认情况下,只有“安全”的清理图像最终会在常规浏览期间加载。这能解决问题吗?还是由于对基于图像的漏洞利用的性质的理解有缺陷,我的推理不正确?

4

1 回答 1

1

我认为,您的问题归结为攻击是存在于数据中还是存在于图像中。如果它在数据中,那么只需对图像进行解码并使用已知良好的编码器重新编码即可确保安全。如果它在图像中,那么您可能需要更改像素。

著名的例子是对长度不正确的 JPEG 注释字段的错误处理,最初是 Netscape 中的一个错误,但后来独立引入Windows。这在很大程度上是一个数据问题,而不是图像问题。有问题的数据部分甚至不是图像数据,而是元数据。如果您使用沙盒解码器对图像进行解码,可能会检测损坏的评论字段并从中恢复,然后使用友好的编码器对其进行重新编码,即使对于易受攻击的解码器,结果也是安全的。天真地这样做会导致质量下降;可以对 JPEG 进行无损转码,但它需要专门的代码来执行此操作。

我的直觉是图像级别的攻击是不可能的,只有数据级别的攻击。图像格式已经足够明确,而且从根本上来说也足够简单,以至于图像的内容真的不应该影响解码过程。但是,我当然无法证明这一点,甚至也无法为此争论。

于 2012-04-08T19:37:08.110 回答