程序员易卜拉欣·迪亚洛(Ibrahim Diallo)运营着一个托管在自家微型服务器上的博客。根据他的经验,网站流量大部分来自在互联网上爬取内容的机器人程序。这些机器人大多无害,但少数会试图通过注入恶意攻击或探测响应来劫持系统。迪亚洛在博客中表示,遇到这种情况时,他会投掷一枚“热压缩炸弹”——这种文件解压后会膨胀至原体积的千倍,直接瘫痪攻击者的服务器。
压缩炸弹是体积微小却暗藏海量数据的压缩文件。最极端的例子是一个46MB的压缩包,解压后竟达4.5PB(千万亿字节)之巨,足以耗尽多数计算机资源。这类文件本属于恶意软件,旨在通过使目标系统崩溃来实现攻击。但迪亚洛反其道而行,将其转化为对抗恶意程序攻击的防御武器。
迪亚洛制作了两种压缩炸弹:1MB文件解压为1GB用于对付普通爬虫,10MB文件解压为10GB则针对高配置机器人。防御机制运作如下:当服务器检测到恶意机器人时,会先返回“200 OK”响应,再发送压缩炸弹。机器人根据元数据将其识别为压缩文件后会自动解压,而解压后的庞大体量将迅速耗尽攻击者的内存资源。面对配备数GB内存的高级爬虫,10GB版本基本能确保使其崩溃。
迪亚洛在博客中分享了自制压缩炸弹的教程,同时警告操作存在风险——误打开炸弹文件可能导致自家服务器瘫痪。虽然这种防御手段并非百分百有效(存在检测并规避压缩炸弹的技术),但对多数简易爬虫而言,已足够迫使对方服务器冻结直至重启。