GuardDuty の脅威リストを使って悪意のある通信からAWSリソースを守る

2023.06.01

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな吉井 亮です。

Route 53 Resolver DNS Firewall は VPC からのアウトバウンド DNS トラフィックを規制するサービスです。
AWS が管理するマネージドドメインリスト、または、自己管理するドメインリストに該当する DNS トラフィックを規制します。
アメリカ時間2023年5月31日にアナウンスがあり Route 53 Resolver DNS Firewall が Amazon GuardDuty 脅威インテリジェンスと統合されました。

何が嬉しいのか

GuardDuty を有効にすると、対応している AWS リソースからの悪意のある、または疑わしい DNS クエリを検出することが可能です。
今回アナウンスされたアップデートでは、同じ脅威リストを使用して DNS クエリをブロックできるようになります。
仮に EC2 が攻撃され C&C サーバーに仕立てられてしまった場合でも、被害(加害)を最小限に抑制できる可能性があります。

Route 53 Resolver DNS Firewall で使用できるマネージドドメインリストは以下の通りです。

  • AWSManagedDomainsMalwareDomainList → マルウェアの送信やホスティングなどの関連付けられたドメイン
  • AWSManagedDomainsBotnetCommandandControl → スパムマルウェアに感染したコンピュータのネットワーク制御に関連付けられたドメイン
  • AWSManagedAggregateThreatList → マルウェア、ランサムウェア、スパイウェアなど複数の DNS 脅威カテゴリに関連付けられたドメイン
  • AWSManagedDomainsAmazonGuardDutyThreatList → 今回の更新。GuardDuty の脅威リストを使用したドメイン

やってみた

設定は難しくありません。

マネジメントコンソールで VPC → ルールグループ を開きます。

ルールグループの作成

ルールグループ を追加をクリックします。

任意の名前と説明を入力し Next をクリックします。

ルールを追加をクリックします。
ドメインリストから AWS マネージドドメインリストを追加 を選択し、AWSManagedDomainsAmazonGuardDutyThreatList を選択します。
Action は BLOCK を選択します。
ここで指定できる Action には以下の意味があります。

  • ALLOW
  • ALERT
  • BLOCK
    • NODATA → このクエリは成功したが、当該クエリについて利用可能な応答がないことを示します
    • NXDOMAIN → クエリ内のドメイン名が存在しないことを示します
    • OVERRIDE → クエリに対するカスタムオーバーライドの応答を提供します

ルールを追加 をクリックします。

ルールが追加されたことを確認し Next をクリックします。

Next をクリックします。

Next をクリックします。

Create rule group をクリックします。

VPC に関連付ける

作成されたルールグループをクリックします。

関連付けられた VPC タブを開きます。

VPC を関連付け をクリックします。

ルールを適用したい VPC を選択します。複数の VPC へ関連付けることが可能です。
VPC を選択したら 関連付ける をクリックします。

動作確認

それでは動作確認をします。
ルールグループを関連付けた VPC で EC2 を起動します。

AWS が用意しているテスト用ドメインの名前解決をしてみます。
controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
controldomain2.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

$ dig controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

; <<>> DiG 9.16.38-RH <<>> controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49218
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. IN A

;; Query time: 9 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Thu Jun 01 06:10:56 UTC 2023
;; MSG SIZE  rcvd: 106

status: NOERROR が確認できます。
今回はルールを BLOCK かつ NODATA にしているので DNS クエリはレコード無しで正常に返ってきています。

続きまして、ルールを ALLOW に変えて dig 打ってみました。

$ dig controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com

; <<>> DiG 9.16.38-RH <<>> controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56083
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. IN A

;; ANSWER SECTION:
controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4

;; Query time: 0 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Thu Jun 01 06:11:55 UTC 2023
;; MSG SIZE  rcvd: 122

ドキュメントに記載の通り 1.2.3.4 が返ってきます。

料金

ルールグループが関連付けられた VPC からの DNS クエリあたりの料金が発生します。

  • 0.60USD 処理した 100 万クエリあたり - 最初の 10 億クエリ/月
  • 0.40USD 処理した 100 万クエリあたり - 10 億クエリ超過/月

Amazon Route 53 料金表

まとめ

GuardDuty はとてもパワフルな脅威インテリジェンスです。
GuardDuty は脅威の検出までですが、今回のアップデートにある Route 53 Resolver DNS Firewall を活用すると DNS クエリをブロック可能です。
コインマイナー、C&C、マルウェアなどの脅威から AWS リソースを守るための助けになるはずです。導入をご検討ください。

参考

Route 53 Resolver DNS Firewall

以上、吉井 亮 がお届けしました。