ボットネットのコマンド&コントロール通信を、DNSレイヤーで遮断する
マルウェアに感染したEC2インスタンスは、外部の犯罪者サーバー(C&Cサーバー)に 「電話」をかけようとします。その際、必ずDNSで「電話番号(IPアドレス)」を調べます。 Route 53 Resolver DNS Firewallは、その「電話帳検索」の段階で悪意あるドメインを検知・遮断します。
社員の一人が怪しいメールを開き、PCがマルウェアに感染。
そのマルウェアは、犯罪組織の「指令センター(C&Cサーバー)」に連絡を取ろうとします。
でも連絡するには、まず指令センターの住所(IPアドレス)を
電話帳(DNS)で調べなければなりません。
ここで、会社の電話帳係が「その宛先は危険リストにある!」と気づいて
調べることを拒否すれば、犯罪組織に繋がることはありません。
EC2インスタンスがマルウェアに感染すると、外部のC&Cサーバーへ
通信しようとします。その際、必ずRoute 53 Resolverを通じてDNS解決を行います。
Route 53 Resolver DNS Firewallは、この「電話帳係」の役割を担い、
悪意あるドメインへのDNSクエリを検知・ブロックします。
通信の一番最初のステップで遮断するため、
ファイアウォールやIDSよりも「前段」での防御が可能です。
なぜDNSレイヤーが重要なのか? インターネット通信のほぼ100%はDNS名前解決から始まります。IPアドレスを直打ちして通信するマルウェアは少数派です。 つまりDNSを制御することは、通信の「出口」ではなく「始まり」を制御すること—最も効率的な防御ポイントです。
機密データ・認証情報・AWS認証キーがC&Cサーバーに送信される。インサイダー脅威と見分けがつかないケースも。
C&C経由で暗号化キーを受信。S3・RDSなどAWSリソース全体を暗号化される可能性がある。
感染EC2が踏み台になり、他サービスへのDDoS攻撃の加害者になる。AWSポリシー違反にもなりうる。
🏗️ Route 53 Resolver DNS Firewall — アーキテクチャ全体像
ルールグループ評価
BLOCK / ALERT / OVERRIDE
✅ SecurityHubへの自動転送も可能
ルールをまとめた入れ物。VPCに紐付けることで効力を発揮。1つのVPCに複数のグループを割り当て可能。優先度順に評価。
「このドメインリストに一致したら、このアクションを実行」という1件のルール定義。ドメインリストとアクションをセットで指定。
照合するドメイン名の一覧。AWSマネージドリストと自分で作るカスタムリストの2種類がある。ワイルドカード(*)も指定可能。
一致したドメインへの処理。BLOCK(遮断)・ALERT(通知のみ)・OVERRIDE(偽のIPを返す)の3種類から選択。
DNSクエリへの応答を返さず、EC2インスタンスがIPアドレスを取得できないようにする。通信自体を根本から防ぐ最強の対策。
DNSクエリには応答する(通信は許可)が、CloudWatchにアラートログを記録する。まず「様子見」したい段階に有効。
悪意あるドメインへのクエリに対して、自分で用意した偽のIPアドレスを返す。ハニーポットへの誘導などに使用。
導入フェーズのベストプラクティス:最初はALERTモードで数週間運用し、正規の業務トラフィックに影響が出ないかを確認。問題なければBLOCKへ移行する「フェーズドロールアウト」が推奨されます。
AWSが脅威インテリジェンスに基づき継続的に更新するリスト。自分でメンテナンスする必要なし。
自社のポリシーや特定の業務要件に合わせて作成するリスト。許可リスト・拒否リストの両方に使用可。
AWSコンソールから「Route 53」を開き、左サイドバーの「DNS Firewall」を選択。リゾルバーを通過するすべてのVPCのDNSクエリを制御できます。
「ルールグループの作成」をクリック。グループ名(例:production-botnet-protection)とリージョンを指定。ルールグループはVPCに関連付けることで動作します。
AWSマネージドリスト(ボットネット・マルウェア等)をドメインリストとして追加。または「新しいドメインリストを作成」からカスタムリストを作成してドメインを登録。
ドメインリストを選択後、アクションを設定。初期はALERT(監視)から始めることを推奨。本番適用後はBLOCKに変更する。優先度は数字が小さいほど先に評価されます。
作成したルールグループを保護したいVPCに「関連付け(Associate)」することで有効になります。複数のVPCへの適用も可能で、マルチアカウント環境はAWS Firewallマネージャーと組み合わせると効率的です。
Route 53 Resolverの「クエリログ記録」を有効化。CloudWatch Logsへの転送を設定することで、どのEC2インスタンスがどのドメインに問い合わせたか全履歴を記録できます。
最初はALERTモードで1〜2週間運用し、正規業務トラフィックへの影響をCloudWatchで確認。問題がなければBLOCKモードに切り替える。急いでBLOCKにすると正規通信が止まるリスクあり。
自前でC&Cドメインリストを作成・維持するのは困難。AWSがリアルタイムで更新するマネージドリスト(ボットネット・マルウェア)を優先的に使用し、その上にカスタムルールを重ねる構成が効率的。
GuardDutyが検出した悪意あるドメインを、Lambda経由でDNS FirewallのカスタムリストにAPIで追加する自動化が有効。Detection(検知)とPrevention(防止)を自動連携させる。
複数のAWSアカウント・複数VPCがある環境では、Firewall ManagerとOrganizationsを使い、全アカウントに同一のDNS Firewallポリシーを一括適用する。個別管理によるポリシーの抜け漏れを防止。
Created by SSuzuki1063
AWS SAP Learning Resources