目次
はじめに
こんにちは、ディーネットの山田です。
VPCにRoute 53 Resolver DNS Firewallからルールグループを追加してみる機会があったので、挙動を検証してみました。
Route 53 Resolver DNS Firewallとは
仮想プライベートクラウド (VPC) のアウトバウンド DNS トラフィックをフィルタリングおよび規制できます。これを行うには、DNS Firewall のルールグループで再利用可能なフィルタリングルールのコレクションを作成し、そのルールグループを VPC に関連付けて、DNS Firewall のログとメトリクスのアクティビティを監視します。アクティビティに基づいて、DNS Firewall の動作を適宜調整できます。
VPC からのアウトバウンド DNS リクエストを保護できます。これらのリクエストは、ドメイン名の解決用に Resolver を介してルーティングされます。DNS Firewall による保護の主な用途は、データの DNS 漏洩を防ぐことです。DNS 漏洩は、不正なアクターが VPC 内のアプリケーションインスタンスに侵入し、DNS ルックアップを使用して、VPC のデータを彼らが管理するドメインに送信する際に発生します。DNS Firewall を使用すると、アプリケーションでクエリできるドメインを監視および管理できます。不正であるとわかっているドメインへのアクセスを拒否し、他のすべてのクエリを許可できます。また、確実に信頼できるドメインを除くすべてのドメインへのアクセスを拒否することもできます。
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-dns-firewall.html
つまり、VPC内部から実施されるアウトバウンドDNSリクエスト(名前解決リクエスト)に対して介入し予め定めたドメインリストを用いた許可や拒否のアクションを実施することが可能。
前提条件
- 今回の検証では、VPC関連のリソース及び名前解決を実施するEC2リソースは作成済みとなります。
- ブロックに利用するドメインリストは、AWSマネージドドメインリストを利用します。
設定手順
VPCでDNSファイアウォールルールグループを作成
VPCのDNSファイアウォールルールグループに新規にルールを作成してください。
ルールグループにルールを追加
DNSファイアウォールルールグループが作成できたら、ルールを追加してください。
※検証では、AWSマネージドドメインリストから提供される「AWSManagedDomainsBotnetCommandandControl」ルールのみを適用します。
ルールグループをVPCに関連付ける
DNSファイアウォールルールグループにルールを追加したら、目的のVPCに関連付けてください。
関連付けが進行するので、完了まで待機
VPCに関連付けを実施したら、ステータスが進行するので完了まで待機してください。
動作確認
VPC内に存在するEC2上で、テスト用に準備されているドメインセットを使って実際に名前解決を行います。
テスト用に準備されているドメインセットを調べる
「AWSManagedDomainsBotnetCommandandControl」のマネージドドメインリストであれば、以下の3つでテストできます。
- controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain2.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain3.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
EC2上でRoute 53 DNS Resolver(旧Amazon Provided DNS)に対して名前解決をリクエスト
$ dig controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
; <<>> DiG 9.18.28 <<>> controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59376
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. IN A
;; Query time: 0 msec
;; SERVER: 172.30.0.2#53(172.30.0.2) (UDP)
;; WHEN: Tue Nov 26 11:38:21 JST 2024
;; MSG SIZE rcvd: 103
DNSファイアウォールルールグループの設定によって正しくブロックされました。
EC2上でGoogle Public DNSに対して名前解決をリクエスト
$ dig controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com @8.8.8.8
; <<>> DiG 9.18.28 <<>> controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57695
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. IN A
;; ANSWER SECTION:
controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4
;; Query time: 10 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Tue Nov 26 11:39:27 JST 2024
;; MSG SIZE rcvd: 119
DNSファイアウォールルールグループでは防ぐことができない領域なので目的とするIPアドレスが名前解決できてしまいました。
AWSマネージドドメインリストの説明
現在、AWSから提供されるマネージドドメインリストについては、4種類存在しています。
- AWSManagedDomainsMalwareDomainList
- AWSManagedDomainsBotnetCommandandControl
- AWSManagedDomainsAggregateThreatList
- AWSManagedDomainsAmazonGuardDutyThreatList
AWSManagedDomainsMalwareDomainList
マルウェアの送信、ホスティング、配布に関連するドメイン。
AWSManagedDomainsBotnetCommandandControl
スパムマルウェアに感染したコンピュータのネットワーク制御に関連するドメイン。
AWSManagedDomainsAggregateThreatList
マルウェア、ランサムウェア、ボットネット、スパイウェア、DNS トンネリングなど、複数の DNS 脅威のカテゴリに関連するドメイン。
AWSManagedDomainsAmazonGuardDutyThreatList
Amazon GuardDuty DNS セキュリティの検出結果に関連付けられたドメイン。ドメインは GuardDuty の脅威インテリジェンスシステムのみから取得されており、外部のサードパーティーのソースから取得されたドメインは含まれません。より具体的には、現在、このリストは内部的に生成され、GuardDuty で次の検出に使用される次のドメインのみをブロックします
Impact:EC2/AbusedDomainRequest.Reputation、Impact:EC2/BitcoinDomainRequest.Reputation、Impact:EC2/MaliciousDomainRequest.Reputation、Impact:Runtime/AbusedDomainRequest.Reputation、Impact:Runtime/BitcoinDomainRequest.Reputation、Impact:Runtime/MaliciousDomainRequest.Reputation。
なお、これらのマネージドドメインリストに含まれるドメイン一覧は、知的財産権を守るためにダウンロードや閲覧はできなくなっているとのことです。
まとめ
- DNSファイアウォールルールグループを使うことで、悪意のあるドメインが名前解決された際にブロックすることができました。
- ただし、外部のDNSリゾルバサーバを使われると効果が出ないので、実際の案件で利用する場合は、名前解決で利用されるポートを制限しておくなど他の対策と併用が必要になります。
- 利用料金については、マネージドドメインリストの利用には費用がかかりませんが、ルールに照らし合わせて検査されるDNSクエリについては課金対象となります。
プロフィール
テクニカルサポートは卒業して、フロントサイドでお客様環境の構築をさせていただいております。
たまに、テクニカルサポートでご対応させていただくことがあるかもしれませんが、その際はよろしくお願いいたします。
インフラ系のエンジニアですが、時々休日プログラマー(Python、PHP)をやっております。
LINK
クラウドベリージャム:プロフィールページ