如何清理存档文件?

信息安全 恶意软件 应用安全 开发 病毒 攻击预防
2021-08-17 19:35:29

我正在寻找一种方法来确保特定的存档文件不包含任何类型的恶意代码。不时会出现新的漏洞(例如gzip7zip),所以我认为一个好主意是将存档从一种格式转换为另一种格式,然后再在安全系统上打开它。

我认为这种操作将使利用几乎不可能。我不关心存档中压缩的文件(假设它们是 ascii 纯文本),只关心存档格式本身。这个技巧适用于图像格式,其中将可疑文件(例如 jpeg 到 bmp)转换为绕过文件执行并返回经过清理的图像。例如,缓解MS14-013

是否有类似的方法可以在不解压缩/再次压缩的情况下转换存档?也许有人知道更好的方法?

2个回答

能够在不解压缩的情况下将存档从一种格式转换为另一种格式是非常罕见的。不同的格式使用不兼容的不同文件结构和算法,在某些时候您将被迫解压缩源格式。

完成解压转换后,许多漏洞都可以被利用。攻击面甚至可能比以前更大,因为在进行解压缩、压缩和再次解压缩时使用了多个程序。

如果您从不受信任的来源接收文件,您可以指定只允许某些存档格式。选择支持哪一种并不容易,因为没有一种格式比其他格式“更安全”。您可能会争辩说,具有更多 CVE 的那些安全性较低,但这也意味着它们中的许多问题已经得到修复。zip 是否更安全,因为它的 CVE 更少?不一定,这些漏洞可能尚未向公众披露,或者可能进行的研究较少。

如果您坚持使用最常见的存档格式(7z、zip、gz)并让您的软件保持最新,那么您应该没问题。

将 a 转换jpg为 a的方式bmp基本上是解压缩jpg并将其写为bmp. 要将一种存档格式转换为另一种存档格式,您必须先解压缩原始格式,然后再以新格式进行压缩。

这是否“更安全”取决于您用于自动解压缩的工具是否与您用于正常打开存档的工具具有不同的漏洞。自动转换没有太多优点。我看到的唯一情况是转换是否发生在隔离的机器上,任何触发的漏洞都可能造成有限的损害。此外,如果漏洞不在压缩算法本身中,那么使用自动化工具可能会带来较小的风险,因为它不太可能成为攻击者的目标。

另外,我看不到更改格式的好处。如果您担心压缩文件中的漏洞,为什么不让您的自动检查器解压缩文件,然后将它们添加到相同格式的新存档中,然后再发送给您呢?除非漏洞利用是压缩文件本身的功能,否则这将删除任何编码到存档文件本身的内容。如果是这样,更改格式对您没有帮助,因为有针对性的攻击只会使用文件来利用它,但知道您会转换它们,然后将其添加到不同的存档格式。