DNSセキュリティ

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

Share facebook icon linkedin icon twitter icon email icon

DNSセキュリティ

学習目的

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

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

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

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

DNSSECとは?

多くのインターネットプロトコル同様、DNSシステムは、セキュリティ最優先では設計されておらず、設計上いくつかの制限が含まれています。これらの制限により、技術の進歩とあわせて、マルウェアを流布する詐欺Webサイトにユーザーを転送したり、個人情報を不正に収集するなど、攻撃者が悪意のある目的でDNSルックアップをハイジャックすることが、簡単になってしまっています。DNSセキュリティ拡張(DNSSEC)は、この問題を軽減するために作られたセキュリティプロトコルです。DNSSECはデジタルデータ署名を行うことにより、正当性を保証し攻撃から保護します。安全なルックアップを保証するためには、DNSルックアップ・プロセスのすべてのレベルで署名が必要となります。

多くのインターネットプロトコル同様、DNSシステムは、セキュリティ最優先では設計されておらず、設計上いくつかの制限が含まれています。これらの制限により、技術の進歩とあわせて、マルウェアを流布する詐欺Webサイトにユーザーを転送したり、個人情報を不正に収集するなど、攻撃者が悪意のある目的でDNSルックアップをハイジャックすることが、簡単になってしまっています。


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は、悪意のある攻撃の第1の目標になっています。攻撃者は、DNSサーバーをターゲットとし悪用する多くの方法を見つけました、最も一般的なものが紹介されています:

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

DNSトンネリング: この攻撃は、その他プロトコルを使用しDNSクエリおよびレスポンスにトンネリングを行います。攻撃者はSSH, TCP, HTTPを使用し、DNSクエリにマルウェアあるいは盗んだ情報を渡します。ファイアウォールによって発見されることはほとんどありません。

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

DNS Hijacking

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

ファントムドメイン攻撃: ファントムドメイン攻撃はDNSリゾルバーを標的とし、NXDOMAIN攻撃に対して同様の結果を招きます。攻撃者は、「ファントム」ドメインサーバーを大量にセット・アップします。このドメインサーバーはリクエストへの応答が非常に遅いか、あるいは全く応答しません。その後、リゾルバーはこれらのドメインへのリクエストであふれ、リゾルバーは、レスポンスを待ち、パフォーマンスが遅延し、サービスの拒否に結びつきます。

ランダム・サブドメイン攻撃: この場合、攻撃者は、1つの正当なサイト内で、存在しないいくつかのランダムなサブドメインへのDNSクエリを送信します。目的は、ドメインの権威ネームサーバーにサービスを拒否させ、ネームサーバーからのWebサイトのルックアップを不可能にすることです。その副作用として、再帰リゾルバーのキャッシュが悪意のリクエストであふれるため、攻撃者が利用するISPも、攻撃の影響を受けることがあります。

ドメインロックアップ攻撃: 攻撃者は、特定のドメインとリゾルバ―をセットアップし、他の正当なリゾルバーとのTCP接続を作成します。標的とされたリゾルバーがリクエストを送信すると、これらのドメインは、遅いランダムのパケットのstreamを応答し、リゾルバーのリソースを奪います。

ボットネットベースのCPE攻撃: これらの攻撃は、CPEデバイス(カスタマープレミス設備、サービスプロバイダーから顧客に配付したモデム、ルーター、ケーブルボックスなどのハードウェア)を悪用して行なわれます。 攻撃者はCPEに侵害/危害を加え、デバイスがボットネットの一部になり、1つのサイトあるいはドメインに対するランダムサブドメイン攻撃に悪用されてしまいます。

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

DNSSECに加えて、DNSゾーンのオペレーターは、このほかにも、自社サーバーの安全を守る手段があります。インフラストラクチャの過剰プロビジョニングはDDoS攻撃に対する、シンプルな対策戦略の一つです。ネームサーバーが通常よりはるかに多くのトラフィックを処理できれば、サーバーを圧倒する大量攻撃は困難になります。


Anycast routingは、 DDoS攻撃を分裂させるもう一つの手軽なツールです。Anycastは、複数のサーバーが単一のIPアドレスを共有できるようにするため、1つのDNSサーバーがシャットダウンされても、他のサーバーを利用できます。DNSサーバーのセキュリティでもう一つの一般的な戦略はDNS Firewallです。

DNS Firewallとは?

DNS Fireallは、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 FirewallはキャッシュからのDNSレスポンスに応答し、オペレーターのサイトやサービスを継続することができます。セキュリティ機能に加えて、DNS Firewallは、さらにDNSオペレーターにより高速DNSルックアップおよび帯域幅コスト削減など、パフォーマンス面のソリューションエンジニアリングも提供することができます。CloudflareのDNS Firewallについてさらに詳しく学習します。

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

DNSリゾルバーは、構成によって、インターネットをブラウズするエンドユーザーにセキュリティソリューションを提供することができます。一部のDNSリゾルバーは、コンテンツフィルタリング(マルウェアやスパムを流布することが知られているサイトをブロックする)およびボットネット保護(既知のボットネットとの通信を遮断する)のようなフェイルを提供します。これらのセキュア対策を行ったDNSリゾルバーの多くは自由に使用することができます。またユーザーは、ローカルルータで一度設定を変更するだけでこれらの再帰DNSサービスのうちの1つに切り替えることができます。Cloudflare DNSはセキュリティを重視しています。