我看到一些奇怪的 DNS 查询。他们似乎有来自我网络中的机器的随机混合案例。
我是否可能感染了恶意软件?
$ sudo tcpdump -n port 53
16:42:57.805038 192.168.5.134.47813 > 192.168.5.2.53: 27738+ A? Www.sApO.PT. (29)
16:42:57.826942 192.168.5.2.53 > 192.168.5.134.47813: 27738 1/0/0 A 213.13.146.142 (45)
16:43:02.813782 192.168.5.2.53 > 192.168.5.134.12193: 17076 1/0/0 A 213.13.146.142 (45)
16:43:06.232232 192.168.5.134.44055 > 192.168.5.2.53: 28471+ A? www.SaPo.pt. (29)
16:43:06.253887 192.168.5.2.53 > 192.168.5.134.44055: 28471 1/0/0 A 213.13.146.142 (45)
16:45:22.135751 192.168.5.134.11862 > 192.168.5.2.53: 48659+ A? wwW.cnn.COm. (29)
16:45:22.190254 192.168.5.2.53 > 192.168.5.134.11862: 48659 2/0/0 CNAME turner-tls.map.fastly.net., (84)
16:45:27.142154 192.168.5.134.34929 > 192.168.5.2.53: 25816+ A? wWw.cnN.com. (29)
16:45:27.168537 192.168.5.2.53 > 192.168.5.134.34929: 25816 2/0/0 CNAME turner-tls.map.fastly.net., (84)
16:45:32.150473 192.168.5.134.29932 > 192.168.5.2.53: 40674+ A? wWw.cnn.cOM. (29)
16:45:32.173422 192.168.5.2.53 > 192.168.5.134.29932: 40674 2/0/0 CNAME turner-tls.map.fastly.net., (84)
答案1
最终,在调查该问题后,执行混合大小写 DNS 请求的虚拟机是运行rebound
OpenBSD 中使用的 DNS 代理的 OpenBSD 计算机。
此外,这似乎是当今的常见做法rebound
,Unbound
并且pydig
将Tor
这种混合大小写查询作为一种安全措施。
因此,在这种情况下,查询不是恶意软件的结果。
这些查询似乎是 DNS 服务器支持相对较新的 DNS 安全机制“0x20 位编码”的结果。该方法因使用字母大小写编码位值而得名。如果在字节中设置位 0x20,则该字母为小写。如果清除,则字母为大写。
主机名不区分大小写。但是,会保留大小写。答案将使用与查询相同的混合大小写。
事实证明,几乎所有 DNS 服务器都遵循这种行为。新的部分是,现在一些 DNS 服务器开始故意将随机值编码到它们发送的每个查询中,然后验证该值是否保留在响应中。这实际上向查询 ID 添加了额外的位。
虽然这显然是一种“黑客”,但它是一个非常有吸引力的黑客。如果您的 DNS 服务器支持此功能,它将自动获得更多的“欺骗抵抗力”。它连接的 DNS 服务器不需要更改任何内容。与 DNSSEC 不同,这当然是真正的修复,但需要大量的配置工作,并且必须为每个区域进行配置。
什么是 dns-0x20 大小写随机化?
大写随机化也称为 dns-0x20。这是一种实验性的弹性方法,它使用问题主机名中的大小写字母来获得随机性。平均增加大约 7 或 8 位熵。此方法目前必须由 dns 管理员手动启用,因为它可能会导致大约 0.4% 的域由于权威服务器端不支持而得不到答案。在我们的第二个示例中,我们使用 dns-0x20 启用指令“use-caps-for-id: yes”以获得更好的安全性。
所有这意味着 calomel.org 与 CaLOMeL.Org 相同,CaLOMeL.Org 与 CALOMEL.ORG 相同。当 Unbound 向远程服务器发送查询时,它会以随机的大写和小写字符发送主机名字符串。远程服务器必须解析主机名,就好像所有字符都是小写的一样。然后,远程服务器必须使用 Unbound 发送的相同随机大小写字符将查询发送回 Unbound。如果响应中主机名的字符与查询的格式相同,则满足 dns-0x20 检查。
因此,除了 DNS 中毒攻击所需的所有其他字段之外,希望毒害未绑定 DNS 缓存的攻击者还必须猜测查询的混合大小写编码和返回 dns 答案的时间。 dns-0x20 显着增加了攻击的难度。