DNSセキュリティ

DNSはセキュリティを最優先とした設計ではないため、DNSシステムの脆弱性は多くのタイプの攻撃で悪用されています。

Share facebook icon linkedin icon twitter icon email icon

DNSセキュリティ

学習目的

この記事を読み終えると、以下のことができます。

  • DNSSECとは何か、またその仕組みを理解する
  • 最も一般的なDNS攻撃について知る
  • DNSSECおよびその他DNSセキュリティソリューションの違い

DNSセキュリティが重要な理由は?

ほとんどすべてのWebトラフィックに必要な標準DNSクエリは、DNSハイジャックや中間者攻撃などのDNSエクスプロイトの機会を作り出します。これらの攻撃は、トラフィックを偽のWebサイトのコピーに転送し、機密のユーザー情報を収集し、ビジネスは深刻な責任が問われることになります。DNSを悪用の脅威からの保護する方法として最もよく知られているのが、DNSSECプロトコルの採用です。

DNSSECとは?

多くのインターネットプロトコル同様、DNSシステムはセキュリティ最優先では設計されておらず、設計上いくつかの制限が含まれています。これらの制限にテクノロジーの進歩が組み合わさり、攻撃者が悪意のある目的でDNSルックアップをハイジャックすることが容易になりました。たとえば、マルウェアを配布したり、個人情報を収集したりする不正なWebサイトにユーザーを誘導したりします。DNSセキュリティ拡張機能(DNSSEC)は、この問題を軽減するために作成されたセキュリティプロトコルです。DNSSECはデータにデジタル署名することで、データの有効性を確保し、攻撃から保護します。安全なルックアップを保証するために、DNSルックアッププロセスのすべてのレベルで署名を行う必要があります。

多くのインターネットプロトコル同様、DNSシステムは、セキュリティ最優先では設計されておらず、設計上いくつかの制限が含まれています。これらの制限にテクノロジーの進歩が加担して、攻撃者が悪意のある目的でDNSルックアップをハイジャックすることが容易になりました。たとえば、マルウェアを配布したり、個人情報を収集したりする不正なWebサイトにユーザーを誘導したりします。


DNSセキュリティ拡張機能(DNSSEC)は、この問題を軽減するために作成されたセキュリティプロトコルです。DNSSECは、データにデジタル署名することでデータの有効性を確保し、攻撃から保護します。セキュアなルックアップを保証するために、DNSルックアッププロセスのすべてのレベルで署名を行う必要があります。


この署名プロセスは、ペンで法律文書に署名することに似ています。署名者は、他の人には作成できない一意の署名を行い、法廷の専門家はその署名を見て、文書がその人によって署名されたことを確認できます。こうした電子署名によって、そのデータが改ざんされていないことが確認できます。


DNSSECは、DNSのすべての層で階層的デジタル署名方針を実装します。たとえば「google.com」ルックアップの場合、ルートDNSサーバーは、.COMネームサーバーのキーに署名し、.COMネームサーバーはgoogle.comの権威ネームサーバーのキーに署名します。


セキュリティは改善すべきですが、DNSSECは下方互換性があるように設計されており、追加セキュリティを実装していない従来のDNSルックアップも正確に解決できることを保証しています。DNSSECは、総合的なインターネットセキュリティ戦略の一環として、SSL/TLSなどの他のセキュリティ対策と連携することを目的としています。


DNSSECは、親子のように信頼関係でつながった列車のようになってルートゾーンまで到達します。この信頼連鎖関係では、DNSのどの層も侵害/危害を受けることは許されません。どこかの層が危険にさらされると、リクエストが中間者攻撃に脆弱になってしまいます。


信頼の連鎖を閉じるには、ルートゾーン自体を検証(改ざんや詐欺がないことを証明)する必要があり、これは実際に人間の介入によって行われます。興味深いことに、ルートゾーン署名式と呼ばれるものでは、世界中から選ばれた個人が集まり、公開の場で、監査された方法でルートDNSKEY RRsetに署名します。

DNSSECの仕組みの詳細な説明>>>

DNSに関連する一般的な攻撃とは?

DNSSECは強力なセキュリティプロトコルですが、残念ながら現在のところ広く採用されていません。採用が進まないことと他の潜在的な脆弱性とが相まって、さらにDNSがほとんどのインターネット要求の不可欠な部分であるという事実から、DNSは悪意のある攻撃の主要な標的となっています。攻撃者は、DNSサーバーを標的にして悪用するいくつかの方法を発見しました。一般的な事例をいくつか次に示します。

DNSスプーフィング/キャッシュポイズニングこれは、偽造DNSデータがDNSリゾルバーのキャッシュに導入されることで、リゾルバーがドメインに対して誤ったIPアドレスを返す攻撃です。トラフィックは正しいWebサイトではなく悪意のあるPCや、攻撃者が意図した別の場所に転送されます。多くの場合、これは、オリジナルサイトの複製で、マルウェアを配布したり、ログイン情報を不正に盗み出すような、悪意のある目的に使われるサイトです。

DNSトンネリング:この攻撃は、他のプロトコルを使用してDNSクエリと応答をトンネリングします。攻撃者は、SSH、TCP、またはHTTPを使用して、マルウェアまたは盗まれた情報をDNSクエリに渡すことができ、ほとんどのファイアウォールはこれを検出できません。

DNSハイジャック:DNSハイジャックでは、攻撃者はクエリを別のドメインネームサーバーにリダイレクトします。これはマルウェア、またはDNSサーバーの改ざんのどちらかによって実行されます。結果は、DNSスプーフィングと似ていますが、根本的に異なる攻撃であり、リゾルバーのキャッシュではなく、ネームサーバーにあるWebサイトのDNSレコードを標的とします。

DNSハイジャック

NXDOMAIN攻撃:これは、DNSフラッド攻撃の一種で、攻撃者は存在しないレコードのリクエストでDNSサーバーを氾濫させ、正当なトラフィックに対してサービス拒否を発生させようとするものです。これは、各リクエストで一意のサブドメインを自動生成する、巧妙な攻撃ツールを使用して実行されます。NXDOMAIN攻撃は、さらに再帰リゾルバーを標的とし、リゾルバーのキャッシュをジャンクリクエストであふれさせることもできます。

ファントムドメイン攻撃:ファントムドメイン攻撃は、NXDOMAIN攻撃と同様の結果をDNSリゾルバーにもたらします。攻撃者はリクエストへの応答が非常に遅いか、まったく応答しない「ファントム」ドメインサーバーを多数セットアップします。その後、リゾルバーにこれらのドメインへの大量のリクエストを送り、リゾルバーは応答を待機するため拘束され、パフォーマンスの低下とサービス拒否につながります。

ランダムサブドメイン攻撃(DNS水責め攻撃):攻撃者は正規のサイトに向けて、存在しない複数のランダムなサブドメインについてDNSクエリを送信します。目的は、ドメインの権威ネームサーバーに対するサービス拒否を発生させ、ネームサーバーからWebサイトを検索できないようにすることです。その副作用として、再帰リゾルバーのキャッシュが悪意のリクエストであふれるため、攻撃者が利用するISPも、攻撃の影響を受けることがあります。

ドメインロックアップ攻撃:悪意のある行為者は、特別なドメインとリゾルバーを設定して他の正当なリゾルバーとのTCP接続を作成することにより、この形式の攻撃を準備します。標的となるリゾルバーがリクエストを送信すると、これらのドメインはランダムなパケットを低速で順次送り返し、リゾルバーのリソースを占有します。

ボットネットベースのCPE攻撃:これらの攻撃は、CPEデバイス(Customer Premise Equipment、これは、モデム、ルーター、ケーブルボックスなど、顧客が使用するためにサービスプロバイダーが提供するハードウェアです)を使用して実行されます。CPEが侵害/危害を受けると、デバイスはボットネットの一部となり、1つのサイトまたはドメインに対してランダムなサブドメイン攻撃を実行するために使用されます。

DNSを悪用する攻撃に対する最良の保護手段とは?

DNSSECに加えて、DNSゾーンの運営者は、サーバーをセキュリティで保護するためのさらなる対策を講じることができます。インフラストラクチャの過剰プロビジョニングはDDoS攻撃を克服するための簡単な戦略の1つです。簡単に言うと、ネームサーバーが予想の数倍のトラフィックを処理できれば、ボリュームベースの攻撃がサーバーを圧倒するのは難しくなります。


Anycastルーティングは、DDoS攻撃を妨害できるもう1つの便利なツールです。Anycastを使用すると、複数のサーバーで単一のIPアドレスを共有できるため、1つのDNSサーバーがシャットダウンしても、他のDNSサーバーが稼働し続けます。DNSサーバーのセキュリティでもう一つの一般的な戦略はDNS Firewallです。

DNS Firewallとは?

DNS Firewallは、DNSサーバーに多くのセキュリティとパフォーマンスサービスを提供できるツールです。DNS Firewallは、ユーザーの再帰リゾルバーと、到達しようとしているWebサイトやサービスの権威ネームサーバーの間に設置されます。ファイアウォールは、Rate Limitingサービスを提供し、サーバーを大量のクエリであふれさせようとする攻撃者をシャットダウンすることができます。サーバーが攻撃の結果またはその他の理由でダウンタイムを経験した場合、DNS Firewallは、キャッシュからDNS応答を提供することにより、オペレーターのサイトまたはサービスを維持できます。セキュリティ機能に加えて、DNS Firewallは、さらにDNSオペレーターにより高速DNSルックアップや帯域幅コスト削減など、パフォーマンス面のソリューションエンジニアリングも提供することができます。CloudflareのDNS Firewallの詳細をお読みください。

DNS Firewallは、DNSサーバーに多くのセキュリティとパフォーマンスサービスを提供できるツールです。DNS Firewallは、ユーザーの再帰リゾルバーと到達しようとしているWebサイトまたはサービスの権威ネームサーバーの間にあります。ファイアウォールは、Rate Limitingサービスを提供し、サーバーを大量のクエリであふれさせようとする攻撃者をシャットダウンすることができます。


サーバーが攻撃の結果またはその他の理由でダウンタイムを経験した場合、DNSファイアウォールは、キャッシュからDNS応答を提供することにより、オペレーターのサイトまたはサービスを維持できます。セキュリティ機能に加えて、DNS Firewallは、さらにDNSオペレーターにより高速DNSルックアップおよび帯域幅コスト削減など、パフォーマンス面のソリューションエンジニアリングも提供することができます。CloudflareのDNS Firewallの詳細をお読みください。

セキュリティツールとしてのDNS

DNSリゾルバーは、エンドユーザー(インターネットを閲覧しているユーザー)にセキュリティソリューションを提供するように構成することもできます。一部のDNSリゾルバーは、マルウェアやスパムを配信することが知られているサイトをブロックできるコンテンツフィルタリングや、既知のボットネットとの通信をブロックするボットネット保護などの機能を提供します。これらのセキュリティで保護されたDNSリゾルバーの多くは無料使用でき、ユーザーはローカルルーターの設定を1つ変更するだけで、これらの再帰DNSサービスのいずれかに切り替えることができます。Cloudflare DNSはセキュリティを重視しています。