APIセッション概要
¶
WallarmのAPIセッションはトラフィック内のユーザーセッションに対する可視性を提供します。各セッションにおいて、Wallarmは詳細なリクエストおよび関連するレスポンスデータを収集し、セッション活動の体系的な把握を可能にします。本記事では、APIセッションの概要、解決される課題、その目的および主な機能について説明します。
APIセッションを利用するにはNGINX Wallarm node 5.1.0またはnative Wallarm node 0.8.0が必要です。レスポンス解析はNGINX Wallarm node 5.3.0でサポートされており、現時点ではnative nodeではサポートされておりません。
解決される課題¶
APIセッションが解決する主要な課題は、Wallarmで検出された個々の攻撃のみを確認する場合に完全なコンテキストが欠如している点です。各セッション内のリクエストとレスポンスの論理的な順序をキャプチャすることで、APIセッションはより広範な攻撃パターンへの洞察を提供し、セキュリティ対策によって影響を受けるビジネスロジックの領域を特定するのに役立ちます。
Wallarmにより正確に識別されたAPIセッションがあるため、これにより:
- API Abuse Preventionによるボット検出がより正確になります。
Wallarmによって監視されたAPIセッションを利用することで、以下が可能になります:
-
ユーザー活動を追跡できます。1つのセッション内で行われたリクエスト一覧を表示し、対応するレスポンスのパラメータを確認できるため、異常な挙動や通常とは異なるパターンを識別できます。
-
特定のfalse positiveの調整、virtual patchの適用、rulesの追加、またはAPI Abuse Preventionコントロールの有効化の前に、どのAPIフロー/ビジネスロジックシーケンスが影響を受けるかを把握できます。
-
ユーザーセッションでリクエストされたエンドポイントを確認することで、その保護状況、リスクレベルおよびshadowまたはzombieといった検出された問題を迅速に評価できます。
-
パフォーマンスの問題やボトルネックを特定して、ユーザー体験の最適化が可能です。
-
悪意のあるボット活動としてフラグ付けされたリクエストの全シーケンスと対応するレスポンスを確認することで、API abuse検出の精度を検証できます。
APIセッションの仕組み¶
Wallarm nodeにより保護されるすべてのトラフィックはセッションに整理され、APIセッションセクションに表示されます。
アプリケーションのロジックに基づいてリクエストをセッションにどのようにグループ化するかをカスタマイズできます。また、リクエストおよび対応するレスポンスのどのパラメータをセッション内に表示するかを指定して、ユーザーが何をどの順序で実行したか(コンテキストパラメータ)を理解するための助けになります。詳細はAPIセッションセットアップをご参照ください。
Wallarmはセッションを過去1週間分のみ保存および表示します。最適なパフォーマンスとリソース使用率を確保するため、以前のセッションは削除されます。
APIセッションとAPI Abuse Prevention¶
WallarmのAPI Abuse Preventionは、例えばSESSION-ID
ヘッダーが同一で時間/日付によってのみ分割されたセッションなど、1つまたは複数の関連セッション内のリクエストシーケンスを分析し、悪質なボットを検出します。
したがって、特定のアプリケーションロジックに従いリクエストがセッションにグループ化される方法をカスタマイズすると、API Abuse Preventionの動作に影響を与え、セッションの識別とボット検出のいずれもより正確になります。
APIセッションにおけるGraphQLリクエスト¶
APIセッションはGraphQLリクエストおよびその特定のリクエストポイントへの対応をサポートしており、GraphQLリクエストパラメータの値を抽出して表示するようにセッションを設定できます。
NGINX Node 5.3.0以降を必要とし、現時点ではNative Nodeではサポートされておりません。