IT/技術ネタ備忘録

情報処理技術者試/書籍/Microsoft関連情報他、技術系全般の備忘録。

セキュリティ関連技術-DNS

DNSのセキュリティ関連技術まとめ(情報処理安全確保支援士等で頻出)

 

【前提知識】

「Domain Name System」の略。 インターネットに接続されたコンピュータの情報(ドメイン名とIPアドレスの対応など)を提供する仕組み

DNSによる名前解決より、hostsファイルによる名前解決が優先される。

 

DNSキャッシュ

各問い合わせの結果をローカルに保存しておき、後で同じ問い合わせがあった場合にその内容を再利用することで、再度問い合わせを行わずに済むようにする。(ルートへの多量のアクセスを防ぐ)

DNSでは「どのくらいの期間までキャッシュとして利用してよいか」という、TTL(Time To Live)と呼ばれるパラメータが、それぞれのデータ(レコード)に設定されている。

キャッシュサーバが外部ドメイン名の検索を行うのに対し、コンテンツサーバは独自のドメインを管理する。

 

○BIND

Berkeley Internet Name Domain。

DNSサービスのためのプログラム。

Internet上の多くのDNSサーバで、BINDが使用されている。

 

○リゾル

自分のキャッシュにそのホスト名が存在すれば対応するIPアドレスを返す。

キャッシュにない場合には、権威DNSサーバと呼ばれる、世界中のドメインIPアドレスの対応表を持つサーバ(実体は1つのサーバではなく複数サーバのツリー構造になっている)に問い合わせる。

 

○オープンリゾル

DNSの名前解決を行うサーバやネットワーク機器などのうち、 不特定のクライアントからのDNS の問い合わせについて、 最終的な答えが得られるまで繰り返し問い合わせを行う再帰的な名前解決を行い、 結果を回答するDNSサーバ。

 

DNSレコード

DNSにおいて情報を指定する形式、 または指定された情報を「DNSレコード」と呼ぶ。 DNSレコードには、 A・AAAA・CNAME・MX・NS・PTRなど多くの種類がある。

 

○MXレコード

MXは「Mail eXchanger」の略。 MXレコードは、 ドメイン名と電子メールの配送先を対応づけるDNSレコード。

 

DNSの攻撃】

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

キャッシュサーバに偽のDNS情報を送り込むことで、攻撃者のサーバにアクセスさせたり、キャッシュサーバの機能を停止させる。

DNSスプーフィングの代表例がキャッシュポイズニング攻撃。

 

カミンスキー攻撃

キャッシュポイズニング攻撃の一種。

キャッシュサーバに対して、ドメインは実在するが、存在しないホスト名で問い合わせることで、キャッシュサーバから権威DNSサーバに強制的に問い合わせをさせるという攻撃。

キャッシュのTTLを長くしても強制的に問い合わせが発生するため、繰り返し攻撃すれば成りすましに成功する確率が高まる。

 

DNSリフレクション攻撃

DNSを用いたDoS (Denial of Service)攻撃。

DNSへの問い合わせメッセージ中にある送信元IPアドレスを、 本来の送信元ではなく攻撃対象ホストのIPアドレスに偽装し、 踏み台となる(攻撃対象とは異なる)DNSサーバに問い合わせを送る。

受け取った踏み台サーバは、回答先として攻撃者ではなく、DNSメッセージ中のIPアドレス、 つまり攻撃対象のホストに対して回答を送信する。

こうすることで、攻撃者は自分のホストからではなく、 踏み台を経由して攻撃対象にDNSメッセージを送る。

 

DNS増幅(アンプ)攻撃

DNS amplification attack

DNSではプロトコルの性質上、 メッセージのサイズは問い合わせよりも回答の方が大きくなりやすいため、 攻撃者の利用できる帯域よりも大量のトラフィックを、 攻撃対象に対し集中させる。

 

オープンリゾルバはDNSDos攻撃の踏み台に使われやすい。

 

【対策】

○DNSSEC

Domain Name System Security Extensions。

DNSで提供する情報に電子署名を付加し、 DNSを使って得られた情報と発信元にある情報との同一性を保証する。

データの偽装を検知し、DNSキャッシュポイズニングを防ぐ。

 

○パケットフィルタ等で問い合わせ可能なホストを限定する。

 

○キャッシュサーバとコンテンツサーバを分散

コンテンツサーバは外部に公開する必要がありるが、キャッシュサーバを外部公開する必要はないため。キャッシュ改ざん等の危険な攻撃に対して有効な対策になる。