检测DOS(拒绝服务)攻击的最佳实践?
我正在寻找在服务实现中检测和阻止DOS的最佳实践(而不是外部网络监视)。该服务处理有关用户,组和属性信息的查询。
我们最喜欢使用DOS的信息来源是什么?
解决方案
我发现这项技术非常有用。
防止Web应用程序中的拒绝服务(DOS)攻击
无论我们对DoS-Attacks采取什么措施,请考虑一下我们所做的事情是否实际上会增加处理恶意或者不需要的请求所需的负载!
如果我们使用的是Linux,则应阅读此文章:
基于规则的DoS攻击防护Shell脚本(来自Linux Gazette)
它包含以下主题:
- 如何从/ var / log / secure文件检测DoS攻击
- 如何减少临时文件中检测到的冗余IP
- 如何激活/ sbin / iptables
- 如何安装建议的Shell脚本
在不适当限制iptables中被阻止IP数量的情况下应用此功能可能会通过增加所需资源来处理未经请求的请求而引入DoS漏洞。
为了降低这种风险,请使用ipset来匹配iptables中的IP地址。
另外,请阅读有关使用iptables防止ssh字典攻击的信息。 (如此处建议的那样,使用状态防火墙启用iptables不能抵御大多数DoS攻击,但实际上可以缓解DoS攻击,这些DoS攻击会以无用的状态信息污染RAM。)
Linux新手?阅读Windows到Linux的路线图:第5部分。IBM的Linux日志记录。
祝你好运!
我第一次尝试解决DoS漏洞时,使用了Gulzar建议的方法,该方法基本上是限制从同一IP地址允许的呼叫数量。我认为这是一个好方法,但是很不幸,它使我的代码无法通过性能测试。
由于无法让性能测试小组更改其测试(一个政治问题,而不是技术问题),因此我更改为限制在可配置间隔内允许的呼叫数量。我使最大呼叫数和时间间隔都是可配置的。我还允许将值设置为0或者负数以禁用限制。
几种产品在内部使用了需要保护的代码。因此,我让每个产品组都运行他们的QA和性能测试套件,并提出了尽可能小的默认值,以限制真正的DoS攻击,但仍然通过了所有测试。
FWIW,时间间隔为30秒,最大呼叫次数为100。这不是一个完全令人满意的方法,但它简单实用,并且得到了公司安全团队的批准(另一个政治考虑)。