💡 結論ファースト

DNS Firewallは「電話帳の番号を照合する門番」

マルウェアに感染したEC2インスタンスは、外部の犯罪者サーバー(C&Cサーバー)に 「電話」をかけようとします。その際、必ずDNSで「電話番号(IPアドレス)」を調べます。 Route 53 Resolver DNS Firewallは、その「電話帳検索」の段階で悪意あるドメインを検知・遮断します。

🚫
DNS解決を遮断悪意あるドメインへのDNSクエリをVPC内でブロックし、C&Cサーバーへの到達を防ぐ
📋
マネージドリストで即戦力AWSが管理する最新の脅威インテリジェンスドメインリストをすぐ利用可能
📊
全DNSクエリをロギングBLOCK・ALERT・OVERRIDEの3アクションで柔軟に対応し、CloudWatchに記録
🔗
GuardDutyと連携GuardDutyが検出した脅威をDNS Firewallに自動フィードし多層防御を実現
📖
まず「たとえ話」で理解する
🏢 現実世界のたとえ

会社のPCが乗っ取られた場面

社員の一人が怪しいメールを開き、PCがマルウェアに感染。 そのマルウェアは、犯罪組織の「指令センター(C&Cサーバー)」に連絡を取ろうとします。

でも連絡するには、まず指令センターの住所(IPアドレス)電話帳(DNS)で調べなければなりません。

ここで、会社の電話帳係が「その宛先は危険リストにある!」と気づいて 調べることを拒否すれば、犯罪組織に繋がることはありません。

☁️ AWSの世界

EC2インスタンスとDNS Firewall

EC2インスタンスがマルウェアに感染すると、外部のC&Cサーバーへ 通信しようとします。その際、必ずRoute 53 Resolverを通じてDNS解決を行います。

Route 53 Resolver DNS Firewallは、この「電話帳係」の役割を担い、 悪意あるドメインへのDNSクエリを検知・ブロックします。

通信の一番最初のステップで遮断するため、 ファイアウォールやIDSよりも「前段」での防御が可能です。

💡

なぜDNSレイヤーが重要なのか? インターネット通信のほぼ100%はDNS名前解決から始まります。IPアドレスを直打ちして通信するマルウェアは少数派です。 つまりDNSを制御することは、通信の「出口」ではなく「始まり」を制御すること—最も効率的な防御ポイントです。

⚠️
ボットネットC&C通信の仕組みと脅威
🔴 DNS Firewallなしの場合:攻撃が成立してしまう流れ
1 📧
マルウェア侵入
フィッシングメールや脆弱性を通じてEC2に感染
2 🔍
DNS解決要求
C&Cドメイン
evil.badactor.com
を名前解決
3 📞
IPアドレス取得
203.0.113.99
などのIPを取得し接続試行
4 🤝
C&Cサーバー接続
攻撃者の指令サーバーと通信確立
5 💀
被害発生
データ窃取・ランサムウェア・DDoS参加 etc.
🔐

データ窃取・漏洩

機密データ・認証情報・AWS認証キーがC&Cサーバーに送信される。インサイダー脅威と見分けがつかないケースも。

💰

ランサムウェア

C&C経由で暗号化キーを受信。S3・RDSなどAWSリソース全体を暗号化される可能性がある。

🤖

ボットネット参加・DDoS

感染EC2が踏み台になり、他サービスへのDDoS攻撃の加害者になる。AWSポリシー違反にもなりうる。

🛡️
Route 53 Resolver DNS Firewallの仕組み
🟢 DNS Firewallありの場合:C&C通信を根本から遮断
1 🦠
マルウェア侵入
EC2がマルウェアに感染(感染自体は防げない)
2 🔍
DNS解決要求
C&Cドメインをルートリゾルバーに問い合わせ
3 🛡️
DNS Firewallが検知!
ドメインリストと照合。BLOCK/ALERT/OVERRIDEを実行
4 📊
ログ記録
CloudWatch / S3 にDNSクエリログを送信
5
被害を防止
IPアドレスが返らずC&C通信が確立できない

🏗️ Route 53 Resolver DNS Firewall — アーキテクチャ全体像

🖥️
EC2 (感染)
🖥️
EC2 (正常)
🔎
Route 53
Resolver
⬇️ DNSクエリ
🛡️

DNS Firewall

ルールグループ評価
BLOCK / ALERT / OVERRIDE

⬇️ 結果を返す
正規サーバー
(許可)
DNSレスポンス返却
☠️
C&Cサーバー
(遮断 / ブロック)
NXDOMAINまたは代替IP
📋 ログ出力先(全クエリ記録)
📊 CloudWatch Logs
🗄️ S3バケット
🔥 Kinesis Firehose

✅ SecurityHubへの自動転送も可能

🧩
主要コンポーネント(4つの構成要素)
📁

ルールグループ
(Rule Group)

ルールをまとめた入れ物。VPCに紐付けることで効力を発揮。1つのVPCに複数のグループを割り当て可能。優先度順に評価。

📝

ファイアウォールルール
(Firewall Rule)

「このドメインリストに一致したら、このアクションを実行」という1件のルール定義。ドメインリストとアクションをセットで指定。

📋

ドメインリスト
(Domain List)

照合するドメイン名の一覧。AWSマネージドリストと自分で作るカスタムリストの2種類がある。ワイルドカード(*)も指定可能。

アクション
(Action)

一致したドメインへの処理。BLOCK(遮断)・ALERT(通知のみ)・OVERRIDE(偽のIPを返す)の3種類から選択。

3つのアクション — 何をするか決める
🚫

ブロック

BLOCK

DNSクエリへの応答を返さず、EC2インスタンスがIPアドレスを取得できないようにする。通信自体を根本から防ぐ最強の対策。

「悪い番号へは繋ぎません」と電話帳係が拒否するイメージ
🔔

アラート(監視モード)

ALERT

DNSクエリには応答する(通信は許可)が、CloudWatchにアラートログを記録する。まず「様子見」したい段階に有効。

「電話は繋ぐが、その番号に電話したことを上司に報告する」
🎭

オーバーライド

OVERRIDE

悪意あるドメインへのクエリに対して、自分で用意した偽のIPアドレスを返す。ハニーポットへの誘導などに使用。

「犯罪組織の住所の代わりに警察署の住所を教える」
🔍

導入フェーズのベストプラクティス:最初はALERTモードで数週間運用し、正規の業務トラフィックに影響が出ないかを確認。問題なければBLOCKへ移行する「フェーズドロールアウト」が推奨されます。

📋
ドメインリストの2種類
🤖 自動更新・管理不要

🛡️ AWSマネージドドメインリスト

AWSが脅威インテリジェンスに基づき継続的に更新するリスト。自分でメンテナンスする必要なし。

  • 🦠マルウェアドメインリスト(C&Cサーバー等)
  • 🎣フィッシングサイトリスト
  • 📡スパムボットネットリスト
  • 💊仮想通貨マイニングリスト
  • 常に最新の脅威情報を反映(自動更新)
  • 📌追加料金なし(DNS Firewallの利用料内)
✏️ 自分で管理・柔軟対応

🏢 カスタムドメインリスト

自社のポリシーや特定の業務要件に合わせて作成するリスト。許可リスト・拒否リストの両方に使用可。

  • 🚫社内ポリシーで禁止するサービス(SNS等)
  • ホワイトリスト(信頼するドメインを明示)
  • 🎯競合他社ドメインへのアクセス制限
  • 🔧独自テナントの社内ドメインの管理
  • 🌟ワイルドカード指定(*.malicious.com)対応
  • 📤テキストファイル・CSV形式でインポート可能
🚀
実装ステップ(AWSコンソール操作)
1

Route 53コンソール → 「DNS Firewall」を開く

AWSコンソールから「Route 53」を開き、左サイドバーの「DNS Firewall」を選択。リゾルバーを通過するすべてのVPCのDNSクエリを制御できます。

🖱️ Route 53 → Resolver → DNS Firewall
2

ルールグループを作成する

「ルールグループの作成」をクリック。グループ名(例:production-botnet-protection)とリージョンを指定。ルールグループはVPCに関連付けることで動作します。

📝 名前 → リージョン選択 → 作成
3

ドメインリストを追加・選択する

AWSマネージドリスト(ボットネット・マルウェア等)をドメインリストとして追加。または「新しいドメインリストを作成」からカスタムリストを作成してドメインを登録。

🛡️ AWSマネージドリスト → ボットネットコマンド&コントロールを選択
4

ルールを作成しアクションを設定する

ドメインリストを選択後、アクションを設定。初期はALERT(監視)から始めることを推奨。本番適用後はBLOCKに変更する。優先度は数字が小さいほど先に評価されます。

⚡ アクション:ALERT(最初)→ BLOCK(本番)
5

VPCにルールグループを関連付ける

作成したルールグループを保護したいVPCに「関連付け(Associate)」することで有効になります。複数のVPCへの適用も可能で、マルチアカウント環境はAWS Firewallマネージャーと組み合わせると効率的です。

🌐 VPC関連付け → 適用完了
6

DNS Queryロギングを有効化する

Route 53 Resolverの「クエリログ記録」を有効化。CloudWatch Logsへの転送を設定することで、どのEC2インスタンスがどのドメインに問い合わせたか全履歴を記録できます。

📊 Resolver → クエリログ記録 → CloudWatch転送設定
ベストプラクティス

🔵 フェーズドロールアウト(段階的適用)

最初はALERTモードで1〜2週間運用し、正規業務トラフィックへの影響をCloudWatchで確認。問題がなければBLOCKモードに切り替える。急いでBLOCKにすると正規通信が止まるリスクあり。

🟢 AWSマネージドリストを最優先で利用

自前でC&Cドメインリストを作成・維持するのは困難。AWSがリアルタイムで更新するマネージドリスト(ボットネット・マルウェア)を優先的に使用し、その上にカスタムルールを重ねる構成が効率的。

🟡 GuardDutyと組み合わせて多層防御

GuardDutyが検出した悪意あるドメインを、Lambda経由でDNS FirewallのカスタムリストにAPIで追加する自動化が有効。Detection(検知)とPrevention(防止)を自動連携させる。

🔴 AWS Firewall Managerでマルチアカウント一元管理

複数のAWSアカウント・複数VPCがある環境では、Firewall ManagerとOrganizationsを使い、全アカウントに同一のDNS Firewallポリシーを一括適用する。個別管理によるポリシーの抜け漏れを防止。

🤝

GuardDuty × DNS Firewall 自動連携アーキテクチャ

GuardDutyが脅威を検出したら、自動的にDNS Firewallに反映させる仕組みで防御力を最大化できます。

🔍 GuardDuty
脅威検出
📢 EventBridge
イベント発火
⚡ Lambda
自動処理
📋 DNS Firewall
カスタムリスト更新
🚫 次回から
自動ブロック
よくある質問(FAQ)
DNS FirewallはEC2のマルウェア感染を防いでくれるの?
いいえ、感染自体は防ぎません。DNS Firewallは「感染後のC&C通信確立」を防ぐサービスです。感染を防ぐには、AWS InspectorによるEC2脆弱性スキャンや、Security Groupによるアクセス制限と組み合わせた多層防御が必要です。
通常のALB・CloudFrontを通じたWebトラフィックにも適用される?
DNS Firewallが対象とするのは、VPC内のRoute 53 Resolverを通じたDNSクエリです。EC2インスタンス自身が発生させるDNSクエリが対象。ALBやCloudFront経由の受信トラフィックを制御したい場合はAWS WAFを使います。
DNS Firewallを有効化すると、今の業務システムが止まることはある?
BLOCKモードを使用する場合、正規業務で使うドメインが誤ってブロックリストに含まれると影響が出ます。そのため、まずALERTモードで実際のDNSクエリをCloudWatch Logsで確認し、問題ないことを確認してからBLOCKに切り替えることを強く推奨します。
マネージドリストにないゼロデイC&Cドメインはどうする?
GuardDutyのDNS分析機能を有効化することで、既知リストにないドメインでも行動分析で異常を検出できます。GuardDutyが検出した新たな脅威をLambda経由でカスタムドメインリストに自動追加する仕組みを構築するのが推奨アーキテクチャです。
Lambda・ECS・RDSなど他のサービスも保護対象になる?
はい。VPC内でRoute 53 Resolverを通じてDNSクエリを発生させるすべてのリソース(EC2・Lambda・ECS・RDS・他のVPCサービス)がDNS Firewallの保護対象になります。VPC単位での適用なので、VPC内のすべてのリソースに一括適用できます。

Created by SSuzuki1063

AWS SAP Learning Resources