长亭百川云 - 文章详情

黑客炫耀世界上最大的ZIP炸弹,达到1148857344 Quettabytes

流苏

28

2024-08-25


左右滑动查看更多


近日,有黑客在互联网上炫耀自己搞了一个世界上最大的ZIP炸弹,达到1148857344 Quettabytes,而1 Quettabytes = 1,000,000,000,000,000,000,000,000,000,000 bytes,后面有整整30个零。



在此之前,被认为是最大的ZIP炸弹记录保持者是55.4亿bytes,远远小于1148857344 Quettabytes。无法想象,这样一个ZIP炸弹会对系统造成多么严重的伤害。难怪黑客在平台上炫耀自己手里这个超级炸弹,只等引爆。


ZIP炸弹攻击是一种恶意软件攻击,它通过创建一个看似无害的小型压缩文件,但实际上包含大量重复的数据或嵌套的压缩文件,目的是在解压时消耗大量的系统资源,如CPU、内存和磁盘空间,最终可能导致系统崩溃或拒绝服务攻击。


ZIP炸弹攻击的原理



ZIP炸弹攻击通常通过递归嵌套的ZIP文件系统来实现。例如,42.zip文件初始大小为42KB,但解压后包含16个压缩包,每个压缩包又包含16个更小的压缩包,如此循环5次,最终解压成1048576个4.3GB的文件,总体积达到4.5PB。


递归嵌套使得ZIP文件在解压过程中会不断增长,导致资源耗尽。这种设计使得即使是小型文件,也能在解压后变得巨大,难以处理和存储。


ZIP炸弹攻击还利用了重复数据压缩的特性。例如,通过将相同的字符或数据多次压缩,可以显著减少压缩后的文件大小。这种技术使得攻击者可以在不增加实际数据量的情况下,生成一个巨大的压缩文件。


重复数据压缩使得压缩文件在视觉上看起来很小,但实际上解压后会产生巨大的数据量。这种特性使得ZIP炸弹攻击在传输和存储时具有隐蔽性,难以被检测和防御。


ZIP炸弹攻击会导致系统资源耗尽,如CPU、内存和磁盘空间。正如上文所提到的42.zip文件,解压后需要大量的内存来存储解压后的文件,从而导致系统崩溃。系统资源耗尽不仅会影响系统的正常运行,还可能导致其他应用程序无法运行。这种攻击对于未进行压缩文件解压后大小校验的系统尤其危险。


另外,ZIP炸弹攻击可以导致拒绝服务攻击,通过消耗大量的系统资源,使目标系统无法处理正常的请求。拒绝服务攻击不仅影响单个用户的体验,还可能对整个网络服务造成影响。这种攻击常常用于破坏网络安全,使得正常用户无法访问服务。


防御Tips



1、限制上传文件的大小


设置最大文件大小是防止ZIP炸弹攻击的一种简单有效的方法。例如,在Java上传接口中,可以通过配置multipart.max-file-sizemultipart.max-request-size属性来限制上传文件的大小。


限制文件大小可以防止大文件被上传并解压,从而减少资源消耗和潜在的系统崩溃风险。然而,这种方法并不能完全防止所有ZIP炸弹攻击,因为攻击者可能会通过其他方式绕过这些限制。


2、使用ZipInputStream检查Zip文件


通过使用Java标准库中的ZipInputStream类来检查Zip文件中的每个条目的大小,可以识别潜在的ZIP炸弹。例如,可以设置一个缓冲区大小,并检查每个条目的大小是否超过该缓冲区大小。


这种方法可以在文件解压前对其进行初步检查,从而避免资源耗尽。但这种方法需要一定的计算资源,并且可能无法检测到所有复杂的ZIP炸弹攻击。


3、使用Apache Commons Compress库


Apache Commons Compress库提供了更安全的Zip文件处理功能,可以帮助防止ZIP炸弹攻击。例如,可以使用该库的ZipArchiveEntryZipFile类来检查Zip文件是否包含Zip炸弹。


使用专门的库进行Zip文件处理可以提供更强大的安全性,但需要一定的学习和配置成本。对于大多数应用来说,使用Java标准库已经足够应对ZIP炸弹攻击。


【FreeBuf粉丝交流群招新啦!

在这里,拓宽网安边界

甲方安全建设干货;

乙方最新技术理念;

全球最新的网络安全资讯;

群内不定期开启各种抽奖活动;

FreeBuf盲盒、大象公仔......

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2