DNS スプーフィングは、ユーザーがアクセスしようとしている Web サイトではなく、偽のサイトにユーザーを誘導する攻撃です。UDP プロトコルの脆弱性を悪用するため、これを防ぐには DNSSEC (Domain Name System Security Extension) などのセキュリティ対策が必要です。
ドメイン ネーム システム (DNS) スプーフィングとは、インターネット ユーザーがサイトにアクセスしようとしたときに偽のサイトに誘導する行為です。これは、ドメイン名を IP アドレスに変換することで実行されます。
インターネットに接続されたコンピューターが相互に識別して通信するには、各コンピューターにインターネット プロトコル (IP) に従って作成される一意の IP アドレスが必要です。プロトコルは、コンピューターが相互に接続してデータを送信するために使用する通信規則であり、ソフトウェアまたはハードウェアに実装されています。現在最も一般的に使用されている IP アドレスは、126.63.1 つのドットで区切られたフィールドの数字で表されます (例: 「***.XNUMX」)。このアドレスは重複したりランダム化したりしてはならず、パブリック IP アドレスを割り当てる必要があります。
パブリック IP アドレスには、常に同じ番号を使用する静的 IP アドレスと、番号を変更できる動的 IP アドレスの 2 種類があります。動的 IP アドレスは、DHCP と呼ばれるプロトコルによって付与されます。DHCP は、IP アドレスを必要とするコンピューターからの要求を受け付けて割り当て、コンピューターが IP アドレスの使用を停止すると、アドレスが返されて別のコンピューターが使用できるようになります。一方、インターネットに直接アクセスできず、内部ネットワークでのみ互いを識別するプライベート IP アドレスもあります。
インターネットはパブリック IP アドレスに基づいて機能しますが、インターネットを使用するときは、使いやすさを考慮して IP アドレスではなく「www..」などの文字で構成されるドメイン名を使用します。ドメイン名を IP アドレスに変換するには DNS が必要であり、DNS を実行するデバイスはネームサーバーと呼ばれます。コンピューターにはネームサーバーの IP アドレスが記録されている必要があります。動的 IP アドレスを持つコンピューターは IP アドレスを受信するとネームサーバーの IP アドレスが自動的に記録されますが、静的 IP アドレスを持つコンピューターでは、ユーザーがネームサーバーの IP アドレスを手動で記録する必要があります。インターネット サービス プロバイダーは、加入者によって共有されるネームサーバーを運用しています。
DNS はインターネット通信に不可欠な要素であり、ドメイン名の高速かつ正確な変換はインターネット ユーザー エクスペリエンスに大きな影響を与えます。DNS のパフォーマンスとセキュリティは、大量のトラフィックを処理するサイトや企業にとって特に重要です。DNS サーバーがダウンしたりハッキングされたりすると、大規模なサービス停止が発生する可能性があります。たとえば、2016 年の Dyn DNS 攻撃は大混乱を引き起こし、多くの主要な Web サイトがダウンしました。
ユーザーが通常どのようにサイトに接続するかを見てみましょう。Web サイトにアクセスしようとしているコンピューターはクライアントと呼ばれます。ユーザーがアクセスしたいサイトのドメイン名をアドレス バーに入力すると (またはポータル サイトで検索してクリックすると)、クライアントは記録されているネームサーバーにクエリ パケットを送信し、ドメイン名に対応する IP アドレスを要求します。IP アドレスがリストにある場合、ネームサーバーはクライアントに IP アドレスを伝える応答パケットを送信します。応答パケットは、どのクエリ パケットに応答しているかを示します。IP アドレスがリストにない場合、ネームサーバーはクライアントに別のネームサーバーの IP アドレスを伝える応答パケットを送信し、クライアントはそのネームサーバーにクエリ パケットを送信し、プロセスを繰り返します。クライアントは IP アドレスを使用してサイトを見つけます。ネームサーバーとクライアントは、UDP と呼ばれるプロトコルを使用してパケットを送受信します。パケットが迅速に送信されるように、UDP はパケットを相手に送信するだけで、到着を確認しません。特定のクエリ パケットに対して到着した最初の応答パケットを信頼し、次のパケットはチェックせずに破棄します。DNS スプーフィングは、UDP のこれらのホールを利用します。
DNS スプーフィングの仕組みを見てみましょう。DNS スプーフィングを実行する悪意のあるコードに感染したコンピューターは、攻撃者と呼ばれます。クライアントが特定の IP アドレスを要求するクエリ パケットをネーム サーバーに送信すると、パケットは攻撃者に転送され、攻撃者は偽のサイトの IP アドレスを含む応答パケットをクライアントに送信します。攻撃者からの応答パケットはネーム サーバーからの応答パケットよりも先にクライアントに到着し、クライアントは攻撃者からの応答パケットを正しいパケットとして認識し、偽のサイトに誘導されます。
したがって、DNS スプーフィング攻撃を防ぐために、ドメイン ネーム システム セキュリティ拡張 (DNSSEC) などのセキュリティ対策を講じることが重要です。DNSSEC は DNS データの整合性と発信元を検証し、クライアントが受信したデータが信頼できるものであることを確認できます。また、ネットワーク管理者は DNS サーバーを定期的に監視し、異常なアクティビティを検出してすぐに対応できるようにする必要があります。エンド ユーザーが信頼できるセキュリティ ソフトウェアを使用したり、疑わしい Web サイトにアクセスしたりしないなど、基本的なセキュリティ プラクティスに従うことも重要です。