DDoS:为什么不阻止原始 IP 地址?

信息安全 ddos ip
2021-08-21 02:59:18

我是一个主要公告板的版主。当坏人出现时,我们会阻止他们的 IP 地址;它有效,至少在他们找到新的之前。为什么不能为全球路由器开发一种协议来对抗 DDoS,无论是通过 IP 地址还是消息内容或其他方式,以阻止 DDoS 的发展?显然有一个答案,否则它已经完成了。有人可以给出为什么不能完成的执行摘要吗?例如,它需要一些不存在的中央权威。

4个回答

假设您经营一家商店。每天,您可能会获得数百名客户。

有一天,成千上万的人进来,他们排队结账,买了一件小饰品,然后又重新排队重复。

显然,您正在失去必须排队等候数小时的真实客户的业务。

现在,您在入口处雇用一名保安来验证这些客户是否满足某些标准。

不过,还有几万人想要进去,唯一不同的是,现在,每个人都必须过安检。

您注意到,从真正的客户的角度来看,您仍然需要排队等待数小时,只是现在只是为了通过安检!

TL; DR 多源 IP 使它们难以防御。


对于更长的答案,我们查看名称。D DoS 攻击。第一个D代表分布式。换句话说,没有一个 IP 可以阻止。或两个,或三个,甚至四个.. 有成百上千个独特的 IP。

通常 DDoS 攻击源自控制僵尸网络或僵尸机器网络的黑客。攻击者将向所有机器人发出命令,指示它们对特定资源/URI 发出请求。大量请求使服务器不堪重负并将其关闭。

除了@Hollowproc 的出色回答之外,用作源的实际“地址”经常在这样的攻击中被欺骗。攻击主机可以伪装成任意数量的其他 IP,尤其是在基于 UDP 的攻击中,例如针对 DNS 提供商的攻击。

有一个称为BCP 38或网络入口过滤的解决方案。如果全世界都聚在一起,喝一杯可乐,并实施控制措施来阻止欺骗性地址进入网络,那么这些攻击就无法再欺骗流量了。Dyn 的人自己提到它是一种有用的防御

请注意,在多个源点实施防御具有可扩展的优势;单个块的要求在大小上并不繁重。然而,它们是繁重的,因为更多的人必须对不会直接和负面影响他们的事情做正确的事情......十多年来,人性一直阻止这种解决方案达到临界质量。

DDoS 攻击的日益增长的影响可能会刺激网络入口过滤的更多采用......互联网将损害视为审查,并围绕它进行路由:)

DDoS 的问题分为两部分:

1) 由于机器人数量众多,它们的请求限制不必像单个机器人那样高,因此不像机器人那么容易识别。

2) 您所看到的只是 IP 地址(User-Agent取决于您过滤机器人流量的方式)。任何 IP 地址都可能是 DDoS 机器人,任何 IP 地址都可能是合法访问者。某些 IP 地址将同时具有 DDoS 机器人和合法访问者。你做什么工作?

假设您的网站可以处理 1000 个请求/秒,而访问者的请求数永远不会超过 10 个请求/秒。一个 100 req/s 的机器人很容易被阻止,十个 100 req/s 的机器人很容易被阻止。但是 200 个 5 req/s 的机器人很难被阻止,因为它们的行为是正确的。

200 个 100 req/s 的机器人也很难阻止,因为它们甚至不能超过 5 个 req/s,看起来它们表现得很好。这种情况比真正 5 req/s 的 200 个机器人要糟糕得多,因为访问者现在是 10010 个尝试挤入连接的请求中的 10 个,而不是 1010 个成功到达服务器的更易于管理的 10 个。

100 个 100 个请求/秒的机器人将使得每个真正的访问者根本不可能连接到该站点。这种规模的攻击也会在其他地方造成麻烦。

对您的网站进行强有力的防御是攻击者的有力武器:

如果您的站点在 IP 地址(甚至 IP 上的特定浏览器)行为不端的情况下阻止了它们,那么有人可能会决定滥用您的防御来在客户端引发 DoS 攻击。

示例:Mallory 创建了一个包含一百个“图像”的网页,margin-left: -1000em; width: 1px; height: 1px;所有这些图像都是您网站上的一些“敏感”URL。当访问者访问 Mallory 的页面时,他们会向您的服务器发送 100 个滥用请求,因此会被阻止。

因此,对 (D)DoS 攻击进行更积极的防御也会导致另一个漏洞。

诸如 CAPTCHA 之类的“智能”防御(让访问者有机会证明他们也是访问者,而不仅仅是恶意机器人)也会产生实际需要服务器资源的副作用。

在连接阻塞时上传图像听起来不是一个好主意。也不会记住大量的验证码会话,验证码不会被回答,部分原因是图像无法发送,部分原因是大多数访问者不是人类。

在(高度或未缓存的)动态站点上,您将使用汽油灭火。