不正行為の検出

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示します。

Advanced API Security の不正行為検出によって、API に関連するセキュリティ インシデントを確認できます。セキュリティ インシデントとは、セキュリティの脅威を表す可能性がある、類似したパターンを持つイベントのグループのことです。Advanced API Security は、ML モデルを使用して悪意のあるアクティビティを示すパターン(API のスクレイピングや異常など)を検出し、類似したパターンに基づいてイベントをまとめます。

検出されたセキュリティ インシデントについて、以下のことが報告されます。

  • インシデントのリスクレベルと期間
  • インシデントの影響を受けるプロキシ
  • インシデント イベントの IP アドレス
  • インシデントによってトリガーされた検出ルール
  • インシデントが発生した国

インシデントに関する上記以外の関連情報を確認することもできます。

不正行為検出には Apigee UI からアクセスするか(以下の説明を参照)、Incidents API または Security Stats API を介してアクセスできます。

不正行為検出タスクを実行するために必要なロールについては、不正行為検出に必要なロールをご覧ください。

不正行為検出用 ML モデルの改善にご協力ください

組織での不正行為検出用の ML モデルを改善するため、お客様のデータを使用したモデルのトレーニングを許可していただくようお願いいたします。お客様の実際のデータでモデルをトレーニングすると、セキュリティ インシデントの検出精度が向上します。トレーニングはお客様のモデルにのみ適用され、Google Cloud を利用している他のお客様と共有されることはありません。

Apigee UI で [不正行為の検出] ページを初めて開いたとき、お客様のデータを使用してお客様の組織のセキュリティ モデルをトレーニングすることを許可するようお願いするバナーが表示されます。

この機能を使用するには、アドオンを有効にする必要があります。サブスクリプションをご利用の場合は、組織のアドオンを有効にできます。詳細については、サブスクリプションを使用する組織の Advanced API Security を管理するをご覧ください。従量課金制をご利用の場合は、対象となる環境でアドオンを有効にできます。詳細については、Advanced API Security アドオンを管理するをご覧ください。

不正行為の検出ページを開く

[不正行為の検出] ページを開くには:

  • Cloud コンソールの Apigee UI を使用している場合: [Advanced API Security] > [不正行為の検出] を選択します。
  • 従来の Apigee UI を使用している場合: [Analyze] > [API Security] > [Abuse detection] を選択します。

これにより、不正行為の検出のメインページが表示されます。

不正行為の検出のメインページ。

Apigee による ML モデルの改善に対する許可を変更する

Apigee によるお客様の ML モデルの改善に対する許可はいつでも変更できます。そのためには、[不正行為の検出] ページの右上にある [設定] をクリックし、この機能を有効または無効にするオプションを選択します。

[不正行為の検出] のメインページ

ページの上部で、インシデントを表示する最近の期間を、過去 12 時間1 日1 週間2 週間のうちから 1 つ選択できます。

ページ内のテーブルには、選択した期間中にセキュリティ インシデントの影響を受けた組織内の環境が表示されます。

また、テーブルの各行には次の情報が表示されます。

  • 環境: 不正行為が発生した環境。
  • インシデントの総数: 選択した期間中に環境内で発生したインシデントの総数。UI に表示されるインシデントとデータの詳細については、表示されるインシデントとデータに関する制限事項をご覧ください。
  • リスクレベル: 重大、中、低の 3 つのリスクレベル別にインシデントの数を表示します。リスクレベルは、検出されたルールの数、種類、正当なトラフィックと比較したインシデントの相対的な大きさなど、インシデントのさまざまな特性に基づいて評価されます。リスクレベルは、調査すべきインシデントの優先順位付けに役立たせることを目的としており、これにより、最も重要なインシデントに集中できます。

    リスクレベルは、次のいずれかになります。

    • 重大: リスクの高い重大インシデント。優先的に調査することをおすすめします。
    • : 中程度のインシデントは、ある程度のリスクを伴いますが、深刻なリスクを伴うインシデントよりは小さいリスクです。低リスクのインシデントよりも優先して対応することをおすすめします。
    • : 低リスクのインシデントは、より高いリスクのインシデントを調査した後、最後に調査できます。

    各リスクレベルの横にある数字は、そのリスクレベルに該当するインシデントの数を表しています。

環境の詳細

選択した期間の環境内のインシデントを表示するには、上記のテーブルで環境を選択します。これにより、[環境の詳細] ビューが開きます。

インシデント ビュー。

インシデントまたは検出されたトラフィックを表示していて、それらに関連するリクエストをブロックする、またはそのようなリクエストにフラグを付けるセキュリティ対策を作成する場合は、ページの上部にある [Create Security Action] をクリックします。これで、[セキュリティ対策] ページが開きます。

[環境の詳細] ビューには、次の 2 つのタブがあります。

  • インシデント: 環境内のインシデントのリストとそれらに関する情報が表示されます。
  • Detected traffic: インシデントに関連して検出された不正行為のトラフィックの詳細が表示されます。

インシデント

[環境の詳細] ビューの [インシデント] タブには、以下のオプションが表示されます。

  • 環境: インシデントを表示する環境を変更します。
  • プロキシ: すべてのプロキシのインシデントを表示する場合は [すべて選択] を使用します。特定のプロキシのインシデントのみを表示する場合はそのプロキシを選択します。
  • Include archived incidents: これを選択すると、インシデント リストにアーカイブ済みのインシデントが表示されます。アーカイブ済みインシデントの横には アーカイブ済みアイコン。 アイコンが表示されます。

    アーカイブ済みインシデントがリストに表示されないようにするには、[Include archived incidents] をオフにします。表示されるインシデントの数が多くてすべてを表示したくない場合や、すでに調査したインシデントを非表示にしたい場合は、アーカイブ済みインシデントを非表示にします。

[インシデント] ビューには、以下の情報も表示されます。

  • Incident name: インシデントを要約して生成された名前。
  • リスクのレベル: インシデントのリスクレベル。
  • 上位の検出ルール: インシデントによってトリガーされた上位の検出ルールのリスト。

  • Incident traffic: イベントの総数。インシデントに関連する検出ルールの 1 つによってタグ付けされた API 呼び出し。
  • First event detected: インシデントの最初のイベントが検出された日時。
  • Last event detected: インシデントの最後のイベントが検出された日時。
  • 期間: 最初のイベントから最後のイベントまでの時間。
  • UUID: インシデントのユニバーサルに一意の識別子。

インシデントの詳細

インシデントの詳細を表示するには、テーブル内でその名前をクリックします。これにより、以下に示すように、[インシデントの詳細] ビューの [概要] ペインが表示されます。

[インシデントの詳細] ビュー

[環境の詳細] ビューと同様に、ページの上部にある [Create Security Action] をクリックして、そのインシデントに対するセキュリティ対策を作成できます。

[インシデントの詳細] ビューには、[概要] と [属性] の 2 つのタブがあります。属性(ディメンションとも呼ばれます)は、インシデントをさまざまな方法で表示できるようにするデータのグループです。たとえば、API プロダクト属性を使用すると、API プロダクトごとにインシデント データを表示できます。

[概要] タブと [属性] タブについては、後で説明します。

インシデントをアーカイブする

調査済みのインシデントと未調査のインシデントを区別できるように、注意する必要がなくなったインシデントをアーカイブできます。アーカイブしたインシデントは [環境の詳細] > [インシデント] リストに表示されなくなります([Include archived incidents] が選択されていない場合)。アーカイブしてもインシデントは削除されません。アーカイブはいつでも解除できます。

インシデントをアーカイブするには、[インシデントの詳細] ビューの上部にある [アーカイブ] を選択します。そうすると、[アーカイブ] ボタンのラベルが [アーカイブを解除] に変わります。[アーカイブを解除] ボタン。

インシデントのアーカイブを解除する

アーカイブしたインシデントのアーカイブを解除するには:

  1. [環境の詳細] > [インシデント] ビューで、アーカイブを解除するインシデントの横にある アーカイブ済みアイコン。 アイコンをクリックします。
  2. インシデント リストの上部にある [アーカイブを解除] をクリックします。

または、対象のインシデントの [インシデントの詳細] ビューが表示されている場合は、[アーカイブを解除] をクリックします。

[概要] タブと [属性] タブ

概要

[概要] ペインには、次のようなインシデントに関する基本情報が表示されます。

  • インシデント名: インシデントの名前。
  • リスクのレベル: インシデントのリスクレベル。
  • Impacted proxies: インシデントの影響を受けるプロキシの数。影響を受けるプロキシを表示するには、[View proxy] をクリックします。
  • 期間: 最初のイベントから最後のイベントまでの時間。また、イベントが最初に検出された日時も表示されます。
  • 分析情報: 不正行為の検出インシデントの詳細には、Google Cloud 生成 AI 大規模言語モデル(LLM)を使用して作成された生成 AI 分析情報が含まれる場合があります。LLM は、検出されたトラフィックをインシデントごとに要約して、セキュリティ インシデントをより良く理解できるようにします。また、インシデントに関する追加のコンテキストや情報、サポート ドキュメントへのリンク、推奨される次の手順も提示します。高評価アイコンまたは低評価アイコンをクリックし、必要に応じて説明を入力して、フィードバックをお送りください。

    分析情報の概要と推奨事項は、過去 14 日間のデータに基づきます。これは、インシデントが発生して 14 日以上が経過していた場合でも同様です。
    Cloud AI Companion API を使用するようにプロジェクトとユーザー アカウントが設定されている場合、これらの生成 AI 分析情報は、不正行為の検出で自動的に取り込まれます。Google Cloud プロジェクトで Cloud AI Companion API を有効にするGoogle Cloud プロジェクトで IAM ロールを付与するをご覧ください。

    生成 AI 分析情報を無効にするには、サービスの無効化の手順に沿って、このプロジェクトの Cloud AI Companion API を無効にします。
  • イベント: インシデントのイベントの時系列グラフを表示します。グラフの各時点に対応する y 値は、その短い期間内のイベントの合計数です。グラフ内のポイントにカーソルを合わせると、直近の期間のイベント数が [] の下に表示されます。カーソルを左右に動かして値の変化を観察することで、値が変わるところを確認できます。

    [イベント] ペインには、環境トラフィック数とインシデント トラフィック数の合計も表示されます。

    インシデントに関連する IP アドレスを表示するには、[View All IP Addresses] をクリックします。

    注: 複数のインシデントが同じ IP アドレスに対応している場合でも、一意の IP アドレスが表示されます。
  • Top rules detected: 次の情報を含む、検出された上位ルールグループの最大 5 つが表示されます。
    • Dominant rules: インシデントによってトリガーされた最も重要な検出ルール。
    • Dominant rules API events: 優先ルールによってタグ付けされた API イベントの数。
    • Total rules detected: インシデントによってトリガーされた検出ルールの数。

    すべてのルールを表示するには、カードの下部にある [View All Rules] をクリックします。

  • Top countries detected: インシデントにおけるイベントの発生源となった国を示す地図。地図の下には、これらの国のうち最大 5 か国と、これらの国から発生した総トラフィックの割合を示すグラフが表示されます。

    注: イベントの発生国を特定できない場合は、地図に「未設定」と表示されます。

    すべての国を表示するには、カードの下部にある [View All Countries] をクリックします。

属性

[属性] ビューでは、インシデントの詳細をドリルダウンできます。属性(ディメンションとも呼ばれます)は、インシデントをさまざまな方法で表示できるようにするデータのグループです。たとえば、API プロダクト属性を使用すると、API プロダクトごとにインシデント データを表示できます。

[属性] を表示するには、[インシデントの詳細] ビューの上部にある [属性] を選択します。

API プロダクトが選択された [属性] ペイン。

左側のペインには、すべての属性と、各属性の個別の値の数が表示されます。属性を選択して、そのインシデントの詳細を表示できます。

上の画像は、[API プロダクト] が選択された [属性] ビューです。[API プロダクト] ペインには、各 API プロダクトに対して行われた API 呼び出しの割合がグラフで表示されます。(not set) の値の詳細については、属性値が (not set) の場合の意味をご覧ください。

[フィルタ] フィールドを使用すると、ペインに表示される属性のデータをさまざまなプロパティでフィルタできます。

属性のペインには、インシデント データを属性の値ごとに示すテーブルが表示されます。テーブルの列は次のとおりです。

  • Total calls made: API 呼び出しの合計数。
  • % of calls: 属性の各値に対するすべての呼び出しの割合。
  • Last detection time: インシデントに関連するイベントが最後に検出された時刻。

一部の属性では、テーブルに追加の列があります。

左側のペインで、以下の属性から選択できます。

  • API プロダクト: インシデントの詳細を API プロダクトごとに表示します。
  • App keys: アプリキーでインシデントの詳細を表示します。アプリキーは API キーまたはコンシューマ キーとも呼ばれる、クライアントの識別子です。
  • 国 / 地域: インシデントの詳細を、インシデントのイベントが発生した国 / リージョン別に表示します。
  • デベロッパー: デベロッパー(API を使用してアプリケーションを開発するユーザー)別にインシデントの詳細を表示します。上記の 3 つの列に加えて、デベロッパーには「アプリ」というラベルの列もあり、各デベロッパーのアプリケーション数が表示されます。
  • Developer apps: アプリケーションごとにインシデントの詳細を表示します。

    上記の 3 つの列に加えて、[Developer apps] には、アプリを作成した [デベロッパー] という列もあります。

  • IP アドレス: インシデントのイベントのソースである IP アドレスごとに、インシデントの詳細を表示します。[View All IP Addresses] をクリックすると、IP アドレスが表示されます。注: 複数のインシデントが同じ IP アドレスに対応している場合でも、IP アドレスペインには一意の IP アドレスが表示されます。

    [IP アドレス] には、次の列が表示されます。

    • IP アドレス: インシデントの IP アドレス。
    • ロケーション: IP アドレスのロケーション。
    • Detected traffic: 当該 IP アドレスからのリクエストの合計数。
    • % of calls: 環境内のすべての呼び出しのうち、当該 IP アドレスからのリクエストの割合。
    • First event detected: インシデントでアクティビティが最初に検出された時間。
    • Last event detected: インシデントでイベントが最後に検出された時刻。
  • Proxies: プロキシごとにインシデントの詳細を表示します。
  • レスポンス コード: レスポンス コード別にインシデントの詳細を表示します。
  • ルール: 検出ルールごとにインシデントの詳細を表示します。
  • User agents: ユーザー エージェント(API 呼び出しを行ったソフトウェア エージェント)別にインシデントの詳細を表示します。

属性値が (not set) の場合の意味

属性に (not set) という値が含まれていることもあります。これが起こる理由はいくつかあります。たとえば、Apigee には属性の値(API 呼び出しが発生した国など)を判断するための十分な情報がない場合があります。また、特定のケースで属性が適用されない場合もあります。詳しくは、分析エンティティ値「(not set)」の意味をご覧ください。

検出されたトラフィック

[Detected Traffic] ビューには、[Last event detected] が過去 14 日以内であるインシデントに関する情報が表示されます。UI に表示されるデータの期間の詳細については、表示されるインシデントとデータに関する制限事項をご覧ください。

[Detected Traffic] ビューを開くには、下記のように、[環境の詳細] ビューで [Detected Traffic] を選択します。

不正行為ビュー。

[Detected Traffic] ビューには、次のデータが表示されます。

  • Total traffic: リクエストの合計数。
  • Detected traffic: 検出された不正行為の当該 IP アドレスからのリクエスト数。
  • % of detected traffic: トラフィックの全体のうちの、検出されたトラフィックの割合。
  • Detected IP address count: 検出された不正行為に対応する異なる IP アドレスの数。同じ IP アドレスからの複数のリクエストは、1 つの bot として 1 回のみカウントされます。

[Detected Traffic] ビューには、検出された不正行為に対応する各 IP アドレスの詳細を示すテーブルも表示されます。デフォルトでは、プライバシー上の理由から IP アドレスは表示されていません。表示するには、テーブルの上部にある [Display all IP addresses] を選択します。

IP アドレス テーブルの各行には、次の情報が表示されます。

  • IP アドレス: 検出された不正行為の IP アドレス。[表示] をクリックすると、アドレスを確認できます。
  • ロケーション: 当該 IP アドレスのロケーション。
  • Top app key: IP アドレスからのリクエストで最も頻繁に使用されたアプリキー。注: アプリキーは、API キーの別の用語です。
  • 検出ルール: 不正行為によってトリガーされたすべての検出ルールのリスト。
  • Top URL: 当該 IP アドレスから最も多くのリクエストを受け取った URL。
  • Detected traffic: 当該 IP アドレスからのリクエストの数。
  • % of detected traffic: 環境内のすべてのリクエストのうち、当該 IP アドレスからのリクエストの割合。
  • First event detected: [セキュリティ スコア] ページの上部で選択された時間範囲内に、当該 IP アドレスからのリクエストで初めてイベントが検出された時刻。
  • Last event detected: [セキュリティ スコア] ページの上部で選択された時間範囲内に、当該 IP アドレスからリクエストで最後にイベントが検出された時刻。

不正行為の検出に関する制限事項

不正行為の検出には次の制限があります。

  • [Last event detected] からの経過時間が 14 日を超えたインシデントは、不正行為検出 UI に表示されません。UI に表示されるインシデントとデータの詳細については、表示されるインシデントとデータに関する制限事項をご覧ください。
  • 初めて組織の Advanced API を有効にするか、再度有効にしたとき、イベントがインシデントにまとめられるまでに時間がかかります。その後は、定期的に遅延が発生します。
  • 大量のトラフィックがある組織では、[インシデントの詳細] 属性ページの読み込みに時間がかかることがあります。