BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】2021年12月6日に適用されたWAF マネージドルールの更新点の話

こんにちは!
BFT名古屋支店の佐野です。

今携わっているAWSのプロジェクトでAWS WAFを触っており、Web ACLAPI Gatewayに紐づけたりしているのですが、そのプロジェクトを進めている中でAWSからWAFに関するお知らせメールが入ってきました。
今回はプロジェクト対応中に入ってきたAWSからのお知らせの内容と、それへの対応についてまとめた話をさせて頂きます。


はじめに

AWSから件のメールが送られてきたのは2021年12月1日。
内容は以下の通りでした。

Subject: [Action Required] AWS WAF - Notification about new versions for AWS Managed Rules (AMR)
Hello,
Subscribe to the SNS topic for AWS Managed Rules for advanced notification of rule changes.
For more information, see Getting notified of new versions and updates to a managed rule group.
New static versions were published on November 23, 2021 for the AWS Managed Rules.
These static versions are available now for testing and production use.
On December 6, 2021, these changes will be merged into the default version so customers on the default version will automatically receive these updates in their AWS WAF webACLs.

全文英語ですが、翻訳すると以下になるようです。

件名:[必要なアクション] AWS WAF - AWSマネージドルール(AMR)の新しいバージョンに関する通知
こんにちは。
ルール変更の事前通知については、AWSマネージドルールのSNSトピックをサブスクライブしてください。
詳細については、管理ルールグループの新しいバージョンと更新の通知を受け取るを参照してください。
新しい静的バージョンは、AWSマネージドルール用に2021年11月23日に公開されました。
これらの静的バージョンは、現在、テストおよび本番環境で使用できます。
2021年12月6日に、これらの変更はデフォルトバージョンにマージされるため、デフォルトバージョンのお客様は、AWS WAFwebACLでこれらの更新を自動的に受信します。

どうやらWeb ACLに設定できるAWSマネージドルールが新しいバージョンにアップデートされ、2021年12月6日に適用される(た)とのこと。
変更が行われたバージョンの公開は2021年11月23日に行なわれていますが、そのバージョンがデフォルトバージョンに置き換わるということと理解しました。
この変更点については公式ドキュメントに掲載されていますが、日本語版では2021年12月6日現在の時点で反映されていません。
原本となる英語版では以下のページで変更点および変更時期について記載されています。

docs.aws.amazon.com

さて、案件進行中のアップデートなので、何か変わってどういう影響が出るのか説明したいところです。
ということで、今回の変更内容についてまとめてみました。


はじめに

今回変更がかかったマネージドルールは、以下の3種。

  • AWSManagedRulesWindowsRuleSet
  • AWSManagedRulesLinuxRuleSet
  • AWSManagedIPReputationList

このうち、案件で使用しているのは「AWSManagedIPReputationList」のみでした。
AWSManagedIPReputationListはAWSBOTである、あるいは脅威であると判断したIPからのアクセスをブロックするルールであり、そういったものからAPI Gatewayを保護するために採用していました。
ではそのAWSManagedIPReputationListはどこが変更されたのでしょうか。


AWSManagedIPReputationListの変更点

変更前、このマネージドルールに含まれるルールは「AWSManagedIPReputationList」のみでしたが、今回の変更によって新たに「AWSManagedReconnaissanceList」というルールが追加されました。

f:id:bftnagoya:20211207164543p:plain
追加されたAWSManagedReconnaissanceList

これはReconnaissance(偵察)の表す通り、AWS内のリソースに対する攻撃目的の情報収集を行なうIPからの接続を検知するものです。
具体的にどのIPからの接続を検知するのかは不明であり、加えて今のところこのルールはカウントモード(監視して記録するが、ブロックはしない)で運用されるため、これによって悪意のある接続をブロックする、あるいは誤検知によって接続ができなくなる、といったことはひとまず生じません。
以上のことから、運用観点では入っていても問題はないと言えるでしょう。ほっとしました。

では残る2種は、以前の仕様からどう変わったのか。
それらについても、簡単に見ていきましょう。


AWSManagedRulesWindowsRuleSetの変更点

AWSManagedRulesWindowsRuleSetではルールの内容が一新されました。
今まではWindowsShellコマンドを使用したコマンドインジェクションに対応するルールがありませんでしたが、今回の更新で追加されました。
またPowerShell用のルールも今までSet1やSet2で分割されていたものがひとつに統合され、またCOOKIEに関するルールが増えています。
今回の更新の中では一番がらっと変わったものと言えるでしょう。
具体的には以下のようなルールが追加され、旧ルールはすべて廃止されています。

  • WindowsShellCommands_COOKIE
  • WindowsShellCommands_QUERYARGUMENTS
  • WindowsShellCommands_BODY
  • PowerShellCommands_COOKIE
  • PowerShellCommands_QUERYARGUMENTS
  • PowerShellCommands_BODY

加えてPowerShell系のルールにはシグネクチャ更新・追加が行われています。
またWindows用のテキスト変換ルールを作成する際に使用できる形式に、URL_DECODE_UNIが追加されました。


AWSManagedRulesLinuxRuleSetの変更点

Linux用のルールであるAWSManagedRulesLinuxRuleSetですが、こちらもルールの廃止と追加が行われました。
廃止されたのはLFI_BODYルールで、それに置き換わる形でLFI_COOKIEルールが追加されています。
加えてLFI系ルールにはシグネクチャ更新・追加が行われています。
またLinux用のテキスト変換ルールを作成する際の形式について、URL_DECODE形式がURL_DECODE_UNI形式に置き換えられた他、NORMALIZE_PATH_WIN形式が追加されたとのことです。


さいごに

今回の変更は主にWindowsインスタンスにWAFを使用しているユーザーに大きく関わるもので、逆に進行中の案件のようにAPI GatewayにWAFを使っているユーザーへの影響は殆どなしというものでした。
今後新しく追加されたルールの更新が気になってくるところではありますが、まずは一安心という所と思います。

ということで、今回はこれまで。
また次回の記事でお会いしましょう。