翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ボットを管理するためのクライアント識別コントロール
攻撃関連のトラフィックを静的属性で簡単に認識できない場合、検出はリクエストを行うクライアントを正確に識別できる必要があります。例えば、レートベースのルールは、レート制限されている属性が 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 またはプロキシ間でローテーションしているが、少数のデバイスから取得されているボットトラフィックを緩和できます。
アプリケーション統合 SDKs、ターゲット AWS WAF ボットのボット制御は、クライアントセッションリクエストの動作を集約できます。これにより、正規のクライアントセッションを検出し、悪意のあるクライアントセッションから分離できます。両方のセッションが同じ IP アドレスから発信された場合でも同様です。ターゲットボットの AWS WAF ボット制御の詳細については、 AWS セキュリティブログの「高度なボットトラフィックの検出とブロック
TLS フィンガープリント
署名ベースのルールとも呼ばれる TLS フィンガープリントは、ボットが多くの IP アドレスから発信されるが、同様の特性を示す場合によく使用されます。HTTPS を使用する場合、クライアント側とサーバー側はメッセージを交換して相互に確認および検証します。暗号化アルゴリズムとセッションキーを確立します。これは TLS ハンドシェイク と呼ばれます。TLS ハンドシェイクの実装方法は、多くの IP アドレスにまたがる大規模な攻撃を認識する上でしばしば役立つ署名です。
TLS フィンガープリントを使用すると、ウェブサーバーはウェブクライアントのアイデンティティを高い精度で判断できます。アプリケーションデータ交換が発生する前に、最初のパケット接続のパラメータのみが必要です。この場合、ウェブクライアントとは、ブラウザ、CLI ツール、スクリプト (ボット)、ネイティブアプリケーション、またはその他のクライアントなど、リクエストを開始するアプリケーションを指します。
SSL および TLS フィンガープリントのアプローチの 1 つは、JA3 フィンガープリント
Amazon CloudFront は、リクエストへの JA3 ヘッダーの追加をサポートしています。CloudFront-Viewer-JA3-Fingerprint ヘッダーには、受信ビューワーリクエストの TLS Client Hello パケットの 32 文字のハッシュフィンガープリントが含まれます。フィンガープリントは、クライアントがどのように通信するかに関する情報をカプセル化します。この情報は、同じパターンを共有するクライアントをプロファイリングするために使用できます。CloudFront-Viewer-JA3-Fingerprint ヘッダーをオリジンリクエストポリシーに追加し、ポリシーを CloudFront ディストリビューションにアタッチできます。その後、オリジンアプリケーションまたは Lambda@Edge および CloudFront Functions でヘッダー値を検査できます。ヘッダー値を既知のマルウェアフィンガープリントのリストと比較して、悪意のあるクライアントをブロックできます。また、ヘッダー値を予想されるフィンガープリントのリストと比較して、既知のクライアントからのリクエストのみを許可することもできます。