1. DNS/2016/Kaminsky再考
DNS/毒盛/Kaminsky手法 では返答がNXDOMAINになるような問い合わせを利用する。
ところが、このDNS/返答/NXDOMAINはリゾルバー側では利用されていない。
この返答を利用することで攻略の可能性を大幅に減らせることに気づいた。 -- ToshinoriMaeno 2016-03-16 11:16:02
現状のリゾルバーでは実装されているものはまだない。
- Knot resolverの開発者のひとりに連絡したが、忙しいという理由で取り上げてもらえるかはあやしい。
-- ToshinoriMaeno 2016-10-02 01:12:54
DNS/毒盛/2014 http://www.e-ontap.com/dns/endofdns.html
http://www.ieice.org/~ia/archives/ia20140906/20140912-ia-fujiwara.pdf
slide 15 より
Kaminsky型攻撃の特徴 • 攻撃対象の名前の前にランダムなラベルをつけたクエリ名を使用 – 毎回ラベルが異なるため、フルリゾルバは権威DNSサーバへ毎回クエリを送る – 攻撃対象を管理する権威DNSサーバーから返る正当な応答は名前エラー(NXDOMAIN) – 攻撃失敗(正当な応答が先に到達)の場合でも、クエリ名のエラー情報だけがキャッシュされる • 攻撃対象の注入には影響しない – このため、一度攻撃に失敗してもランダムなラベルを変更することで、連続して攻撃できる
このように動作をするのが当然というわけではない。これらは特定のリゾルバーの実装に過ぎない。
-- ToshinoriMaeno 2016-03-14 11:20:49
slide 16-17 どこにqueryを送るか。
- (random).$Triggerの名前エラーを返す。
$Trigger自体はキャッシュされない
- ここは実装による。NXDOMAIN返答から得られる情報を利用しない手はない。
毒NS返答を受け入れるかどうかの判断に利用できるはずだから。
-- ToshinoriMaeno 2016-03-14 11:57:18
slide 17 の例は Authority Sectionによる毒(委任毒?)かどうか、わかりづらい。
-- ToshinoriMaeno 2016-03-14 12:19:22
「NSを持たないすべてのドメイン名」が攻撃対象になるが、防御方法もある。
slide 16より
(random).www.example.jp Aクエリ 通常の返答では (random).www.example.jpのエラーのみキャッシュされる。 偽答 ”www.example.jp IN NS my-server”(委任返答)
- 偽返答を受け入れるかどうか、は実装の問題だ。
http://www.e-ontap.com/dns/poisoning_spa/#%287%29
NS を持たないノードの偽委任による毒入れ 本物の応答は $RANDOM.ac.jp. に対する否定応答であり、そのネガティブキャッシュは次の攻撃の妨げにならない
ここの部分に改良の余地があった。-- ToshinoriMaeno 2016-03-17 06:33:28
NSを持つドメインへの攻撃はここでは議論しない。
-- ToshinoriMaeno 2016-03-14 12:26:30