正常使用与拒绝服务?讨论拒绝服务需要多少请求?

信息安全 拒绝服务
2021-08-15 03:02:44

最近我使用了一个工具来下载一个网站,作为该工具的一部分,我可以调整并行连接的数量。所以现在我发现自己在问:从提供商可以将多少请求评为拒绝服务开始。我四处搜索,但没有找到具体的数字或至少暗示我们正在谈论的维度。是否有任何定义,例如每秒 100 个请求?

所以我的问题是:需要多少请求才能表明正在进行拒绝服务?

更新:技术背景绝对是有趣的。我知道一个恶意数据包可能足以导致拒绝服务,或者斜线效应是另一种。但我想知道更多的是防火墙风格的规则:一些服务器/服务提供商会阻止在特定时间范围内发送过多请求的用户。我们在这里谈论的是什么维度?还是太具体了?如果是这样,您的规则会是什么样子?

这个问题还有一个法律部分——让我来说明一个高(!)的理论场景:

服务提供商检查其日志并发现来自单个 IP 的流量很高。现在,提供商上法庭(无论出于何种原因)并将其标记为企图拒绝服务。法官可能会询问他们对 DoS 的定义。“任何超出正常使用的东西”将是他们的答案。那么正常使用和“无”正常使用之间的阈值在哪里(即使服务器完全不受影响,也可以将其解释为尝试的 DoS,这可能是一个高度构建的场景 ;-)

4个回答

足以导致拒绝向某人提供服务。可能是 1 个意外的恶意请求,导致服务器负载过大。可能有数百万个预期请求,来自一个反应非常好的电视广告。

没有特定的值,因为所有服务器都会在不同级别出现故障 - 在服务器上提供静态内容比为每个用户生成高度定制的内容要容易得多,因此通常经过身份验证的服务比未经身份验证的服务具有更低的“问题”阈值那些。与向多个用户发送不同文件的服务器相比,向多个用户发送相同文件的服务器可能能够处理更多的流量,因为它们可以将文件保存在内存中。与互联网连接速度快的服务器通常能够处理比连接速度慢的服务器更多的流量,但如果生成的流量受 CPU 限制,区别可能不太依赖于此。

我见过以每秒 3 个请求失败的系统。我还看到过每秒可以处理多达 30,000 个请求的系统,而且不费吹灰之力。第一个是 DoS,第二个是低流量期......

更新以响应更新

防火墙提供商如何确定流量何时导致拒绝服务?

通常,他们会观察服务器的响应时间,如果超过预设限制(这可以根据技术或营销方式决定 - 等待 x 秒会导致人们离开),或者如果超出预设限制,则会限制流量服务器响应从成功 (200) 变为服务器失败 (50x)。

“拒绝服务”的法律定义是什么?

与我提供的原始服务相同 - 如果服务未被拒绝,则不是拒绝服务。这可能是滥用,但那不会是完全相同的事情。

当您下载(或抓取)网站时,您基本上会为目标网站中的每个 URL 发送大量 GET 请求。

这是来自万维网联盟网站的 GET 请求示例:

获取 /pub/WWW/TheProject.html HTTP/1.1

主持人:www.w3.org

如您所见,主要问题不是请求,而是网络服务器的响应,它向您发送由给定 URL 标识的整个资源。

因此,我们可以说

每秒最大请求数 =(安全系数 * 带宽)/ 网页的最大大小

从 Google 的快速搜索来看,网页的平均大小约为 2 Mb,而 Web 服务器的带宽可以从几 Mbps 到几 Tbps 不等。

安全系数与这样一个事实有关,即为了引起 DoS 攻击,您可能不需要发送与 100% 带宽相对应的请求数量。例如,如果网络服务器有 100 Mbps 的带宽,并且在给定的时刻有 50% 的带宽被其他用户使用,那么发送对应于 50% 甚至更小的带宽的请求数量就足够了.

100 Mbps 的 50% = 50 Mbps,相当于每秒 25 个平均 GET 请求。

另一方面,如果没有其他人访问该网站,您将需要使用至少 80% 的带宽才能导致 DoS,并且 100 Mbps 的 80% = 80 Mbps,这对应于每个 40 个 GET 请求第二。

显然,为了(无意地)DoS 一个带宽为 1 Tbps 的大型网站,您需要每秒至少发送(1 Tbps 的 80%)/2 Mbps =400,000 个 GET 请求。等等。

为了进行更准确的测量,您需要找到目标网站中网页的最大大小及其带宽。

警告:由于您可能会因导致拒绝服务而陷入麻烦,因此最好将通过前面的公式获得的每秒请求数四舍五入。

我曾讨论过是否将其作为答案,作为评论可能会更好。

让我们从两个角度来看看你的问题。

来自主持人

当流量或流量正在做什么导致服务器对其他人不可用时,某些事情就变成了 DoS。几个例子;

  • 运行长时间运行的报告 500 次
  • 在无法处理的网站上快速刷新
  • 使用您更大的带宽来填充他们的上传管道,从而使其他人失去速度。
  • 以导致主机对其他人无响应的方式抓取网站。

所有这些例子都是可能的,但不太可能。当我们谈论 DoS 攻击时,我们谈论的是一个人/一个客户在做所有这些事情,并且大多数 Web 服务器都设置为同时处理数百或数千个请求。这就是 DDoS 如此受欢迎的原因。因为需要一个以上的客户端才能使普通服务器超载(在正常情况下)。

为了增加复杂性,许多客户可能会在进行一些营销后第一次开始使用您的网站。有时甚至不是您的营销触发它。例如,流行的手机版本可能会导致您的网站流量激增。将 DDoS 流量与合法流量区分开来可能非常困难。

不过有一些基本规则。您基本上寻找的是异常使用。

  • 有没有比其他用户下载更多的用户?
  • 是否存在比其他用户保持连接时间更长的用户?
  • 是否存在比其他用户更多地重新连接的用户?

这些指南和其他指南可以帮助您确定哪些流量是 DDoS 攻击的一部分并应用某种过滤器。

从用户的 POV

在决定抓取网站时,您应该先检查一下他们是否有政策。有的网站有,有的没有。有些网站会认为是盗窃,有些则不会。如果网站没有政策,那么您必须自己拨打电话。

如果他们没有明确的政策,您的目标是明确说明您的抓取(不要掩盖您的工具可能正在使用的用户代理或标头),并尽量产生一点影响。根据您对抓取的需要,您可以只抓取几页还是真的需要整个网站?你能以“普通用户”的速度抓取,也许每 5 秒左右 1 页(包括媒体内容)?如果您想快速捕获数据,您可以只捕获文本文件而不捕获图像和其他媒体吗?你能排除长时间运行的查询和更大的媒体文件吗?

您在这里的所有目标都是尊重主机的托管成本以及该站点的其他用户。在这种情况下,通常越慢越好。如果可能,请联系网站所有者并询问他们。无论如何,请遵循 robots.txt 文件中的规则。它可以具有您应该遵循的速率限制和页面限制。

为了建立马修关于菲利普罗兰兹评论的回答:

定义 DoS 流量的一般经验法则是上下文

如果您只是在超级碗上播放电视广告,您可以假设随之而来的流量泛滥在上下文中是非恶意的(是否导致服务中断无关紧要)。

如果只是另一个星期二早上,并且您的网站因无法识别的原因而充斥着请求,则可以安全地假设流量是恶意的(或至少是可疑的,例如未知的 reddit 帖子,而不是有针对性的攻击) .