owasp-scan について
owasp-scanは、OWASP MCP Top 10をまとめて検査するコマンドラインツール兼MCPサーバーです。コード、稼働中サーバーのツール一覧、保存済みのtools/list応答を調べ、A–Fで評価します。
主な機能
- 01コードスキャンで七つの監査器を実行
- 02稼働中サーバーまたは保存済み一覧を検査
- 03OWASP IDとA–F評価を報告
- 04テキスト、JSON、SARIF出力
- 05--discover-shadowで設定済みサーバーを一覧化
活用シーン
- 01コードベースの統合セキュリティスキャン
- 02稼働中MCPサーバーの公開ツールを評価
- 03SARIF結果をGitHubコードスキャンに追加
- 04設定済みサーバーのシャドーMCP項目を確認
MCP 対応
owasp_scan_path、owasp_scan_live、owasp_scan_catalog、list_owasp_coverageを公開します。ライブモードはMCPサーバーに接続してtools/listを呼び出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | スキャンするファイルまたはディレクトリ |
| maxFiles | integer | いいえ | |
| allowlistPath | string | いいえ | Shadow MCP discover 用の許可リストファイル |
| discoverShadow | boolean | いいえ | このホスト上の Shadow MCP も検出します(MCP09) |
詳細
@guardbee/mcp-owasp-scan
🇬🇧 英語 | 🇹🇷 トルコ語 | 🇨🇳 中国語 | 🇯🇵 日本語 | 🇰🇷 韓国語 | 🇧🇷 ポルトガル語 | 🇪🇸 スペイン語 | 🇩🇪 ドイツ語
1つの CLI と MCP サーバーで、統合されたOWASP MCP Top 10チェックを実行します。7つの GuardBee 監査ツールをコードベース全体に一括で実行するか、稼働中の MCP サーバーのツール一覧を評価し、すべての検出事項を OWASP ID と A~F の評価とともに報告します。GitHub コードスキャン向けに、テキスト、JSON、SARIF 形式で出力できます。
テレメトリはデフォルトでオフです。
GUARDBEE_TELEMETRY=1を設定すると、サーバー、ツール、成功の有無、所要時間、ファイルパスなどの短いパラメーター値が送信されます。長い文字列や、content、token、passwordなどのフィールドはプレースホルダーに置き換えられます。@guardbee/mcp-telemetryを参照してください。
クイックスタート
# Static scan of a repository, fail CI on high or critical findings
npx @guardbee/mcp-owasp-scan scan ./src --format=sarif --fail-on=high > owasp.sarif
# Connect to a running MCP server and grade its tools
npx @guardbee/mcp-owasp-scan live --url=https://mcp.example.com/mcp
npx @guardbee/mcp-owasp-scan live --stdio=npx --arg=-y --arg=@modelcontextprotocol/server-filesystem --arg=.
# Grade a saved tools/list response
npx @guardbee/mcp-owasp-scan catalog ./tools.json --format=json
MCP サーバーとして使用する場合(Claude Desktop、Cursor、VS Code):
{
"mcpServers": {
"guardbee-owasp-scan": {
"command": "npx",
"args": ["-y", "@guardbee/mcp-owasp-scan"]
}
}
}
モード
| モード | 入力 | 実行内容 |
|---|---|---|
scan <path> | ファイルまたはディレクトリ | secret-scanner、mcp-server-auditor、oauth-auditor、audit-gap-auditor、context-oversharing-auditor、toxic-flow-auditor、tool-poisoning-scanner |
live | --url=<streamable HTTP URL> または --stdio=<command> と --arg=… | 接続し、tools/list を呼び出した後、toxic-flow-auditor と tool-poisoning-scanner を実行します |
catalog <tools.json> | tools/list のダンプ({ "tools": [...] } または配列のみ) | オフラインで live と同じチェックを実行します |
scan は TypeScript/JavaScript、Python(FastMCP、公式 SDK、低レベルサーバー)、Go(公式 go-sdk、mark3labs/mcp-go)の MCP サーバーを、ツール定義、ハンドラーのシンク、OAuth ルールまで網羅して解析します。その他の言語(Rust、Java、Kotlin、C#、Ruby、PHP、Swift)では、言語に依存しないルール(シークレット、URL、設定)のみが適用されます。レポートの coverage には、言語、解析深度(full または patterns)、検出されたツール定義の数とともに、すべてのソースファイルが一覧表示されます。また、言語ごとの概要(テキスト出力の languages:)も含まれるため、十分に解析できなかったファイルも見落とされず、チェックを通過したように扱われることはありません。
--discover-shadow を指定すると、scan に MCP09 チェックが追加されます。mcp-config-auditor を通じて、このマシンに設定されている MCP サーバー(Cursor、Claude Desktop、Windsurf、VS Code)を一覧表示し、--allowlist=<path> で承認済みのサーバーを指定できます。
OWASP MCP Top 10 の対応状況
| ID | リスク | 対応するもの |
|---|---|---|
| MCP01 | トークン/認証情報の漏えい | secret-scanner, mcp-server-auditor |
| MCP02 | 過剰な権限/過剰な自律性 | mcp-server-auditor |
| MCP03 | ツールポイズニング/ラグプルの攻撃対象 | tool-poisoning-scanner(scan、live、catalog) |
| MCP04 | サプライチェーン | このメタスキャンでは対象外です。ネットワークが必要な mcp-dependency-auditor と mcp-slopsquat-scanner を使用してください |
| MCP05 | ツールを介したコマンド/コードインジェクション | mcp-server-auditor |
| MCP06 | プロンプト/コンテキストインジェクション | このメタスキャンでは対象外です。エージェントが読み取るコンテンツに mcp-prompt-injection-scanner を使用してください |
| MCP07 | 認証/OAuth の設定ミス | oauth-auditor |
| MCP08 | 監査とテレメトリーの欠如 | audit-gap-auditor |
| MCP09 | シャドー MCP サーバー | mcp-config-auditor(--discover-shadow) |
| MCP10 | 有害なフロー/コンテキストの過剰共有 | toxic-flow-auditor, context-oversharing-auditor(scan、live、catalog) |
グレード
| グレード | 条件 |
|---|---|
| F | 致命的な三要素:1 つのエージェントが信頼できないコンテンツを読み取り、機密データにアクセスし、データを外部に送信できる |
| D | 重大な検出結果がある |
| C | 高リスクの検出結果がある |
| B | 中リスクまたは低リスクの検出結果のみ |
| A | 検出結果なし |
CLI オプション
| オプション | デフォルト | 説明 |
|---|---|---|
--format=text|json|sarif | text | レポート形式です。SARIF は GitHub code scanning にアップロードされます |
--fail-on=any|critical|high|medium|none | any | この重大度以上の検出結果がある場合に終了コード 1 を返します |
--max-files=<n> | 5000 | パススキャンをこの数のファイルの後に停止します |
--discover-shadow | off | scan に MCP09 のホストインベントリーを追加します |
--allowlist=<path> | – | --discover-shadow の承認済みサーバー |
終了コード:0 問題なし(または --fail-on 未満)、1 --fail-on 以上の検出結果あり、2 使用方法のエラー。
MCP ツール
| ツール | 機能 |
|---|---|
owasp_scan_path | パスに対する scan モード(path、maxFiles、discoverShadow、allowlistPath) |
owasp_scan_live | live モード(url、または args を指定した command) |
owasp_scan_catalog | JSON 文字列に対する catalog モード |
list_owasp_coverage | 上記の対応状況の表 |
GitHub Actions
- run: npx -y @guardbee/mcp-owasp-scan scan . --format=sarif --fail-on=high > owasp.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: owasp.sarif
関連パッケージ
各監査ツールは、より多くのオプションを備えた独立したパッケージでもあります:mcp-secret-scanner、mcp-server-auditor、mcp-oauth-auditor、mcp-audit-gap-auditor、mcp-context-oversharing-auditor、mcp-toxic-flow-auditor、mcp-tool-poisoning-scanner、mcp-config-auditor。コード内で検出するのではなく、実行時にこれらのルールを適用するには、MCP サーバーの前段に mcp-security-proxy を配置してください。
フィードバック
質問、アイデア、誤検知がありましたら、GitHub Discussions でスレッドを開始するか、issue を作成してください。GuardBee が役に立った場合は、リポジトリに ⭐ を付けていただくと、ほかの人にも見つけてもらいやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。