API Sessionsの概要
¶
WallarmのAPI Sessionsは、トラフィック内のユーザーセッションの可視性を提供します。各セッションについて、Wallarmは詳細なリクエストおよび関連するレスポンスデータを収集し、セッション内のアクティビティを構造化して表示できるようにします。本記事では、API Sessionsの概要として、その目的、解決する課題、および主な機能について説明します。
API Sessionsを使用するにはNGINX Wallarm node 5.1.0またはnative Wallarm node 0.8.0が必要です。レスポンスのパースにはNGINX Wallarm node 5.3.0またはnative node 0.12.0が必要です。
対応する課題¶
API Sessionsが対処する主な課題は、Wallarmが検出した個々の攻撃だけを見ても完全なコンテキストが得られないことです。各セッション内のリクエストとレスポンスの論理的なシーケンスを捕捉することで、API Sessionsはより広範な攻撃パターンへの洞察を提供し、セキュリティ対策がビジネスロジックのどの領域に影響するかを特定するのに役立ちます。
WallarmによりAPIセッションが正確に識別されることで、次のことが可能になります:
- API Abuse Preventionによるボット検出をより高精度にします。
WallarmによりAPI Sessionsが監視されていることで、次のことができます:
-
ユーザーアクティビティを追跡し、単一セッションで行われたリクエストの一覧を表示して、対応するレスポンスのパラメータも確認できるようにすることで、通常とは異なる行動パターンや典型的な使用からの逸脱を特定できます。
-
特定の誤検知を調整したり、virtual patchを適用したり、rulesを追加したり、API Abuse Preventionのコントロールを有効化したりする前に、どのAPIフロー/ビジネスロジックのシーケンスが影響を受けるかを把握できます。
-
ユーザーセッションでリクエストされたエンドポイントを調査し、その保護状況、リスクレベル、shadowまたはzombieであるなどの検出済みの問題を迅速に評価できます。
-
パフォーマンスの問題やボトルネックを特定し、ユーザー体験を最適化できます。
-
悪意のあるボット活動としてフラグ付けされたリクエストの全シーケンスと対応するレスポンスを併せて確認することで、API不正検出の精度を検証できます。
API Sessionsの仕組み¶
Wallarm nodeが保護対象として有効になっているすべてのトラフィックはセッションに編成され、API Sessionsセクションに表示されます。
アプリケーションのロジックに基づいて、リクエストをどのようにセッションへグループ化するかをカスタマイズできます。また、セッション内に表示するリクエストおよび対応するレスポンスのどのパラメータを表示するかも指定でき、セッションの内容(ユーザーが何をどの順序で行ったか)を理解しやすくできます。詳細はAPI Sessionsの設定を参照してください。
なお、Wallarmはセッションを直近1週間のみ保存および表示します。パフォーマンスとリソース消費を最適化するため、これより古いセッションは削除されます。
API SessionsとAPI Abuse Prevention¶
WallarmのAPI Abuse Preventionは、1つまたは複数の関連するセッション内のリクエストシーケンスを解析して悪意あるボットを検出します。例えば、SESSION-ID
ヘッダーの値が同一で、時間/日付だけで区切られているセッション同士です。
したがって、アプリケーション固有のロジックに合わせてリクエストのグループ化方法をカスタマイズすると、API Abuse Preventionの動作に影響し、セッションの識別とボット検出の両方がより正確になります。
API SessionsにおけるGraphQLリクエスト¶
API Sessionsは、GraphQLリクエストとその特有のリクエストポイントに対応しており、セッションの設定でGraphQLリクエストパラメータの値を抽出・表示するように構成できます。
NGINX Node 5.3.0以上またはnative node 0.12.0が必要です。