DNSスプーフィングとは
DNSスプーフィングは、インターネットの根幹をなすDNS(
Domain Name System)の仕組みを悪用した攻撃手法の総称です。DNSは、私たちが普段利用するURL(例:www.example.com)を、コンピュータが理解できる
IPアドレス(例:192.0.2.1)に変換する役割を担っています。この変換プロセスを「名前解決」と呼びます。DNSスプーフィングでは、この名前解決の過程で、偽の情報をDNSに登録することで、ユーザーを不正なWebサイトに誘導したり、情報を盗み取ったりします。
DNSスプーフィングの種類
DNSキャッシュポイズニング
DNSキャッシュポイズニングは、DNSスプーフィングの代表的な手法の一つです。DNSサーバーは、過去に問い合わせられたURLと
IPアドレスの対応をキャッシュとして保持しており、次回以降の問い合わせに対して迅速な回答を返せるようにしています。攻撃者は、このキャッシュに偽の情報を注入し、ユーザーを偽のWebサイトに誘導します。
攻撃の仕組み
1.
問い合わせ: 攻撃者は、まず標的となるWebサイトのURLをDNSサーバーに問い合わせます。
2.
上位サーバーへの問い合わせ: DNSサーバーがそのURLの情報を保持していない場合、上位のDNSサーバーに問い合わせを行います。
3.
偽の応答: 攻撃者は、上位のDNSサーバーからの正しい応答よりも先に、偽の
IPアドレスをDNSサーバーに返信します。
4.
キャッシュ汚染: DNSサーバーは、偽の
IPアドレスをキャッシュに登録してしまい、その情報に基づいてユーザーを偽のWebサイトに誘導します。
カミンスキー攻撃
従来のDNSキャッシュポイズニング対策として、キャッシュの有効期限を長くする手法がとられていました。しかし、2008年にダン・カミンスキーが考案したカミンスキー攻撃は、この対策を無効化するものでした。攻撃者は、存在しないサブドメイン名を大量に問い合わせることで、DNSキャッシュを汚染しやすくしました。
ソースポートランダマイゼーション
カミンスキー攻撃への対策として、問い合わせ時に使用するポート番号をランダム化する手法が有効です。これにより、偽の応答を送信する攻撃者は、正しいポート番号を推測するのが困難になり、攻撃の成功率を大幅に下げることができます。
ドメイン名ハイジャック
ドメイン名ハイジャックは、DNSの登録情報自体を書き換える攻撃です。攻撃者は、レジストリの権威DNSサーバーを乗っ取ったり、レジストラを騙したりすることで、ドメインと
IPアドレスの対応を不正に変更します。この攻撃により、正規のWebサイトにアクセスしようとしたユーザーが、攻撃者の用意した偽のWebサイトに誘導されます。
ドライブバイファーミング
ドライブバイファーミングは、ブロードバンド
ルーターの
脆弱性を悪用した攻撃です。攻撃者は、初期設定のままの
ルーターを乗っ取り、DNS設定を書き換えます。これにより、
ルーターを使用するすべてのユーザーが、攻撃者の指定したDNSサーバーを参照するようになり、偽のWebサイトに誘導される可能性があります。
対策
DNSスプーフィングを防ぐためには、以下のような対策が有効です。
DNSSECの導入: DNSSECは、DNSの応答を検証する仕組みです。これにより、攻撃者が偽の応答を送信しても、DNSサーバーがそれを検知し、破棄することができます。
ソースポートランダマイゼーションの実装: DNSサーバー側で、問い合わせに使用するポート番号をランダム化します。
ルーターの適切な設定: ブロードバンドルーターの初期パスワードを変更し、ファームウェアを最新の状態に保つことが重要です。
セキュリティソフトの導入: セキュリティソフトの中には、DNSスプーフィングを検知し、ブロックする機能を持つものがあります。
*
DNS over HTTPS (DoH) やDNS over TLS (DoT)の利用: DNS
クエリを暗号化することで、盗聴や改竄を防ぐことができます。
まとめ
DNSスプーフィングは、私たちのインターネット利用を脅かす深刻な攻撃手法です。個人や組織は、これらの脅威に対する知識を深め、適切な対策を講じることが不可欠です。DNSのセキュリティは、インターネットの信頼性を維持する上で非常に重要であり、常に最新の情報を収集し、セキュリティ対策をアップデートしていくことが求められます。