フルサービスリゾルバ
利用者に代わってドメイン名に対応するIPアドレスなどの情報を調べ、結果をキャッシュして再利用するDNSサーバ。必要に応じて権威DNSサーバへ問い合わせ、得た答えを利用者へ返す。
イマシルちゃんの解説
Webサイトへ接続するときは、ドメイン名に対応するIPアドレスを調べる必要があるよ。
この調査をパソコンに代わって引き受けるDNSサーバが、フルサービスリゾルバなんだ。
手元の保存情報で答えられなければ、ドメインの情報を管理する権威DNSサーバをたどって答えを探すよ。
調べた結果は、決められた期間だけ保存する「キャッシュ」で再利用するんだ。
同じ情報を求められたら毎回調べ直さずに答えられるから、待ち時間や問合せの回数を減らせるんだよ。
この解説はわかりやすかったですか?
より深い解説
定義
フルサービスリゾルバは、スタブリゾルバ(PCなど)からの再帰的問合せを受け付け、ルートサーバから順に権威DNSサーバへ反復問合せを行って答えを得て、利用者に返すDNSサーバである。得た答えはTTLの間キャッシュし、同じ問合せには問い合わせ直さずに答える。
プロバイダや企業のネットワーク内に置かれるほか、誰でも使えるパブリックDNSサービスもある。
オープンリゾルバの問題
インターネット上の誰からの再帰的問合せにも答えてしまうフルサービスリゾルバを、オープンリゾルバという。オープンリゾルバは、次のような攻撃に悪用される。
対策として、再帰的問合せを受け付ける相手を、自組織のネットワークの利用者に限定する。
キャッシュポイズニング
フルサービスリゾルバに偽の応答を受け取らせ、誤った情報をキャッシュさせる攻撃である。キャッシュされている間、そのフルサービスリゾルバを使う全利用者が偽のサイトに誘導される。
| 対策 | 内容 |
|---|---|
| 送信元ポート番号のランダム化 | 問合せごとに送信元ポート番号を変え、偽の応答を当てにくくする |
| IDのランダム化 | 問合せのIDを予測しにくくする |
| DNSSECの検証 | 応答の署名を検証し、偽の応答を見破る |
| 不要な問合せを受けない | オープンリゾルバにしない |
権威DNSサーバとの比較
| フルサービスリゾルバ | 権威DNSサーバ | |
|---|---|---|
| 答える内容 | 調べた結果(他人のゾーンの情報) | 自分が管理するゾーンの情報 |
| 問合せを受ける相手 | 自組織の利用者に限る | インターネット全体 |
| キャッシュ | する | 基本的にしない |
同じ機器で複数の役割を持つ場合
DNSキャッシュポイズニングは、問い合わせで得た結果を保存する部分に偽情報を入れさせる攻撃である。一台のサーバが権威機能と再帰検索機能を兼ねる場合も、管理するゾーンのデータと、外部から得たキャッシュを区別する。
社内利用者向けのキャッシュに偽の宛先が入ると、その情報を使う利用者が誤った接続先へ誘導され得る。一方、キャッシュが汚染されたことだけで、自社ゾーンの登録内容そのものが書き換わったと判断してはいけない。ゾーンデータの改ざんは、別の侵害として調べる必要がある。
公開用の権威機能と社内向けの再帰検索機能は役割を分け、後者を利用できる相手を制限する。機能を別サーバへ分離する場合でも、各々の設定や更新、DNSSECの検証などの対策を組み合わせる。