プロキシワークフロー
Ogma のプロキシワークフローは、キャプチャから、証拠を再利用できる形にまとめるまでの流れです。主要ビューは、ペネトレーションテスターが通信を扱う流れ、つまり探索、確認、テスト、検証、報告に沿って構成されています。
ワークスペースの構成
| セクション | ビュー |
|---|---|
| 概要 | サイトマップ、エンドポイント、診断対象範囲、フィルター |
| プロキシ | インターセプト、HTTP 履歴、WS / SSE 履歴、照合・置換 |
| テスト | 再送、自動化、ワークフロー、環境 |
| ユーティリティ | スキャナー、OAST、デコーダー、比較、シーケンサー、競合 / スマグリング、メモ、トークンツール |
| 分析 | 検索、指摘事項、エクスポート |
| ワークスペース | ファイル、プラグイン |
HTTP 履歴
HTTP 履歴は主要な証拠テーブルです。次の用途に使用します。
- リクエストとレスポンスのヘッダーやボディを確認する。
- メソッド、ホスト、パス、ステータス、ソース、タグ、ボディ内容、時間でフィルタリングする。
- トリアージのために項目へタグや色を付ける。
- リクエストを再送、自動化、スキャナー、指摘事項、外部エクスポートに送る。
- 元のキャプチャを保持したまま、ノイズとなる静的アセットを非表示にする。
推奨するワークフロー:
- 代表的なユーザーフローをキャプチャします。
- 有効な診断対象範囲に絞ります。
- 認証、状態変更、アップロード、管理、API のリクエストにタグを付けます。
- 重要なリクエストを再送に送ります。
- 確認済みの問題を、証拠を関連付けた指摘事項として登録します。
インターセプト
インターセプトは、条件に一致する通信を転送前に一時停止します。
次の操作が必要な場合に使用します。
- 対象へ到達する前にリクエストを変更する。
- 不要なリクエストを破棄する。
- 正確な状態遷移の時点でアプリケーションの挙動を観察する。
- 制御した通信でリクエストスマグリング、競合状態、認可境界をテストする。
キューの量を適切に保ってください。インターセプトキューが満杯になると、Ogma はクライアントを無期限にブロックせず、新しい通信を転送してワークフローを保護します。
照合・置換
照合・置換は、プロキシを通過する通信を自動で変更します。
一般的な用途:
- テスト用ヘッダーを追加する。
- Bearer トークンや Cookie を置き換える。
- 機能フラグを強制する。
- ノイズの多いヘッダーを正規化する。
- ログを対応付けるためのトレースヘッダーを注入する。
一致条件を狭く設定してください。広すぎるルールは無関係な通信を破損させ、指摘事項の再現を難しくすることがあります。
WebSocket と SSE
Ogma は WebSocket とサーバー送信イベントの通信を、HTTP のリクエスト / レスポンス行とは別に管理します。
WS / SSE 履歴では次の操作ができます。
- 接続メタデータを確認する。
- メッセージのペイロードを確認する。
- ストリームの内容を検索する。
- 再接続やメッセージの変形をテストする必要がある場合、WebSocket フローを WS 再送に送る。
サイトマップとエンドポイント
これらの概要ビューは早い段階から頻繁に使用してください。
- サイトマップはキャプチャしたホスト / パスの構造を表示します。
- エンドポイントは JavaScript、レスポンス、キャプチャした通信から発見された API パスとルートを表示します。
これらのビューは、アクティブテストに進む前に未テストの領域を特定するのに役立ちます。
検索とフィルター
Ogma は HTTPQL 形式のフィルタリングに対応しています。保存済みフィルターを使うと、同じトリアージクエリを繰り返し使用できます。
例:
text
req.host:example.com AND resp.code:500text
req.path.cont:"/admin" OR req.path.cont:"/api/"text
resp.header["set-cookie"].exists構文は HTTPQL と StreamQLを参照してください。
指摘事項
指摘事項は報告のための機能です。適切な指摘事項には次の内容を含めます。
- 短いタイトル。
- 重大度と確信度。
- 影響を受けるホスト、パス、機能。
- HTTP 履歴、再送、自動化、WebSocket 通信から関連付けた証拠。
- 再現手順。
- 影響と修正方法。
スキャナーの出力は出発点です。指摘事項をエクスポートする前に、明確なリクエストとレスポンスの証拠を関連付けてください。