如何保护网站免受 ZIP 炸弹和参考炸弹的攻击?

信息安全 压缩 压缩 拉链炸弹
2021-09-02 12:30:23

对于允许上传 ZIP 文件的网站,Zip 炸弹此处的概念)似乎是一个非常“智能”且简单的漏洞。此类网站受到威胁(至少会对它们造成一定程度的损害) - 有人将 100 KB 文件 [ 50 GB 压缩 ] 上传到您的网站,而当您的网站提取(或打开该网站的人)用完资源时,造成随之而来的损失。

据说防病毒软件通过检测递归深度和常见模式来检测此类 zip 炸弹,但我不问Windows 操作系统或类似的东西(我们可以受到 AV 保护),但我在网站(即 vps 或共享主机)上发言我们只使用编程语言(我对 PHP 感兴趣,但其他人可能还需要 Java 或 ASP)。

  1. PHP(等)中是否有任何类型的内置解决方案已经阻止了这种情况的发生?如果不是,我们怎么能限制呢?(任何代码示例)

  2. 我们如何在我们的服务器上检测到这些类型的文件(不提取它们)?

  3. 另一层攻击似乎发送带有Gzip 炸弹的请求。我们如何防止这种情况发生?

1个回答
  1. 如果您不提取拉链炸弹,它们是无害的。防病毒软件将一次通过它们一个文件。
  2. 你甚至不需要恶意来获得这种效果 - 许多编码不良的网站会导致浏览器冻结或崩溃。
  3. 您的链接中描述了防御:限制分配给解析器线程的内存,并在达到限制后停止。

一个轶事:我必须在所有受信任用户的系统中实现方法 (3) “受信任”有点轻描淡写。它涉及五个不同层次的保证。需要针对许多默认为最大分辨率且无压缩的纸质扫描仪型号进行防御,并且用户随后上传...检查典型的扫描仪分辨率限制并进行数学计算。

虽然受此类攻击影响的不仅是最幼稚的软件,但它们的影响与通过无恶意的无能经常发生在它身上的影响没有什么不同。