1. DNS/脆弱性入門
DNSは基盤技術なんでしょうか。
- いきなりなくなったら困ることは確かですが、ずっとこのまま使い続けるにはあまりに脆弱です。
DNSに深入りすることなく、脆弱性を理解できるように解説することを試みます。
- (IPアドレスについての説明はしません。時間が足りない。)
DNSキャッシュポイズニングすらまともに理解されていないと思うからです。
2. DNSとはなにか
ドメイン名を分散管理するための仕組みです。(管理には成功していない)
2.1. ドメイン名
階層構造をもつ「ラベル」を'.'でつなげたもの。
分散管理といいながら、木構造をしていて、根に相当するところに権限が集中しているという矛盾があります。
- ルートサーバ、ccTLD, gTLD, レジストリ(モデル)
3. 分散管理の仕組み
4. 問い合わせの仕組み
- ドメイン名空間での名前の委譲関係を追いかける仕事をする。
- 変化する構造を追いかけるのは難しい。(不一致が生じるのは避けられない)
負荷を小さくするためにDNS/1/UDPを使うという設計が修復不可能な欠陥を負わせた。
キャッシュという仕組みが検索効率を改善するとともに構造を複雑に見せる結果を引き起こす。
当初は動作するかどうかも分からなかったから、安全性にまで配慮できなかったことも理解できる。
- TXIDが16しかないことなど。(query source portが固定であったのは実装の不備である)
その他、負荷を小さくするという目的で行われていることが脆弱性につながる。
- Ancillary Data Attack
5. BINDという実装
脆弱性の歴史
6. 運用
親子ゾーンの同居や、ドメイン名登録者を確認しない共用サーバ
リゾルバー兼用サーバ、オープンリゾルバー
7. ?
DDoS
主な脆弱性 DNS/脆弱性
-- ToshinoriMaeno 2016-02-09 14:41:47