使用BGP防御源自远程AS的DDoS攻击


16

我对BGP以及如何实现此配置有疑问。

我的企业核心路由器已连接到ISP(单宿主)。该路由器已经在BGP更新中将特定的公共IP前缀交换给了ISP。现在让我们说,有几步之遥的AS正在通过DDoS攻击淹没我的本地AS。该AS中有多个网络定位到我本地AS中的Web服务器。

我们如何使用BGP阻止路由器上的流量?

感谢您的回应!:)


2
您如何确定此流量的来源?如果仅查看源IP地址,则可能会被欺骗。如果发生反射攻击,则将看到单个AS中所有欺骗源地址的大量数据包。
kasperd 2014年

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以提供并接受自己的答案。
罗恩·莫平

Answers:


14

您可以使用BGP做两件事:

RTBH-远程触发的黑洞

第一种选择是激进的选择:IP受到攻击的黑洞(阻止流量)。缺点:目标IP不再可用。好处:您的网络其余部分保持正常运行。Packetlife对它如何工作以及如何做有很好的解释。第二个选项建立在第一个选项的基础上:

基于源的RTBH

RTBH还可以(在某些配置中)用于阻止来自特定IP的流量(在真正的DDoS中,这不会带来太大帮助,因为流量会来自数千个IP。同样,Packetlife有一个解释。

在您的情况下,您可以从RADB之类的路由数据库中获取AS的所有前缀,并使用基于源的RTBH阻止它们。流量仍然会打到边境的网络。

当您使用“简单” RTBH时,优势在于您可以将这些RTBH路由发送到您的上游ISP(如果他们支持),后者便可以阻止其网络中的流量,因此您不必进行处理。


Packetlife所描述的方法很有用,但在上行链路被攻击流量饱和的情况下将毫无用处。我就使用上游黑洞社区解决此问题写了一个答案。
Elliot B.

2
在我的最后一句话中:“当您使用“简单” RTBH时,优点是您可以将这些RTBH路由发送到您的上游ISP(如果支持),后者便可以阻止其网络中的流量,因此您无需处理。”
塞巴斯蒂安·维辛格

我看到了,但是我想详细介绍客户触发的黑洞方法,并指出“ [无须处理]”意味着黑洞否则将无效。并不打算敲您的答案,只是提供更多信息:)
Elliot B.

7

@Sebastian通过Packetlife描述的RTBH方法很有用,但该方法仅在上行链路受到攻击流量饱和时才有效。如果您的上行链路已饱和,则必须在攻击流量到达您的网络之前的某个时间点实施黑洞。

您可以使用上游黑洞社区来完成此任务。

Hurricane Electric通过BGP社区提供了客户触发的黑洞的简单解释/示例:

  1. 攻击开始
  2. 客户确定受到攻击的IP或IP范围
  3. 客户静态将ip或ip范围路由到Null0,并使用路由映射添加相应前缀的公告,该路由映射将其标记为6939:666。

思科配置示例(其中XXXX是被攻击的IP):

conf t
ip route X.X.X.X 255.255.255.255 Null0
router bgp YourAS
network X.X.X.X mask 255.255.255.255 route-map blackhole
route-map blackhole permit 10
set community 6939:666
end

请注意,这6939:666是飓风电气特有的黑洞社区。您将修改此值以与上游提供者的黑洞社区相对应。

当然,可以通过多种方式进行配置。在我的Brocade设备上,我使用以下配置:

router bgp
!
redistribute static route-map blackhole
!
!
route-map blackhole permit  5
 match tag  66
 set community  55555:666

55555:666您的上游提供商的黑洞社区在哪里?然后可以使用简单的命令来应用上游黑洞:

ip route 123.123.123.123 255.255.255.255 null0 tag 66

4

从BGP的角度来看,您无能为力。您可以停止发布前缀,但是由于没有人能够访问您的服务,因此您正在完成DoS攻击。

如果您有多个前缀,则可以重新编号,但攻击也可能会移至新的前缀。

您需要做的是与上游合作。他们有擦洗服务吗?如果他们拥有Arbor Peakflow之类的系统,则可以在流量进入网络之前清除流量并对其进行清理。这样的服务通常非常昂贵。

还有其他选择,例如Cloudflare和类似的公司,您可以通过GRE隧道设置到该公司的BGP来设置BGP,并且您的流量由其“云”处理,该“云”可以处理比本地设备更多的流量。


0

我为CloudFlare工作,我想分享一些我在这里工作的最近几个月中在缓解DDOS攻击方面获得的一些知识。

首先; 许多人诉诸网络级别的措施来减轻应用程序层DDOS攻击。在开始使用BGP Blackholing之前,请考虑是否可以处理速率限制或应用程序层保护。那说; 现在,发动非常大容量的DDOS攻击非常便宜(考虑到周围有多少个Open DNS递归,以及它们如何放大攻击)。

正如Elliot在他的回答中所描述的,如果您的网络很小,则使用BGP社区进行黑洞通信可以很好地工作。RFC 3882中记录了此机制。但是,像我们一样,如果您希望吸收攻击流量而不是黑洞(即,您希望收集DDOS攻击数据),请当心附带损害,中间网络提供商最终会变得拥挤。通过直接与发起攻击的网络的ISP对等,可以减轻附带损害。这样,您从攻击者到目的地的路径最短。此外,您可以实施Anycast网络设计,这将有效地意味着一个IP地址访问多个数据中心(取决于最接近的那个)。

显然,并非每个公司都具有进行Anycast和对等互连的基础架构;这就是为什么企业越来越多地转向云服务以在流量到达其数据中心之前消除不良流量的原因。自然,CloudFlare就是这样一种服务。


-1

如果您收集的所有证据都是来自一个特定AS的具有源IP地址的数据包泛滥,则您可能会得出错误的结论。更有可能的解释是这些源IP被欺骗了。

反射/放大攻击涉及发送大量欺骗受害人源IP地址的数据包。如果确实是这种情况,并且您的网络中有可以放大攻击的服务器,那么您指控攻击的网络实际上是受害者,并且您正在帮助攻击者。

在这种情况下,解决方案不是应用任何类型的流量工程,而是配置服务器,使其不能在放大攻击中使用。如何做到这一点实际上并不是网络工程问题。

当然,所有分组都可能来自一个AS。通过与有问题的AS的合作,您可以确认数据包确​​实来自其AS。但是,通过这种级别的合作,您也可以从源头上阻止攻击。

如果我们假设您已经通过某种方法获得确认,而我没有想到要确认数据包确​​实来自您认为的AS,并且您无法在源头阻止它,而是想通过BGP来阻止它,那么我已经读到一种实现这一目标的冒险方法。这个想法是您在要声明的路由之前添加一条AS路径。在此前置的AS路径中,您包括那些数据包的源的AS号。

当公告到达有问题的AS中的BGP路由器时,它们将检测到环路并丢弃公告。同时,世界其他地区不会看到循环并接受该公告。

那是理论。它是否实际上会在实践中起作用取决于几个不同的因素。例如,这取决于实际使用数据包所来自的AS号,这可能与宣布这些IP地址的AS号不同。(这种差异可能是合法的,也可能是由于欺骗造成的。)

这还取决于上游用户是否发现AS路径可疑,而不对路由进行过滤。此外,距离您较远的网络也可能会丢弃您的路由,例如,如果它们也对违规的AS有不好的经验,并决定从那里丢弃所有路由。

这是否值得您冒险。

(如果可以再次找到它,我将链接到该方法的来源。)


2
那是非常危险的事情。您正在欺骗自己不拥有的另一个AS。同样,如果其他人从该AS丢弃了路由,他们也将丢弃您的路由。
塞巴斯蒂安维尔辛格

1
@Sebastian是的,这种风险也存在。但是,如果替代方法是由于流量泛滥而无法访问的网络,则可能值得承担这一风险。
kasperd 2014年

听起来这是一个非常糟糕的主意,我之前从未听说过。当有一个僵尸网络节点时,它会中断整个ASN的连接,这对于大型云提供商来说并不是您想要的。而且,它会随着DDoS的扩展而严重扩展,因为其中有成千上万的僵尸网络节点正在攻击您网络中的某些内容。
Teun Vink

1
@TeunVink绝对不适用于典型的DDoS攻击。但是OP并没有询问典型的DDoS攻击。他正在询问所有流量都源自一个AS的攻击。如果另一种选择是破坏与整个Internet的连接的攻击,则断开与一个AS的连接是可以接受的。
kasperd 2014年

-2

您可以从本地网络对它们的AS进行黑洞处理,因此BGP路由器会为它们声明的任何前缀创建空路由。

优点:

  • 您的AS对他们来说似乎是死的,这是他们的目标,而您通常仍会与其他人交换数据。
  • 您的本地入口过滤将自动丢弃来自该AS的传入数据包

相反:

  • 他们可以在路由器上创建黑洞路由,因此请确保具有适当的规则以保持最重要的路由完整

1
对整个AS进行黑洞操作意味着您最终将自己退出。该AS中没有其他人可以联系到您。您的客户也可能在该AS中。
罗恩·科恩

1
我在这里假设一个敌对的AS,即如果您完全阻止它们,则会失去价值的注意。我将一些“防弹托管”服务归为此类。
西蒙·里希特

1
大多数ASN并​​不完全敌对或友好,只是包含一些作为僵尸网络一部分的主机。此外,这种方法不会阻止上游链接被淹没,因此它不会帮助您停止基于卷的DDoS攻击。
Teun Vink
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.