翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ボットを管理するためのクライアント識別コントロール
攻撃関連のトラフィックが静的属性で簡単に認識できない場合、検出はリクエストを行うクライアントを正確に識別できる必要があります。例えば、レートベースのルールは、レート制限されている属性が Cookie やトークンなどのアプリケーション固有である場合に、より効果的で回避が難しいことがよくあります。セッションに関連付けられた Cookie を使用すると、ボットネットオペレーターが多くのボット間で同様のリクエストフローを複製できなくなります。
トークン取得は、クライアント識別に一般的に使用されます。トークン取得の場合、JavaScript コードは情報を収集して、サーバー側で評価されるトークンを生成します。評価は、JavaScript がクライアントで実行されていることの検証から、フィンガープリント用のデバイス情報の収集まで多岐にわたります。トークンの取得では、JavaScript SDK をサイトまたはアプリケーションに統合するか、サービスプロバイダーが動的にインジェクションを実行する必要があります。
JavaScript サポートを必須にすると、ボットがブラウザをエミュレートしようとする際のハードルが追加されます。モバイルアプリケーションなどの SDK が関与する場合、トークン取得は SDK の実装を検証し、ボットがアプリケーションのリクエストを模倣しないようにします。
トークンの取得には、接続のクライアント側で実装された SDKs を使用する必要があります。次の AWS WAF 機能は、ブラウザ用の JavaScript ベースの SDK とモバイルデバイス用のアプリケーションベースの SDK を提供します: Bot Control、 Fraud Control Account Takeover Prevention (ATP)、 Fraud Control Account Creation Fraud Prevention (ACFP)。
クライアント識別の手法には、CAPTCHA、ブラウザプロファイリング、デバイスのフィンガープリント、TLS フィンガープリントなどがあります。
CAPTCHA
コンピュータと人間を区別するための完全に自動化されたパブリックチューリングテスト (CAPTCHA) は、ロボット訪問者と人間訪問者を区別し、ウェブスクレイピング、認証情報スタッフィング、スパムを防ぐために使用されます。実装にはさまざまなものがありますが、多くの場合、人間が解決できるパズルが含まれます。CAPTCHAsは、一般的なボットに対する追加の防御レイヤーを提供し、ボット検出の誤検出を減らすことができます。
AWS WAF は、ルールの検査基準に一致するウェブリクエストに対して CAPTCHA アクションを実行することをルールに許可します。このアクションは、サービスによって収集されたクライアント識別情報の評価の結果です。 AWS WAF ルールでは、ログイン、検索、フォーム送信など、ボットによって頻繁にターゲットにされる特定のリソースに対して CAPTCHA チャレンジを解決する必要があります。 AWS WAF は、相互手段または SDK を使用して直接 CAPTCHA を提供してクライアント側で処理できます。詳細については、「CAPTCHA」と「チャレンジ AWS WAF」を参照してください。
ブラウザプロファイリング
ブラウザプロファイリングは、トークン取得の一環としてブラウザの特性を収集して評価し、インタラクティブブラウザを使用して実際の人間を分散ボットアクティビティと区別する方法です。ブラウザのプロファイリングは、ヘッダー、ヘッダーの順序、およびブラウザの動作に固有のリクエストのその他の特性を通じてパッシブに実行できます。
トークン取得を使用してコードでブラウザプロファイリングを実行することもできます。ブラウザプロファイリングに JavaScript を使用すると、クライアントが JavaScript をサポートしているかどうかをすばやく判断できます。これにより、サポートされていない単純なボットを検出できます。ブラウザプロファイリングは、HTTP ヘッダーと JavaScript サポートだけでなく、ボットがウェブブラウザを完全にエミュレートすることが困難になります。どちらのブラウザプロファイリングオプションも、実際のブラウザの動作との不整合を示すパターンをブラウザプロファイルで検索するという同じ目標を持っています。
AWS WAF ターゲットボットのボットコントロールは、トークン評価の一環として、ブラウザが自動化の証拠を示しているか、一貫性のないシグナルを示しているかを示します。 は、ルールで指定されたアクションを実行するためにリクエストを AWS WAF フラグ付けします。詳細については、 AWS セキュリティブログの「高度なボットトラフィックを検出してブロック
デバイスのフィンガープリント
デバイスのフィンガープリントはブラウザプロファイリングに似ていますが、ブラウザに限定されません。デバイス (モバイルデバイスまたはウェブブラウザ) で実行されているコードは、デバイスの詳細を収集し、バックエンドサーバーに報告します。詳細には、メモリ、CPU タイプ、オペレーティングシステム (OS) カーネルタイプ、OS バージョン、仮想化などのシステム属性を含めることができます。
デバイスフィンガープリントを使用して、ボットが環境をエミュレートしているかどうか、またはオートメーションが使用されている直接の兆候があるかどうかを認識できます。さらに、デバイスのフィンガープリントを使用して、同じデバイスからの繰り返しのリクエストを認識することもできます。
同じデバイスから繰り返されるリクエストを認識すると、デバイスがリクエストの特性を変更しようとしても、バックエンドシステムはレート制限ルールを適用できます。デバイスのフィンガープリントに基づくレート制限ルールは、通常、IP アドレスに基づくレート制限ルールよりも効果的です。これにより、VPNs またはプロキシ間でローテーションしているが、少数のデバイスから取得されているボットトラフィックを軽減できます。
ターゲットボットの AWS WAF ボット制御をアプリケーション統合 SDKs で使用すると、 はクライアントセッションリクエストの動作を 集約できます。これにより、両方が同じ IP アドレスから発信された場合でも、正当なクライアントセッションを検出して悪意のあるクライアントセッションから分離できます。ターゲット AWS WAF ボットのボット制御の詳細については、 AWS セキュリティブログの「高度なボットトラフィックを検出してブロック
TLS フィンガープリント
署名ベースのルールとも呼ばれる TLS フィンガープリントは、ボットが多くの IP アドレスから発信されるが、同様の特性を示す場合によく使用されます。HTTPS を使用する場合、クライアント側とサーバー側はメッセージを交換して相互に確認および検証します。暗号化アルゴリズムとセッションキーを確立します。これは TLS ハンドシェイクと呼ばれます。TLS ハンドシェイクの実装方法は、多くの IP アドレスにまたがる大規模な攻撃を認識する上でしばしば役立つ署名です。
TLS フィンガープリントを使用すると、ウェブサーバーはウェブクライアントのアイデンティティを高い精度で判断できます。アプリケーションデータ交換が発生する前に、最初のパケット接続のパラメータのみが必要です。この場合、ウェブクライアントとは、ブラウザ、CLI ツール、スクリプト (ボット)、ネイティブアプリケーション、またはその他のクライアントなど、リクエストを開始するアプリケーションを指します。
1 つの SSL および TLS フィンガープリントアプローチは JA3 フィンガープリント
Amazon CloudFront は、リクエストへの JA3 ヘッダーの追加をサポートしています。CloudFront-Viewer-JA3-Fingerprint ヘッダーには、受信ビューワーリクエストの TLS Client Hello パケットの 32 文字のハッシュフィンガープリントが含まれます。フィンガープリントは、クライアントがどのように通信するかに関する情報をカプセル化します。この情報は、同じパターンを共有するクライアントをプロファイリングするために使用できます。CloudFront-Viewer-JA3-Fingerprint ヘッダーをオリジンリクエストポリシーに追加し、そのポリシーを CloudFront ディストリビューションにアタッチできます。その後、オリジンアプリケーションまたは Lambda@Edge および CloudFront Functions でヘッダー値を検査できます。ヘッダー値を既知のマルウェアフィンガープリントのリストと比較して、悪意のあるクライアントをブロックできます。ヘッダー値と予想されるフィンガープリントのリストを比較して、既知のクライアントからのリクエストのみを許可することもできます。