我正在寻找在服务实现中检测和防止DOS的最佳实践(而不是外部网络监控)。该服务处理用户,组和属性信息的查询。
您最喜欢处理DOS的信息来源是什么?
答案 0 :(得分:11)
无论你采取什么措施来对抗DoS攻击,都要想想你所做的事情是否会增加处理恶意或不需要的请求所需的负担!
如果您使用的是Linux,那么您应该阅读这篇文章:
Rule-based DoS attacks prevention shell script(来自Linux Gazette)
它有以下主题:
在没有正确限制iptables中被阻止的IP数量的情况下应用此方法可能会通过增加所需资源来引入未经请求的请求,从而引入DoS漏洞。 要降低风险,请使用ipset匹配iptables中的IP地址。
另外,请阅读ssh dictionary attack prevention using iptables。 (如此处所建议的启用具有状态防火墙功能的iptables不能防止大多数DoS攻击,但可能实际上缓解使用无用状态信息污染RAM的DoS攻击。)
Linux新手?阅读IBM的Windows-to-Linux roadmap: Part 5. Linux logging。
祝你好运!
答案 1 :(得分:10)
答案 2 :(得分:2)
我首次尝试解决DoS漏洞使用了Gulzar建议的方法,该方法基本上是限制来自同一IP地址的呼叫数量。我认为这是一个很好的方法,但不幸的是,它导致我的代码无法通过性能测试。
由于我无法让性能测试组改变他们的测试(一个政治问题,而不是技术问题),我改为限制在可配置间隔期间允许的呼叫数量。我同时调用了最大呼叫数和时间间隔。我还允许设置值0或负数来禁用限制。
需要保护的代码由多个产品在内部使用。因此,我让每个产品组都运行他们的QA和性能测试套件,并提出了尽可能小的默认值来限制真正的DoS攻击,但仍然通过了所有测试。
FWIW,时间间隔为30秒,最大呼叫数为100.这不是一个完全令人满意的方法,但它简单实用,并得到了公司安全团队的批准(另一个政治考虑)。