APIの脆弱性診断・テスト・監視に役立つツールを紹介します。
実行中のAPIに対してリクエストを送り、脆弱性を検出するツールです。
Webアプリケーション・APIセキュリティテストの業界標準ツール。プロキシベースのインターセプトとスキャン機能。
OpenAPI/Swagger定義をインポートして、全エンドポイントを自動的にクロール・テスト可能。
OWASPが開発するオープンソースのセキュリティテストツール。CI/CDパイプラインへの統合が容易。
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \ -t https://api.example.com/openapi.json \ -f openapi \ -r report.html
API開発・テストの定番ツール。セキュリティテストにも活用可能。
// ステータスコード検証 pm.test("Status is 200", () => { pm.response.to.have.status(200); }); // セキュリティヘッダー検証 pm.test("Security headers present", () => { pm.response.to.have.header("X-Content-Type-Options"); pm.response.to.have.header("Strict-Transport-Security"); }); // 機密情報の非露出チェック pm.test("No sensitive data exposed", () => { const body = pm.response.json(); pm.expect(body).to.not.have.property("password"); pm.expect(body).to.not.have.property("password_hash"); pm.expect(body).to.not.have.property("secret"); });
コマンドラインからの素早いAPIテスト。スクリプト化も容易。
# レスポンスヘッダーの確認 curl -s -D - -o /dev/null https://api.example.com/health # 認証なしでのアクセス試行 curl -s -w "%{http_code}" https://api.example.com/api/users # BOLA テスト(他ユーザーのリソースへのアクセス) curl -s -H "Authorization: Bearer $TOKEN" \ https://api.example.com/api/users/OTHER_USER_ID
パターンベースの静的解析ツール。カスタムルール作成が容易。
依存関係の脆弱性スキャンとコード解析。
パッケージマネージャー・コンテナの脆弱性チェック。
npm audit: Node.jsパッケージpip audit: Pythonパッケージ# Node.js の依存関係チェック npm audit --production # Semgrep でセキュリティスキャン semgrep --config=p/security-audit ./src # Trivy でコンテナスキャン trivy image --severity HIGH,CRITICAL myapp:latest
APIの仕様を機械可読な形式で定義。セキュリティテストの入力としても活用。
OpenAPI仕様のリンターツール。セキュリティベストプラクティスの準拠をチェック。
Kong, AWS API Gateway, Apigee など。
AWS WAF, Cloudflare, ModSecurity など。
ELK Stack, Splunk, Datadog など。
LLM、AIエージェント、MLパイプラインのテスト・保護に特化したツール群です。
プロンプトインジェクション、データ漏洩、ハルシネーションなどLLM固有の脆弱性を検出するスキャナー。
# garak のインストール pip install garak # OpenAI モデルに対してプロンプトインジェクションプローブを実行 garak --model_type openai --model_name gpt-4 \ --probes promptinject # 全プローブを実行しレポートを生成 garak --model_type openai --model_name gpt-4 \ --probes all --report_prefix my_audit
ヒューリスティクス、LLMベース分析、ベクトル類似度による多層防御のプロンプトインジェクション検知フレームワーク。
対応リスク: LLM01: Prompt Injection
LLMアプリケーション向けランタイムガードレールフレームワーク。Colangルールで会話の境界を定義。
対応リスク: LLM02: Insecure Output Handling, ASI07: Inadequate Guardrails
生成AI向けPythonリスク識別ツール。マルチターン攻撃戦略によるレッドチーミングを自動化。
対応リスク: LLM01: Prompt Injection, LLM07: Insecure Plugin Design
| 目的 | 推奨ツール | タイミング |
|---|---|---|
| API仕様のセキュリティチェック | Spectral | 設計・仕様策定時 |
| コードのセキュリティ解析 | Semgrep | 開発時 / PR |
| 依存関係の脆弱性チェック | Snyk / npm audit | ビルド時 / 定期 |
| 手動セキュリティテスト | Burp Suite / Postman | テスト・QAフェーズ |
| 自動スキャン(CI/CD) | OWASP ZAP | デプロイ前 |
| 本番環境の保護 | WAF + API Gateway | 運用時 |
| ログ監視・異常検知 | SIEM (ELK / Datadog) | 運用時 / 常時 |
| LLM脆弱性スキャン | Garak / PyRIT | デプロイ前 / 定期 |
| プロンプトインジェクション検知 | Rebuff | ランタイム / 統合時 |
| LLMランタイムガードレール | NeMo Guardrails | ランタイム / 常時 |
| AIレッドチーミング自動化 | PyRIT | テスト・QAフェーズ |
| AIモデルサプライチェーン検証 | Semgrep / ModelScan | ビルド時 / デプロイ前 |