奇怪的 DNS DOS 攻击——无休止的递归查询

奇怪的 DNS DOS 攻击——无休止的递归查询

我们的 W2K3 DNS 服务器似乎受到了某种 DOS 攻击,但我似乎找不到有关此次攻击的任何描述或理由。

三个特定的远程主机一直在用如下语句轰炸我们的三个 DNS 服务器中的两个:

8937  891.093750  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xDA7C, QUERY (Standard query), Query  for   of type NS on class Internet
8938  891.218750  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xA504, QUERY (Standard query), Query  for   of type NS on class Internet
8939  891.219727  91.205.43.25  ns1.me.com  DNS  DNS: QueryId = 0x4E3F, QUERY (Standard query), Query  for   of type NS on class Internet
8940  891.370117  69.197.181.26   ns1.me.com  DNS  DNS: QueryId = 0xA8CC, QUERY (Standard query), Query  for   of type NS on class Internet
8941  891.372070  69.197.181.26   ns2.me.com  DNS  DNS: QueryId = 0xC808, QUERY (Standard query), Query  for   of type NS on class Internet
8942  891.476562  91.205.43.25  ns2.me.com  DNS  DNS: QueryId = 0xCC37, QUERY (Standard query), Query  for   of type NS on class Internet
8943  891.478516  91.205.43.25  ns1.me.com  DNS  DNS: QueryId = 0xEDEC, QUERY (Standard query), Query  for   of type NS on class Internet

几天来,每秒大约有 10 次这样的攻击。每个攻击者都会快速连续地尝试两台被攻击的服务器,尽管他们从未尝试过我们的第三台服务器。

以下是每个数据包的详细信息的示例:

  Frame: 
+ Ethernet: Etype = Internet IP (IPv4)
+ Ipv4: Next Protocol = UDP, Packet ID = 20114, Total IP Length = 45
+ Udp: SrcPort = 23909, DstPort = DNS(53), Length = 25
- Dns: QueryId = 0xEDEC, QUERY (Standard query), Query  for   of type NS on class Internet
    QueryIdentifier: 60908 (0xEDEC)
  - Flags:  Query, Opcode - QUERY (Standard query), RD, Rcode - Success
     QR:                (0...............) Query
     Opcode:            (.0000...........) QUERY (Standard query) 0
     AA:                (.....0..........) Not authoritative
     TC:                (......0.........) Not truncated
     RD:                (.......1........) Recursion desired
     RA:                (........0.......) Recursive query support not available
     Zero:              (.........0......) 0
     AuthenticatedData: (..........0.....) Not AuthenticatedData
     CheckingDisabled:  (...........0....) Not CheckingDisabled
     Rcode:             (............0000) Success 0
    QuestionCount: 1 (0x1)
    AnswerCount: 0 (0x0)
    NameServerCount: 0 (0x0)
    AdditionalCount: 0 (0x0)
  - QRecord:   of type NS on class Internet
     QuestionName: 
     QuestionType: NS, Authoritative name server, 2(0x2)
     QuestionClass: Internet, 1(0x1)

我们目前已将防火墙配置为简单地丢弃来自三个攻击者的请求,但如果我允许他们通过,我们的服务器将响应一个很长的答案,列出所有根提示服务器的名称(但不是地址),并且似乎无论是否打开递归,它都会这样做。

有人知道这是怎么回事吗?我可以让传入流量停止吗?还是只能在防火墙处阻止它,直到他们厌倦为止?

谢谢你的信息,
保罗

答案1

这可能不是针对您的 DoS 攻击 - 更可能是您的机器被用来向其他人发送数据包。

这被称为“放大攻击”。他们向您发送 25 字节的 DNS 请求 - 您发回约 500 字节的根提示。

如果是这种情况,源 IP 地址实际上是被欺骗的,并且他们利用您的大量响应来增强针对这些欺骗 IP 地址的 DoS 效果。

在防火墙处丢弃数据包可能是您目前能做的最好的事情。

然而,从长远来看,真正的解决方案是配置您的 DNS 服务器,使其REFUSED对任何服务器不具有权威性的查询返回响应代码。如果您这样做,那么您的服务器将不再是未来对其他人进行放大攻击的有用工具。

答案2

或许呼应参宿一,我不明白你的 DNS 服务器的用途。

他们面向公众的权威服务器提供有关您的域的信息?如果是,则无需响应除他们有权响应的查询之外的任何其他查询。如果您不发送响应,每秒 10 个请求听起来并不是您应该担心的事情。

这是一个内部递归/缓存服务器,为内部用户提供服务?如果是这样,应该有一个view可以match-clients(在 BIND 语法中)并且不接收来自网络外部的请求。如果您已经拥有这个并且请求来自您控制的段,那么,追捕那些客户端吧!

答案3

你无法控制其他人的行为。即使你在服务器上修复了此响应,他们也可能决定继续前进并改变攻击方式,而不仅仅是“感到无聊”。既然你知道他们现在在哪里,我认为在你的防火墙上完全阻止他们可能是你最好和最安全的选择。

话虽如此,您也确实希望纠正服务器响应,以防范未来的攻击,或者即使您当前的攻击者只是切换 IP。但其他人可以比我更好地帮助解决这个问题。

相关内容