【目次】

  1. 1. はじめに
  2. 2. Account Creation Fraud Prevention (ACFP) とは
  3. 3. ACFPルールの追加方法
  4. 4. ACFPに含まれるルールの概要
  5. 5. WafCharm での対応
  6. 6. おわりに

1. はじめに

2023年6月13日にAWS WAFマネージドルールに不審なアカウント作成を防御するためのルールが追加されました。
Account Creation Fraud Preventionを略して、ACFPと称されるようです。

AWS WAF Fraud Control launches account creation fraud prevention and reduced pricing

本ブログでは、このアップデートについて紹介します。

2. Account Creation Fraud Prevention (ACFP) とは

ACFPには、攻撃者による偽物のアカウントや、不正なアカウントの作成に対して防御するためのルールが含まれています。

アカウントを作成しようとしているリクエストに通常とは異なるアクティビティが含まれていないか検査し、不審なリクエストをブロックすることが可能です。

また、CloudFrontでの利用の場合はリクエストに加えてレスポンスについても検査し、アカウント作成に失敗した回数が多いクライアントセッションやIPアドレスをブロックすることができるようです。

なお、本ルールの利用には追加料金が発生します。
詳細ついては AWS WAF の料金 をご確認ください。

3. ACFPルールの追加方法

ACFPを追加する際は、以下の手順で追加が可能です。

1. Web ACL画面の右側にある [Add rules] ボタンをクリックし、 [Add managed rule groups] をクリックする

2. [AWS managed rule groups] を開く

3. [Account creation fraud prevention] の右側にある [Add to web ACL] トグルボタンをクリックする

4. [Edit] ボタンを押す

5. [Scope of inspection] や [Rule group configuration] などで必要な情報を入力し、[Save] ボタンを押す

ACFPはアカウントの作成を検査するため、あらかじめアカウント作成フォームのページや、作成フォームを受け付けるページのパスなどの詳細を指定しておく必要があります。

また、CloudFrontの場合は、レスポンスに関する設定も項目もあります。

さらに、ACFPにはトークンを使用するルールが含まれているため、ACFPをフルに活用するためには、ルールをWeb ACLに適用した後アプリケーション側にSDKを導入する必要があります。

ACFPルールやSDKの具体的な設定方法については、AWS Security Blogをご参考ください。
Prevent account creation fraud with AWS WAF Fraud Control – Account Creation Fraud Prevention

4. ACFPに含まれるルールの概要

ACFPには、すべてのリクエストにChallengeアクションを適用するルールや、不審度の高いIPを検査するルール、盗まれた認証情報データベースを用いて検査するルールなどが含まれています。

これらのルールはSDKを使用して付与されるトークンや、ラベルを用いるものも多く、中にはSDKが導入されていないと使用できないルールもあります。

ルールの一覧と概要は下記の通りです。

ルール名 概要
UnsupportedCognitoIDP ACFPはAmazon Cognitoに対応していないため、Amazon Cognitoユーザープールへのリクエストが対象にならないように検査します。
AllRequests アカウント登録ページへのリクエストを検査し、Challengeアクションを適用します。
RiskScoreHigh 不審度の高いIPアドレスからのリクエストかどうかを検査します。
SignalCredentialCompromised 入力された値を元に盗まれた認証情報データベースを検索します。
SignalClientInteractivityAbsentLow 人による正常ではない操作であることを示すトークンがないか検査しCAPTCHAアクションを適用します。本ルールを使用する場合、SDKの導入が必須です。
SignalAutomatedBrowser トークン情報をもとに、自動化されたブラウザーからのアクセスの場合CAPTCHAアクションを適用します。
SignalBrowserInconsistency トークン情報をもとに、一貫性のないブラウザーからのデータの場合CAPTCHAアクションを適用します。
VolumetricIpHigh 同じIPアドレスからの大量のアクセスの場合、CAPTCHAアクションを適用します。
VolumetricSessionHigh 同じクライアントセッションからの大量のアクセスの場合、CAPTCHAアクションを適用します。
AttributeUsernameTraversalHigh 同じクライアントセッションからの違うユーザー名を用いた高頻度のリクエストを検査します。
VolumetricPhoneNumberHigh 同じ電話番号を用いた大量のアカウント作成リクエストを検査します。
VolumetricAddressHigh 同じ住所を用いた大量のアカウント作成リクエストを検査します。
VolumetricAddressLow 同じ住所を用いた低〜中程度のアカウント作成リクエストの場合、CAPTCHAアクションを適用します。
VolumetricIPSuccessfulResponse 同じIPアドレスからの大量のアカウント作成リクエストが成功しているレスポンスがあるか検査します。本ルールはCloudFrontに適用されたWeb ACLにのみ使用できます。
VolumetricSessionSuccessfulResponse 同じクライアントセッションからの大量のアカウント作成リクエストが成功しているレスポンスがあるか検査します。本ルールはCloudFrontに適用されたWeb ACLにのみ使用できます。
VolumetricSessionTokenReuseIp 5つを超える異なるIPアドレスで1つのトークンを使用しているか検査します。

ACFPに含まれるルールのより具体的な説明については以下のページから確認が可能です。
AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group

5. WafCharm での対応


現時点では、Account Creation Fraud PreventionのマネージドルールとWafCharmの併用はできません。近日中に対応予定です。

6/27追記
WafCharm側の対応が完了いたしましたので、Account Creation Fraud PreventionのマネージドルールとWafCharmの併用は可能です。

6. おわりに

ACFPの追加により、アカウント作成についても防御が可能となりました。

複雑な設定が事前に必要とはなりますが、不正管理アカウント乗っ取り防止 (ATP) ルールと併用することで、アカウントの作成からログインまで防御が可能になります。
アカウント作成やログインを行うWebサイトを管理されている方には、有用なルールかと思います。