既存Web ACLからWafCharmのWeb ACLへの切り替え作業をまとめてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS事業本部コンサルティング部の後藤です。

本日8月4日より弊社メンバーズのプレミアムサービスをご利用頂く事でWafCharmのエントリープランが無償で利用可能になりました!

AWS WAFの導入・運用をAIを使って効率化する「WafCharm」のエントリープランをクラスメソッドメンバーズ プレミアムサービス契約者に無償提供開始

そこで本記事では、AWS WAFのManaged Ruleが適用されたWeb ACLからWafCharmのルールが適用されたWeb ACLに切り替え作業をまとめてみました。

WafCharmとは

WafCharmは世界中のWebに対する攻撃パターンをAIによって学習し、環境に応じたアクセスのパターン等を判別、AWS WAFのルールを最適化してくれるサービスとなります。これらの事から、WafCharmを利用する事でAWS WAFのルール設定や運用の工数削減が見込めます。

本記事ではAWS WAF v2 (以下、AWS WAF)での利用を想定しております。AWS WAF Classicで利用する際には本記事通りの設定ではない可能性がありますのでご注意ください。 WafCharm利用におけるAWS WAF ClassicとAWS WAFの変更点については以下をご参照頂ければと存じます。

WafCharm が new AWS WAF に対応しました

それでは、やっていきましょう!

切り替え作業のイメージ図

まずは切り替え作業の全体イメージを掴んでみましょう。AWS WAFのManaged Ruleを適用したWeb ACLを設定した環境ですと、以下のような構成図になると思います。

ここにWafCharmのルールが適用されたWeb ACLを作成します。

Web ACLには1つあたり1500WCU(Web ACL rule capacity Units)までしかルールが適用できないため、AWS WAF Managed Ruleが適用された既存のWeb ACLを使用はせず、別に作成した方が良いです。

WafCharmのWeb ACLが作成出来たら対象リソースに紐づくWeb ACLを切り替えます。

ルールアクションをBlockにしてしまうと誤検知が発生してアプリケーションの正常な通信を遮断してしまう可能性があります。そのため、ルールアクションをCountで設定して誤検知が無いか確認を行います。

この時、既存のWeb ACLが外され、WafCharmのWeb ACLもルールアクション Count で設定されるため、セキュリティが気になる方は外部からのアクセスが無い状態にして頂くのが良いと思います。

アプリケーションの通信で誤検知が発生していない事が確認できたら、ルールアクションをCountからBlockに変更して切り替え作業は完了となります。

Web ACLを切り替えてみる

Step.1 WafCharmのルールを適用したWeb ACLの作成

WafCharmのルールを適用したWeb ACLを作成する手順については、以下の記事で紹介をさせて頂いておりますので本記事では省略させて頂きます。

上記の記事ではルールアクションを Count から Block に変更するところまで紹介しておりますが、ここではWafCharmのルールが適用したWeb ACL作成まで実施頂ければと思います。

Step.2 既存リソースに紐づくWeb ACLの切り替え

WafCharmのルールが適用されたWeb ACLが準備出来たら、リソース(ALBやCloudFront)に割り当てます。

Web ACL一覧から対象のWeb ACLを選択、「Associated AWS resources」から「Add AWS resources」を実行します。

Web ACLを紐づけるリソースを選択頂き、「Add」を実行する事でリソースとWeb ACLの紐づけが完了となります。Associated AWS resourcesに紐づいているリソース一覧が表示されますので、対象のリソースが紐づいている事ご確認ください。

Step.3 誤検知が無い事確認

Web ACLを通過するアクセスを発生させると、Web ACLのOverviewでリクエストやリクエストに対するアクションを参照する事が可能です。

また、リクエストのURIを選択頂く事で更に詳細にリクエスト内容を参照頂けます。

万が一アプリケーションの正規の通信で誤検知が発生している場合、こちらを参照して対処する必要があります。

また、誤検知が発生した場合にはWafCharmにお問い合わせ頂く事でシグネチャのカスタマイズを実施頂けるようですが、エントリープランの場合は別途費用が発生するそうです。

WafCharm FAQ

Step.4 ルールアクションの変更

最後にWafCharmのルールアクションを検知(Count)から遮断(Block)に変更します。

まず、WafCharmのWeb ACL Configで設定した「Default WAF Action」をCountからBlockに変更する必要があります。

WafCharmにログイン頂き、対象のWeb ACL Configを選択頂き、上部項目の「Edit」を実行します。

Web ACL Configの設定画面に遷移したら「Default WAF Action」を Count から Block に変更します。

次にAWS WAFのweb ACLに付与されたルールグループのアクション設定を変更します。対象のweb ACLを選択頂き、上部項目の「Rules」を選択、WafCharmによって設定された何れかのルールを選択した状態で「Edit」を実行します。

各ルールのCountが有効になっている場合、Set all rule actions to count を無効化にしてSave ruleで設定を保存します。

ルールの優先度変更を問われますが、こちらは変更せず save を実行してください。

WafCharmで設定された全てのルールに対して上記設定を適用する事で、悪意ある通信を遮断してくれるようになります。

最後に

以上でWeb ACLの切り替え作業が完了となります。本日8月4日より弊社のメンバーズアカウントご利用でWafCharmのエントリープランを無償でご利用頂けるようになりましたので、この機会に是非お試し頂ければ幸いです。

本記事が何方かのお役立てば幸いです。