我们的网站收到了大量网络请求,这似乎是 DOS 攻击。
- 都在 80 端口上
- 数据包大小的分布不是正常的网络流量
- 33% 的数据包为 64 或 66 字节
- 75% 的数据包为 128 字节或更少
- 99% 的数据包小于 256 字节
- 我们每秒运行大约 10K 个数据包
- 在 5 秒的时间范围内,我们看到了来自 822 个不同 IP 地址的网络请求
- 所有请求均针对/(主页)
我们尝试切换 IP 地址,但不幸的是攻击发生在域名级别而不是 IP 级别......
任何帮助,将不胜感激。
答案1
所有请求是否还有其他相似之处(除了对 / 的请求)?我见过一些弱的 DoS 尝试,攻击者在整个攻击过程中使用相同的用户代理字符串。
如果您的情况如此,那么您可以使用 mod_rewrite 转储这些用户代理字符串的请求(如果您使用的是 apache):
RewriteCond %{HTTP_USER_AGENT} TheBadUserAgentStringHere
RewriteRule .* - [F,L]
这会阻止您的 Web 服务器花时间为这些请求呈现您的主页,并向请求者返回 403/Forbidden。
答案2
如果他们点击的是 GET / HTTP/1.0,正如 rackerhacker 所说,如果您可以在 UserAgent 字符串中看到类似的东西,您可以尝试过滤它。如果您的网站是动态的,您可以考虑将 Varnish 放在前面,并为主页硬编码 5 分钟或更长时间的 TTL,这可以消除 Apache 的负载并解决许多其他潜在的攻击媒介。
如果您没有运行 Apache 2.2.15+,下一次攻击可能是 Vampire 攻击,新编写的 request_timeout 模块就是为了防止这种攻击。Varnish/Squid 和 Nginx、Lighttpd 等已经根据其处理流量的方式对其进行了防护。
你必须抵御攻击,但是,当他们发现他们的努力没有效果时,他们就会改变策略。
您可能还会查看您的托管公司是否有任何流程来帮助识别和抵御来袭的攻击。
答案3
实际上,我们最终使用了 Rackspace 的 Preventier 解决方案来阻止这次攻击。