api-security について
api-security は、API ペネトレーションテスト担当者向けのスキルです。評価段階ごとにワークフロー、手法資料、ペイロードを整理し、REST、GraphQL、gRPC、WebSocket API の認可マトリクスと構造化された検出事項を扱います。
主な機能
- 01段階別のワークフローと資料一覧
- 02REST、GraphQL、gRPC、WebSocket のテスト
- 03BOLA/BFLA 認可マトリクスの指針
- 04JWT と認証のテスト
- 05ペイロード一覧と検出事項スキーマ
活用シーン
- 01OWASP API Top 10(2023)に沿った API 評価
- 02複数ロール間の認可テスト
- 03OpenAPI または GraphQL スキーマの分析
- 04エンドポイント、パラメーター、スキーマのファジング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hardw00t/ ai-security-arsenal --skill api-securityインストール後、Claude Code で/api-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/bola_finding.mdgraphql_bola_finding.mdjwt_none_finding.mdmethodology/api_recon.mdbola_bfla_matrix.mdbounty_patterns_2024_2026.mdpayloads/bfla_privilege.txtbola_idor.txtgraphql_queries.txtinjection.txtjwt_attacks.txtmass_assignment.txtreferences/owasp_api_top10_2023.mdtools.mdschemas/finding.jsonworkflows/graphql_introspection_triage.mdgraphql_testing.mdgrpc_testing.mdjwt_attack_chooser.mdrest_testing.mdwebsocket_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.md | REST/JSON API、7 フェーズの完全な手順書 |
workflows/graphql_testing.md | GraphQL のテスト、イントロスペクション後のトリアージ |
workflows/graphql_introspection_triage.md | GraphQL スキーマの取得方法を決めるとき |
workflows/grpc_testing.md | gRPC サービス(リフレクションまたは .proto 駆動) |
workflows/websocket_testing.md | WebSocket/socket.io/GraphQL サブスクリプション |
workflows/jwt_attack_chooser.md | JWT が存在する場合 — 順序付きの攻撃チェーン |
手法索引
| ドキュメント | 読み込むタイミング |
|---|---|
methodology/api_recon.md | 攻撃前:エンドポイントと認証情報のインベントリ作成 |
methodology/bola_bfla_matrix.md | 認可テスト — 最も価値の高いフェーズ |
methodology/bounty_patterns_2024_2026.md | 2023 年以降の公開バグバウンティの TTP(OAuth ATO、JWT request_uri、リフレッシュトークンの永続性、マスアサインメント、ORM の漏えい) |
ペイロード索引
| ファイル | 用途 |
|---|---|
payloads/bola_idor.txt | BOLA/IDOR 用のオブジェクト ID 置換値 |
payloads/bfla_privilege.txt | 管理者パス、メソッドのオーバーライド、ロール偽装ヘッダー |
payloads/graphql_queries.txt | イントロスペクション、バッチ処理、エイリアス DoS、ミューテーション BOLA |
payloads/jwt_attacks.txt | ヘッダー/クレームの改ざん手順 |
payloads/mass_assignment.txt | POST/PUT/PATCH 用の過剰なプロパティ指定キー |
payloads/injection.txt | SQLi、NoSQLi、cmdi、SSRF、XXE、SSTI、プロトコル汚染 |
参考資料索引
| ファイル | 内容 |
|---|---|
references/owasp_api_top10_2023.md | OWASP API Top 10(2023)の表と参考リンク |
references/tools.md | ツールのインストール/バージョンに関する資料 |
例の索引
| ファイル | 内容 |
|---|---|
examples/bola_finding.md | REST BOLA — 記入済みの検出結果 JSON |
examples/jwt_none_finding.md | JWT alg=none — 記入済みの検出結果 JSON |
examples/graphql_bola_finding.md | GraphQL ミューテーション BOLA — 検出結果 JSON |
ツール
| ツール | 用途 | インストール |
|---|---|---|
| Burp Suite | HTTP インターセプト | https://portswigger.net/burp |
| ffuf | HTTP ファザー | go install github.com/ffuf/ffuf/v2@latest |
| nuclei | テンプレートスキャナー | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| jwt_tool | JWT 攻撃用 CLI | pip install jwt_tool |
| graphql-cop | GraphQL の設定ミススキャン | pip install graphql-cop |
| grpcurl | gRPC CLI | go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest |
| arjun | パラメーター検出 | pip install arjun |
| kiterunner | API ルート検出 | 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。