Browser 如何利用篡改的图像进行图像浏览?它们能被托管代码和随机像素改变打败吗?

Browser 如何利用篡改的图像进行图像浏览?它们能被托管代码和随机像素改变打败吗?,browser,exploit,image-formats,Browser,Exploit,Image Formats,我曾读到一些图像浏览者被经过适当修改的图像(以一种特别适合的格式?不确定细节)入侵 那么,如何才能完全消除这种威胁呢?例如,假设我们为受影响的格式制作了一个用托管代码编写的查看器,并让它将图像转换为纯BMP(或其他非常简单的东西,其查看器无法被黑客攻击);这个问题会消失吗?首先转换成BMP,然后引入一些普遍的小的随机像素改变,以更好地破坏可能的黑客行为,怎么样 假设这个图像净化转换器将被合并到防火墙中,这样在默认情况下,只有“安全”的净化图像才会在常规浏览期间加载。这能解决问题吗?还是我的推理不

我曾读到一些图像浏览者被经过适当修改的图像(以一种特别适合的格式?不确定细节)入侵

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


假设这个图像净化转换器将被合并到防火墙中,这样在默认情况下,只有“安全”的净化图像才会在常规浏览期间加载。这能解决问题吗?还是我的推理不正确,因为我对基于图像的攻击的本质理解有缺陷?

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

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

我的直觉是,图像级攻击是不可能的,只有数据级攻击。图像格式非常明确,而且基本上非常简单,因此图像的内容不应该影响解码过程。不过,我当然无法证明这一点,甚至也无法为之辩护