我是主要公告栏的主持人。当一个坏家伙出现时,我们阻止了他们的IP地址。它有效,至少直到他们找到新的。为什么不能为全球路由器开发一种协议,以通过IP地址或消息内容或其他方式与DDoS进行斗争,以阻止DDoS步入正轨?显然有一个答案,否则就已经完成了。有人可以提供执行摘要的原因吗?例如,这将需要一些不存在的中央权限。

评论

只是为了扔东西。没有办法阻止DDOS攻击。问题是服务器的硬件由于高流量而过载。您有两种解决方案:1.以某种方式降低流量到达服务器的速度(即,使Internet的带宽足够低以至于无法要求足够的负载以使服务器超载)或2.阻止大量流量。但是,这是个问题。

以以下示例为例:大型媒体实体发布了令人难以置信的数字产品,数以亿计的通缉,并且仅以5美元的特殊价格售出5个小时,此后价格将跃升至100美元。您认为在这五个小时内会发生什么?实际上,您将毫无任何恶意地受到“ DDOS”攻击。流量自然流也可能使服务器崩溃。如果一个人租了50辆汽车在高速公路上开车并试图减慢交通速度使其停止,那么您怎么知道这不仅是建筑,下雨,事故,还是可怕的交通?你不知道。

假设有100000个原始IP地址。进行阻塞的上游路由器必须保留多少内存?您还可能在100000路由器上每个都有1个条目,但是您必须联系100000 ISP。

如果通过阻止单个IP地址来解决问题,则说明您没有遭受DDOS攻击。在线有多个IP信誉数据库。

有一种方法可以杀死许多DDoS攻击。它称为BCP38。不幸的是,它需要世界上每个ISP来实施,甚至16年后大多数都没有这样做。

#1 楼

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

一天,您会吸引成千上万的人进入,他们进入结帐行,购买小饰品,然后马上回来排队重复。

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

现在,您在入口处雇用了一名保安来验证这些客户满足某些条件。

但是,仍然有成千上万的人想要进入。唯一的区别是,现在,每个人都必须经过安全检查。

您会注意到,从真实的客户的角度来看,您仍然需要排队几个小时,只是现在这仅仅是为了确保安全!

评论


尽管希望在DDoS中,外部支票的移动速度快于内部购买队列。

– Tim
16-10-22在10:02

像Cloudflare这样最常见的DDoS缓解策略是采用分布式入口点,因此防护措施离用户很近。打个比方,这就像让您的出发机场的保安人员检查要去您的目的地机场的人员。由于将检查点分配给大量队列,因此每个队列较小,因此希望可扩展性更高。通过在出发前进行检查,他们也不会窒息(骨干网)。

– Lie Ryan
16-10-22在18:24



这似乎很不准确。一个IP可以发送大量流量(或在移动非常快的线路中处于多个位置),它们不会占据队列中的一个位置,这是一项持续的工作,您必须不断增加流量这就是重点,如果您必须不断投入更多流量以使其正常运行,而您却被封锁...

–杰克卖家
16-10-24在16:13

当新的iPhone推出时,Apple在主要商店(例如,纽约市的5th Ave商店)做类似的事情。如果您想要一部iPhone,则需要排队等候一旁。如果您想要iPhone以外的其他东西,则可以自由进入商店(尽管您可能会收到一两次警告,说iPhone购买者必须排队等候)。该策略在人员和商店方面都非常有效-因此,我认为您的类比无效。

– Slipp D. Thompson
16-10-25在1:32

在使用僵尸网络的情况下,这种比喻更像是某人恶意告诉整群人某家商店在某个日期和时间赠送免费小装饰品。然后,店主必须告诉每个人没有免费的小饰品,但是将他们拒之门外并不是一个好主意,因为他们可能被第三方欺骗,因为您可能会错过未来的销售。

–王尔德先生
16-10-25在12:29

#2 楼

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


对于更长的答案,我们看一下这个名字。 DDoS攻击。第一个D代表分布式。换句话说,没有一个IP可以阻止。或两个,三个或什至四个。有成百上千个唯一IP。

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

评论


有时超过数千。在今天的Dyn攻击中,第一个迹象表明可能涉及多达1000万个单独的IP地址。

– Xander
16-10-22在1:31

只是为了明确说明,这些主机是可能是合法流量的设备,因此即使将它们全部阻止是可行的(事实并非如此),它也会拒绝对许多(许多)合法用户的流量。 @冯洛斯特

– INV3NT3D
16-10-22在1:55



@vonlost,可以将多少个单独的地址添加到大多数阻止列表是有限制的。尤其是在进行阻止的设备是路由器的情况下,它的资源有限...由于路由表中的网络条目过多,单个主机的条目少了,因此组织需要汇总其路由的问题...大多数网络安全设备的设计根本无法阻止数百万个单独的地址。

– gowenfawr
16-10-22在1:57



@vonlost,目标设备永远无法阻止DDoS,因为当攻击数据包到达目标设备时,它们已经达到了阻塞点。该修复程序需要合并来源,la BCP 38

– gowenfawr
16-10-22在2:05

@vonlost,“强大的功能”,您刚刚描述了Akamai / Prolexic等公司提供的DDoS缓解服务。

– gowenfawr
16-10-22在2:08

#3 楼

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

有一种解决方案,称为BCP 38,即网络入口过滤。如果全世界都聚在一起,拥有可乐,并实施了控制措施来阻止欺骗性地址进入网络,那么这些攻击将不再能够欺骗流量。 Dyn员工自己将其称为有用的防御。

请注意,在许多源点实施防御具有可伸缩性的优势。各个块的要求并不繁琐。但是,它们的繁重之处在于,更多的人必须对不会对他们产生直接和负面影响的事情做正确的事情……十多年来,人性一直使这一解决方案无法达到临界质量。

DDoS攻击日益增加的影响可能会促使人们更广泛地采用网络入口过滤... Internet将损害视为审查制度,并绕过它:)

评论


当然,对于僵尸网络并没有多大帮助,因为从那时起您就有了很多真实的源地址。

–user253751
16-10-22在10:57



@immibis的确,这对于非欺骗性地址没有帮助;但是,在通过僵尸网络发起的攻击中也使用了欺骗性的地址...如果可能的话(例如UDP攻击),为什么攻击者应该使防御者更容易地映射僵尸网络?

– gowenfawr
16-10-22在15:31

#4 楼

DDoS的问题有两个部分:

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

2)您所看到的只是IP地址(和User-Agent取决于您过滤机器人流量的方式)。任何IP地址都可以是DDoS僵尸程序,任何IP地址都可以是合法访客。一些IP地址将同时具有DDoS僵尸程序和合法访问者。您怎么办?

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

200个速度为100 req / s的机器人也很难阻止,因为它们甚至不能超过5个。 re / s,使它们看起来表现正常。这种情况远不及真正速度为5 req / s的200个bot,因为访问者现在正试图挤入连接的10010个请求中有10个,而不是成功到达服务器的1010个中更易于管理的10个。

1000机器人以100 req / s的速度使每个真正的访客都不可能完全连接到该站点。如此大规模的攻击也将在其他地方造成麻烦。

为您的站点提供强有力的防御是攻击者的强大武器:

如果您的站点在行为不当的情况下阻止了IP地址(甚至是IP上的特定浏览器),

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

因此,更积极地防御(D)DoS攻击也将导致另一个漏洞。

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

在连接中断时上传图像听起来不是一个好主意。也不记得CAPTCHA的大量会话,CAPTCHA无法回答,部分原因是无法发送图像,部分原因是大多数访问者不是人。

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

#5 楼

假设您托管某种类型的服务,其主要目的是为特定地理位置提供服务,并假设您通过基于IP地址的某些访问规则来做到这一点。

UDP

现在,如果在这种情况下采用UDP,那么任何了解数据包制作工具(例如scapy)的人都可以欺骗允许访问的合法IP,并且,如果您选择阻止方法,则将阻止合法的IP地址。用户访问该服务。

TCP
如果采用主动黑名单方法,类似欺骗的TCP(例如syn Flood)DDoS攻击会使真正的用户受苦。

因此,要处理DDoS,最好使用谨慎的筛选,使用足够智能的设备来区分DPI或某些其他算法的真实流量和攻击流量。

CDN,NAT,PROXY

如果用户位于CDN或类似的内容之后,则屏蔽一个用户可能会使代理后面的所有人受苦。

此外,“ “无论是通过IP地址还是消息内容,还是通过其他方式,”正如您提到的那样,要使路由器能够基于内容进行过滤,这将阻碍其路由性能。但是,是的,路由器中仍然可以执行此操作(例如NBAR),并且所有这些都可以在他的房屋中应用。

并且应该在更具体的基础上进行封锁。

#6 楼

其他人对缓解DDoS方面的技术挑战做出了很好的回答,尽管我在这里的回答将集中在一旦您建立了通过将大量IP地址阻止到您的站点来过滤DDoS的功能之后发生的事情。

阻止大量IP地址并非总是可取的。由于DDoS较大,通过阻止大量IP地址,您可能会阻止可能共享这些IP地址的大量合法用户,这是不良的副作用(例如Tor,代理用户,大学,共享家庭,使用NAT的ISP)保存公共IP地址)。

那些迎合政治活动家,LGBT,女性服务机构的网站说,对于小型个人网站来说,这可能不是什么大问题,但对于许多用户有严重匿名需求的网站而言,这并不是什么大问题。压迫性国家,家庭虐待等。简单的IP阻止实质上已成为攻击者对这些站点的策略。通过拒绝匿名用户的服务访问您的服务,可能会阻止最脆弱的合法用户安全地访问您的站点,从而达到攻击者的目标以及原始DDoS。

#7 楼

对于DDOS攻击,没有简单或单一的解决方案,因为它们可以通过许多不同的方式执行。互联网背后的技术的本质除了开放之外没有任何其他用途。有很多补丁程序和变通办法来尝试增强安全性并缓解许多问题。总而言之,保护站点或网络免受攻击要比攻击要困难得多。那只是今天的安全状态。

对于网络级别的攻击(就像最近针对Dyn的DNS一样),如前所述,网络入口过滤将很有帮助。这至少有助于解决欺骗问题。

这种攻击的一个更为紧迫的问题是规模。由于僵尸网络中受大规模攻击的受感染系统数以万计(如果不是数十万),则基于IP的阻止是不合理的。如果您进行封锁,您需要封锁远距离的网络链才能生存吗? Krebs DDOS攻击据称在600Gbs范围内。您或您的提供商可以解决这个问题吗?(或者以我的经验为10-120Gbs甚至更典型)
无论如何,您那时只是在玩w子,因为一旦被阻止,您的攻击者很可能会切换到另一个一组具有不同IP的被利用机器。

如果您决定玩IP信誉游戏 CloudFlare ,您可能会做一些愚蠢的事情,例如最终阻止大型提供商-例如宠物小精灵去掉了来自比利时的大部分/全部流量。再说一次,这只是w鼠,不是可行的解决方案。

让我们从堆栈上讲更高。 Web服务攻击(例如凭据填充或抓取)通常看起来像合法流量。初中级脚本小子可能没有您所需要的浏览器签名,但是诸如Sentry MBA甚至PhantomJS之类的东西都会模仿适当的浏览器,从而击败这种简单的HTTP标头/浏览器ID指纹。更好的攻击者甚至会模拟正确的鼠标和键盘使用方式,从而进一步掩盖了它们的自动化特性。

从实现的角度来看,验证码都很昂贵(服务器上的资源或外包$$)。简单的可以通过合理的图像检测算法来克服。更复杂的验证码开始激怒用户,并可能导致视障用户的可访问性问题。还有一些系统可以通过机械土耳其人有效地(直接在人为验证码上缴纳几分钱)或间接地(在另一个站点上由毫无戒心的用户回答您的验证码)来击败机械验证码。

,由于攻击是多管齐下的,因此您需要采取多管齐下的防御方法。大型运营商甚至采取了攻势,因为微软与FBI合作接管并关闭了僵尸网络。不幸的是,物联网刚刚开辟了一套全新的系统,可供开发使用。

评论


您正在混淆入口(传入流量)与出口(传出流量)过滤。为了有效,必须在源附近进行流量过滤。这需要出口过滤;原始ISP必须设置其系统,以便仅允许声称来自其自身IP地址的程序包离开其网络。接收ISP只能阻止来自明显错误的源地址的流量,这意味着“必须允许任何自称不是我们的东西都可以通过”,而不是“任何不属于我们的东西都必须被丢弃”。

–用户
16-10-26在9:20

@MichaelKjörling:我想RFC将其称为入口过滤,因为它的目标是进入网络的流量。

–餐饮哲学家
17年7月4日在20:28

#8 楼

DDoS攻击的天才之处在于流量来自真实客户的潜在合法IP。

假设居住在美国的普通人可能会损害其路由器并将其用于DDoS。受害公司完全封锁了该IP地址,因为该公司完全封锁了该IP,因此该人根本无法连接到公司的Web服务,从而切断了可能有效的IP,使其无法再次访问其服务器。

这是一个简单的示例,但想象一下,一所大学有一些用于网络浏览的NAT IP,而一家公司在缓解DDoS期间阻止了其中一些NAT IP。现在,该园区中成千上万的人可能会失去与该公司服务器的连接,这对企业来说是灾难性的。

更不用说足够大的DDoS攻击可以使用大量不同的IP地址。

#9 楼

区分正常流量和DDoS流​​量并不容易。

DDoS可以简单地解释为-
作为一个人,我一次只能与一个人讨论(聊天)
,如果10的人同时与我讲话,那么我将
无法回答他们中的任何一个,而且我对所有人都处于不可用状态。

攻击者通常会产生来自受感染机器(也称为** bot)的DDoS攻击。可能是在撰写您的问题答案时,我的机器可能对某些目的地进行了ddos攻击(如果我的机器受到威胁,尽管机会很小)。

如前所述,没有黑白解决方案可用于控制(或阻止)ddos攻击。

如@gowenfawr所述,如果ddos攻击模式是udp,则在Internet上的ISP级别上实施URF可以帮助阻止欺骗的流量,从而有助于控制ddos攻击。

评论


与其他网站相同:请不要滥用引号进行格式化。谢谢。

– Arjan
16-10-23在17:51

#10 楼

真实故事在这里

我们曾经卖过一个小型相机系统。是一个大牌子,相机虽然没什么特别的,但价格还是不错的。有一天,我们有人打电话给我们,询问他们信用卡的费用。原来有人得到了它,并曾经购买了其中一台照相机,然后将其运送给可能将它们聚集起来的人,或者直接围起来,或者将它们散装运往垃​​圾处理者。

作为一名进取的管理员,我挖了日志,以找出欺诈的来源。我从一个非洲IP中找到了一个,但其余可疑订单都包含美国IP。实际上,它们都是通过与我们的Web服务器所在的数据中心相同的受损服务器来代理的。除了向主机报告之外,没有任何事情要做。谁做的就是通过受感染的机器拉线。通过查看网络源本身,根本无法防范这种情况。您永远不知道某人何时何地会受到威胁,他们的IP变成武器。

最近对Dyn的攻击表明,现在多么愚蠢的简单


僵尸网络由家用Wi-Fi路由器和Internet协议视频等设备组成摄像机向Dyn的DNS服务发送大量请求。这些请求看起来是合法的,因此Dyn的系统很难将它们从普通的域名查找请求中筛选出来。





它们是停止严厉的攻击是因为它们经常通过递归提供程序进行传播。由于随机前缀,它们不可缓存。我们像三年前开始看到随机前缀攻击,并且它们仍然是非常常见的攻击。如果使用物联网设备,则可以解释其大小和规模[以及攻击的方式]将如何影响:某人的大小为Dyn。


随着IPv6的兴起,很快您将可以使用数十亿个具有自己IP的设备。范围太大,无法有效过滤。

#11 楼

允许“某人”告诉Internet基础结构/骨干网部分停止接受/转发来自某些地址的流量的协议仅表示该“某人”甚至不需要使用DDOS技术来使他们想要的任何人脱机。如果没有“不存在的中央权威”,就很难就应该由谁来信任这种权力达成共识。