我今天早些时候问了一个关于 serverfault 的问题,但发现还有一个安全堆栈交换。我从那里得到了相互矛盾的答案。以下是链接:
https://serverfault.com/questions/346609/dos-attack-simulation-vs-real-deal
一个人说没有区别,而另一个人说 DoS 攻击的某些方面很难模拟。
我真正好奇的是,真实攻击和模拟攻击是否同样难以缓解。如果是这样,怎么做?
我今天早些时候问了一个关于 serverfault 的问题,但发现还有一个安全堆栈交换。我从那里得到了相互矛盾的答案。以下是链接:
https://serverfault.com/questions/346609/dos-attack-simulation-vs-real-deal
一个人说没有区别,而另一个人说 DoS 攻击的某些方面很难模拟。
我真正好奇的是,真实攻击和模拟攻击是否同样难以缓解。如果是这样,怎么做?
这种关系是单向的:模拟的 DDoS 类似于可能的 DDoS 的子集。因此,如果您的系统被模拟的 DDoS 杀死,那么您已经肯定地证明了该系统通常不能很好地抵抗 DDoS。另一方面,如果您的系统在您的模拟攻击下继续运行,那么您还没有证明可以抵抗通用 DDoS 攻击,只能抵抗与您的模拟相匹配的 DDoS 攻击。它仍然是一个有用的测试(正如其他人所指出的,它与负载测试非常相似)。
DDoS 的一般框架意味着攻击者在许多不同的真实网络客户端的幌子下比您收集更多的资源。根据定义,即使出于测试目的,您也不能召集比您所能召集的更多的资源(duh),因此您无法真正模拟成熟的 DDoS。
我已经为客户进行了 DDoS 测试——以评估他们的 DDoS 缓解策略。它唯一困难的部分是将资源集中在一起以提供足够高的负载,并确保它们分布得足够广泛以有效地模拟现实世界的攻击。
由于在世界大部分地区利用僵尸网络是非法的,因此能够提供这种负载的组织并不多。一些较大的 ISP 和一些全球性组织可以,但对于多种测试,您不需要超过 100 个左右的流量源。
它们很难缓解 - 它需要与您的 ISP 一起提供路由规划、智能流量评估和快速响应时间。
我认为您无法模拟真正的 DDoS,因为您的模拟器需要大量资源,例如带宽、非常庞大的机器数量等等。DDoS 不像攻击那么容易做,因为它需要很多高带宽的参与者。
这是一个规模问题。您可以模拟 DoS 攻击,但对于分布式 DoS,您必须使用大量资源。
模拟 DDoS 攻击有其优点。或者以其他方式考虑它是对您的应用程序执行负载测试的好处。这可以提供有价值的信息,例如了解您的应用程序可以支持多少用户。
在 DoS 攻击方面,如果攻击者发现特定向量无效,他可能会改变策略。不可能阻止每一次攻击。如果攻击足够大,向您转发流量的路由器可能会饱和,您的服务器将无法访问。