Dan Kaminsky 最有名的“成果”应该是在 2008 年发现当时大多数的 DNS resolver 软件实做有问题,可以被 DNS cache poisoning 攻击,当年我有写下来提到,但写的很短:“DNS 服务器安全性更新”。

攻击手法是先发一个 DNS query 到 DNS resolver,然后马上再送出一个伪造的 DNS response packet 给 DNS resolver 收,运气好的话这个伪造的结果就会被 cache 起来。

记得当年的 168.95.1.1 与 168.95.192.1 没有太直接受到影响 (相较于其他的 DNS resolver),是因为这两个 DNS resolver 后面有 server cluster 会打散流量,所以未必能猜对去查询时用的 DNS server 所使用的 IP address,有点类似下面提到的缓解方案 (只是没那么有效)。

而记得后来的缓解方式是透过乱数化 source port (让 DNS resolver 查询时不要从 port 53 出去问),这个方式让攻击几率大幅下降 (大约降到 的几率)。

后来 DNS 加上 nonce 机制再继续压低攻击成功的几率 (再降一次 ,变成大约 ),最后则是 DNSSEC 的支援度逐渐普及,才解决掉这个问题。