mcpField
P
pentest-api-deep

pentest-api-deep

github.com/jd-opensourceセキュリティ31585 回インストール28 週間前に更新
リポジトリ

pentest-api-deep について

pentest-api-deepは、許可を得たセキュリティテスター向けのAPIペネトレーションテストスキルです。OWASP API Security Top 10(2023)の複数のリスクを、発見から検証までの手順で扱います。

主な機能

  1. 01APIエンドポイントと隠れたパラメーターの発見
  2. 02BFLAと一括代入のテスト
  3. 03レート制限とリソース消費のテスト
  4. 04過剰なデータ露出の確認
  5. 05SSRFと上流APIインジェクションのテスト
  6. 06APIバージョンと廃止済みエンドポイントの確認

活用シーン

  1. 01OpenAPI、GraphQL、gRPCの情報を使ったインターフェース列挙
  2. 02権限レベル別のAPIレスポンス比較
  3. 03APIのレート制限と複雑度制御の確認
  4. 04旧APIバージョンと上流データ処理のテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-api-deep

インストール後、Claude Code で/pentest-api-deepを入力して読み込まれたか確認します。

同梱ファイルreferences/tools.mdreferences/workflows.md

詳細

Pentest API Deep

目的

基本的な BOLA/GraphQL のテスト範囲を超えて、API 固有の脆弱性を重点的にテストします。OWASP API Security Top 10(2023)に基づき、Broken Function Level Authorization(BFLA)、マスアサインメント、レート制限、過剰なデータ露出、安全でないデータ消費に対応します。

前提条件

認可要件
  • 書面による承認があり、API テストの範囲が明示的に含まれていること
  • API ドキュメント(利用可能な場合は OpenAPI/Swagger の仕様、GraphQL スキーマ)
  • 複数の権限レベルのテストアカウント(ユーザー、管理者、サービスアカウント)
  • レート制限の把握 — 許容されるリクエスト量を対象の所有者に確認します
環境設定
  • API を手動で調査するための Postman または Insomnia
  • API 固有の拡張機能を備えた Burp Suite
  • スキーマを可視化するための GraphQL Voyager
  • gRPC サービスをテストするための grpcurl

基本ワークフロー

  1. API の検出:OpenAPI/Swagger の仕様、GraphQL イントロスペクション、gRPC リフレクション、トラフィック分析を通じてエンドポイントを列挙します。Kiterunner で文書化されていないエンドポイントを検出します。
  2. BFLA のテスト:一般ユーザーとして管理者専用の API 機能にアクセスします。HTTP メソッドの切り替え(GET→DELETE)を試します。オブジェクトレベル(BOLA)とは異なる、機能レベルの認可の欠落をテストします。
  3. マスアサインメント:POST/PUT で追加フィールド(role、isAdmin、balance)を送信します。レスポンスオブジェクトに内部フィールドの漏えいがないか確認します(WSTG-INPV-20)。
  4. レート制限とリソース:レート制限の欠落、GraphQL の深度/複雑性を悪用する攻撃、ページネーションの悪用、API 入力を介した正規表現 DoS をテストします。
  5. 過剰なデータ露出:権限レベルごとに API レスポンスを比較します。返されるものの UI には表示されないフィールドを特定します。詳細なエラーレスポンスをテストします。
  6. 安全でないデータ消費:上流 API 呼び出しを介した SSRF、信頼されているものの汚染された API レスポンスデータを介したインジェクションをテストします。
  7. API のバージョン管理:制御が弱い古い API バージョン、バージョンヘッダーの操作、非推奨エンドポイントへのアクセスをテストします。

OWASP API Security Top 10(2023)の対象範囲

カテゴリーテスト対象ステータス
API1 オブジェクトレベル認可の不備API パラメーターを介した IDOR✅
API2 認証の不備トークン/キーの弱点✅
API3 オブジェクトプロパティレベル認可の不備マスアサインメント、過剰なデータ✅
API4 リソース消費の制限の欠如レート制限、複雑性✅
API5 機能レベル認可の不備BFLA、メソッドの切り替え✅
API6 機密性の高いビジネスフローへの無制限のアクセス自動化の悪用✅
API7 サーバーサイドリクエストフォージェリAPI をトリガーとする SSRF✅
API8 セキュリティ設定の不備CORS、ヘッダー、バージョン管理✅
API9 不適切なインベントリ管理シャドー API、非推奨バージョン✅
API10 サードパーティ API の安全でないデータ消費上流でのインジェクション✅

ツールのカテゴリー

カテゴリーツール目的
API の検出Kiterunner、Swagger UI、GraphQL Voyagerエンドポイントの列挙
パラメーターの検出Arjun、x8、ParamSpider隠れたパラメーターの検出
ファジングffuf、Burp Intruder、カスタムスクリプトマスアサインメント、BFLA
GraphQLgraphql-cop、InQL、BatchQLGraphQL 固有の攻撃
gRPCgrpcurl、grpc-toolsgRPC のリフレクションとテスト
レートテストカスタム aiohttp スクリプト、Turbo Intruderレート制限の検証

参考資料

  • references/tools.md - ツールの関数シグネチャとパラメーター
  • references/workflows.md - 攻撃パターンの定義とテストベクター

コメント