目次
はじめに
今回も、応用情報技術者試験の過去問を解いていきます。
今回のテーマは、DNSキャッシュポイズニング攻撃です。
DNSは、Webサイトへアクセスするときなどに、ドメイン名から接続先を調べるために欠かせない仕組みです。
しかし、DNSサーバが誤った情報を記憶してしまうと、
正しいURLを入力したにもかかわらず、別のWebサイトへ誘導される
という問題が起こる可能性があります。
今回の問題では、DNSキャッシュポイズニングによって直接どのような現象が発生するのかを押さえることがポイントです。
問題
企業のDMZ上で1台のDNSサーバを、インターネット公開用と、社内のPC及びサーバからの名前解決の問合せに対応する社内用で共用している。
このDNSサーバが DNSキャッシュポイズニング攻撃 による被害を受けた結果、直接引き起こされ得る現象はどれか。
ア
DNSサーバのハードディスク上に定義されているDNSサーバ名が書き換わり、インターネットからDNSサーバに接続できなくなる。
イ
DNSサーバのメモリ上にワームが常駐し、DNS参照元に対して不正プログラムを送り込む。
ウ
社内の利用者がインターネット上の特定のWebサーバにアクセスしようとすると、本来とは異なるWebサーバに誘導される。
エ
社内の利用者間の電子メールについて、宛先メールアドレスが書き換えられ、送信ができなくなる。
解答
ウ
解説
DNSキャッシュポイズニングとは、
DNSサーバのキャッシュに偽のDNS情報を記憶させ、誤った名前解決を行わせる攻撃
です。
DNSサーバは、一度問い合わせた結果を一定時間キャッシュとして保存します。
そのため、同じドメイン名について再び問い合わせがあった場合、毎回外部のDNSサーバへ問い合わせなくても、保存している情報を利用できます。
正常な状態を単純化すると、次のようになります。
利用者PC
│
│ ① example.com の接続先を問い合わせ
▼
DNSキャッシュサーバ
│
│ ② 必要に応じて外部のDNSへ問い合わせ
▼
正しいDNS情報を取得
│
│ ③ 結果をキャッシュ
▼
利用者PCへ回答
※実際のDNS名前解決では、ルートDNSサーバ、TLD DNSサーバ、権威DNSサーバなどが関係します。ここでは試験対策として単純化しています。
ところが、DNSキャッシュポイズニングによって偽の情報がキャッシュされると、次のような状態になります。
利用者PC
│
│ example.com を問い合わせ
▼
DNSキャッシュサーバ
│
│ キャッシュされた偽情報を回答
▼
example.com
↓
攻撃者が意図した接続先
│
▼
本来とは異なるWebサーバ
利用者自身は、
https://example.com
という正しいURLを入力しているかもしれません。
しかしDNSサーバから誤った接続先を教えられることで、別のサーバへ通信してしまう可能性があります。
したがって、正解は
ウ:本来とは異なるWebサーバに誘導される
です。
各選択肢の解説
| 選択肢 | 内容 | 判定 | 理由 |
|---|---|---|---|
| ア | DNSサーバ上の設定情報が書き換えられる | × | DNSキャッシュポイズニングは、DNSサーバの設定ファイルそのものを書き換える攻撃ではありません |
| イ | ワームがDNSサーバに常駐する | × | マルウェア感染についての説明であり、DNSキャッシュポイズニングとは異なります |
| ウ | 本来とは異なるWebサーバへ誘導される | ○ | 誤ったDNS情報によって、利用者が誤った接続先へ誘導される典型的な現象です |
| エ | メールアドレスそのものが書き換えられる | × | DNSはメール配送にも関係しますが、DNSキャッシュポイズニングによって利用者が指定した宛先メールアドレスそのものが書き換えられるわけではありません |
ア:DNSサーバの設定ファイルが書き換わる
DNSキャッシュポイズニングで狙われるのは、基本的にDNSサーバが一時的に保持するキャッシュ情報です。
ハードディスク上の設定ファイルを書き換えることを意味するわけではありません。
したがって誤りです。
イ:DNSサーバにワームが常駐する
ワームとは、自ら増殖・拡散する性質をもつマルウェアの一種です。
DNSキャッシュポイズニングは、ワームをDNSサーバに感染させる攻撃ではありません。
したがって誤りです。
ウ:異なるWebサーバへ誘導される
これが正解です。
たとえば本来、
example.com
↓
正規Webサーバ
となるところを、偽のDNS情報によって、
example.com
↓
攻撃者が用意したWebサーバ
のように誘導される可能性があります。
エ:メールアドレスが書き換えられる
DNSは電子メールにも関係しています。
たとえばMXレコードは、あるドメイン宛てのメールをどのメールサーバへ配送するかを示します。
しかし、DNSキャッシュポイズニングによって、
user@example.com
のような利用者が指定したメールアドレスそのものが書き換えられるわけではありません。
そのため、この選択肢は誤りです。
問題の用語解説
DNS(Domain Name System)とは
DNSは、
ドメイン名に対応するIPアドレスなどの情報を管理・検索する仕組み
です。
Webサイトへアクセスするとき、人間は通常、
www.example.com
のようなドメイン名を利用します。
一方、ネットワーク上の通信ではIPアドレスなどの情報が必要になります。
そこでDNSが、
www.example.com
↓
対応するIPアドレス
という名前解決を行います。
DNSではIPアドレスだけでなく、さまざまな情報を扱います。
| レコード | 主な役割 |
| A | ホスト名とIPv4アドレスの対応 |
| AAAA | ホスト名とIPv6アドレスの対応 |
| CNAME | 別名を指定 |
| MX | メールサーバを指定 |
| NS | 権威DNSサーバを指定 |
つまり、DNSを単に
「ドメイン名をIPアドレスに変換する仕組み」
と覚えるだけでも試験対策上は役立ちますが、実際にはIPアドレス以外の情報も扱っています。
DNSキャッシュとは
DNSサーバは、一度取得したDNS情報を一定時間保存します。
これがDNSキャッシュです。
たとえば、
利用者A
↓
example.comを問い合わせ
↓
DNSサーバが外部へ問い合わせ
↓
結果を保存
した後、別の利用者から同じ問い合わせが来た場合、
利用者B
↓
example.comを問い合わせ
↓
DNSサーバ
↓
キャッシュから回答
と処理できます。
キャッシュを利用する主なメリットは、
- 名前解決を高速化できる
- 外部DNSサーバへの問い合わせ回数を減らせる
- ネットワークやDNSサーバの負荷を軽減できる
といった点です。
DNSキャッシュポイズニングとは
DNSキャッシュポイズニングは、
DNSキャッシュに偽のDNS情報を記憶させる攻撃
です。
「ポイズニング(poisoning)」は「毒を入れる」といった意味があります。
つまり、
正しいDNSキャッシュ
↓
偽情報を混ぜる
↓
汚染されたDNSキャッシュ
というイメージです。
キャッシュに偽情報が入ると、そのDNSサーバを利用している複数の利用者に対して、誤った名前解決結果が返される可能性があります。
DNSキャッシュポイズニングで何が起きるのか
重要なのは、
DNSキャッシュポイズニングそのものがWebサイトを改ざんするわけではない
という点です。
攻撃によって起きるのは、主に
正しいドメイン名
↓
誤った名前解決
↓
本来とは異なるサーバ
という現象です。
そこから二次的に、
| 起こり得る被害 | 内容 |
| 偽サイトへの誘導 | 本物とは異なるWebサーバへ接続する |
| フィッシング | 偽サイトでIDやパスワードを入力させられる可能性がある |
| マルウェア感染 | 悪意あるサイトを経由して不正プログラムを実行させられる可能性がある |
といった被害につながることがあります。
ただし、
フィッシングやマルウェア感染そのものがDNSキャッシュポイズニングではありません。
DNSキャッシュポイズニングによって接続先を変えられた結果として発生し得る、二次的な被害と考えると理解しやすいです。
体系的位置づけ
※以下は学習しやすくするための概念的な分類です。
情報セキュリティ
│
├─ ネットワークに関係する攻撃
│
├─ DNSを悪用する攻撃
│ │
│ ├─ DNSキャッシュポイズニング
│ │ └─ 誤った名前解決を行わせる
│ │
│ ├─ DNSリフレクション/増幅攻撃
│ │ └─ DDoS攻撃などに悪用
│ │
│ └─ DNSトンネリング
│ └─ DNS通信をデータ通信に悪用
│
└─ Webアプリケーションへの攻撃
│
├─ SQLインジェクション
├─ XSS
└─ CSRF
ここで重要なのは、
「DNSを使った攻撃=すべて偽サイトへ誘導する攻撃」ではない
ことです。
DNSキャッシュポイズニングは、DNSに関係する攻撃の中でも、
誤った名前解決を行わせる攻撃
として区別して覚えましょう。
今回の問題の重要ポイント
① 「キャッシュ」という言葉を見る
DNSキャッシュポイズニングの最大のキーワードは、
キャッシュ
です。
つまり、
DNSサーバが覚えている情報
↓
偽情報を混ぜる
という攻撃です。
② DNSキャッシュポイズニングは「名前解決を狂わせる」
試験問題では、
DNSキャッシュポイズニング → 誤った名前解決
と考えると解きやすくなります。
本来
example.com
↓
正規サーバ
攻撃後
example.com
↓
別のサーバ
この関係を覚えておきましょう。
③ 「直接引き起こされる現象」を考える
今回の問題文では、
直接引き起こされ得る現象
と聞かれています。
ここも重要です。
DNSキャッシュポイズニングによって直接起こるのは、
誤ったDNS情報による、誤った接続先への誘導
です。
その後に、
偽サイトへの誘導
↓
フィッシング
↓
パスワード漏えい
などが起こる可能性はありますが、それらは二次的な被害です。
試験問題では、
攻撃そのものが何を変更・操作するのか
を考えると選択肢を絞りやすくなります。
覚え方
DNSキャッシュポイズニングは、次の一言で覚えておくと便利です。
「DNSの記憶にウソを覚えさせる攻撃」
DNSサーバがウソを覚えてしまうと、
利用者
↓
DNSに質問
↓
DNSがウソを回答
↓
違うサーバへ
となります。
「自分は正しいURLを入力したのに、案内役であるDNSが間違った道を教えてくる」
と考えるとイメージしやすいでしょう。
まとめ
DNSキャッシュポイズニングは、
DNSサーバのキャッシュに偽のDNS情報を記憶させ、誤った名前解決を行わせる攻撃
です。
今回の重要ポイントをまとめると、
- DNSはドメイン名に対応するIPアドレスなどの情報を扱う
- DNSサーバは名前解決の結果をキャッシュする
- DNSキャッシュポイズニングでは偽のDNS情報をキャッシュさせる
- その結果、本来とは異なるサーバへ利用者が誘導される可能性がある
- フィッシングやマルウェア感染は、その後に起こり得る二次的被害
- DNSに関係する攻撃すべてが通信誘導を目的としているわけではない
という点を押さえておきましょう。
したがって今回の正解は、
ウ:社内の利用者がインターネット上の特定のWebサーバにアクセスしようとすると、本来とは異なるWebサーバに誘導される
となります。

コメント