Pentest レポート(所見の記入例:最小)

本ドキュメントは、付録『Pentest レポートテンプレート』の「個別所見(詳細)」を記入する際の 最小例(所見 1 件) である。
本書の演習で成果物を作成する際に、「どの粒度で書けばよいか」を確認する目的で利用する。

重要: 本サンプルは 架空のシステム・架空のデータ に基づく。実案件・実環境の情報をそのまま転記しないこと。

6. 個別所見(詳細)の記入例(所見 1 件)

EX-01 オブジェクトレベル認可不備(BOLA)により他ユーザー情報を参照可能

  • カテゴリ:Access Control
  • 重大度:High(例)

概要

API がオブジェクト(ユーザー情報)の参照において、リクエスト主体(ログインユーザー)と対象オブジェクトの関係を検証していない。
そのため、パスパラメータの ID を変更するだけで、他ユーザーの情報が取得できる。

影響

  • 不正な情報参照(個人情報・業務情報の漏えい)に繋がる可能性がある。
  • 取得可能な項目次第では、追加の攻撃(なりすまし、権限昇格の足がかり等)に利用されうる。

再現手順(検証用環境のみ)

  1. 一般ユーザーとしてログインし、アクセストークンを取得する。
  2. 自身の userId でユーザー情報 API を呼び出し、正常に参照できることを確認する。
  3. userId を別ユーザーの値に変更して同 API を呼び出す。
  4. レスポンスに他ユーザーの情報が含まれることを確認する。

(リクエスト例)

GET /api/v1/users/12345 HTTP/1.1
Host: api.example.local
Authorization: Bearer <access_token>
Accept: application/json

(レスポンス例:他ユーザーの情報が返る)

{
  "id": 12345,
  "email": "other.user@example.local",
  "role": "USER"
}

証拠

  • Burp Suite の Repeater 履歴(リクエスト/レスポンス)
  • userId を変更した際に、別ユーザーのデータが返ることが分かるスクリーンショット
  • 可能であれば、アクセスログ等の一次情報(システム側で提供可能な場合)

推奨対策

  • サーバ側で、対象リソースに対するアクセス権(所有者・ロール・ポリシー)を検証する。
  • クライアント側の制御(画面非表示、リンク非表示等)を認可の代替としない。
  • テストとして、ID 列挙・差分比較(同一リクエストで ID のみ変える)をテスト計画に組み込み、回帰確認を可能にする。