What is DNS caching?

DNSポイズニングの仕組みを説明する前に、DNSの仕組みを思い出してください。 ブラウザがドメイン名に接触するたびに、最初に DNS サーバーに接触する必要があります。 ドメイン名サーバー (DNS) は、インターネットにおける電話帳のようなものです。 ドメイン名のディレクトリを維持し、それらをインターネットプロトコル(IP)アドレスに変換します。

これは、ドメイン名は人々が覚えやすいものの、コンピュータまたはマシンがIPアドレスに基づいてWebサイトにアクセスするために必要です。

図 1: DNS 機能。 出典 The SSL Store

サーバーは、あなたのコンピュータがドメイン名に到達するために、少なくとも一つのIPアドレス(通常はもっと多い)を応答します。 コンピュータがIPアドレスに接続すると、DNSはドメイン名をコンピュータが読み取れるIPアドレスに変換します。

現在、インターネット サービス プロバイダは複数のDNSサーバーを実行しており、それぞれが他のサーバーからの情報もキャッシュ(または保存)しています。 自宅の Wi-Fi ルーターも、ISP のサーバーからの情報をキャッシュしているので、基本的に DNS サーバーのように動作します。

How DNS Poisoning Works

DNS キャッシュは、サーバーが不正なエントリを受信すると「汚染」されます。 たとえば、ハッカーが DNS サーバーを制御して、その情報を変更し、DNS サーバーが間違ったアドレスで特定の Web サイトを検索するように情報を変更することがあります。 言い換えれば、ユーザーは正しい Web サイト名を入力しても、間違った IP アドレス、特にフィッシング Web サイトに送られることになります。

図 2: DNS ポイズニングの仕組み。 出典: imperva.com

DNS キャッシュ ポイズニングのコードは、スパム電子メールで送信された URL に含まれていることがよくあります。 これらの電子メールは、ユーザーを怖がらせて、提供された URL をクリックさせようとし、その結果、ユーザーのコンピュータを感染させます。 また、電子メールや信頼できないWebサイトのバナー広告や画像も、このコードにユーザーを誘導することができます。 いったん毒されると、ユーザーのコンピュータは、本物に見せかけた偽の Web サイトに移動し、スパイウェア、キーロガー、ワームなどの危険にさらされます。

リスク

DNS ポイズニングは、ある DNS サーバーから次のサーバーにすばやく広がるため、非常に危険です。 これは、複数のインターネット サービス プロバイダーが、ハッカーが管理するサーバーから DNS 情報を受信している場合に実現され、その結果、「毒された」DNS エントリがこれらの ISP に広がり、キャッシュされるようになります。 その時点から、他の DNS サーバーや家庭用ルーターだけでなく、コンピューターにも広がり、結果として、より多くの人がポイズニングの犠牲になります。

DNS ポイズニングは、データの盗難を始めとするいくつかのリスクを伴います。 銀行の Web サイトや人気のあるオンライン小売業者は簡単になりすましができ、パスワードやクレジットカード、個人情報が危険にさらされる可能性があることを意味します。 また、偽装されたサイトにインターネット セキュリティ プロバイダーが含まれている場合、正当なセキュリティ更新が行われないため、ユーザーのコンピューターがウイルスやトロイの木馬などのさらなる脅威にさらされる可能性があります。 その最良の方法は、攻撃の可能性を示す指標について DNS サーバーを監視することです。 DNS監視にデータセキュリティ分析を適用することで、攻撃から正常なDNS動作を識別することができます。 たとえば、

  • 1つのドメインに関する1つのソースからのDNSアクティビティが突然増加した場合、Birthday攻撃の可能性を示します。
  • 再帰なしで複数のドメイン名についてDNSサーバーにクエリしている単一のソースからのDNSアクティビティの増加は、毒殺に使うためのエントリを探そうとする試みを示します。
DNS ポイズニングから保護する方法

DNS ポイズニングの厄介な側面の 1 つは、受け取った DNS 応答が正当かどうかを判断することが困難な点です。 幸いなことに、このような攻撃を防ぐために、組織が講じることができる対策がいくつかあります。

たとえば、DNS サーバーを、他の DNS サーバーとの関係にほとんど依存しないように構成することが挙げられます。 これにより、サイバー犯罪者がその DNS サーバーを使用してターゲットを不正に操作することが非常に難しくなります。 つまり、自分の DNS サーバーが破損する可能性が低く、したがって、自分 (および組織内の全員) が不正な Web サイトにリダイレクトされる可能性も低くなります。

DNS サーバーを構成して、要求したドメインに特に関連するデータのみを保存し、要求したドメインに関する情報のみを提供するクエリー応答を限定することも可能です。 このアイデアは、必要なサービスだけが実行を許可されるように、サーバーを設定することです。 DNS サーバーで実行する必要のないサービスを追加することにより、攻撃が起こる確率が非常に高くなります。

また、DNS の最新バージョンが利用されていることを確認する必要があります。 これは、最新バージョンでは、ポイズニング攻撃に対する防御に役立つ、ポートのランダム化や暗号的に安全なトランザクション ID などのセキュリティ機能を使用しているからです。

DNS ポイズニングから守るためにできる最も重要なことは、おそらく DNSSec の使用であり、これは DNS キャッシュ ポイズニングを回避するために重要です。 この標準は、この種の攻撃を防ぐために特別に設計された機能により、近年強化されています。 エンド ユーザーがサイトにアクセスしようとするときはいつでも、ルート ドメインを検証します (「ルートへの署名」と呼ばれます)。

DNS キャッシュ ポイズニングに対するもうひとつの重要な防御策は、ブラウザのアドレス バーで企業名を確認することです。 これは、そのサイトが SSL/TLS 証明書を使用していることを意味します。 これにより、ハッカーの Web サイトに個人情報を入力すべきではないことを認識するため、注意深い人々がポイズニング攻撃の犠牲になることを防ぐことができます。

結論

要約すると、DNS ポイズニングとは、攻撃者が DNS サーバーを悪用して、正当なサーバーにキャッシュされるような偽造 DNS 応答を送信することを指します。 その後、破損したドメインにアクセスしたユーザーは、ハッカーが管理する新しいIPアドレスに送られます。このアドレスは通常、悪質なフィッシングサイトで、被害者はマルウェアをダウンロードさせられたり、ログイン情報や金銭情報を送信させられたりすることになります。 上記の手順を踏むことで、DNSポイズニング攻撃から組織を守ることができます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です