DNSキャッシュポイズニングはどの攻撃か、手口で見分ける
情報セキュリティマネジメント試験 平成31年度春期 午前 問10 / セキュリティ › 情報セキュリティ
過去問にチャレンジ
DNSキャッシュポイズニングに該当するものはどれか。
- ア
HTMLメールの本文にリンクを設定し,表示文字列は,有名企業のDNSサーバに登録されているドメイン名を含むものにして,実際のリンク先は攻撃者のWebサイトに設定した上で,攻撃対象に送り,リンク先を開かせる。
- イ
PCが問合せを行うDNSキャッシュサーバに偽のDNS応答を送ることによって,偽のドメイン情報を注入する。
- ウ
Unicodeを使って偽装したドメイン名をDNSサーバに登録しておき,さらに,そのドメインを含む情報をインターネット検索結果の上位に表示させる。
- エ
WHOISデータベースサービスを提供するサーバをDoS攻撃して,WHOISデータベースにあるドメインのDNS情報を参照できないようにする。
会話形式の解説
講師今回は、DNSキャッシュポイズニングがどんな攻撃かを問う問題です。選択肢はどれも偽サイトやドメインに関係しているので、何を攻撃しているのか、どんな手段なのかに注目して見ていきましょう。
受験者どの選択肢もDNSやドメインという言葉が出てくるので、全部それらしく見えて迷いました。
講師まず名前から考えてみましょう。「キャッシュ」は一時的に記憶しておくこと、「ポイズニング」は汚染という意味です。DNSは、ドメイン名をIPアドレスなどに変換する名前解決の仕組みでした。
受験者つまり、DNSキャッシュサーバが記憶している名前解決の情報を、偽物に書き換える攻撃ということですか。
講師そのとおりです。攻撃者は正規の応答より先に偽のDNS応答を送り込み、キャッシュに登録させます。PCが問い合わせるDNSキャッシュサーバに偽の応答を送って、偽のドメイン情報を注入するという選択肢が、まさにこの説明です。
受験者汚染されると、利用者にはどんな影響があるのでしょうか。
講師キャッシュが残っている間は、そのサーバを使う利用者の名前解決に偽の情報が使われます。その結果、正しいドメイン名を入力しても偽サイトなどへ誘導されてしまいます。
受験者HTMLメールのリンクで偽サイトに誘導する選択肢も、偽サイトに連れていく点は同じに見えます。
講師そこが引っかけです。HTMLメールでは、画面に見える文字列と実際のリンク先を別々に指定できます。それを使って利用者をだます手口はフィッシングです。利用者をだまして誘導するだけで、DNSキャッシュサーバの情報には手を加えていません。
受験者Unicodeで偽装したドメイン名を登録する選択肢も、DNSサーバへの登録が出てくるので迷いました。
講師これは国際化ドメイン名を悪用して見た目を似せるホモグラフ攻撃と、検索エンジンの悪用を組み合わせた手口です。攻撃者が自分でドメインを登録しただけで、DNSキャッシュに偽の応答を入れてはいません。
受験者WHOISサーバへのDoS攻撃はどうでしょう。DNS情報を参照できなくするとあるので、DNSに影響しそうに思えます。
講師WHOISは、ドメインの登録者情報などを調べるためのサービスです。名前解決そのものはDNSサーバが担っているので、WHOISを止めてもDNSのレコードやキャッシュが汚染されることはありません。
受験者攻撃の対象がDNSキャッシュサーバで、手段が偽の応答の注入かどうかを確かめれば、見分けられるということですね。
講師はい、その二点が判断の基準です。あわせて対策も押さえておきましょう。DNSの応答に電子署名を付けて正当性を検証できるようにするDNSSECが代表的です。問い合わせのソースポート番号やクエリIDをランダムにして、偽の応答を当てにくくする方法もあります。フィッシングやホモグラフ攻撃も偽サイトへ誘導しますが、DNSの仕組みを汚染するわけではない点で区別してください。
まとめ
DNSキャッシュポイズニングは、DNSキャッシュサーバに偽のDNS応答を送り込み、偽の名前解決情報を記憶させる攻撃です。キャッシュが残っている間、そのサーバを使う利用者は正しいドメイン名を入力しても偽サイトへ誘導されます。HTMLメールのリンク偽装はフィッシング、Unicodeで見た目を似せたドメインはホモグラフ攻撃で、どちらもDNSキャッシュを汚染してはいません。WHOISへのDoS攻撃も名前解決の情報を書き換えるものではありません。対策には、DNS応答に電子署名を付けるDNSSECや、ソースポート番号・クエリIDのランダム化があります。
解答・解説
正解はイです
この問題のテーマ
DNSキャッシュポイズニングがどのような攻撃かを理解し、フィッシングなど名前が似た攻撃の手口と区別できるかを問う問題です。
解き方の考え方
まず「キャッシュ」と「ポイズニング(汚染)」という名前に注目します。DNSキャッシュサーバが一時的に記憶している名前解決の情報を、偽の情報に書き換える攻撃だと見当がつきます。そのうえで、各選択肢の攻撃対象がDNSキャッシュサーバかどうか、偽の情報をそこへ注入しているかどうかを確認すれば、正解を一つに絞れます。
選択肢ごとの解説
- ×ア HTMLメールの本文にリンクを設定し,表示文字列は,有名企業のDNSサーバに登録されているドメイン名を含むものにして,実際のリンク先は攻撃者のWebサイトに設定した上で,攻撃対象に送り,リンク先を開かせる。HTMLメールで表示文字列と実際のリンク先を変えて偽サイトへ誘導する説明は、フィッシングの手口です。HTMLメールでは、画面に見える文字列とリンク先を別々に指定できます。利用者をだまして誘導するだけで、DNSキャッシュサーバの情報には手を加えていません。
- ○イ PCが問合せを行うDNSキャッシュサーバに偽のDNS応答を送ることによって,偽のドメイン情報を注入する。PCが問い合わせるDNSキャッシュサーバに偽のDNS応答を送り、偽のドメイン情報を注入する説明は、DNSキャッシュポイズニングそのものです。汚染されたキャッシュは、そのサーバを使う利用者全員の名前解決に使われます。その結果、利用者は正しいドメイン名を入力しても偽サイトなどへ誘導されてしまいます。
- ×ウ Unicodeを使って偽装したドメイン名をDNSサーバに登録しておき,さらに,そのドメインを含む情報をインターネット検索結果の上位に表示させる。Unicodeで見た目を似せたドメイン名を登録し、検索結果の上位に表示させる説明は、国際化ドメイン名を悪用したホモグラフ攻撃と、検索エンジンの悪用を組み合わせた手口です。偽のドメインは攻撃者が正規の手続きで登録したもので、DNSキャッシュに偽の応答を入れてはいません。
- ×エ WHOISデータベースサービスを提供するサーバをDoS攻撃して,WHOISデータベースにあるドメインのDNS情報を参照できないようにする。WHOISサーバへのDoS攻撃の説明は、DNSキャッシュポイズニングには当たりません。WHOISはドメインの登録者情報などを調べるためのサービスです。名前解決そのものはDNSサーバが担うので、WHOISを止めてもDNSのレコードやキャッシュが汚染されることはありません。
補足
代表的な対策として、DNSの応答に電子署名を付けて正当性を検証できるようにするDNSSECがあります。また、問い合わせのソースポート番号やクエリIDをランダムにして、偽の応答を当てにくくする方法もあります。フィッシングやホモグラフ攻撃も偽サイトへ誘導する点は同じですが、DNSの仕組みを汚染するわけではないので区別しましょう。
POINT
- DNSキャッシュポイズニングは、DNSキャッシュサーバに偽の名前解決情報を記憶させる攻撃です。
- 攻撃者は、正規の応答より先に偽のDNS応答を送り込み、キャッシュに登録させます。
- 汚染されたキャッシュを使う利用者は、正しいドメイン名を指定しても偽サイトへ誘導されます。
- 見分けるときは、攻撃の対象が「DNSキャッシュサーバ」で、手段が「偽の応答の注入」かどうかを確認します。
