View a markdown version of this page

ユースケースの Bot Control の選択と設定 - AWS WAF、 AWS Firewall Manager AWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

の新しいコンソールエクスペリエンスの紹介 AWS WAF

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「コンソールの使用」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユースケースの Bot Control の選択と設定

Bot Control は、さまざまな自動脅威から保護します。適切な設定は、保護対象と直面する脅威によって異なります。このトピックでは、適切な保護レベルを選択し、一般的なアプリケーションシナリオに合わせて Bot Control を設定します。

Bot Control とアプリケーションとの一致

ボットの脅威は、通常 3 つのカテゴリに分類されます。

  • 不正の脅威 – 認証情報のスタッフィング、フェイクアカウント、自動購入。

  • コンテンツの脅威 – 料金データ、製品カタログ、公開済みコンテンツのスクレイピング。

  • 可用性の脅威 – パフォーマンスの低下やインフラストラクチャコストの増加につながるボットトラフィック量。

これらの脅威のほとんどについては、クライアントアプリケーション統合 SDKs でターゲットを絞った保護レベルを使用することをお勧めします。次のシナリオでは、 ごとに Bot Control を設定する方法について説明します。

ログインページとアカウントページの保護

認証情報スタッフィングとアカウント乗っ取り攻撃では、自動ツールを使用して、盗まれた認証情報をログインエンドポイントに対してテストします。アカウント作成の不正はボットを使用して、大規模なフェイクアカウントを作成します。アプリケーション統合 SDK をサイト全体で統合し、ログインとアカウント作成の保護のために Bot Control を AWS WAF Fraud Control マネージドルールグループとペアリングします。

製品カタログと料金データの保護

アプリケーションが製品情報、料金、在庫レベル、またはその他の競合データを表示する場合、ボットはこのコンテンツをスクレイプして競合相手のインテリジェンスを供給したり、比較サイトを構築したり、料金を減らしたりすることがあります。これらのスクレイパーは、多くの場合、実際のブラウザを模倣し、検出を避けるために住宅用 IP アドレスをローテーションします。Bot Control をチェックアウトだけでなく、製品ページとカタログページに適用します。これにより、ボットが通常のブラウザのように見えても、Bot Control は自動スクレイピングの動作パターンを検出できます。

公開されたコンテンツの保護

コンテンツパブリッシャー、ニュースサイト、メディアプラットフォームは、記事、イメージ、その他の元のコンテンツをコピーするボットに直面します。このコンテンツの盗難により、検索ランキングが減り、広告収益が減少し、競争力が損なわれる可能性があります。コンテンツページ全体に Bot Control を適用します。Bot Control ダッシュボードを使用して、コンテンツにアクセスしているボットをモニタリングし、各カテゴリの処理方法を決定します。詳細については、「AWS WAF Bot Control コンポーネント」を参照してください。

不要なクローラによるインフラストラクチャコストの削減

スクレイパー、クローラ、自動ツールは、ビジネス価値を提供することなく、大量のトラフィックを生成し、コンピューティングとデータ転送のコストを増やすことができます。Bot Control は、スクレイパー、HTTP ライブラリ、クローリングフレームワークなどのカテゴリ別に自己宣言ボットを識別します。その後、ラベルを使用して各カテゴリを個別にブロックまたはレート制限できます。回避的スクレイピングの場合、ターゲットを絞った保護は、住宅用プロキシやヘッドレスブラウザを使用しているボットなど、アイデンティティを偽装するボットを検出します。

高価値トランザクションの保護

チェックアウトフロー、限定在庫購入、チケット販売は、正当な顧客と競合する自動購入ボットのターゲットです。Bot Control は、Selenium や Puppeteer などの自動ブラウザを検出し、セッションレベルのレート制限を適用して、単一のクライアントがインベントリを独占しないようにします。トランザクションページに SDKs を統合して、最も強力な検出精度を実現します。

AI クローラの管理とデータスクレイパーのトレーニング

AI ボットはアプリケーションからコンテンツを収集して、AI アプリケーションのモデルをトレーニングしたり、データを表面化したりします。Bot Control は、既知の AI ボットを分類します。検証済み検索エンジンクローラなど、許可する特定の AI ボットを許可するカスタムルールを作成し、他のボットをブロックまたはレート制限します。ブラウザ自動化フレームワークを使用してアプリケーションを操作する AI エージェントの場合、Bot Control はこれらの自動セッションを検出してチャレンジします。ウェブボット認証 (WBA) を使用すると、正当な AI エージェントは自分のアイデンティティを暗号的に証明できます。これにより、認可されたエージェントを不正なエージェントと区別するための信頼性の高いシグナルが得られます。WBA の詳細については、「」を参照してくださいAI エージェントのウェブボット認証

モバイルアプリケーションの保護

モバイルアプリケーションはウェブアプリケーションと同様のボットの脅威に直面しますが、トラフィックの特性は異なります。モバイルクライアントはブラウザ以外のユーザーエージェントを使用します。ネイティブモバイルアプリケーションフレームワークからの HTTP リクエストは Bot Control SignalNonBrowserUserAgentルールから除外されますが、非標準の HTTP ライブラリとアプリ内ブラウザは除外されません。 AWS WAF Mobile SDK を iOS または Android アプリケーションに統合して、ターゲットを絞った保護が正確な検出に使用するクライアント側のトークンを提供します。

共通保護とターゲット保護の選択

Bot Control には 2 つの保護レベルがあります。以下のガイダンスは、アプリケーションに適したレベルを選択するのに役立ちます。

一般的な保護レベル

一般的な保護は、ユーザーエージェント文字列、IP アドレス、およびその他のリクエスト特性を通じて自身を識別するボットを検出します。既知の組織 (検索エンジンなど) からのボットであると主張するボットが実際にそれらの組織から発信されていることを確認します。一般的な保護により、誰がアプリケーションにアクセスしているかを可視化し、各ボットカテゴリを個別に制御できます。SDKs は不要で、リクエストあたりのコストが低くなります。一般的な保護は、検索エンジンのクローラを許可しながら不要なスクレイパーをブロックするなど、既知のボットトラフィックを主に管理する必要がある場合の良い出発点です。

ターゲットを絞った保護レベル

ターゲットを絞った保護レベルは、一般的な保護レベルが検出したすべてのものを検出し、自己識別しないボットの検出を追加します。ブラウザ調査、TLS フィンガープリント、動作ヒューリスティック、機械学習を使用して、自動クライアントを人間と区別します。機械学習は、タイムスタンプ、ブラウザの特性、ナビゲーション動作など、特定のウェブサイトのトラフィックパターンを分析します。トラフィックの変化やボットの戦術の変化に応じて、検出を更新します。ターゲットを絞った保護は、認証情報のスタッフィング、高度なスクレイピング、自動購入、または攻撃者が検出を積極的に回避しようとするボットアクティビティに直面するアプリケーションに推奨されます。

ほとんどの本稼働ウェブアプリケーションでは、ターゲットを絞った保護をお勧めします。特定のシナリオのターゲットを絞った保護を設定するガイダンスについては、「」を参照してくださいBot Control とアプリケーションとの一致。トラフィック量が多い場合のコスト管理のガイダンスについては、「」を参照してくださいのコスト管理

共通 Targeted
自己識別ボットを検出する はい はい
正当なボット (検索エンジン、モニタリングサービス) を検証する はい はい
ID を非表示にするボットを検出します いいえ はい
トラフィックに合わせた機械学習 いいえ はい
セッションレベルのレート制限 いいえ はい
ブラウザ自動化ツールを検出する はい (自己識別) はい (回避を含む)
クライアントアプリケーション統合 SDKs 不要 強く推奨
ルールグループバージョンの確認

Bot Control マネージドルールグループは、時間の経過とともに新しい検出機能で更新されます。現在使用しているバージョンと、新しい静的バージョンが使用可能かどうかを確認します。新しいバージョンには、新しいボットの脅威に対するカバレッジを向上させる追加の検出が含まれています。で使用可能なバージョンとその変更を確認できますAWS マネージドルールの変更ログ

Bot Control 検出の仕組み

Bot Control は、評価されるすべてのリクエストに、ボット名、カテゴリ、組織、検証ステータスなどの詳細な分類でラベルを付けます。これらのラベルに一致するルールを記述して、ボットのタイプごとに実行するアクションを決定します。これにより、すべてのボットトラフィックに対する単一のallow-or-blockの決定ではなく、完全な制御が可能になります。

ターゲットを絞った保護レベルでは、Bot Control は複数の検出手法を組み合わせます。これには、署名マッチング、ブラウザ調査、TLS フィンガープリント、動作ヒューリスティック、ウェブサイトのトラフィックパターンに合わせて調整された機械学習が含まれます。ある手法を回避するボットは、別の手法でキャッチされる可能性があります。機械学習は、調整されたボットアクティビティも検出します。これは、個々のリクエスト分析が見逃す方法で複数のクライアントが連携するパターンです。すべての Bot Control コンポーネントの詳細については、「」を参照してくださいAWS WAF Bot Control コンポーネント。クライアントと 間の Challengeおよび CAPTCHAインタラクションの仕組みのチュートリアルについては AWS WAF、「」を参照してくださいCAPTCHA および Challengeの AWS WAF

のコスト管理

Bot Control マネージドルールグループの使用にかかるコストは、 で AWS WAF 評価されるウェブリクエストの数に応じて増加します。ほとんどのアプリケーションでは、Bot Control のコストは Bot Control が提供する保護によって正当化されます。ボットトラフィックをブロックすると、多くの場合、検査自体のコストよりもコンピューティング、帯域幅、データ転送のコストが削減されます。コストをさらに最適化する必要がある場合は、次の戦略が役立ちます。

静的アセットを除外する

最も簡単なコスト最適化は、.css、、.jpg.pngなどの静的ファイルタイプのリクエストを .svg Bot Control 検査から除外することです。アプリケーションデータと機能をターゲットとするボットは、スタイルシートやイメージではなく、動的なエンドポイントにヒットします。これにより、検出効率を低下させることなく、検査されたリクエストが削減されます。例については、Bot Control の例: 動的コンテンツにのみ Bot Control を使用するを参照してください。

効率のための順序ルール

Bot Control マネージドルールグループの前に、より安価なルールを保護パック (ウェブ ACL) に配置します。IP 評価リスト、地理的制限、レートベースのルールなどのルールは、有料の Bot Control 検査に到達する前に、明らかに不要なトラフィックをブロックできます。以前のルールによってブロックされたリクエストは Bot Control によって評価されないため、リクエストごとの追加料金は発生しません。

必要に応じて特定のエンドポイントにスコープする

一部のアプリケーションでは、Bot Control をサイトの特定の部分にのみ適用できます。たとえば、アプリケーションに機密データや貴重なコンテンツが含まれていない公開情報セクションがある場合は、検査から除外できます。製品カタログ、料金データ、公開された記事など、保護する価値のあるコンテンツを含むページを除外しないように注意してください。例については、Bot Control の例: ログインページにのみ Bot Control を使用しますを参照してください。

クライアントアプリケーション統合 SDKsの統合

JavaScript および Mobile SDKs を使用して、ターゲットを絞った保護の効果を最大化します。SDKs は、ターゲットルールがセッションレベルの検出に使用するブラウザフィンガープリント、チャレンジトークン管理、動作テレメトリを提供します。ここでのセッションは、特定のブラウザまたはデバイスを表す SDK が取得するクライアントトークンによって識別されます。SDKs がない場合、ターゲットを絞った保護は操作するコンテキストがはるかに少なく、高度なボットを正当なユーザーと確実に区別することはできません。

SDK を最初から統合する

ターゲットを絞った保護をデプロイするときSDKs を同時に統合します。これは、本番環境にデプロイするか、テスト環境で Bot Control を評価するかにかかわらず適用されます。SDKs を使用せずにターゲットを絞った保護を評価しても、その検出機能を正確に把握することはできません。ターゲットを絞ったルールの多くは、SDKs が提供するクライアント側のシグナルに依存するためです。

広範な統合を推奨

最も強力な検出を行うには、ログインやチェックアウトだけでなく、動的コンテンツを提供するすべてのページで JavaScript SDK を統合します。Bot Control は、リクエストのタイミング、ページシーケンス、インタラクションパターンなど、クライアントがアプリケーションをどのようにナビゲートするかから動作プロファイルを構築します。SDK が 1 ページのみに存在する場合、Bot Control の動作コンテキストは限られており、実際のユーザーを 1 ページのロードを模倣することを学習したボットと区別できます。より広範な統合により、Bot Control は各クライアントセッションをより詳細に把握できるため、住宅用プロキシボットネットなどの高度なボットの検出が向上します。少なくとも、SDK を最も重要なページに統合しますが、これを終了状態ではなく開始点として扱います。

モバイルアプリケーション

iOS および Android アプリケーションの場合は、 AWS WAF Mobile SDK を使用します。Mobile SDK は、アプリ内のトークンの取得と更新を処理します。SDK の詳細については、「でのクライアントアプリケーション統合 AWS WAF」を参照してください。

一般的な設定調整

ほとんどの Bot Control デプロイでは、アプリケーショントラフィックの特定の特性に合わせて設定を調整する必要があります。以下は最も一般的な調整です。

モニタリングツールとヘルスチェックツールの許可

内部モニタリングツール、アップタイムチェッカー、ロードバランサーのヘルスチェックは、Bot Control がボットアクティビティとして識別する自動トラフィックを生成します。ソース IP アドレス範囲に一致するスコープダウンステートメントまたはモニタリングツールに含まれるカスタムヘッダーを使用して、Bot Control 検査からこれらのリクエストを除外します。

アプリケーション内ブラウザと非標準 HTTP ライブラリの除外

ユーザーがソーシャルメディアアプリから開かれたリンクなど、アプリ内ブラウザを介してサイトにアクセスする場合、またはモバイルアプリが標準以外の HTTP ライブラリを使用している場合、これらのクライアントがSignalNonBrowserUserAgentルールをトリガーすることがあります。標準のネイティブモバイルフレームワークはこのルールから除外されますが、ブラウザ以外の他のユーザーエージェントは除外されません。これらのクライアントの Bot Control ルールグループでユーザーエージェント例外を設定します。例については、Bot Control の例: ブロックされたユーザーエージェントの例外を作成するを参照してください。

検証済みボットクローラの管理

Bot Control では、検証済みボットがデフォルトで許可されます。積極的な正当な検索エンジンのクローリングによる負荷を軽減するために、検証済みのクローラもレート制限する場合は、ボットラベルを使用して、特定の検証済みボットカテゴリのリクエストレートを制限するカスタムレートベースのルールを記述します。例については、Bot Control の例: 検証済みボットを明示的に許可するを参照してください。

ボットシグナルをオリジンに転送する

Bot Control 分類ラベルをカスタムリクエストヘッダーとしてアプリケーションに渡すことができます。その後、オリジンはラベルを使用して、疑わしいスクレイパーに簡略化されたコンテンツを提供したり、独自の分析でボットアクティビティを記録したり、誤検出レポートのためにブロックページにリクエスト識別子を含めることができます。 AWS WAF カスタムリクエストヘッダー機能を使用して、ラベル一致に基づいてヘッダーを挿入します。ヘッダーの動的ラベル値の詳細については、「」を参照してくださいでカスタマイズされたウェブリクエストとレスポンス AWS WAF

ステップアップ認証のトリガー

疑わしいトラフィックを完全にブロックする代わりに、Bot Control シグナルをアプリケーションに転送し、それらを使用して追加の検証をトリガーできます。例えば、Bot Control がセッションを疑わしいものとしてラベル付けする場合、アプリケーションは多要素認証を要求したり、機密性の高いアクションを完了する前に追加の検証ステップを提示したりできます。ステップアップ認証は、自動脅威から保護しながら、誤検出の影響を軽減します。カスタムリクエストヘッダーを使用して、関連する Bot Control ラベルをオリジンに渡します。

強制前のテスト

最初に Bot Control をカウントモードでデプロイします。カウントモードでは、Bot Control はすべてのリクエストにラベルを付けますが、トラフィックをブロックしません。 AWS WAF ログのラベルを確認して、Bot Control がトラフィックで検出した内容を理解し、正当なトラフィックに誤ったラベルが付けられていないことを確認し、検出精度に確信が持てたらブロックモードに切り替えます。テストとデプロイの詳細については、「」を参照してくださいAWS WAF Bot Control のテストとデプロイ