18

我正在寻找在服务实现(不是外部网络监控)中检测和防止 DOS 的最佳实践。该服务处理对用户、组和属性信息的查询。

你最喜欢处理 DOS 的信息来源是什么?

4

3 回答 3

11

无论您对 DoS 攻击采取什么措施,请考虑您所做的是否实际上会增加处理恶意或不需要的请求所需的负载!

如果您使用的是 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 日志记录。

祝你好运!

于 2008-09-20T13:14:03.393 回答
10

这是我发现非常有用的技术..

防止 Web 应用程序中的拒绝服务 (DOS) 攻击

于 2008-09-20T13:04:57.110 回答
2

我第一次尝试解决 DoS 漏洞的尝试使用了 Gulzar 建议的方法,基本上是限制来自同一 IP 地址的调用次数。我认为这是一个很好的方法,但不幸的是,它导致我的代码未能通过性能测试。

由于我无法让性能测试组更改他们的测试(这是一个政治问题,而不是技术问题),我改为限制在可配置的时间间隔内允许的调用次数。我将最大通话次数和时间间隔都设置为可配置的。我还允许设置值 0 或禁用限制的负数。

需要保护的代码被多个产品内部使用。因此,我让每个产品组运行他们的 QA 和性能测试套件,并提出尽可能小的默认值以限制真正的 DoS 攻击,但仍然通过了所有测试。

FWIW,时间间隔为 30 秒,最大调用次数为 100。这不是一个完全令人满意的方法,但它简单实用,得到了公司安全团队的批准(另一个政治考虑)。

于 2008-11-02T20:46:15.840 回答