How Hackers Spoof DNS Requests With DNS Cache Poisoning
ドメイン名サーバー(DNS)の偽装は、正しいウェブサイトにアクセスしているようにコンピューターをだますサイバー攻撃ですが、実際はそうではありません。 攻撃者は、DNS キャッシュ ポイズニングを使用して、インターネット トラフィックをハイジャックし、ユーザー認証や個人データを盗みます。
DNS キャッシュ ポイズニングと DNS スプーフィングとは同義であり、しばしば同じ意味で使用されます。 しかし、正確に言うと、これらは同じサイバー攻撃の「方法」と「内容」であると考えることができます。 ハッカーは、ユーザーを騙して、安全でないウェブサイトに個人データを入力させようとします。 どのようにするのか? DNSキャッシュを汚染するのです。 ハッカーが行っているのは、特定のウェブサイトのDNSデータを偽装または置換して、正規のウェブサーバーではなく、ハッカーのサーバーにリダイレクトさせることです。
Get the Free Pen Testing Active Directory Environments EBook
Varonis は、DNS を監視し、ユーザーのアクティビティに異常な動作を検出することで、DNS キャッシュポイズニング攻撃を検出できます。
- DNS スプーフィングとキャッシュポイズニングとは?
- DNS キャッシュポイズニング攻撃はどのように行われるのか?
- DNS キャッシュ ポイズニングを検出する方法
- DNS キャッシュ ポイズニングから保護する方法
- DNS スプーフィング FAQ
DNS スプーフィングとキャッシュ ポイズニングとは何か
攻撃について話す前に、DNS と DNS キャッシュとは何かを再確認しておく必要があります。 DNS は、IP アドレスとドメイン名に関する世界的なカタログです。 インターネットの電話帳のようなものだと考えてください。 DNS は、Varonis.com のようなエンドユーザー向けの URL を、コンピュータがネットワーク接続に使用する 192.168.1.169 などの IP アドレスに変換します。
DNS キャッシュは、世界中の DNS サーバーにこれらのアドレスを格納するシステムです。 DNSリクエストを迅速に行うために、オリジナルの開発者は分散DNSシステムを作りました。 各サーバーは、それが知っている DNS レコードのリストを保存します – これはキャッシュと呼ばれます。 最も近いDNSサーバーが必要なIPアドレスを知らない場合、他の上流のDNSサーバーに問い合わせて、アクセスしようとしているWebサイトのIPアドレスを見つけます。 DNS サーバーは、その新しいエントリをキャッシュに保存して、応答時間を短縮します。
DNS キャッシュ ポイズニングの例と効果
DNS は、現代のインターネットを管理するようにはまったく設計されていません。 長年にわたって改善されてきましたが、ある誤った設定の DNS サーバーが、中国のサーバーから DNS エントリを取得すると、突然、誰も Facebook にアクセスできなくなります。 この事件は、私たちがいかにDNSに依存しているかを示しています。
WikiLeaks もまた、DNS キャッシュ ポイズニング攻撃を使用して、トラフィックを自分たちの WikiLeaks に似たバージョンにハイジャックする攻撃者によって標的にされました。 これは、WikiLeaksからトラフィックを遠ざけるために意図的に行われた攻撃で、ある程度の成功を収めました。
DNS キャッシュ ポイズニング攻撃は、一般人にとっては卑劣で捕まりにくいものです。 DNS は現在、信頼第一のシステムであり、それゆえに簡単に利用することができるのです。 人間は DNS を完璧に信頼し、ブラウザに表示されるアドレスが期待したものであるかどうかを実際に確認することはありません。 攻撃者は、この自己満足と不注意を利用して、クレデンシャルやそれ以上のものを盗みます。
DNS キャッシュ ポイズニング攻撃はどのように機能するか
最も近い DNS サーバーに、通常は攻撃者がコントロールする間違ったアドレスに送信するエントリがある場合、DNS キャッシュ ポイズニングが起こります。 ここでは、攻撃者が DNS キャッシュを汚染するために使用するいくつかの異なるテクニックを紹介します。
Hijacking the Local Network With ARP Spoofing
ローカル ネットワークは、驚くほど脆弱なターゲットになることがあります。 多くの管理者は、これをロックダウンしていると思うでしょうが、悪魔は細部に宿るものなのです。 よくある問題の1つは、在宅勤務の従業員です。 彼らのWi-Fiは安全ですか? ハッカーは、脆弱なWi-Fiパスワードを数時間で解読することができます。 もうひとつは、廊下や公共ロビーにあるオープンなイーサネットポートの露出です。 ロビーで待っている人が、ロビーのディスプレイ用のイーサネット ケーブルに接続することを想像してみてください。
これらの状況において、ハッカーがローカル ネットワークへのアクセスをどのように利用できる可能性があるか見てみましょう。 そして、このサイトをネットワーク上のローカルまたはリモート サーバーに、1 行の Python コードでホストします。
そこから、ハッカーは Betterrcap などのツールを使用して、ネットワークの監視を開始できます。 この段階では、ターゲット ネットワークをマッピングして調査していますが、トラフィックはまだルーターを流れています。
次に、ハッカーは ARP スプーフィングを使用して、ネットワークを内部的に再構築します。 ARP(アドレス解決プロトコル)は、ネットワーク上のデバイスが、デバイスの MAC アドレスをネットワーク上の IP アドレスに関連付けるために使用されます。 ベターキャップは、ハッカーのコンピューターがルーターであることをネットワーク上のすべてのデバイスに伝えるARPメッセージを送信します。 これにより、ハッカーはルーターに向かうすべてのネットワークトラフィックを傍受できます。
いったんすべてのトラフィックがハッカーのコンピュータを介して再ルーティングされると、ハッカーはBettercapのDNSスプーフィングモジュールを実行することができます。 これは、ターゲットとなるドメインへのあらゆるリクエストを探し、偽の応答を被害者に送り返すものです。 偽のリクエストには、ハッカーのコンピュータのIPアドレスが含まれており、ターゲットウェブサイトへのあらゆるリクエストをハッカーがホストするフィッシングページにリダイレクトします。
さて、ハッカーは、ネットワーク上の他のデバイスに向けられたトラフィックを見て、あらゆるウェブサイトへのリクエストをリダイレクトすることができます。 ハッカーは、ログイン認証情報の収集や悪意のあるダウンロードの提供など、被害者がこのページで行うことをすべて見ることができます。
ハッカーがローカル ネットワーク接続にアクセスできない場合、次の攻撃のいずれかに頼ります。 攻撃者は、「誕生日のパラドックス」を使用して、予期して、要求者に偽造された応答を送信することを試みます。 この誕生日攻撃は、数学と確率論を用いて推測を行う。 この場合、攻撃者はあなたの DNS 要求のトランザクション ID を推測しようとしているので、偽造された DNS エントリを持つ偽造応答は、本当の応答より先にあなたに届きます。
誕生日攻撃は確実に成功するわけではありませんが、最終的には、攻撃者は偽造応答をキャッシュに忍び込ませることができます。
Kaminsky’s Exploit
Kaminsky’s Exploit は、2008 年の BlackHat で発表された誕生日攻撃の一種です。 そして、リゾルバは、偽のサブドメインのIPアドレスを取得するために、権威あるネームサーバにクエリを転送します。 この時点で、攻撃者はリゾルバに膨大な数の偽造応答を流し、それらの偽造の1つが元のクエリのトランザクション ID と一致することを期待します。
成功した場合、攻撃者は、標的となったリゾルバの DNS キャッシュを、この例では varonis.com の偽造 IP アドレスで汚染していることになります。
How To Detect DNS Cache Poisoning
では、DNSキャッシュポイズニング攻撃をどのように検出すればよいのでしょうか。 DNS サーバーを監視して、攻撃の可能性を示す指標を探します。 人間は、監視する必要のある大量の DNS 要求に追いつくための計算能力を持ち合わせていません。 DNS監視にデータセキュリティ分析を適用して、攻撃から正常なDNS動作を識別します。
- 1つのドメインに関する1つのソースからのDNSアクティビティが突然増加した場合、バースデー攻撃の可能性があることを示します。
- 再帰なしで複数のドメイン名に対してDNSサーバーを照会している単一のソースからのDNS活動の増加は、ポイズニングに使用するエントリを見つけようとする試みを示します。
DNSの監視に加えて、異常な活動のためにActive Directoryイベントとファイルシステムの動作を監視します。 さらに、サイバーセキュリティ戦略に貴重なコンテキストを追加するために、3 つのベクトル間のアクティビティを相関させる分析を使用することもできます。
How To Protect Against DNS Cache Poisoning
監視と分析以外にも、DNS サーバーの構成を変更することができます。
BINDとDNSソフトウェアの最新バージョンを使用していることを確認し、最新のセキュリティ修正を適用する。
リモート社員など、実行可能であれば、すべてのリモートクライアントにVPN経由で接続してもらい、トラフィックとDNS要求をローカルスヌーピングから保護します。 さらに、自宅の Wi-Fi の強力なパスワードを推奨して、リスクをさらに低減します。
最後に、暗号化された DNS 要求を使用します。 Domain Name System Security (DNSSEC) は、署名された DNS リクエストを使用して偽造を防止する DNS プロトコルです。 DNSSECを使用する場合、DNSリゾルバは、プロセス全体を遅くする権威DNSサーバーと署名を検証する必要があります。 このため、DNSSEC はまだ広く採用されていません。
DNS over HTTPS (DoH) および DNS over TLS (DoT) は、DNSSEC のように速度を犠牲にせずに DNS 要求を安全に保つための、次のバージョンの DNS の競合する仕様です。 しかし、これらはローカルで行われるDNSの監視や分析を遅くしたり、完全に防いだりすることができるため、完璧な解決策ではありません。 また、DoHとDoTは、ネットワーク上で実行されているペアレンタルコントロールや他のDNSレベルのブロッキングをバイパスすることができることに注意することが重要です。 つまり、Cloudflare、Quad9、およびGoogleはすべて、DoTをサポートできるパブリックDNSサーバーを持っています。 多くの新しいクライアントは、これらの新しい標準をサポートすることができますが、デフォルトでは無効になっています。 より詳細な情報は、Varonis の DNS セキュリティ ブログで確認できます。
DNS スプーフィングでは、正規ウェブサイトの IP アドレスをハッカーのコンピュータの IP に置き換えます。 エンドユーザーから見ると、ブラウザの URL バーにまったく正常に見えるアドレスを入力しているため、発見するのが難しいため、特にやっかいな存在となります。 しかし、阻止することは不可能ではありません。 リスクは、Varonis のような監視ソフトウェアや、DNS over TLS 暗号化標準を採用することで軽減できます。
DNS スプーフィング FAQ
DNS スプーフィングに関するよくある質問については、以下でお答えしています。
A: はい、DNSスプーフィングとキャッシュは同じサイバー攻撃を指します。
Q: DNSキャッシュポイズニングはどのように機能しますか?
A: DNSキャッシュポイズニングは、あなたのDNSサーバーを騙し、偽造DNSエントリを保存することで機能します。
Q: DNSキャッシュポイズニングから保護するために、どのようなセキュリティ機能を使用できますか
A: Webサイトの所有者は、DNSスプーフィング監視および分析を実装できます。 これには、DNS サーバーをアップグレードして、DNSSEC または DNS over HTTPS や DNS over TLS などの別の暗号化システムを使用することが含まれます。 また、可能な限りHTTPSのような完全なエンドツーエンドの暗号化を使用することで、スプーフィングを防ぐことができます。
エンドユーザーは、ブラウザのDNSキャッシュを定期的にフラッシュするか、安全でないネットワークや共有ネットワークに参加した後に、潜在的にスプーフィングされたDNSキャッシュをリセットすることができます。 VPNを使用することで、ローカルネットワーク上のDNSスプーフィングから保護することができます。
Q: DNS キャッシュ ポイズニング攻撃をどのように確認できますか
A: DNS キャッシュが汚染されると、検出が困難になることがあります。
Check out the Live Cyber Attack Lab to see how we use DNS monitoring to detect real cybersecurity threats.
Q: DNS通信はどのように機能しますか?
A:エンドユーザーが “Varonis.
- ブラウザはまず、ローカルキャッシュをチェックして、DNSデータがすでに保存されているかどうかを確認します。
- ブラウザにデータがない場合、次の上流 DNS サーバーに問い合わせますが、通常はローカル ネットワーク上のルーターに問い合わせます。
- その上流サーバーは、DNS 要求を受信し、そのキャッシュを確認します。
-
- 4.1 まだ DNS データがキャッシュされていないと仮定すると、まず DNS ルート サーバーに「誰が .com を扱っているか」と問い合わせ、再帰的 DNS リゾルバーを起動させます。TDLは、URLの権威あるネームサーバーを応答します。
- 4.3 リゾルバーは、次に権威あるネームサーバーに「Varonis.comのIPは何か」と問い合わせを行い、権威あるネームサーバーは、ドメインのIPアドレスを応答します。 DNS データは、チェーンを通じてエンドユーザーのデバイスに送り返されます。
Q: 攻撃者はどのように DNS キャッシュを汚染するのですか
DNS キャッシュが汚染される唯一の方法はありませんが、最も一般的な方法のいくつかは以下のとおりです。 被害者に、ブラウザの DNS キャッシュを変更する埋め込みコードを使用した悪意のあるリンクをクリックさせる。 また、ハッカーは、中間者スプーフィング攻撃を使用して、ローカルDNSサーバーをハイジャックすることができます。 この攻撃では、ARPスプーフィングを使用して、DNS要求を、ハッカーが制御するDNSサーバーにリダイレクトします。
A: DNSキャッシュポイズニングとは、DNSデータベースエントリーを悪意のあるIPアドレスで置き換える行為で、エンドユーザーをハッカーが制御するサーバーに送ります。
ハッカーは、DNSキャッシュにアクセスしてこれを変更したり、DNSクエリを自分のDNSサーバーにリダイレクトしたりして、DNSスプーフィング攻撃を実行します。com などのユーザーがブラウザに入力した URL は、実際にはその URL に関連付けられた正当な IP アドレスに行くのではなく、ハッカーが管理する悪意のあるサーバーにリダイレクトされることを意味します。
Q: なぜ DNS スプーフィングが問題なのか
A: DNS が本質的に信頼でき、しばしば何らかの暗号で保護されていないので、DNS スプーフィングが問題になります。 これは、ハッカーが DNS エントリを偽装して、データの盗難、マルウェア感染、フィッシング、および更新の阻止に使用できることを意味します。
Q: DNS スプーフィング攻撃がもたらす脅威は何ですか DNS スプーフィングがもたらす最大の脅威は、フィッシング ページを使用したデータの窃盗です。 また、マルウェアに感染した正規のダウンロードをホストすることで、マルウェアに感染する脅威もあります。 最後に、システムが更新のためにインターネットに依存している場合、DNSエントリーを変更して実際のウェブサイトに解決しないようにすることで、更新を防止することができます。 これは、検閲の方法として、あらゆる Web サイトに適用することもできます。