api-security について
api-securityは、REST、GraphQL、WebSocket、LLM統合APIを対象とするセキュリティテストスキルです。プロトコル別の検査に加え、大規模なAPI群と複数ロールに対する、フィクスチャ駆動の再開可能な認可テストを行います。
主な機能
- 01REST、GraphQL、WebSocket、Web-LLMのテスト
- 02エンドポイント検出と認証方式の整理
- 03APIコーパスからのフィクスチャ生成
- 04ロール別の認可リプレイ
- 05証拠ログと再開可能なテスト実行
活用シーン
- 01APIエンドポイントのアクセス制御不備の検査
- 02多数のAPI操作に対する認可チェックの再実行
- 03Web-LLM APIのインジェクションとデータ露出の評価
- 04リクエストとレスポンスの証拠記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill api-securityインストール後、Claude Code で/api-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/api-security-principles.mdgraphql-resources.mdINDEX.mdowasp-api-top10-coverage.mdreference/scenarios/graphql/auth-bypass-and-injection.mdcsrf-and-content-type.mddos-and-batching.mdendpoint-discovery.mdidor-and-mass-enumeration.mdintrospection-and-bypass.mdrate-limit-bypass.mdschema-reconstruction.mdreference/scenarios/mcp/inspector-stdio-rce.mdreference/scenarios/rest/api-recon-and-discovery.mdcognito-unauth-and-srp.mdcontent-type-confusion-xxe.mdcors-misconfiguration.mdexposed-documentation.mdhttps-downgrade-redirect-hsts.mdmass-assignment.mdmattermost-slash-command-dialog-hijack.mdodata-deep-authz.mdoptions-method-enumeration.mdowasp-bola-bopla.mdsspp-query-string.mdsspp-rest-path.mdunauth-existence-oracle.mdunauthenticated-webhook-oracle.mdverbose-error-schema-disclosure.mdwaf-bypass-techniques.md詳細
API セキュリティ
REST、GraphQL、WebSocket、LLM 統合 API 全体で、API エンドポイントのセキュリティ脆弱性をテストします。
テクニック
| 種類 | 主な攻撃ベクトル |
|---|---|
| GraphQL | イントロスペクション、バッチ処理攻撃、ネストされたクエリによる DoS、フィールド候補の提示 |
| REST API | BOLA/IDOR、マスアサインメント、レート制限、認証の回避、バージョニング |
| WebSocket | クロスサイトハイジャック、メッセージの改ざん、認証の不備 |
| Web-LLM | API 経由のプロンプトインジェクション、過剰なエージェンシー、データ流出 |
ワークフロー
- API エンドポイントとドキュメント(Swagger、GraphQL スキーマ)を検出します
- 認証および認可の仕組みをマッピングします
- API の種類ごとに、適切なテクニックを使ってテストします
- データ漏えいとアクセス制御の不備を検証します
- HTTP リクエスト/レスポンスのログで証拠を記録します
大規模な API(オフラインコーパス/フィクスチャ駆動)
大規模またはオフラインの API サーフェス(2000 件以上のパスを含む Swagger、Postman コーパス、HAR キャプチャなど)では、エンゲージメントごとにカバレッジの仕組みを手作業で構築しないでください。決定論的に実行します。
- コーパスを取り込み、エンドポイントごとのフィクスチャに変換:
python3 tools/fixture_ingest.py <openapi|postman|har> -o fixtures.jsonは各操作をリクエストテンプレート(メソッド、パスパラメーターを埋めた URL、サンプルボディ、ID のようなパスパラメーター用のobject_ref、セキュリティ要件)に正規化し、組み込みの認証情報を削除します(トークンはハーネスが挿入します)。これにより、数千の操作を含む大規模な OpenAPI/Postman コーパスを、未テストのまま積み上がったものではなく、再開可能なマトリックスにできます。 - ロールごとのセッションを取得:
authenticated-session-acquisitionを使用して(MFA/OTP/SRP → 再利用可能なトークン)、ハーネスのトークンストアに保存します。 - ロールごとの認可マトリックスをリプレイ:
python3 tools/auth_replay_harness.py --requests fixtures.json --tokens tokens.json [--proxy <vantage>]は、すべてのロール(およびテナント間)で各エンドポイントをリプレイし、ロールが許可されるべきでないオブジェクト/アクションに対してauthorizedになった場合は BOLA/BFLA としてフラグを立て、(エンドポイント × ロール)ごとにevidence_idを記録します。許可リストに登録された API では、プロビジョニング済みのバンテージ経由で送信します。 - プロトコル固有の認可: OData(
odata-deep-authz.md)、Cognito(cognito-unauth-and-srp.md)、認証済み WebSocket(authenticated-per-role-authz.md)。
バッチは再開可能です(ハーネスの結果にチェックポイントを設定します)。そのため、認証が不安定でも実行結果が無駄になりません。これは大規模なテストで繰り返し発生するギャップです。完全なマトリックスを実行し、問題がないという結果を、未テストのサーフェスではなく、証拠に基づく否定結果にしてください。
リファレンス
reference/graphql*.md- GraphQL の攻撃テクニックとラボreference/scenarios/rest/*.md- REST API のセキュリティテスト(BOLA/BOPLA、マスアサインメント、SSPP、コンテンツタイプの混同)scenarios/rest/odata-deep-authz.md- OData の$metadataenum と$filter/$orderby/$expandを使ったテナント間 BOLA とインジェクションscenarios/rest/cognito-unauth-and-srp.md- Cognito の署名なし未認証状態(セルフサインアップ/列挙)と SRP 認証済みセッション
reference/websockets*.md- WebSocket の脆弱性テストscenarios/websocket/authenticated-per-role-authz.md- 認証済みロール別リレー:ソケット経由の BOLA/BFLA/チャネル認可
reference/web-llm*.md- Web-LLM の攻撃テクニックとラボ
コメント
Markdown 対応