WAF の Bot Management モジュールを使用すると、ネイティブ iOS および Android アプリを悪意のあるクローラーから保護するために、シナリオ固有のアンチクローラー ルールを設定できます。これらのルールは、ログイン、登録、注文の実行などの特定のビジネスフローにスコープを限定し、定義したトラフィックに対して署名検証、デバイス動作チェック、およびレート制限を適用します。
公開する前に、**[操作の検証]** ステップで各ルールを単一の IP アドレスに対してテストしてください。このステップをスキップすると、ルールが誤って構成されている場合や SDK の互換性問題がある場合に、正当なユーザーがブロックされるリスクがあります。
仕組み
リクエストが設定されたトラフィック特性と一致すると、WAF は SDK 署名検証、デバイス行動分析、レート制限の 3 つの保護レイヤーに対してリクエストを評価します。アプリに埋め込まれた Anti-Bot SDK は、各リクエストに署名を追加します。WAF はこの署名を使用して、クローラートラフィックをより正確に識別し、処理します。また、設定されたアンチクローラー ルールとインテリジェントなアルゴリズムを組み合わせて、一致するトラフィックを自動的に処理することもできます。
検証ステップ (ステップ 7) では、ルールを単一のテスト IP に限定するため、すべての本番トラフィックに適用される前に、ルールが正しく機能することを確認できます。
前提条件
開始する前に、以下を確保してください。
Bot Management モジュールが有効になっている、プロ版、ビジネス版、またはエンタープライズ版を実行しているサブスクリプション WAF インスタンス
WAF にウェブサイトが追加されていること (詳細については、「チュートリアル」をご参照ください。)
保護したいアプリに Anti-Bot SDK が統合されていること (詳細については、「アプリへの Anti-Bot SDK の統合」をご参照ください。)
アプリのアンチクローラー ルールの作成
設定ウィザードには、シナリオの定義、保護ルールの設定、ルールの検証、公開の 4 つのステップがあります。
WAF コンソールにログインします。上部のナビゲーションバーで、WAF インスタンスがデプロイされているリソースグループとリージョン (**中国本土** または **中国本土以外**) を選択します。
左側のナビゲーションウィンドウで、[保護設定] > [Web サイト保護] を選択します。
[Web サイト保護] ページの上部で、[ドメイン名の切り替え] ドロップダウンリストから保護対象のドメイン名を選択します。
「[ボット管理]」タブで、ルールウィザードを開始します:
最初のルール: [開始] を [シナリオ固有の設定] セクションでクリックします。
追加のルール:右上隅の [追加] をクリックします。
各ドメイン名は最大 50 個のアンチクローラー ルールをサポートします。
[シナリオの設定] ステップで、シナリオパラメーターを設定し、[次へ] をクリックします。
パラメーター 説明 シナリオ ログイン、登録、注文の実行など、保護するビジネスフローのタイプ。 サービスタイプ 保護するネイティブの iOS および Android アプリを選択するには、[アプリ] を選択します。HTML5 アプリの場合は、代わりに [Web サイト] を選択します。 トラフィック特性 アプリ宛てのトラフィックを識別する一致条件。各条件は、一致するフィールド (HTTP リクエストヘッダーフィールド)、論理演算子、および一致するコンテンツを指定します。最大 5 つの条件を追加できます。一致するコンテンツとして IP アドレスを入力する場合は、Enter を押して確認します。利用可能なフィールドについては、「一致条件のフィールド」をご参照ください。 「保護ルールの設定」ステップで、クローラー対策ルールを設定し、[次へ] をクリックします。
パラメーター 説明 [無効なアプリ署名のチェック] 常に有効です。WAF は、無効または欠落している SDK 署名を持つリクエストを検出します。[アクション] を [モニター] (ログのみ) または [ブロック] (リクエストを拒否) に設定します。 [異常なデバイス動作のチェック] 有効にすると、WAF は不審な特徴を持つデバイスからのリクエストにフラグを立てます:[シミュレーターの使用]、[プロキシの使用]、[ルート化されたデバイスの使用]、[デバッグモード]、[フッキング]、または [マルチボックス] (保護されたアプリの複数のインスタンスを同時に実行すること)。[アクション] を [モニター] または [ブロック] に設定します。 [アクション] [無効なアプリ署名のチェック] と [異常なデバイス動作のチェック] の両方に適用されます。[モニター] は、一致するリクエストをブロックせずにログに記録します。[ブロック] は、一致するリクエストを拒否します。 [IP アドレスのスロットリング] 有効にすると、WAF は IP アドレスごとのリクエストレートを監視します。IP アドレスからのリクエストが、指定されたタイムウィンドウ内でしきい値を超えた場合、WAF は設定された期間、その IP からの後続のリクエストに対してモニターまたはブロックのアクションを適用します。最大 3 つの条件を定義できます。詳細については、「カスタム保護ポリシーの設定」をご参照ください。 [デバイスのスロットリング] 有効にすると、WAF はデバイスごとのリクエストレートを監視します。同じデバイスからのリクエストが、指定されたタイムウィンドウ内でしきい値を超えた場合、WAF は設定された期間、モニターまたはブロックのアクションを適用します。最大 3 つの条件を定義できます。 [カスタムセッションベースのスロットリング] 有効にすると、WAF はセッションごとのリクエストレートを監視します。同じセッションからのリクエストが、指定されたタイムウィンドウ内でしきい値を超えた場合、WAF は設定された期間、モニターまたはブロックのアクションを適用します。最大 3 つの条件を定義できます。詳細については、「カスタム保護ポリシーの設定」をご参照ください。 アクションの検証ステップでは、ルールを公開する前にテストします。このステップでは、本番トラフィックに影響を与えないように、ルールの適用を単一のテストデバイスに限定します。3つのサブステップをすべて完了します。テストが完了したら、[テストを完了しました] をクリックして次に進みます。結果に問題がある場合は、[戻る] をクリックしてルールを調整し、再テストします。このステップをスキップするには、左下隅にある [スキップ] をクリックします。
[パブリック IP アドレスの入力]: テスト用デバイス(例:モバイル端末)のパブリック IP アドレスを入力します。テスト中は、この IP アドレスからのリクエストにのみルールが適用されます。> [ヒント]: パブリック IP アドレスを確認するには、Alibaba Network Diagnose Tool をクリックし、「ローカル IP」を検索するか、ブラウザで自分の IP アドレスを検索します。
SDK 署名を検証する: [テストの開始] をクリックして、Anti-Bot SDK が正しく統合され、有効な署名を生成していることを確認します。> [注:] Anti-Bot SDK はテストデバイスにインストールされている必要があります。インストールされていない場合、署名チェックが失敗し、テストを完了できません。
操作を選択: ブロック操作が有効になっているか確認します。**[テストを開始]** をクリックすると、WAF はすぐにルールをテストデバイスに配信し、予想されるテスト手順と結果を表示します。画面上の指示に従って、ブロック操作が正しく機能することを確認してください。
「保護ルールのプレビューと公開」ステップで、ルールを確認し、[公開] をクリックします。ルールは即時に有効になります。
このドメインに対して初めてアンチクローラー ルールを公開する場合、ルール ID は公開されるまで表示されません。ルール ID は、[セキュリティレポート] ページの [ボット管理] タブで確認してください。そのルール ID を使用して、WAF 向け Log Service で一致するリクエストをフィルターできます。
よくある質問
有効なテストリクエストが検出されません
テストリクエストが WAF に到達しなかったか、ルールと一致しません。以下を確認してください。
テストリクエストが、WAF によって提供される CNAME レコードにマッピングされている IP アドレスに送信されていることを確認します。
テストリクエストの HTTP ヘッダーフィールドと、設定した **[トラフィック特性]** を比較します。一致しない場合は、トラフィック特性を更新します。
テストデバイスのパブリック IP アドレスが、ステップ 7 で入力した IP アドレスと一致することを確認します。正しい IP を取得するには、Alibaba Network Diagnose Tool を使用します。
テストリクエストの検証に失敗しました
WAF は、テストが実際のユーザー動作をシミュレートしていないことを検出しました。デバッグモードや自動化ツールがこのエラーをトリガーする可能性があります。テスト中は、開発者ツールやプロキシソフトウェアを有効にせずに、実際のデバイスを使用し、アプリへの実際のユーザーアクセスをシミュレートしてください。
以下も確認してください。
サービス種別が一致しません: 「Web サイト」ではなく「アプリ」を選択した場合は、[サービス種別] パラメーターを変更し、再テストを行ってください。
中間ドメイン名が正しくない: セットアップで中間ドメイン名を使用している場合は、[中間ドメイン名を使用] を選択し、リストから正しい中間ドメイン名を選択します。
**フロントエンドの互換性問題**: エラーが続く場合は、Alibaba Cloud テクニカルサポートにチケットを送信してください。
検証がトリガーされません
テストルールが生成されませんでした。テストルールが生成されるまで数回テストを実行し、その後続行してください。