DNSスプーフィングとは?
ドメインネームシステム(DNS)を狙ったフィッシングやスプーフィングは、DNSサーバの脆弱性を突いて正規サーバから偽サーバへとトラフィックを誘導するサイバー攻撃の一種です。偽サイトに接続してしまった場合、その判別が難しいことがあります。仕組みを正確に理解する必要があります。
DNSフィッシングやDNSキャッシュポイズニングは、最も巧妙なサイバー脅威のひとつです。ウェブがどのように貴社をサイトに接続しているかが見えにくいため、サイト自体が攻撃されていると誤解されることがあります。場合によっては、単にPCの問題であることもあります。さらに、ファイアウォールスイートではDNSスプーフィングに関する脅威の一部しか防げないこともあります。
ウェブは多数のPCから成り立っています。ウェブに接続される各機器には、他のPCが識別できる特別なIPアドレスが割り当てられます。
このIPアドレスは、192.124.249.166 のようにピリオドで区切られた数字の列です。
もし主要なサイトにアクセスするために、このような長い数字の並びを覚える必要があったらどうでしょう。覚えにくく、ブラウザに入力してもサイトの内容は分かりません。
この問題を解決するため、文字の組み合わせを用いて、覚えやすい名前をサイトに付ける仕組みが考案されました。
DNS、すなわちドメインネームシステムは、ドメイン名をIPアドレスに変換し、貴社の機器に正しく案内します。ドメイン名とそれに対応するIPアドレスは「DNSレコード」と呼ばれます。以下は、DNSが4段階でどのように動作するかを示す簡単な流れです。
貴社のPCのDNSキャッシュにDNSレコードが存在すれば、残りのDNS問い合わせは省略され、www.wpbeginner.com へ直接接続されます。
DNSキャッシュ枯渇攻撃は、ISPのDNSインフラを麻痺させ、ISPの利用者がインターネット上のサイトにアクセスできなくする恐れがあります。攻撃者はドメイン名を登録し、被害者のネームサーバをそのドメインの正式なネームサーバとして利用することでこれを実現します。つまり、リカーシブリゾルバがドメインに対応するIPアドレスを取得できない場合、被害者のネームサーバへ問い合わせが行われるのです。攻撃者は自ドメインに対して大量の問い合わせを送り、さらに多数の偽のサブドメインを付加することで、被害者のネームサーバに膨大なリクエストが殺到し、サーバが圧倒されます。
DNSキャッシュポイズニングは、クライアント側で行われるDNSスプーフィングの手法の一つで、システムが誤ったIPアドレスをローカルキャッシュに記録してしまいます。これにより、サーバ側に問題がなくとも、DNSが悪意あるサイトを解決してしまいます。
キャッシュを介して、攻撃者はDNSに偽のDNSレコードを挿入しようと試みます。サーバがその偽レコードを認識するとキャッシュが汚染され、その後の問い合わせには攻撃者が管理するサーバのアドレスで応答されます。偽のエントリーがサーバに残る期間(通常、TTLは2〜3時間)中は、利用者のブラウザやメールサーバが最終的に汚染されたDNSサーバのアドレスへ接続されることになります。(DNSキャッシュポイズニングの仕組みについては、スライドショーもご参照ください。)
DNSスプーフィング攻撃にはさまざまな手法があり、その中でも一般的なものを以下に示します。
攻撃者が貴社のブラウザとDNSサーバの間に割り込み、両者に干渉する方法です。ローカルPCでのキャッシュポイズニングとDNSサーバでのサーバポイズニングが同時に行われ、その結果、攻撃者自身のサーバにホストされた悪意あるサイトへリダイレクトされます。
攻撃者がサーバの設定を直接変更し、すべての問い合わせを悪意あるサイトへ誘導する手法です。一度偽のDNSレコードがDNSサーバに注入されると、そのドメインへのIP問い合わせは偽サイトのアドレスで応答されます。
DNSキャッシュポイズニングのコードは通常、スパムメールで送られるURLに埋め込まれています。これらのメールは、リンクをクリックさせることでPCを汚染しようと試みます。一般的な広告や画像(メールや偽サイト内)も、このコードへ誘導する場合があります。感染が広がると、PCは本物に似せた偽サイトへ案内し、実際の危険が潜むことになります。
DNSスプーフィングを防ぐ際、エンドポイント側のセキュリティ対策は限定的です。サイト運営者やサーバ提供者は、より対策を講じやすい立場にあります。皆を守るため、双方とも偽装を避ける努力が必要です。
サイト運営者およびDNSサーバ提供者向けの予防策
エンドポイントのセキュリティ対策として、これらのツールは送信前にすべてのデータを積極的に検証します。
いわゆる「検証済みセキュア」なDNSという考え方で、DNSSECフレームワークはDNS問い合わせが改ざんされず正当なものであることを維持するのに役立ちます。
DNS問い合わせおよび応答時に暗号化されたデータは、ハッカーが本物サイトの固有セキュリティ情報を盗み出すのを防ぎます。
エンドポイント利用者向けの予防策
ユーザーはDNSポイズニング攻撃の被害に遭いやすいため、以下の簡単なポイントを守ると良いでしょう:
メール、インスタントメッセージ、SNSでのリンクなどが該当します。URL短縮サービスはリンク先の判別を難しくする場合があるため、できるだけ避けるのが望ましいです。より安全を期すには、アドレスバーへ直接URLを入力する方法が推奨されます。ただし、正確で本物であると確認できた場合に限ります。
DNSキャッシュポイズニングの検出は難しい場合もありますが、セキュリティソフトは他の感染を検出・除去するのに役立ちます。偽サイトには様々な悪質なプログラムが仕込まれている可能性があるため、ウイルス、スパイウェア、その他の脅威について常にチェックすることが重要です。また、マルウェアが偽装を行うケースもあるため、ウェブ版ではなくローカルのプログラムを用いることが望ましいです。
キャッシュポイズニングは、汚染されたデータがフラッシュされない限り長時間システム内に残ります。Windowsでは「ファイル名を指定して実行」で「ipconfig/flushdns」と入力するだけで実行可能です。Mac、iOS、Androidにもキャッシュフラッシュの機能があり、通常は「ネットワーク設定のリセット」や機内モードの切替、システム再起動、または特定のローカルブラウザのURLから実行できます。各機器の説明書を参照してください。
これらのサービスは、すべてのウェブトラフィックのために暗号化されたトンネルを提供し、エンドツーエンド暗号化のみをサポートする専用DNSサーバを使用します。その結果、DNSスプーフィングに対して格段に強いサーバが利用でき、問い合わせが改ざんされることを防ぎます。
最新情報を購読