API Abuse Preventionの例外
¶
本記事では、正当なボットを識別してマークし、特定の対象URLやリクエストタイプに対するボット保護を無効化することで、API Abuse Preventionを細かく調整する方法を説明します。
これらの機能は、API Abuse Preventionのprofilesによる設定を拡張します。
正当な自動化向けの例外¶
正当なボットやクローラーに関連付けられたIPをマークしてAPI Abuse Preventionによるブロックを避けるには、Exception listを使用します。
exception listにIPアドレスまたは範囲を追加し、対象アプリケーションを指定します。これにより、これらのアドレスから対象アプリケーションへのあらゆるリクエストは悪意のあるボットとしてマークされず、API Abuse Preventionによってdeny-またはgraylistに追加されません。
exception listにIPアドレスを追加する方法は2つあります。
-
API Abuse PreventionセクションのException listタブでAdd exceptionを使用します。ここでは、IPやサブネットに加えて、API Abuse Preventionが無視すべきロケーションやソースタイプも追加できます。
-
Attacksセクションから:
api_abuse
、account_takeover
、scraping
、security_crawlers
の検索キーを使用するか、Typeフィルターで該当するオプションを選択し、目的のイベントを展開してAdd to exception listをクリックします。
IPアドレスをexception listに追加すると、そのアドレスがAPI Abuse Prevention自身によって追加されている場合(理由がBot
の場合)に限り、deny-またはgraylistから自動的に削除されます。
IPからの他の攻撃タイプのブロック
exception list内のIPが総当たりや入力バリデーション攻撃などの他の攻撃タイプを発生させた場合、Wallarmはそのようなリクエストをブロックします。
デフォルトでは、IPはexception listに無期限で追加されます。これを変更して、そのアドレスをexception listから削除する時点を設定できます。また、いつでも直ちにアドレスをexception listから削除できます。
Exception listタブでは履歴データを提供します。過去の選択した期間にリストに存在していた項目を表示できます。
対象URLおよび特定リクエスト向けの例外¶
exception listで良性ボットのIPをマークすることに加えて、リクエストの宛先となるURLや、特定のヘッダーを含むリクエストなど特定のリクエストタイプについて、ボット保護を無効化できます。
これを行うために、WallarmはSet API Abuse Prevention modeルールを提供します(ノードバージョン4.8以降でサポートされます)。
ルールの作成と適用
特定のURLまたはリクエストタイプに対するボット保護を無効化するには、次のとおりです。
-
Proceed to Wallarm Console:
- Rules → Add rule or your branch → Add rule.
- Attacks / Incidents → attack/incident → hit → Rule.
- API Discovery (if enabled) → your endpoint → Create rule.
-
Fine-tuning attack detection → Override API abuse profilesを選択します。
-
If request isで、このルールを適用するリクエストやURLを記述します。特定のbranch、hit、またはendpointからルール作成を開始した場合は、それらがスコープを定義します。必要に応じて条件を追加できます。
-
希望するモードを選択します。
- Default - 記述したスコープ(特定のURLまたはリクエスト)については、API Abuse Preventionの一般的なprofilesで定義された通常の方法でボットからの保護が機能します。
- Do not check for bot activity - 記述したURLやリクエストタイプについて、ボット活動のチェックを実行しません。
-
必要に応じて、コメントにこのURL/リクエストタイプ向けにルールを作成する理由を記載します。
ルールを削除せずに、そのURLやリクエストタイプの例外を一時的に無効化できます。その場合はDefaultモードを選択します。後からいつでもDo not check for bot activityに戻すことができます。
ルール例
リクエストヘッダーによる正当なボットの識別
あなたのアプリケーションが、複数のIPからリクエストを送信するマーケティングオートメーションツールKlaviyoと連携しているとします。そこで、特定のURIに対するKlaviyo/1.0
ユーザーエージェントからのGETリクエストについては、自動化(ボット)活動のチェックを行わないように設定します。
テスト用エンドポイントでのボット保護の無効化
アプリケーションに属するエンドポイントがあるとします。アプリケーションはボット活動から保護すべきですが、そのテスト用エンドポイントは例外にしたいとします。さらに、APIインベントリはAPI Discoveryモジュールで発見済みです。
この場合は、API Discoveryのエンドポイント一覧からルールを作成する方が簡単です。そこに移動し、対象のエンドポイントを見つけて、そのページからルール作成を開始します。
profilesの無効化と削除¶
無効化されたprofilesは、トラフィック解析中にAPI Abuse Preventionモジュールが使用しないものの、profiles一覧には表示されます。無効化されたprofilesはいつでも再有効化できます。有効なprofilesが1つもない場合、このモジュールは悪意のあるボットをブロックしません。
削除されたprofilesは復元できず、API Abuse Preventionモジュールはトラフィック解析中に使用しません。
profileメニューにDisableとDeleteオプションがあります。