「DNSキャッシュポイズニング」の版間の差分
(ページの作成:「<!-- vim: filetype=mediawiki --> [[{{PAGENAME}}]]とは、DNSキャッシュサーバの[[{{PAGENAME}}]]に対する脆弱性を利用し、DNSキャッシュサーバ...」) |
|||
行1: | 行1: | ||
− | + | [[DNSキャッシュポイズニング]]とは、DNSキャッシュサーバの[[{{PAGENAME}}]]に対する脆弱性を利用し、DNSキャッシュサーバに偽の[[IPアドレス]]の情報を覚えさせ、偽サイトへ誘導させる手口のことです。 | |
− | + | ||
− | + | ||
− | [[ | + | |
− | 読み方 | + | '''読み方''' |
− | ;[[ | + | ;[[DNSキャッシュポイズニング]]: でぃーえぬえす きゃっしゅ ぽいずにんぐ |
;DNS Cache Poisoning: でぃーえぬえす きゃっしゅ ぽいずにんぐ | ;DNS Cache Poisoning: でぃーえぬえす きゃっしゅ ぽいずにんぐ | ||
;DNS キャッシュ汚染: でぃーえぬえす きゃっしゅ おせん | ;DNS キャッシュ汚染: でぃーえぬえす きゃっしゅ おせん | ||
行12: | 行9: | ||
== 概要 == | == 概要 == | ||
− | |||
[[Domain Name System|DNS]] には、検索した[[IPアドレス]]を一定時間キャッシュする仕組みがあります。DNSキャッシュサーバがその役割を担っています。 | [[Domain Name System|DNS]] には、検索した[[IPアドレス]]を一定時間キャッシュする仕組みがあります。DNSキャッシュサーバがその役割を担っています。 | ||
行18: | 行14: | ||
[[DNSキャッシュポイズニング]]によって、偽の[[IPアドレス]]に誘導することにより、[[フィッシング]] などの脅威にさらされます。 | [[DNSキャッシュポイズニング]]によって、偽の[[IPアドレス]]に誘導することにより、[[フィッシング]] などの脅威にさらされます。 | ||
− | |||
== 脆弱性の有無の調べ方 == | == 脆弱性の有無の調べ方 == | ||
− | |||
[[DNSキャッシュポイズニング]] の脆弱性の確認方法は、下記を確認することです。 | [[DNSキャッシュポイズニング]] の脆弱性の確認方法は、下記を確認することです。 | ||
行28: | 行22: | ||
いずれかに該当する場合は、DNSサーバにパッチが適用されていない、もしくは、DNSサーバの設定に問題があります。 | いずれかに該当する場合は、DNSサーバにパッチが適用されていない、もしくは、DNSサーバの設定に問題があります。 | ||
− | |||
=== ポート番号のランダム化の確認 === | === ポート番号のランダム化の確認 === | ||
− | |||
DNS-OARC の porttest.dns-oarc.net を使用することで確認できます。 | DNS-OARC の porttest.dns-oarc.net を使用することで確認できます。 | ||
https://www.dns-oarc.net/oarc/services/porttest | https://www.dns-oarc.net/oarc/services/porttest | ||
行39: | 行31: | ||
GREAT と表示される場合には、問題ありません。 | GREAT と表示される場合には、問題ありません。 | ||
− | |||
=== IDのランダム化の確認 === | === IDのランダム化の確認 === | ||
− | |||
DNS-OARC の txidtest.dns-oarc.net を使用することで確認できます。 | DNS-OARC の txidtest.dns-oarc.net を使用することで確認できます。 | ||
https://www.dns-oarc.net/oarc/services/txidtest | https://www.dns-oarc.net/oarc/services/txidtest | ||
行50: | 行40: | ||
GREAT と表示される場合には、問題ありません。 | GREAT と表示される場合には、問題ありません。 | ||
− | |||
=== 再帰的な問い合わせの確認 === | === 再帰的な問い合わせの確認 === | ||
− | + | 利用しているDNSサーバが'''オープンリゾルバ'''になってないかを確認します。 | |
− | 利用しているDNSサーバが | + | |
ここでは、DNSサーバが ns1.google.com という前提で例を示します。 | ここでは、DNSサーバが ns1.google.com という前提で例を示します。 | ||
− | 答えがない、ということは、 | + | 答えがない、ということは、'''オープンリゾルバ'''ではない、ということです。 |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行100: | 行88: | ||
;; MSG SIZE rcvd: 45 | ;; MSG SIZE rcvd: 45 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== 影響を受けるシステム == | == 影響を受けるシステム == | ||
− | + | * BIND 8 | |
− | * | + | * BIND 9 |
− | * | + | |
* その他については、下記サイトを確認してください。 | * その他については、下記サイトを確認してください。 | ||
: JVNDB-2008-001495 複数の DNS 実装にキャッシュポイズニングの脆弱性 | : JVNDB-2008-001495 複数の DNS 実装にキャッシュポイズニングの脆弱性 | ||
: http://jvndb.jvn.jp/ja/contents/2008/JVNDB-2008-001495.html | : http://jvndb.jvn.jp/ja/contents/2008/JVNDB-2008-001495.html | ||
− | |||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[DNS偽装]] | * [[DNS偽装]] | ||
+ | <!-- vim: filetype=mediawiki | ||
+ | --> |
2015年9月22日 (火) 18:58時点における版
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
影響を受けるシステム
- BIND 8
- BIND 9
- その他については、下記サイトを確認してください。
- JVNDB-2008-001495 複数の DNS 実装にキャッシュポイズニングの脆弱性
- http://jvndb.jvn.jp/ja/contents/2008/JVNDB-2008-001495.html