【发布时间】:2010-09-11 14:34:17
【问题描述】:
我正在寻找在服务实施(不是外部网络监控)中检测和防止 DOS 的最佳实践。该服务处理对用户、组和属性信息的查询。
您最喜欢处理 DOS 的信息来源是什么?
【问题讨论】:
标签: security denial-of-service
我正在寻找在服务实施(不是外部网络监控)中检测和防止 DOS 的最佳实践。该服务处理对用户、组和属性信息的查询。
您最喜欢处理 DOS 的信息来源是什么?
【问题讨论】:
标签: security denial-of-service
无论您对 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 攻击,但实际上可能缓解 DoS 攻击会用无用的状态信息污染您的 RAM。)
Linux 新手?阅读 IBM 的Windows-to-Linux roadmap: Part 5. Linux logging。
祝你好运!
【讨论】:
我第一次尝试解决 DoS 漏洞的尝试使用了 Gulzar 建议的方法,基本上是限制允许来自同一 IP 地址的调用次数。我认为这是一个很好的方法,但不幸的是,它导致我的代码未能通过性能测试。
由于我无法让性能测试组更改他们的测试(这是一个政治问题,而不是技术问题),我改为限制在可配置的时间间隔内允许的调用次数。我将最大通话次数和时间间隔都设置为可配置的。我还允许设置值 0 或禁用限制的负数。
需要保护的代码被多个产品内部使用。因此,我让每个产品组运行他们的 QA 和性能测试套件,并提出尽可能小的默认值来限制真正的 DoS 攻击,但仍然通过了所有测试。
FWIW,时间间隔为 30 秒,最大调用次数为 100。这不是一个完全令人满意的方法,但它简单实用,得到了公司安全团队的批准(另一个政治考虑)。
【讨论】:
这是一种我发现非常有用的技术..
Prevent Denial of Service (DOS) attacks in your web application
【讨论】: