zip 文件上传有哪些安全威胁,应采取哪些预防措施?

信息安全 php 上传文件 安全剧院 德鲁巴 压缩
2021-08-28 16:08:59

我们有一个为共享文件而开发的 Drupal 应用程序。

  1. 我们允许登录部门用户上传 zip 文件。
  2. 我们正在使用 Drupal 私有文件系统(在 webroot 之外)。
  3. 我们正在使用 php Fileinfo 进行验证。
  4. 只有登录的用户才能下载文件。

现在我们的安全团队不允许 zip 上传,说这是一种威胁。我想知道拥有此功能的安全威胁以及我能做些什么来防止它。

4个回答

ZIP 文件可能会给应用程序带来zip 炸弹攻击风险的一个领域。这种情况发生在存档的构建方式使得打开它时会占用服务器上的大量空间,从而可能导致它崩溃。

可以通过在专用文件系统上打开 zip 文件,然后在达到预定的最大大小时中止解压缩操作来缓解此问题。

没有安全威胁。至少不是任何特定于 zip 文件的文件。

其他用户已经概述了主要问题。但是,所有这些要么对应用程序本身无害,要么不特定于 zip 文件。

  1. 如 Rory McCune 所述,Zip Bomb 攻击。
    如果文件将被解压缩,这些只是一个问题。
  2. 在 zip 文件中包含恶意内容。
    但是,这只会影响在 zip 文件中解包和执行文件的实体。应用程序通常不会这样做,但用户可能会这样做。
  3. 安全漏洞或恶意可执行文件
    的问题 这不仅与 zip 文件有关,而且与任何文件扩展名有关。一个文件是否被标记为可执行文件并不会阻止它的执行。

拉链的问题在于您不确定它们里面是什么。您需要解压缩内容,扫描病毒,然后您知道其中没有任何已知的病毒。

其次,当使用文件上传时,您只能允许一定数量的文件扩展名(白名单而不是黑名单),并且您需要验证具有此扩展名的文件确实属于该类型(例如 .bin 更改到 .txt)。但是每种类型的文件都可以封装在一个 zip 文件中。如果您将 .zip 列入白名单并且不检查内容,则实际上是在使白名单过时。因此,您需要再次检查 zip 文件的内容,以确保其中仅包含特定类型的文件。

因此,只有在您需要减少可能导致网络拥塞的大文件上传的情况下,zip 才可行。因为为了提供安全性,您仍然需要解压缩它们并检查内容。如果您这样做是因为您正在考虑节省磁盘空间,那么您最好接受正常格式的文件,然后在检查它们之后自己压缩它们。

zip 文件也是一个攻击向量 vs av 引擎(实际上,av 解析的每个文件类型都是一个向量)。漏洞利用的场景不同,但它们的范围从内存损坏到任意代码执行。