在我们上一次 TW PCI 扫描中,我们的标志之一是“DNS 放大拒绝服务”。
现在,DNS 服务器正在运行 Bind 9.8.1-P1。CVE 似乎适用于更旧的版本:CVE-2006-0988、CVE-2006-0987。
给出的证据是: 发现:对 [我的域] 的 26 字节 ANY 查询会产生更大的答案,大小为 283 字节。
因此,我从外界进行了挖掘:
taco $ dig -t NS . @[my domain]
我回来了:
; <<>> DiG 9.8.1-P1 <<>> -t NS . @[my domain]
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 54954
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;. IN NS
;; Query time: 47 msec
;; SERVER: [my ip address]#53([my ip address])
;; WHEN: Mon Nov 25 15:53:24 2013
;; MSG SIZE rcvd: 17
所以对我来说,我的 BIND 服务器似乎在做正确的事情并拒绝。但是扫描是正确的,因为对于一个小的输入,它得到了一个更大的输出。即使它不允许从外部递归。
有没有办法让 BIND 根本不回答,或者发送更短的响应?我还需要做些什么来让 TW PCI 扫描满意吗?
他们正在谈论的查询可能更像
dig -t any [your domain] @[your nameserver]
,这可能会返回他们所指的那种更大的响应。这是一个权威的名称服务器吗?如果是这样.. 好吧,除了速率限制查询之外,在反射中使用它真的无能为力。
DNS 反射对整个互联网来说是一件令人讨厌的事情,但我不明白为什么您的权威 DNS 服务器的带宽被滥用来放大 DDoS 流量与您的 PCI 合规性有关。
Shane Madden 的上述回答是正确的——如果您将递归限制在自己的客户身上,并拒绝给那些超出您定义的关于您所服务的对象的人,那么您正在为递归服务做正确的事情。 不要在没有充分理由的情况下运行开放式解析器,如果您决定出于某种原因需要这样做,则必须积极监控滥用情况并尽快阻止;否则你对其他网络参与者是危险的。
关于权威服务,他又是对的——除了响应率限制(RRL)之外,你无能为力。根名称服务器)——受此影响很大,它是反射的主要目标之一,因为短查询长度,加上对 ANY 查询的大响应,是一个重要的放大因子。只要 UDP 源欺骗仍然很容易,我们就会坚持下去。]
关于您当前的版本 (BIND 9.8.1-P1):假设您正在运行 ISC 的库存代码,您可能需要解决许多影响 9.8.1-P1 的突出漏洞。它们中的大多数,如果被利用,会在服务器因 ASSERT 或 INSIST 故障而崩溃时导致拒绝服务——BIND 9 实际上被设计为在检测到不一致的状态时立即崩溃,而不是继续并可能冒风险更差。
您可以通过咨询BIND 安全矩阵找到适用的安全建议列表 根据您使用的功能,并非以下所有漏洞都一定适用,但您仍应检查它们以确定。BIND 9.8 目前是 9.8.6-P1 版本,或者您可以升级到 BIND 9.9.4-P1 并免费获得 RRL(嗯,这是一个可选编译,但需要额外的命令行参数来配置您可以拥有它并帮助您的权威服务器成为一个不那么有吸引力的反射目标。)