DNSキャッシュポイズニング

提供: セキュリティ
2015年9月22日 (火) 18:58時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

DNSキャッシュポイズニングとは、DNSキャッシュサーバのDNSキャッシュポイズニングに対する脆弱性を利用し、DNSキャッシュサーバに偽のIPアドレスの情報を覚えさせ、偽サイトへ誘導させる手口のことです。

読み方

DNSキャッシュポイズニング
でぃーえぬえす きゃっしゅ ぽいずにんぐ
DNS Cache Poisoning
でぃーえぬえす きゃっしゅ ぽいずにんぐ
DNS キャッシュ汚染
でぃーえぬえす きゃっしゅ おせん

概要

DNS には、検索したIPアドレスを一定時間キャッシュする仕組みがあります。DNSキャッシュサーバがその役割を担っています。

DNSキャッシュサーバに DNSキャッシュポイズニング脆弱性がある場合、DNSキャッシュポイズニングの攻撃を受けた場合、正しいIPアドレスを調べられなくなります。

DNSキャッシュポイズニングによって、偽のIPアドレスに誘導することにより、フィッシング などの脅威にさらされます。

脆弱性の有無の調べ方

DNSキャッシュポイズニング の脆弱性の確認方法は、下記を確認することです。

  1. DNS問い合わせに仕様するポート番号がランダム化されていない。
  2. DNS問い合わせに仕様するIDがランダム化されていない。
  3. 外部からの再帰的な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

影響を受けるシステム

  • BIND 8
  • BIND 9
  • その他については、下記サイトを確認してください。
JVNDB-2008-001495 複数の DNS 実装にキャッシュポイズニングの脆弱性
http://jvndb.jvn.jp/ja/contents/2008/JVNDB-2008-001495.html

関連項目




スポンサーリンク