このトピックでは Apigee Sense コンソールの概要を説明します。コンソールでは、API プロキシへのトラフィックに関する Apigee Sense 分析の結果を確認できます。ボット攻撃などの疑わしいリクエストを行っているクライアントが見つかった場合、このコンソールを使用して、そのクライアントの IP アドレスからのリクエストをブロックする、フラグを立てるといったアクションを実行できます。
Apigee Sense とはで説明されているように、Apigee Sense は API へのリクエストに関するデータを収集して分析します。この分析結果を利用して、Apigee Sense は疑わしいと思われるリクエストのパターンを識別します。Apigee Sense コンソールを使用すると、リクエスト分析結果を表示し、アクションを行うことができます。
- [New Edge experience] を開きます。
New Edge エクスペリエンスで、[Analyze] メニューをクリックしてから、[Sense] をクリックします。
[Sense] ページに、疑わしいリクエストを含む、リクエスト アクティビティのグラフィカル スナップショットが表示されます。
コンソールの右上隅で、リクエスト データを表示する対象となる Apigee Edge 組織を選択します。
これは、Apigee Sense でリクエスト データを収集している API プロキシを含む組織です。
左上隅で、Apigee Sense 分析データが存在する日付を 1 つ選択します。
日付を選択すると、このページのグラフに、リクエスト トラフィックを含む Apigee Sense 分析の大まかな概要が示されます。
リクエスト分析サマリーの表示
疑わしいアクティビティの概要を表示できます。これに基づき、さらに掘り下げて調べることができます。
ページ上部で、[Detection] > [Report] メニューをクリックし、リクエストで見つかった疑わしいアクティビティに関するデータを表示します。
[Bot Analysis Report] ページの上部にある [Suspected Bot Traffic] セクションに、疑わしいリクエストによく見られる測定値を持つトラフィックの概要が表示されます。
[Detection] ページには、疑わしいアクティビティに関する 2 つのビューも表示されます。
- [Partition View] では、Apigee Sense によって疑わしいと判断された理由ごとにクライアントがグループ化されます。
- [List View] には、IP アドレス別のリクエスト クライアントのリストと、データのその他の側面が表示されます。
[Partition View] では、疑わしいアクティビティを表すパターンに分類されたトラフィックが表示されます。パターンの詳細については、疑わしいアクティビティへの対処をご覧ください。これらのパターンにグループ化されたリクエスト トラフィックは、リクエスト データに関する Apigee Sense 分析の成果物です。
パターンに一致するリクエストすべてが不正なリクエストとは限りません。非常に高いボットカウントやトラフィック数を探してください。
たとえば、Login Attempter パターンは、24 時間の期間にログイン プロキシに到達しようと試みた回数がかなり多いことを表します。以下の図で、(他のパターンと比べた)特に大きいボットカウント数は、多数のクライアントが 1 日の間にログイン プロキシに到達しようと試みたことを示しています。このパターンについて調べてみる価値があります。
分析の詳細を使用した調査
ボット攻撃のような疑わしいアクティビティを含む一連のリクエストを識別したら、それらのリクエストの詳細を表示できます。真のボット攻撃を見分けるには、Apigee Sense 分析と、API を呼び出すクライアントに関する専門知識を組み合わせて判断する必要があります。
[Detection] ページの [Partition View] で、特に高いボットカウントを示すパターンなど、関心のあるパターンを見つけます。そのパターンが何を表しているか詳しく調べるには、[View] ボタンをクリックします。
ここで、選択したパターンに一致するアクティビティの詳細を確認できます。以下に示すリストには、注目に値する点がいくつかあります。
- 24 時間で 1,000 個に近い多数の IP アドレスが示されています。
- それらの IP の背後には比較的数の少ない ISP が存在し、それらの ISP は地理的に広く分散しています。
- ボット トラフィック カウントは、IP ごとに約 250~260 でほぼ一致しています。これは、[% of bot traffic] の測定値によっても表されています。
このような情報を総合すると、これらの IP からのリクエストは、ログイン URI に対する組織的で機械化された攻撃であると推測されます。
1 つのクライアントに関する詳細をさらに表示するには、左側の列にあるいずれかの IP アドレスをクリックします。
[Detection] タブをクリックし、その IP アドレスからのリクエストについて Apigee Sense が検出した内容を確認します。
ダイアログの上部に、この IP アドレスからのリクエストに関する、Apigee Sense で検出された動作のリストが表示されます。
ある IP アドレスから届くリクエストを Apigee Edge で特別に扱うべきかどうかを判断するには、[Detection] の下にあるプルダウンのカテゴリを使用します。たとえば、次の値カテゴリを使用すると、その IP アドレスが攻撃を表しているかどうか判断するのに役立ちます。
- [Response status code]。500 などの高い値のエラーコードがリスト内に多く見られる場合、クライアントが誤ったリクエストを使って何度も試みたことを示唆しています。つまり、そのクライアントはエラー結果を意識せずに単にリクエストを繰り返し送っているだけの可能性があります。
- [Request URI]。いくつかの URI は、攻撃ポイントとしてとりわけ重要です。ログイン URI はそのうちの 1 つです。
[Protection] タブをクリックすると、その IP アドレスからのリクエストに関してすでに有効になっている保護ルールのリストが表示されます。
ルールは優先度の順にリストされ、最も優先度の高いアクション(Allow)が上に、最も低いもの(Flag)が下になります。Apigee Sense では、1 つの IP アドレスに対して複数の種類のアクションを実行できます。その理由を説明すると、通常は、複数の IP アドレスが関与する 1 つの動作(振る舞い)に対してアクションを実行します。たとえば総当たり推測をブロックする場合などです。ただし一部の IP アドレスは、Brute Guessor(総当たり推測)などの望ましくない動作パターンに一致したとしても、良い意図を持った IP であるかもしれません(たとえば自社やパートナーがシステムをテストしている場合)。そのようなケースでは、動作に関係なく、それらの特定の IP アドレスを許可すべきでしょう。したがって、その IP アドレスに対する 3 種類のアクションを有効にし、Allow アクションを Block や Flag よりも優先させます。
ある IP が、アクション対象となるクライアントを表す可能性が高いことを確認した後、そのクライアントからのリクエストをインターセプトするアクションを実行できます。
[Detailed View] で、[Close] ボタンをクリックします。
疑わしいリクエストを行うクライアントに対してアクションを実行する
ボット攻撃など、インターセプト対象となるリクエストを行うクライアントが見つかったと確信した場合、どうすればよいでしょうか。リクエストがプロキシに到達する前に、クライアントからのリクエストをブロックする、またはフラグを立てるルールを作成します。
[Detection] ページの [Bot Analysis Report] で、[Partition View] タブをクリックし、パターンリストの表示に戻ります。
[Partition View] で、パターンリストが以前よりも短くなり、前回の表示で選択したパターンのみが含まれていることに注目してください。これは、表示するパターンを選択したときにフィルタリングが開始され、結果のリスト全体の中でそのパターンのみが表示されているためです。フィルタリング基準のパターンは、ページの上部近くにある [Filters] ボックスに表示されます。
パターンの行で [Act] ボタンをクリックし、パターンに一致した IP からのリクエストに対して実行するアクションを指定します。
[Compose Rule] ダイアログで、特定のパターンの呼び出しを行う IP からのリクエストを Apigee Edge でどのように扱うかを定義します。
ここでは、そのパターンに従うリクエストを IP から受け取った際に Apigee Edge で使用するルールを指定します。
- ルールの名前(
Block login attempters
など)を入力します。 [Filter List] で、Apigee Edge に実行させるアクションを選択します。
- [Allow]。これまでどおり、リクエストがプロキシに進むことを許可します。
- [Block]。プロキシがリクエストの処理を開始する前に、そのリクエストを完全にブロックします。
- [Flag]。プロキシに認識される特別な HTTP ヘッダーを Apigee Edge で追加することにより、リクエストにフラグを立てます。Apigee Edge は、値
SENSE
を持つX-SENSE-BOT-DETECTED
ヘッダーを追加します。たとえば、特定のクライアントからリクエストを受け取ったときに、それらを誤導するダミーデータを返信するようプロキシを設定できます。受信されたリクエストのヘッダーをプロキシで調べ、フラグ付きリクエストを受信したら適切に対処することができます。
[Rules] ボックスで、ルールの作成時に指定した、Apigee Sense で使用するルールが正しく表示されていることを確認します。
[Active] で [Yes] を選択し、ルールをオンにします。
ルールの有効期限(Apigee Edge がルールの適用を停止するタイミング)を選択します。
- ルールの名前(
[Create] をクリックして、ルールを Apigee Edge に送信します。
作成したルールの再確認
特定のクライアントに対処するルールを配置した後、[Protection Rules] ページでそれらのルールを管理できます。
- ページの上部で [Protection] > [Rules] メニューをクリックし、設定したルールのリストを表示します。
- [Protection Rules] ページで、作成したルールのリストを表示できます。ここでは次の操作が可能です。
- 検索ボックスに値を入力して、名前や IP アドレスなどリストの値でルールをフィルタリングします。
- ルールの詳細を表示し、アクションの実行対象となる IP を調べます。
- [Filter Rules] 列の値をクリックして、ルールの構成要素を確認します。
- ルールを有効または無効にします。