browser - 针对图像查看器的篡改图像漏洞是如何发挥作用的?他们可以通过托管代码和随机像素更改来击败吗?

标签 browser exploit image-formats

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

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

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

最佳答案

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

著名的例子是 mishandling of JPEG comment fields with bad lengths ,原本是Netscape中的一个bug,后来独立引入到Windows中。这很大程度上是一个数据问题,而不是图像问题。所讨论的数据部分甚至不是图像数据,而是元数据。如果您使用沙盒解码器对图像进行解码,也许可以检测到损坏的注释字段并从中恢复,然后使用友好的编码器对其进行重新编码,那么即使对于易受攻击的解码器来说,结果也是安全的。天真地这样做会导致质量下降;可以无损地转码 JPEG,但需要专门执行此操作的代码。

我的直觉是不可能进行图像级攻击,只能进行数据级攻击。图像格式已经足够明确,并且基本上足够简单,图像的内容实际上不应该影响解码过程。不过,我当然无法证明这一点,甚至也无法真正争论这一点。

关于browser - 针对图像查看器的篡改图像漏洞是如何发挥作用的?他们可以通过托管代码和随机像素更改来击败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064432/

相关文章:

c - 如何从目标代码中删除空字节?

javascript - 关于这可能是什么类型的图像格式的任何想法?

Android视口(viewport)设置 "user-scalable=no"打破视口(viewport)的宽度/缩放级别

mysql - 如何在浏览器中手动使用 sqlmap payload?

c - 为什么这个 shellcode 程序会发出段错误警告?

Cairo(图形库)可以用来渲染数学公式和图片(latex风格)吗?

python - 使用 NumPy 将二进制数据读取为 BGRA 图像

security - 在浏览器中运行时启用 Silverlight 5 应用程序的提升信任,无需添加注册表项

css - 检测变换源行为

security - 一般如何发现客户端安全漏洞?