DNSキャッシュポイズニング
DNSキャッシュポイズニングとは、DNSキャッシュサーバのDNSキャッシュポイズニングに対する脆弱性を利用し、DNSキャッシュサーバに偽のIPアドレスの情報を覚えさせ、偽サイトへ誘導させる手口のことです。
読み方
- DNSキャッシュポイズニング
- でぃーえぬえす きゃっしゅ ぽいずにんぐ
- DNS Cache Poisoning
- でぃーえぬえす きゃっしゅ ぽいずにんぐ
- DNS キャッシュ汚染
- でぃーえぬえす きゃっしゅ おせん
概要
DNS には、検索したIPアドレスを一定時間キャッシュする仕組みがあります。DNSキャッシュサーバがその役割を担っています。
DNSキャッシュサーバに DNSキャッシュポイズニングの脆弱性がある場合、DNSキャッシュポイズニングの攻撃を受けた場合、正しいIPアドレスを調べられなくなります。
DNSキャッシュポイズニングによって、偽のIPアドレスに誘導することにより、フィッシング などの脅威にさらされます。
脆弱性の有無の調べ方
DNSキャッシュポイズニング の脆弱性の確認方法は、下記を確認することです。
いずれかに該当する場合は、DNSサーバにパッチが適用されていない、もしくは、DNSサーバの設定に問題があります。
ポート番号のランダム化の確認
DNS-OARC の porttest.dns-oarc.net を使用することで確認できます。 https://www.dns-oarc.net/oarc/services/porttest
nslookup -querytype=TXT -timeout=10 porttest.dns-oarc.net.
GREAT と表示される場合には、問題ありません。
IDのランダム化の確認
DNS-OARC の txidtest.dns-oarc.net を使用することで確認できます。 https://www.dns-oarc.net/oarc/services/txidtest
nslookup -querytype=TXT -timeout=10 txidtest.dns-oarc.net.
GREAT と表示される場合には、問題ありません。
再帰的な問い合わせの確認
利用しているDNSサーバがオープンリゾルバになってないかを確認します。
ここでは、DNSサーバが ns1.google.com という前提で例を示します。 答えがない、ということは、オープンリゾルバではない、ということです。
%dig @ns1.google.com. example.com ; <<>> DiG 9.4.2-P2 <<>> @ns1.google.com. example.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 6840 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;example.com. IN A ;; Query time: 44 msec ;; SERVER: 216.239.32.10#53(216.239.32.10) ;; WHEN: Mon May 6 01:23:42 2013 ;; MSG SIZE rcvd: 29
答えがある場合は、このようになります。
%dig @8.8.8.8 example.com ; <<>> DiG 9.4.2-P2 <<>> @8.8.8.8 example.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42764 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 10519 IN A 192.0.43.10 ;; Query time: 42 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Mon May 6 01:22:39 2013 ;; MSG SIZE rcvd: 45
影響を受けるシステム
- JVNDB-2008-001495 複数の DNS 実装にキャッシュポイズニングの脆弱性
- http://jvndb.jvn.jp/ja/contents/2008/JVNDB-2008-001495.html
関連項目
ツイート