深层的DNS放大DDoS攻击
来源:https://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/
几周前,我写了一篇关于DNS放大攻击的文章。这些攻击是最大的攻击之一,以我们看到的每秒千兆比特数(Gbps)来衡量。在过去的三周里,一个持续的攻击者每天24小时发送了至少20Gbps的数据来攻击我们的一个客户。
这种规模的攻击甚至足以使大型网络主机瘫痪。对CloudFlare来说,我们网络的性质意味着,在我们所有全球数据中心受到稀释的攻击不会对我们造成伤害。即使从成本的角度来看,攻击最终也不会增加我们的带宽账单,因为我们收取大规模带宽费用的方式。
我们购买了大量的带宽,并为一个月内平均进入(进入)或离开(离开)的较高带宽付费。因为我们充当了缓存代理,所以在正常情况下,egress总是超过ingress。当发生攻击时,这两条线会靠得更近,但很少有攻击大到足以增加我们的总体带宽成本。
考虑到最近的攻击没有影响到我们或我们的任何客户,我们决定让它运行一段时间,看看我们能学到什么。
一、放大攻击
DNS放大攻击是攻击者放大针对潜在受害者的带宽的一种方式。假设你是一个攻击者,你控制着一个能够发送100Mbps流量的僵尸网络。虽然这可能足以使一些站点离线,但在DDoS世界中,这只是相对微不足道的流量。为了增加你的攻击量,你可以尝试增加更多被攻击的机器到你的僵尸网络中。这正变得越来越困难。或者,你也可以找到一种方法,把你的100Mbps放大到更大。
最初的放大攻击被称为SMURF攻击。SMURF攻击涉及到攻击者发送ICMP请求(例如。到网络的广播地址(例如,ping请求)。该路由器被配置为将ICMP中继到该路由器后面的所有设备。攻击者将ICMP请求的源欺骗为目标受害者的IP地址。由于ICMP不包括握手,目的地无法验证源IP是否合法。路由器接收到请求并把它传递给它后面的所有设备。所有这些设备然后响应ping。攻击者能够将攻击放大到路由器后面有多少设备的倍数(例如,路由器有多少设备)。,如果路由器后面有5个设备,那么攻击者可以将攻击放大5倍,见下图)。
SMURF攻击在很大程度上已经是过去的事了。在大多数情况下,网络运营商将其路由器配置为不中继发送到网络广播地址的ICMP请求。然而,即使放大攻击载体已经关闭,其他仍然是开放的。
二、DNS放大
一个好的amplification攻击矢量有两个条件:1)查询可以设置一个欺骗的源地址(例如,通过不需要握手的ICMP或UDP等协议);和2)对查询的响应明显大于查询本身。DNS是一个核心的、无处不在的互联网平台,满足这些标准,因此已成为放大攻击的最大来源。
DNS查询通常通过UDP传输,这意味着,就像在蓝精灵攻击中使用的ICMP查询一样,它们是发射后就会被遗忘的。因此,它们的源属性可能被欺骗,而接收方在响应之前无法确定其准确性。DNS还能够生成比查询更大的响应。例如,您可以发送以下(微型)查询(其中x.x.x. x)。x为打开的DNS解析器的IP):
dig ANY isc.org @x.x.x.x
并得到以下(巨大的)响应:
; <<>> DiG 9.7.3 <<>> ANY isc.org @x.x.x.x
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5147
;; flags: qr rd ra; QUERY: 1, ANSWER: 27, AUTHORITY: 4, ADDITIONAL: 5
;; QUESTION SECTION:
;isc.org. IN ANY
;; ANSWER SECTION:
isc.org. 4084 IN SOA ns-int.isc.org. hostmaster.isc.org. 2012102700 7200 3600 24796800 3600
isc.org. 4084 IN A 149.20.64.42
isc.org. 4084 IN MX 10 mx.pao1.isc.org.
isc.org. 4084 IN MX 10 mx.ams1.isc.org.
isc.org. 4084 IN TXT "v=spf1 a mx ip4:204.152.184.0/21 ip4:149.20.0.0/16 ip6:2001:04F8::0/32 ip6:2001:500:60::65/128 ~all"
isc.org. 4084 IN TXT "$Id: isc.org,v 1.1724 2012-10-23 00:36:09 bind Exp $"
isc.org. 4084 IN AAAA 2001:4f8:0:2::d
isc.org. 4084 IN NAPTR 20 0 "S" "SIP+D2U" "" _sip._udp.isc.org.
isc.org. 484 IN NSEC _kerberos.isc.org. A NS SOA MX TXT AAAA NAPTR RRSIG NSEC DNSKEY SPF
isc.org. 4084 IN DNSKEY 256 3 5 BQEAAAAB2F1v2HWzCCE9vNsKfk0K8vd4EBwizNT9KO6WYXj0oxEL4eOJ aXbax/BzPFx+3qO8B8pu8E/JjkWH0oaYz4guUyTVmT5Eelg44Vb1kssy q8W27oQ+9qNiP8Jv6zdOj0uCB/N0fxfVL3371xbednFqoECfSFDZa6Hw jU1qzveSsW0=
isc.org. 4084 IN DNSKEY 257 3 5 BEAAAAOhHQDBrhQbtphgq2wQUpEQ5t4DtUHxoMVFu2hWLDMvoOMRXjGr hhCeFvAZih7yJHf8ZGfW6hd38hXG/xylYCO6Krpbdojwx8YMXLA5/kA+ u50WIL8ZR1R6KTbsYVMf/Qx5RiNbPClw+vT+U8eXEJmO20jIS1ULgqy3 47cBB1zMnnz/4LJpA0da9CbKj3A254T515sNIMcwsB8/2+2E63/zZrQz Bkj0BrN/9Bexjpiks3jRhZatEsXn3dTy47R09Uix5WcJt+xzqZ7+ysyL KOOedS39Z7SDmsn2eA0FKtQpwA6LXeG2w+jxmw3oA8lVUgEf/rzeC/bB yBNsO70aEFTd
isc.org. 4084 IN SPF "v=spf1 a mx ip4:204.152.184.0/21 ip4:149.20.0.0/16 ip6:2001:04F8::0/32 ip6:2001:500:60::65/128 ~all"
isc.org. 484 IN RRSIG NS 5 2 7200 20121125230752 20121026230752 4442 isc.org. oFeNy69Pn+/JnnltGPUZQnYzo1YGglMhS/SZKnlgyMbz+tT2r/2v+X1j AkUl9GRW9JAZU+x0oEj5oNAkRiQqK+D6DC+PGdM2/JHa0X41LnMIE2NX UHDAKMmbqk529fUy3MvA/ZwR9FXurcfYQ5fnpEEaawNS0bKxomw48dcp Aco=
isc.org. 484 IN RRSIG SOA 5 2 7200 20121125230752 20121026230752 4442 isc.org. S+DLHzE/8WQbnSl70geMYoKvGlIuKARVlxmssce+MX6DO/J1xdK9xGac XCuAhRpTMKElKq2dIhKp8vnS2e+JTZLrGl4q/bnrrmhQ9eBS7IFmrQ6s 0cKEEyuijumOPlKCCN9QX7ds4siiTIrEOGhCaamEgRJqVxqCsg1dBUrR hKk=
isc.org. 484 IN RRSIG MX 5 2 7200 20121125230752 20121026230752 4442 isc.org. VFqFWRPyulIT8VsIdXKMpMRJTYpdggoGgOjKJzKJs/6ZrxmbJtmAxgEu /rkwD6Q9JwsUCepNC74EYxzXFvDaNnKp/Qdmt2139h/xoZsw0JVA4Z+b zNQ3kNiDjdV6zl6ELtCVDqj3SiWDZhYB/CR9pNno1FAF2joIjYSwiwbS Lcw=
isc.org. 484 IN RRSIG TXT 5 2 7200 20121125230752 20121026230752 4442 isc.org. Ojj8YCZf3jYL9eO8w4Tl9HjWKP3CKXQRFed8s9xeh5TR3KI3tQTKsSeI JRQaCXkADiRwHt0j7VaJ3xUHa5LCkzetcVgJNPmhovVa1w87Hz4DU6q9 k9bbshvbYtxOF8xny/FCiR5c6NVeLmvvu4xeOqSwIpoo2zvIEfFP9deR UhA=
isc.org. 484 IN RRSIG AAAA 5 2 7200 20121125230752 20121026230752 4442 isc.org. hutAcro0NBMvKU/m+2lF8sgIYyIVWORTp/utIn8KsF1WOwwM2QMGa5C9 /rH/ZQBQgN46ZMmiEm4LxH6mtaKxMsBGZwgzUEdfsvVtr+fS5NUoA1rF wg92eBbInNdCvT0if8m1Sldx5/hSqKn8EAscKfg5BMQp5YDFsllsTauA 8Y4=
isc.org. 484 IN RRSIG NAPTR 5 2 7200 20121125230752 20121026230752 4442 isc.org. ZD14qEHR7jVXn5uJUn6XR9Lvt5Pa7YTEW94hNAn9Lm3Tlnkg11AeZiOU 3woQ1pg+esCQepKCiBlplPLcag3LHlQ19OdACrHGUzzM+rnHY50Rn/H4 XQTqUWHBF2Cs0CvfqRxLvAl5AY6P2bb/iUQ6hV8Go0OFvmMEkJOnxPPw 5i4=
isc.org. 484 IN RRSIG NSEC 5 2 3600 20121125230752 20121026230752 4442 isc.org. rY1hqZAryM045vv3bMY0wgJhxHJQofkXLeRLk20LaU1mVTyu7uair7jb MwDVCVhxF7gfRdgu8x7LPSvJKUl6sn731Y80CnGwszXBp6tVpgw6oOcr Pi0rsnzC6lIarXLwNBFmLZg2Aza6SSirzOPObnmK6PLQCdmaVAPrVJQs FHY=
isc.org. 484 IN RRSIG DNSKEY 5 2 7200 20121125230126 20121026230126 4442 isc.org. i0S2MFqvHB3wOhv2IPozE/IQABM/eDDCV2D7dJ3AuOwi1A3sbYQ29XUd BK82+mxxsET2U6hv64crpbGTNJP3OsMxNOAFA0QYphoMnt0jg3OYg+AC L2j92kx8ZdEhxKiE6pm+cFVBHLLLmXGKLDaVnffLv1GQIl5YrIyy4jiw h0A=
isc.org. 484 IN RRSIG DNSKEY 5 2 7200 20121125230126 20121026230126 12892 isc.org. j1kgWw+wFFw01E2z2kXq+biTG1rrnG1XoP17pIOToZHElgpy7F6kEgyj fN6e2C+gvXxOAABQ+qr76o+P+ZUHrLUEI0ewtC3v4HziMEl0Z2/NE0MH qAEdmEemezKn9O1EAOC7gZ4nU5psmuYlqxcCkUDbW0qhLd+u/8+d6L1S nlrD/vEi4R1SLl2bD5VBtaxczOz+2BEQLveUt/UusS1qhYcFjdCYbHqF JGQziTJv9ssbEDHT7COc05gG+A1Av5tNN5ag7QHWa0VE+Ux0nH7JUy0N ch1kVecPbXJVHRF97CEH5wCDEgcFKAyyhaXXh02fqBGfON8R5mIcgO/F DRdXjA==
isc.org. 484 IN RRSIG SPF 5 2 7200 20121125230752 20121026230752 4442 isc.org. IB/bo9HPjr6aZqPRkzf9bXyK8TpBFj3HNQloqhrguMSBfcMfmJqHxKyD ZoLKZkQk9kPeztau6hj2YnyBoTd0zIVJ5fVSqJPuNqxwm2h9HMs140r3 9HmbnkO7Fe+Lu5AD0s6+E9qayi3wOOwunBgUkkFsC8BjiiGrRKcY8GhC kak=
isc.org. 484 IN RRSIG A 5 2 7200 20121125230752 20121026230752 4442 isc.org. ViS+qg95DibkkZ5kbL8vCBpRUqI2/M9UwthPVCXl8ciglLftiMC9WUzq Ul3FBbri5CKD/YNXqyvjxyvmZfkQLDUmffjDB+ZGqBxSpG8j1fDwK6n1 hWbKf7QSe4LuJZyEgXFEkP16CmVyZCTITUh2TNDmRgsoxrvrOqOePWhp 8+E=
isc.org. 4084 IN NS ns.isc.afilias-nst.info.
isc.org. 4084 IN NS ams.sns-pb.isc.org.
isc.org. 4084 IN NS ord.sns-pb.isc.org.
isc.org. 4084 IN NS sfba.sns-pb.isc.org.
;; AUTHORITY SECTION:
isc.org. 4084 IN NS ns.isc.afilias-nst.info.
isc.org. 4084 IN NS ams.sns-pb.isc.org.
isc.org. 4084 IN NS ord.sns-pb.isc.org.
isc.org. 4084 IN NS sfba.sns-pb.isc.org.
;; ADDITIONAL SECTION:
mx.ams1.isc.org. 484 IN A 199.6.1.65
mx.ams1.isc.org. 484 IN AAAA 2001:500:60::65
mx.pao1.isc.org. 484 IN A 149.20.64.53
mx.pao1.isc.org. 484 IN AAAA 2001:4f8:0:2::2b
_sip._udp.isc.org. 4084 IN SRV 0 1 5060 asterisk.isc.org.
;; Query time: 176 msec
;;SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: Tue Oct 30 01:14:32 2012
;; MSG SIZE rcvd: 3223
这是一个64字节的查询,结果是3223字节的响应。换句话说,攻击者能够实现50倍的流量,他们可以发起一个开放的DNS解析器。具有讽刺意味的是,基于响应大小的攻击的有效性由于包含了巨大的DNSSEC密钥而变得更糟——这是一种旨在使DNS系统更安全的协议。
三、开放DNS解析器:互联网的祸害
到目前为止,我使用过几次的关键术语是“开放DNS解析器”。如果您正在运行递归DNS解析器,那么最佳实践是确保它只响应来自授权客户端的查询。换句话说,如果您正在为您的公司运行一个递归DNS服务器,并且您公司的IP空间为5.5.5.0/24(即。例如,5.5.5.0 - 5.5.5.255),那么它应该只响应来自该范围的查询。如果一个查询从9.9.9.9到达,那么它不应该响应。
问题是,许多运行DNS解析器的人让它们处于开放状态,并愿意响应任何查询他们的IP地址。这是一个已经存在至少10年的已知问题。最近发生的事情是,为了发现开放的解析器,一些不同的僵尸网络似乎列举了互联网的IP空间。一旦被发现,它们可以用来发起重大的DNS放大攻击。
如果你看一下攻击来源的地理数据,就会发现美国在榜单上占主导地位,但这在很大程度上受到了该国境内网络数量的影响。按人均计算,最糟糕的是台湾省。台湾省的HINET是全球网络开放解析器的第二大来源。我们还发布了一个列表,上面列出了我们看到的滥用开放DNS解析器的顶级网络。以下列举了十大最糟糕的违规者:
想知道为什么大规模DDoS攻击增加了吗?这在很大程度上是因为上面列出的网络运营商继续允许开放解析器在他们的网络上运行,而攻击者已经开始滥用它们。当我们不愿意公布的实际IP地址的列表打开解析器因为担心他们可能被滥用,如果你是其中一个运营商的网络上面列出,我们很高兴与你分享数据,以帮助你清理网络。像Team Cymru这样的组织发布了更广泛的名单,并与网络运营商合作清理他们的网络。
如果您正在运行一个打开的递归程序,那么现在应该关闭它。打开它意味着你将继续帮助这些攻击。如果你正在运行BIND,你可以在配置文件中包含以下一个或多个,以限制攻击者滥用你的网络:
// Disable recursion for the DNS service
//options { recursion no;};
// Permit DNS queries for DNS messages with source addresses
// in the 192.168.1.0/24 netblock. The 'allow-query-cache'
// options configuration can also be used to limit the IP
// addresses permitted to obtain answers from the cache of
// the DNS server. Substitute with your own network range.
//options { allow-query {192.168.1.0/24;};};