Amazon Web Services ブログ

Amazon Route 53 Resolver DNS Firewall で高度な DNS 脅威を防ぐ

本ブログは 2025 年 5 月 13 日に公開された AWS Blog “Protect against advanced DNS threats with Amazon Route 53 Resolver DNS Firewall” を翻訳したものです。

毎日、数百万ものアプリケーションが、DNS クエリを通じてユーザーと必要なデジタルサービスをシームレスにつないでいます。DNS クエリはインターネットのアドレス帳へのインターフェイスとして機能し、amazon.com のような見慣れたドメイン名を、コンピュータがトラフィックを適切にルーティングするために使用する IP アドレスに変換します。Amazon Virtual Private Cloud (Amazon VPC) 環境における DNS には、セキュリティ面で特有の課題と機会があります。第一に、DNS 名前解決は、ネットワークトラフィックが発生する前の段階でトラフィックを制御できる、早期のチェックポイントとして機能します。第二に、VPC 内の DNS クエリは、Amazon Route 53 Resolver を経由する独自の経路をたどります。この経路は通常のインターネットゲートウェイとは独立して動作するため、他のネットワークセキュリティ制御をバイパスします。

こうした課題に対処するために、Amazon Route 53 Resolver DNS Firewall は DNS トラフィックを保護する機能を提供しています。その基本となるのが、特定のドメインの DNS 名前解決を明示的に許可または拒否できる従来のドメインリストです。さらに、AWS マネージドドメインリストも用意されています。このリストは、Amazon Threat Intelligence と AWS の信頼できるセキュリティパートナーによって特定された、既知の悪意のあるドメインを自動的にブロックします。このアプローチは既知の脅威の防止には効果的ですが、巧妙な攻撃者は、従来のブロックリストでは捕捉できない手法を使うことが増えています。

Amazon Route 53 Resolver DNS Firewall Advanced は、静的なリストだけに頼らず、こうした従来の制御に加えてインテリジェントな保護を提供します。これらの高度なルールは、熟練したセキュリティアナリストのように、DNS クエリに含まれる疑わしいパターンをリアルタイムで監視します。クエリの長さ、エントロピー、頻度などの特性を分析することで、未知のドメインであっても、悪意が疑われるアクティビティを検出できます。これにより、DNS トンネリングやドメイン生成アルゴリズム (DGA) といった高度な脅威を検出し、ブロックできます。これらは、攻撃者が隠れた通信チャネルを確立したり、マルウェアを制御サーバーに接続したりするために使用する手法です。

この記事では、こうした DNS ベースの脅威と、その防止に役立つツールについて実践的に解説します。効果的な Route 53 Resolver DNS Firewall Advanced ルールの設定方法を説明するとともに、推奨構成を含む、すぐにデプロイできる AWS CloudFormation テンプレートも紹介します。最後に、実際の脅威検出の例を示し、このサービスが AWS Security Hub と統合してアラートの可視性を高める仕組みを紹介します。この記事を読み終えるころには、Route 53 Resolver DNS Firewall のルールをデプロイし、AWS 環境にインテリジェントでプロアクティブなセキュリティレイヤーを追加する方法を理解できるでしょう。

DNS トンネリングと DGA のリスクを理解する

前述のとおり、Route 53 Resolver は、VPC のインターネットゲートウェイとは独立して動作する、サービス側で管理されるインターネットへの経路を提供します。このアーキテクチャによって効率的な DNS 名前解決が可能になる一方で、DNS トンネリングなどの手法で悪用される可能性があります。これらの手法の仕組みと、なぜ特有の課題となるのかを見ていきましょう。

DNS トンネリングは、ドメイン名について問い合わせ、そのドメインの権威ネームサーバーから回答を受け取るという、DNS プロトコルの基本機能を悪用します。しかし、DNS を本来の目的であるドメイン名の解決に使うのではなく、DNS クエリとレスポンスの中に別の種類のデータをエンコードします。例えば、単純に「example.com の IP アドレスは何か?」と問い合わせる代わりに、トンネリングを悪用する攻撃では secretdata123.attacker.com のようなクエリにデータを埋め込むことがあります。この場合、secretdata123 の部分にエンコードされた情報が含まれています。このようにして、DNS が双方向のコマンドアンドコントロール (C2) 通信チャネルとして使われるおそれがあります。DNS トンネリングを検出してブロックすることは、データ流出や C2 通信を阻止するための重要な対策です。

DGA は、DNS セキュリティにとって別の課題となります。DGA では、すぐにブロックされてしまう固定的で予測可能なドメイン名を使う代わりに、数式を使って多数のドメイン名候補を自動的に生成し、それらを C2 トラフィックの宛先として使用します。例えば、DGA は、今日は xkt7py.com、明日は mn9qrs.com といったドメインを生成することがあります。ドメインが頻繁に変わり、しかもランダムに見えるため、効果的なブロックリストを維持するのは困難です。既知の悪意のあるドメインを特定してブロックする従来の脅威インテリジェンスフィードでは、DGA によって生成されるドメインに追従しきれません。

DNS Firewall Advanced の仕組み

Route 53 Resolver DNS Firewall Advanced は、ドメイン名を調べる際に、正当なドメインと疑わしいドメインを見分けるための複数の特性を確認します。例えば、正当なドメイン名は通常、実在する単語を使っており、人が正確に覚えて入力しやすいように予測可能なパターンに沿って設計されています。一方、トンネリングに使用されるドメインや DGA によって生成されたドメインには、ランダムに見える文字列や異常なパターンが含まれていることがよくあります。

Route 53 Resolver DNS Firewall Advanced は、実際のドメインの使用パターンを広範に分析して、そのインテリジェンスを構築しています。インターネットで最も多く名前解決されているドメインと、AWS 全体で実際に行われているドメインの名前解決パターンを組み合わせて分析し、正当なドメイン名の特徴を学習します。こうした実環境のトレーニングデータによって、通常のドメイン名が持つ特性のベースラインを確立します。そのうえで、DNS Firewall Advanced はこれらのパターンを DNS トンネリングやドメイン生成に使われる既知の手法と比較し、疑わしいアクティビティを特定します。

このサービスは、各ドメイン名について次のようなさまざまな側面を分析します。

  • ドメイン名がどのように構成され、各部分に分かれているか
  • 使用されている英字と数字のパターン
  • ドメインと自然言語との類似度
  • 一般的な単語が含まれているか、それともランダムな文字の組み合わせになっているか

このサービスはクエリをリアルタイムで分析し、1 クエリあたり 1 ミリ秒未満で処理します。そのため、アプリケーションのパフォーマンスに影響を与えることなく、強力なセキュリティ制御を維持できます。

Route 53 Resolver DNS Firewall Advanced では保護レベルをカスタマイズでき、信頼度のしきい値によって、疑わしいドメインをどの程度積極的に検出し、対応するかを選択できます。

  • 高信頼度: 最も明白な脅威に絞って検出し、誤検知を最小限に抑えます。正当なトラフィックをブロックすると業務に支障が出るおそれのある本番環境に最適です。
  • 中信頼度: バランスの取れた保護を提供し、ほとんどの環境に適しています。
  • 低信頼度: 検出範囲が最も広くなりますが、誤検知を避けるために追加のチューニングが必要になる場合があります。高度なセキュリティが求められる環境や、トラフィックパターンを把握するための初期モニタリングに適しています。

これらの信頼度レベルを、さまざまなアクション (ブロックまたはアラート) と組み合わせることで、セキュリティ要件に合った防御戦略を作成できます。

DNS Firewall Advanced ルールを手動で作成する

まず、AWS マネジメントコンソールで Route 53 Resolver DNS Firewall Advanced ルールを手動で作成する方法を紹介します。このルールは、高い信頼度で DNS トンネリングと判定された DNS クエリをブロックします。

ルールを手動で作成するには、次の手順を実行します。

  1. Route 53 コンソールのナビゲーションペインで [Rules] (ルール) を選択し、[Add rule] (ルールを追加) を選択します。
    Figure 1: Rules in the Route 53 console

    図 1: Route 53 コンソールのルール

  2. ルールの名前を入力し、[DNS Firewall Advanced protections] (DNS Firewall Advanced の保護) を選択します。
    Figure 2: Add a rule

    図 2: ルールの追加

  3. [DNS Firewall Advanced protection] で次の操作を行います。
    1. [DNS tunneling detection] (DNS トンネリング検出) を選択します。
    2. [Confidence threshold] (信頼しきい値) で [High] (高) を選択します。
    3. ルールがすべてのクエリタイプに適用されるように、[Query type] (クエリの種類) は空欄のままにします。
    Figure 3: Select DNS protection options

    図 3: DNS 保護オプションの選択

  4. [Action] (アクション) で次の操作を行います。
    1. [Block] を選択します。
    2. 応答として [OVERRIDE] を選択します。
    3. [Record value] (レコード値) に dns-firewall-advanced-block と入力します。
    4. [Record type] (レコードタイプ) で [CNAME] を選択します。
    5. [Add rule] を選択します。
    Figure 4: Configure actions for the rule

    図 4: ルールのアクションの設定

以下に示す推奨の Route 53 Resolver DNS Firewall ルールを、DNS Firewall ルールグループとしてデプロイする AWS CloudFormation スタックを用意しました。この構成を推奨するのは、信頼度の高い脅威は直ちにブロックし、信頼度の低い検出はアラートを生成するという、バランスの取れたセキュリティアプローチを実現できるためです。

AWS Managed Aggregate Threat List を含めることは特に有用です。このリストは、複数の脅威カテゴリ (マルウェア、ランサムウェア、ボットネット、スパイウェア、DNS トンネリング) のドメインを 1 つのブロックリストに統合したものです。この統合リストには、GuardDuty の脅威インテリジェンスシステムによって特定されたドメインをはじめ、他の AWS マネージドドメインリストのドメインが含まれています。そのため、既知の悪意のあるドメインに対する幅広い保護を実現しながら、未知の脅威は Route 53 DNS Firewall Advanced ルールで捕捉できます。

エンタープライズ環境では、AWS Firewall Manager を使用してこのルールグループ構成を組織内の VPC 全体に一貫して自動的にデプロイし、管理することで、この保護を組織全体に拡張できます。

  • BLOCK – Aggregate Threat List (マルウェア、ランサムウェア、ボットネット、スパイウェア、DNS トンネリングなど、複数の DNS 脅威カテゴリに関連するドメインを含み、複数の種類の脅威のブロックに役立ちます)
  • BLOCK – DNS トンネリング | 信頼度: HIGH
  • BLOCK – DGA | 信頼度: HIGH
  • ALERT – DNS トンネリング | 信頼度: LOW
  • ALERT – DGA | 信頼度: LOW

CloudFormation スタックを使用してこのルールグループをデプロイするには、次の手順を実行します。

  1. CloudFormation コンソールを開き、ナビゲーションペインで [Stacks] (スタック) を選択します。右上の [Create Stack] (スタックの作成) を選択し、[With new resources (standard)] (新しいリソースを使用 (標準)) を選択します。
    Figure 5: Create a stack

    図 5: スタックの作成

  2. CloudFormation テンプレートをダウンロードします。[Choose an existing template] (既存のテンプレートを選択) を選択してから [Upload a template file] (テンプレートファイルのアップロード) を選択し、ダウンロードした CloudFormation テンプレートをアップロードします。[Next] (次へ) を選択します。
    Figure 6: Use the CloudFormation template

    図 6: CloudFormation テンプレートの使用

  3. スタック名を入力し、[Next] を選択します。
    Figure 7: Enter a stack name

    図 7: スタック名の入力

  4. すべてのオプションをデフォルト値のままにして [Next] を選択し、[Submit] (送信) を選択します。
  5. Amazon VPC コンソールから Route 53 Resolver DNS Firewall に移動し、[DNS firewall] (DNS ファイアウォール) セクションまでスクロールして、[Rule groups] (ルールグループ) タブを選択します。
  6. 新しく作成したルールグループを選択します。
  7. [Associated VPCs] (関連付けられた VPC) タブを選択し、[Associate VPC] (VPC を関連付け) を選択します。保護する VPC を指定して、[Associate] (関連付ける) を選択します。
    Figure 8: Associate a VPC

    図 8: VPC の関連付け

オブザーバビリティ

Route 53 Resolver のクエリログ記録を使用すると、VPC に関連付けられたリソースから送信された DNS クエリを詳細に可視化でき、セキュリティやコンプライアンスを目的として DNS トラフィックをモニタリングし、分析できます。クエリログ記録を設定すると、各 DNS リクエストについて、クエリ対象のドメイン名、レコードタイプ、レスポンスコード、送信元の VPC とインスタンスなどの重要な情報を取得できます。クエリログ記録は、Route 53 Resolver DNS Firewall と組み合わせると特に有用です。ブロックされたクエリを追跡し、環境内の実際の DNS トラフィックパターンに基づいてセキュリティルールを微調整できるためです。以下は、DNS Firewall が疑わしいアクティビティを検出して対応した際に生成されるログエントリの例です。セキュリティ分析やインシデント対応に役立つ詳細な情報が含まれていることがわかります。

ログエントリの例: DNS トンネリングのブロック

以下は、DNS トンネリングをブロックした場合の例です。

{
    "version": "1.100000",
    "account_id": "11111111111",
    "region": "us-west-2",
    "vpc_id": "vpc-0fcc85bd45b791d5a",
    "query_timestamp": "2025-02-05T03:54:12Z",
    "query_name": "1WTE4CyL4Vf1LQDDAToimuqFBEtMXyYMsYP8zPgVyTagzSh5PvinuQcL6N8at4A.REZv3VqKU4x43DPcCKAzQk4UKoZjB3nDMukHAuKTtDckTqZ8SDDZ1iXRey6a5sD.mEDMdrzPocS9exqoBQ1xfSuKfvW.1.dnstunnel.com.",
    "query_type": "A",
    "query_class": "IN",
    "rcode": "NXDOMAIN",
    "answers": [
        {
            "Rdata": "dns-firewall-advanced-block.",
            "Type": "CNAME",
            "Class": "IN"
        }
    ],
    "srcaddr": "10.1.0.122",
    "srcport": "41859",
    "transport": "UDP",
    "srcids": {
        "instance": "i-0c738190f19db9a2c"
    },
    "firewall_rule_action": "BLOCK",
    "firewall_rule_group_id": "rslvr-frg-63efa138b43f428b",
    "firewall_protection": "DNS_TUNNELING"
}

ログエントリの例: DNS トンネリングのアラート

以下は、DNS トンネリングのアラートの例です。

{
    "version": "1.100000",
    "account_id": "11111111111",
    "region": "us-west-2",
    "vpc_id": "vpc-0fcc85bd45b791d5a",
    "query_timestamp": "2025-02-05T04:00:02Z",
    "query_name": "1WTEc8GwFH3qHY8XKjbhXuj43yGShMrhacqwJYSZkSqRQ95sagz64NUpnuj4R8R.S79aru2KRB8d9nCHEPdXWJxGT4aUjVMqtCRSq9EZXRCo8NH5cmLvmcho3hh1mbK.NqGY1X6M4qpMGX6dnTSHuCsZFbf.1.dnstunnel.com.",
    "query_type": "A",
    "query_class": "IN",
    "rcode": "NOERROR",
    "answers": [
        {
        "Rdata": "202.92.34.217",
        "Type": "A",
        "Class": "IN"
        }
    ],
    "srcaddr": "10.1.0.122",
    "srcport": "35116",
    "transport": "UDP",
    "srcids": {
        "instance": "i-0c738190f19db9a2c",
        "resolver_endpoint": "rslvr-out-e20639d3666748f58"
    },
    "firewall_rule_action": "ALERT",
    "firewall_rule_group_id": "rslvr-frg-63efa138b43f428b",
    "firewall_protection": "DNS_TUNNELING"
}

Security Hub との統合

Security Hub では、AWS におけるセキュリティ状態を把握し、セキュリティ業界の標準やベストプラクティスに照らして環境を確認できます。Security Hub は、AWS アカウント、AWS サービス、サポートされているサードパーティーのパートナー製品からセキュリティデータを収集し、セキュリティの傾向の分析や、最も優先度の高いセキュリティ問題の特定を支援します。Security Hub では、Amazon: Route 53 Resolver DNS Firewall – AWS List と Amazon: Route 53 Resolver DNS Firewall Advanced の両方のリストからの検出結果がデフォルトで有効になっているため、追加の設定をしなくてもこれらのアラートを自動的に受け取れます。Amazon: Route 53 Resolver DNS Firewall – Custom List の検出結果を手動で有効にする必要があるのは、ルールグループでカスタムドメインリストを使用している場合のみです。詳細については、「Resolver DNS Firewall から Security Hub CSPM に検出結果を送信する」を参照してください。

訳注: 本記事で説明している AWS Security Hub は、原文公開後に AWS Security Hub CSPM に名称変更されており、Amazon Route 53 Resolver DNS Firewall の検出結果は Security Hub CSPM に送信されます。なお、2025 年 12 月には、Security Hub CSPM などからのセキュリティシグナルを関連付けて分析する、新しい AWS Security Hub の一般提供が開始されました。参照: 「AWS Security Hub がほぼリアルタイムのリスク分析機能とともに一般提供されるように」。

次の図は、Route 53 Resolver DNS Firewall Advanced の検出結果が Security Hub コンソールにどのように表示されるかの例です。一元化されたダッシュボード上で、対応に直結するセキュリティインテリジェンスを直接確認できます。

Figure 9: DNS Firewall Advanced findings in Security Hub

図 9: Security Hub における DNS Firewall Advanced の検出結果

検出結果を選択すると、[Finding ID] (検出結果 ID)、[Types] (タイプ)、[Workflow status] (ワークフローのステータス) などの詳細を確認できます。

Figure 10: Findings details

図 10: 検出結果の詳細

まとめ

Amazon Route 53 Resolver DNS Firewall Advanced は、高度な DNS ベースの脅威から組織を保護するうえで大きな前進です。前述のとおり、Route 53 Resolver に送信される DNS クエリは、セキュリティグループ、ネットワーク ACL (NACL)、さらには AWS Network Firewall といった従来の AWS セキュリティ制御をバイパスする独自の経路をたどります。そのため、多くの環境でセキュリティ上のギャップが生じています。この記事では、DNS トンネリングや DGA を利用した攻撃で、この死角がどのように悪用されるのか、そして Route 53 Resolver DNS Firewall Advanced のリアルタイムのパターン分析と異常検出によって、これらの脅威から保護する方法を説明しました。また、AWS コンソールでこのサービスを設定する方法と、信頼度の高い脅威のブロックと潜在的な問題に対するアラートのバランスを取った推奨ルールを含む CloudFormation テンプレートの使用方法も紹介しました。さらに、クエリログ記録によって DNS トラフィックを可視化する方法と、Security Hub との統合によってセキュリティの検出結果を一元化する方法も確認しました。これらの機能を導入することで、従来のドメインブロックリストでは捕捉できない高度な DNS ベースの攻撃からインフラストラクチャを保護し、運用効率を維持しながらクラウドのセキュリティポスチャを強化できます。

Lawton Pittenger

Lawton Pittenger

Lawton は、ニューヨーク市を拠点とする AWS の Security Solutions Architect で、お客様が AWS ネイティブのセキュリティサービスを導入できるよう支援することに注力しています。これまで IT セキュリティ分野の職務に従事し、クラウド環境のセキュリティ確保に取り組んできました。クラウドセキュリティ以外では、スケートボード、スノーボード、ロッククライミングに関心があります。

Michael Leighty

Michael Leighty

Michael は、アトランタを拠点とする AWS の Senior Security Solutions Architect です。大手ネットワークセキュリティベンダーでの豊富な経験を活かし、お客様が効果的なネットワークセキュリティ制御を設計して実装できるよう支援することを専門としています。AWS では、サービスチームと緊密に連携し、お客様のニーズとフィードバックに基づいてセキュリティサービスの継続的な改善を推進しています。

本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。