mcpField
A
api-security

api-security

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

api-security について

api-security は、API ペネトレーションテスト担当者向けのスキルです。評価段階ごとにワークフロー、手法資料、ペイロードを整理し、REST、GraphQL、gRPC、WebSocket API の認可マトリクスと構造化された検出事項を扱います。

主な機能

  1. 01段階別のワークフローと資料一覧
  2. 02REST、GraphQL、gRPC、WebSocket のテスト
  3. 03BOLA/BFLA 認可マトリクスの指針
  4. 04JWT と認証のテスト
  5. 05ペイロード一覧と検出事項スキーマ

活用シーン

  1. 01OWASP API Top 10(2023)に沿った API 評価
  2. 02複数ロール間の認可テスト
  3. 03OpenAPI または GraphQL スキーマの分析
  4. 04エンドポイント、パラメーター、スキーマのファジング

インストール

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

$npx skills add https://github.com/hardw00t/ai-security-arsenal --skill api-security

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
bola_finding.md
graphql_bola_finding.md
jwt_none_finding.md
methodology/
api_recon.md
bola_bfla_matrix.md
bounty_patterns_2024_2026.md
payloads/
bfla_privilege.txt
bola_idor.txt
graphql_queries.txt
injection.txt
jwt_attacks.txt
mass_assignment.txt
references/
owasp_api_top10_2023.md
tools.md
schemas/
finding.json
workflows/
graphql_introspection_triage.md
graphql_testing.md
grpc_testing.md
jwt_attack_chooser.md
rest_testing.md
websocket_testing.md

詳細

API セキュリティテスト

API ペネトレーションテスト向けのシンプルなルーターです。現在のフェーズに応じたワークフロー、ペイロードファイル、または手法ドキュメントを読み込むには、インデックスの各セクションを使用してください。すべてを事前に読み込まないでください。

使用する場面

  • REST、GraphQL、gRPC、または WebSocket API のペネトレーションテストを実施する場合。
  • OWASP API Top 10(2023)の対応状況を評価する場合。
  • BOLA/BFLA/BOPLA の認可マトリクスを分析する場合。
  • JWT/OAuth/API キー認証をテストする場合。
  • エンドポイント、パラメーター、またはスキーマをファジングする場合。
  • OpenAPI/Swagger/GraphQL スキーマを解析して攻撃する場合。
  • レート制限/リソース消費をテストする場合。

トリガーフレーズ

「この API をペンテストして」、「REST API をテストして」、「GraphQL のセキュリティをテストして」、「BOLA/IDOR がないか確認して」、「OpenAPI 仕様を分析して」、「API 認証をテストして」、「JWT 攻撃」、「API エンドポイントをファジングして」、「GraphQL イントロスペクション」。

このスキルを使用しない場面

  • ブラウザー/DOM ベースのテスト(XSS、CSP、クリックジャッキング、ブラウザーでレンダリングされるクライアント側の認証フロー)→ dast-automation を使用してください。
  • API ソースコードのレビュー(コードレベルでのインジェクション/認可のバグ)→ sast-orchestration を使用してください。
  • モバイルクライアントのリバースエンジニアリング(APK/IPA から API エンドポイントを特定する)→ まず mobile-security を使用し、仕様を復元した後にここへ戻ってください。
  • クラウドプロバイダーの IAM/API ゲートウェイ設定の監査(API 自体は対象外)→ cloud-security を使用してください。

判断ツリー

Is there a schema (OpenAPI / GraphQL SDL / .proto)?
  yes -> parse it first, feed endpoints.txt to fuzzers
  no  -> methodology/api_recon.md

What protocol?
  REST / JSON over HTTP -> workflows/rest_testing.md
  GraphQL               -> workflows/graphql_introspection_triage.md
                           then workflows/graphql_testing.md
  gRPC                  -> workflows/grpc_testing.md
  WebSocket             -> workflows/websocket_testing.md

Is a JWT in use?
  yes -> workflows/jwt_attack_chooser.md  (alg-none -> key-conf -> kid -> brute)

Primary finding target?
  Authorization bugs  -> methodology/bola_bfla_matrix.md  (HIGHEST yield)
  Misconfig / inventory -> nuclei + references/owasp_api_top10_2023.md (API8/API9)
  Injection / SSRF    -> payloads/injection.txt

並列処理のヒント

並行して実行する(I/O に依存しない):

  • 仕様の探索:swagger.json、openapi.json、.well-known/openapi.json、v1/api-docs、v2/api-docs。
  • エンドポイントの探索:同じホストで ffuf、kiterunner、katana を実行できます。
  • 認証の列挙:ロールごとに(未認証/ユーザー/管理者/サービス)トークンを並行して収集します。それぞれ別のログインフローです。
  • Nuclei の exposures/、vulnerabilities/、misconfiguration/ テンプレートパック。

順次実行する(状態に依存する):

  • 仕様の解析が完了してから、エンドポイント駆動型のファザーがそれを利用できるようにします。
  • 認可マトリクスの差分比較は、ロールごとのスキャンがすべて完了するまで待つ必要があります。
  • JWT 攻撃チェーンの手順には順序があります(workflows/jwt_attack_chooser.md を参照)。

サブエージェントへの委任

BOLA/BFLA マトリクスを作成するときは、認証コンテキストごとに 1 つのサブエージェントを起動します:

  • エージェント U — 未認証
  • エージェント A — ユーザーロール(アカウント A)
  • エージェント B — ユーザーロール(アカウント B、他ユーザーとの横断)
  • エージェント X — 管理者ロール(利用可能な場合)
  • エージェント S — サービス/マシンアカウント(該当する場合)

各エージェントは独自のトークンを使ってエンドポイントの全リストを繰り返し処理し、{endpoint, method, status, body_hash, leaks_cross_user} を返します。メインエージェントは 5 つの結果セットを比較します。API ペネトレーションテストにおいて、これは並列化による最大の効果が得られる方法です。

GraphQL では、さらに次のように委任します。1 つのサブエージェントがすべての Query フィールドを列挙し、別のサブエージェントがすべての Mutation フィールドを列挙し、さらに別のサブエージェントが BOLA の標的とするために ID を持つ型をマッピングします。

推論予算

  • 拡張思考 — 認可マトリクスの分析、JWT 攻撃経路の選択、GraphQL スキーマに基づく攻撃計画、ビジネスロジックのフローのモデリング(API6)。
  • 最小限/直接実行 — ペイロードのファジング、nuclei の実行、ffuf によるブルートフォース、grpcurl の呼び出し、JWT のデコード、仕様の解析。

マルチモーダルフック

  • Swagger/GraphiQL/Postman UI のスクリーンショットは、テキストのスクレイピングに失敗した場合の仕様復元を効率化できます。
  • JWT と GraphQL の証拠には、スクリーンショットよりテキストデータ(evidence.jwt_header、evidence.graphql_query)を優先してください。

構造化出力

すべての検出結果:schemas/finding.json。API 固有の必須フィールド: endpoint、http_method、api_type(rest/graphql/grpc/websocket)、auth_context、owasp_api_id(例:API1:2023)。

ワークフロー索引

ワークフロー読み込むタイミング
workflows/rest_testing.mdREST/JSON API、7 フェーズの完全な手順書
workflows/graphql_testing.mdGraphQL のテスト、イントロスペクション後のトリアージ
workflows/graphql_introspection_triage.mdGraphQL スキーマの取得方法を決めるとき
workflows/grpc_testing.mdgRPC サービス(リフレクションまたは .proto 駆動)
workflows/websocket_testing.mdWebSocket/socket.io/GraphQL サブスクリプション
workflows/jwt_attack_chooser.mdJWT が存在する場合 — 順序付きの攻撃チェーン

手法索引

ドキュメント読み込むタイミング
methodology/api_recon.md攻撃前:エンドポイントと認証情報のインベントリ作成
methodology/bola_bfla_matrix.md認可テスト — 最も価値の高いフェーズ
methodology/bounty_patterns_2024_2026.md2023 年以降の公開バグバウンティの TTP(OAuth ATO、JWT request_uri、リフレッシュトークンの永続性、マスアサインメント、ORM の漏えい)

ペイロード索引

ファイル用途
payloads/bola_idor.txtBOLA/IDOR 用のオブジェクト ID 置換値
payloads/bfla_privilege.txt管理者パス、メソッドのオーバーライド、ロール偽装ヘッダー
payloads/graphql_queries.txtイントロスペクション、バッチ処理、エイリアス DoS、ミューテーション BOLA
payloads/jwt_attacks.txtヘッダー/クレームの改ざん手順
payloads/mass_assignment.txtPOST/PUT/PATCH 用の過剰なプロパティ指定キー
payloads/injection.txtSQLi、NoSQLi、cmdi、SSRF、XXE、SSTI、プロトコル汚染

参考資料索引

ファイル内容
references/owasp_api_top10_2023.mdOWASP API Top 10(2023)の表と参考リンク
references/tools.mdツールのインストール/バージョンに関する資料

例の索引

ファイル内容
examples/bola_finding.mdREST BOLA — 記入済みの検出結果 JSON
examples/jwt_none_finding.mdJWT alg=none — 記入済みの検出結果 JSON
examples/graphql_bola_finding.mdGraphQL ミューテーション BOLA — 検出結果 JSON

ツール

ツール用途インストール
Burp SuiteHTTP インターセプトhttps://portswigger.net/burp
ffufHTTP ファザーgo install github.com/ffuf/ffuf/v2@latest
nucleiテンプレートスキャナーgo install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
jwt_toolJWT 攻撃用 CLIpip install jwt_tool
graphql-copGraphQL の設定ミススキャンpip install graphql-cop
grpcurlgRPC CLIgo install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
arjunパラメーター検出pip install arjun
kiterunnerAPI ルート検出https://github.com/assetnote/kiterunner/releases

全リスト:references/tools.md。

最終検証日

2026-04。ツールの最小バージョン:nuclei >= 3.3、ffuf >= 2.1、grpcurl >= 1.9、 jwt_tool >= 2.2、graphql-cop >= 1.13。

コメント