【目次】
1. はじめに
2025年3月6日、AWS WAFでJA4 fingerprintを検査できるようになり、またレートベースルールでも集約キーとしてJA3 とJA4 fingerprintが使用できるようになったと発表されました。
AWS WAF adds JA4 fingerprinting and aggregation on JA3 and JA4 fingerprints for rate-based rules
本記事では、アップデートの内容について見ていきます。
2. JA4 fingerprintを検査するルールについて
1つ目のアップデートは、JA4 fingerprintを検査できるルールが作成できるようになったことです。
JA4 fingerprintは、TLS Client Helloをもとに算出した値で、リクエストの送信元を判別する際に使用できる、JA3 fingerprintの後続技術です。JA3/JA4 fingerprintはクライアントごとの識別子として活用できます。
AWS WAFでは、2023年9月にJA3 fingerprintのサポートが開始しており、それにJA4 fingerprintが追加されたような形です。
AWS WAFのルールを追加し、Inspectの箇所を開くと、「JA4 fingerprint」という項目が追加されています。値に完全にマッチする場合のみ検知可能ですので、事前にマッチさせたい値を確認する必要があります。
JA4 fingerprintの値はWAFログの ja4Fingerprint
の項目に記載されますので、ブロックしたいリクエストからJA4 fingerprintの値を特定し、その値をルール上で指定します。
また、JA4 fingerprintの値が存在しなかった場合にルールがどのように振る舞うかも設定が必要です。JA4 fingerprintの詳細は、以下のAWS公式ドキュメントもご確認ください。
Request components in AWS WAF – JA4 fingerprint
3. レートベースルールについて
レートベースルールでは、JA3 fingerprintおよびJA4 fingerprintの値を集約キーとして指定できるようになりました。
レートベースルールや集約キーについては、以下のブログ記事をご参考ください。
レートベースルールの使い方
レートベースルールの条件を詳細に指定できるようになりました
AWS WAF のレートベースルールのカスタムキー URI を指定できるようになりました
上記のブログ記事にも記載の通り、集約キー(Custom Key)はIPアドレス以外の項目で同じリクエストを特定し、レート制限を行います。
JA3あるいはJA4 fingerprintを集約キーに選択した場合、同じJA3/4 fingerprintの値を持つ送信元から閾値を超えるリクエストがあった場合にレートベースルールが適用されます。
IPアドレスの代わりに、JA3あるいはJA4 fingerprintを用いて送信元を特定したい場合には集約キー(Custom Key)を用いると良さそうです。
ルール設定の画面で「Rate-based rule」を選択した後、「Custom keys」を選択すると、プルダウンメニューにJA3 fingerprintとJA4 fingerprintといった選択肢が追加されています。
IPアドレスで集約する際と同じようなイメージですので、個別に値を指定する必要はありません。通常ルールと同じように、値が存在しなかった場合にどのように振る舞うかは指定する必要があります。
レートベースルールの適用対象を絞るためのスコープダウンステートメントについては、他の集約キーと同じように利用可能です。
4. WafCharmでの対応
2025年3月7日現在、WafCharmの方ではこちらのアップデートに追随できておらず、対応中となります。
お客様にてJA4 fingerprintを用いた通常ルールあるいはレートベースルールを追加した場合、WafCharm側でエラーが発生する可能性があります。
ご不便をおかけし申し訳ありませんが、対応が完了次第ご案内致しますので今しばらくお待ちください。
WafCharmが本アップデートに追随いたしました。以下の対応が可能となっております。
- お客様にてAWSマネージメントコンソールからJA3/4 fingerprintを用いたルールを追加する
- カスタマイズにてJA3/4 fingerprintを用いたルール適用を行う
カスタマイズをご希望の場合には、これまで通りWafCharmサポートまでお問い合わせください。
5. おわりに
今回のアップデートでは、JA4 fingerprintの値を通常ルールおよびレートベースルールで使用できるようになりました。例えば、特定のBotからのリクエストをブロックしたい、といった場合に、JA4 fingerprintの値を特定しブロックすることも可能です。
DDoS攻撃などでIPアドレスが頻繁に変わる場合にも、JA4 fingerprintであれば検知できるといったケースもあるかもしれません。AWS WAF単体でDDoS攻撃に対応することは難しいものの、緩和策の1つとして有用な場合もあるかと思います。