🛡️ AgentAudit
AIパッケージのセキュリティスキャナー — MCPサーバー + CLI
MCPサーバー、AIスキル、およびパッケージの脆弱性、プロンプトインジェクション、サプライチェーン攻撃をスキャンします。正規表現による静的解析と深層LLM監査によって動作します。
🚀 クイックスタート
オプションA: CLI(推奨)
npm install -g agentaudit
agentaudit
agentaudit scan https://github.com/owner/repo
agentaudit audit https://github.com/owner/repo
agentaudit lookup fastmcp
出力例:
AgentAudit v3.9.8
AIパッケージのセキュリティスキャナー
AIエディター内のMCPサーバーを検出中...
• Cursorをスキャン中 ~/.cursor/mcp.json 3つのサーバーが見つかりました
├── ツール supabase-mcp ✔ 正常
│ 安全 リスク0 https://agentaudit.dev/skills/supabase-mcp
├── ツール browser-tools-mcp ✔ 正常
│ ⚠ 未監査 実行: agentaudit audit https://github.com/nichochar/browser-tools-mcp
└── ツール filesystem ✔ 正常
│ 安全 リスク0 https://agentaudit.dev/skills/filesystem
一般的なパッケージスキャンが必要な場合は、`pip audit` または `npm audit` を試してください。
オプションB: AIエディターでのMCPサーバー
AgentAuditをMCPサーバーとして追加すると、AIエージェントが独自のLLMを使用してパッケージを検出、スキャン、および監査できます。追加のAPIキーは必要ありません。
Claude Desktop — ~/.claude/mcp.json
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Cursor — .cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"agentaudit": {
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
Continue.dev — ~/.continue/config.json
既存の設定の mcpServers セクションに追加します:
{
"mcpServers": [
{
"name": "agentaudit",
"command": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
]
}
Zed — ~/.config/zed/settings.json
{
"context_servers": {
"agentaudit": {
"command": {
"path": "npx",
"args": ["-y", "agentaudit", "--stdio"]
}
}
}
}
次に、エージェントに "インストールされているMCPサーバーを確認し、未監査のものを監査してください。" と尋ねます。
✨ 主な機能
AgentAuditは、AIパッケージエコシステム用に特別に構築されたセキュリティスキャナーです。2つのモードで動作します。
- CLIツール — ターミナルで
agentaudit を実行して、AIエディターにインストールされたMCPサーバーを検出およびスキャンします。
- MCPサーバー — Claude Desktop、Cursor、またはWindsurfに追加すると、AIエージェントが代わりにパッケージを監査できます。
これは、AgentAudit Trust Registry(セキュリティ調査結果の共有されたコミュニティ主導のデータベース)と照合してパッケージをチェックし、高速な正規表現分析から深層LLMによる3パス監査までのローカルスキャンを実行できます。
📦 インストール
グローバルインストール
npm install -g agentaudit
または、インストールせずに使用する場合は npx agentaudit を使用します。
💻 使用例
基本的な使用法
agentaudit
agentaudit scan https://github.com/owner/repo
agentaudit audit https://github.com/owner/repo
agentaudit lookup fastmcp
高度な使用法
agentaudit scan https://github.com/owner/repo --deep
📚 詳細ドキュメント
📋 コマンドリファレンス
| コマンド |
説明 |
例 |
agentaudit |
MCPサーバーを検出(デフォルト、discover と同じ) |
agentaudit |
agentaudit discover |
Cursor、Claude、VS Code、Windsurf内のMCPサーバーを検索 |
agentaudit discover |
agentaudit discover --quick |
検出 + すべてのサーバーを自動スキャン |
agentaudit discover --quick |
agentaudit discover --deep |
検出 + ディープオーディットするサーバーを対話的に選択 |
agentaudit discover --deep |
agentaudit scan <url> |
正規表現ベースのクイック静的スキャン(約2秒) |
agentaudit scan https://github.com/owner/repo |
agentaudit scan <url> --deep |
ディープオーディット(audit と同じ) |
agentaudit scan https://github.com/owner/repo --deep |
agentaudit audit <url> |
深層LLMによる3パスオーディット(約30秒) |
agentaudit audit https://github.com/owner/repo |
agentaudit lookup <name> |
信頼レジストリでパッケージを検索 |
agentaudit lookup fastmcp |
agentaudit setup |
エージェントを登録 + APIキーを設定 |
agentaudit setup |
グローバルフラグ
| フラグ |
説明 |
--json |
マシン可読のJSONを標準出力に出力 |
--quiet / -q |
バナーと装飾的な出力を抑制(調査結果のみ表示) |
--no-color |
ANSIカラーを無効にする(NO_COLOR 環境変数も尊重) |
--help / -h |
ヘルプテキストを表示 |
-v / --version |
バージョンを表示 |
終了コード
| コード |
意味 |
0 |
クリーン — 調査結果が検出されない、または検索が成功 |
1 |
調査結果が検出された |
2 |
エラー(クローン失敗、ネットワークエラー、無効な引数) |
⚖️ クイックスキャンとディープオーディットの比較
|
クイックスキャン (scan) |
ディープオーディット (audit) |
| 速度 |
約2秒 |
約30秒 |
| 方法 |
正規表現パターンマッチング |
LLMによる3パス分析 |
| APIキーが必要 |
いいえ |
はい (ANTHROPIC_API_KEY または OPENAI_API_KEY) |
| 誤検知 |
高い(正規表現の制限) |
非常に低い(コンテキスト認識) |
| 検出対象 |
一般的なパターン(インジェクション、シークレット、eval) |
複雑な攻撃チェーン、AI固有の脅威、難読化 |
| 最適なシナリオ |
クイックトリアージ、CIパイプライン |
重要なパッケージ、本番前のレビュー |
ヒント: agentaudit scan <url> --deep を使用して、スキャンコマンドでディープオーディットを実行できます。
🔌 MCPサーバー
MCPサーバーとして実行する場合、AgentAuditは以下のツールをAIエージェントに公開します。
| ツール |
説明 |
audit_package |
リポジトリの深層LLMによるオーディット |
check_registry |
信頼レジストリでパッケージを検索 |
submit_report |
オーディット結果をレジストリにアップロード |
discover_servers |
ローカルエディター設定内のMCPサーバーを検索 |
ワークフロー
ユーザーがエージェントにパッケージをインストールするように依頼
│
▼
エージェントが check_registry(package_name) を呼び出す
│
┌────┴────┐
│ │
検出済み 未検出
│ │
▼ ▼
スコアを返す エージェントが audit_package(repo_url) を呼び出す
│
▼
LLMがコードを分析(3パス)
│
▼
エージェントが submit_report(findings) を呼び出す
│
▼
調査結果 + リスクスコアを返す
🎯 検出対象
| カテゴリ |
検出対象 |
| コアセキュリティ |
      |
| AI固有 |
      |
| MCP固有 |
     |
| 永続性と難読化 |
      |
🧠 3パスオーディットの仕組み
ディープオーディット (agentaudit audit) は、構造化された3段階のLLM分析を使用します。単発のプロンプトではなく、厳密なマルチパスプロセスです。
| フェーズ |
名前 |
内容 |
| 1 |
🔍 理解 |
すべてのファイルを読み取り、パッケージプロファイルを構築します。目的、カテゴリ、予想される動作、信頼境界です。まだスキャンは行われません。パッケージがしてはいけないことを探す前に、すべきことを理解することが目標です。 |
| 2 |
🎯 検出 |
50以上の検出パターンに対する証拠収集を、8つのカテゴリ(AI固有、MCP、永続性、難読化、ファイル間相関)で行います。事実のみが記録され、まだ重大度の判断は行われません。 |
| 3 |
⚖️ 分類 |
すべての調査結果は、必須の自己チェック(5つの質問)、悪用可能性評価、および信頼度ゲーティングを経ます。高/重大な調査結果は、反論者の挑戦に耐え、完全な推論チェーンを含まなければなりません。 |
なぜ3パスなのか? 単一パスの分析は誤検知の主な原因です。理解 → 検出 → 分類を分離することで、以下のことが可能になります。
- フェーズ1では、コア機能を疑わしいものとしてフラグ付けするのを防ぎます(例:データベースツールでのSQL実行)。
- フェーズ2では、重大度の偏りなしに証拠を収集します。
- フェーズ3では、報告に到達する前に誤検知をキャッチします。
このアーキテクチャは、11パッケージのテストセットで**誤検知率0%**を達成し、v2の42%から大幅に改善しました。
🔄 CI/CD統合
AgentAuditは、適切な終了コードとJSON出力を備えたCIパイプライン用に設計されています。
- name: Scan MCP servers
run: |
npx agentaudit scan https://github.com/org/mcp-server --json --quiet > results.json
# 終了コード1 = 調査結果が検出された → ビルドを失敗させる
agentaudit scan https://github.com/owner/repo --json --quiet 2>/dev/null
if [ $? -eq 1 ]; then
echo "セキュリティ問題が検出されました!"
exit 1
fi
JSON出力例
agentaudit scan https://github.com/owner/repo --json
{
"slug": "repo",
"url": "https://github.com/owner/repo",
"findings": [
{
"severity": "high",
"title": "Command injection risk",
"file": "src/handler.js",
"line": 42,
"snippet": "exec(`git ${userInput}`)"
}
],
"fileCount": 15,
"duration": "1.8s"
}
agentaudit lookup fastmcp --json
近日公開予定: --fail-on <severity> フラグを使用して、非ゼロ終了の最小重大度閾値を設定できます(例:--fail-on high は低/中の調査結果を無視します)。
⚙️ 設定
資格情報
AgentAuditは資格情報を ~/.config/agentaudit/credentials.json(または $XDG_CONFIG_HOME/agentaudit/credentials.json)に保存します。
agentaudit setup を実行して対話的に設定するか、環境変数を使用して設定します。
export AGENTAUDIT_API_KEY=asf_your_key_here
環境変数
| 変数 |
説明 |
AGENTAUDIT_API_KEY |
レジストリアクセス用のAPIキー |
ANTHROPIC_API_KEY |
ディープオーディット用のAnthropic APIキー(Claude) |
OPENAI_API_KEY |
ディープオーディット用のOpenAI APIキー(GPT-4o) |
NO_COLOR |
ANSIカラーを無効にする(no-color.org) |
📦 要件
- Node.js ≥ 18.0.0
- Git(スキャン/オーディット中にリポジトリをクローンするため)
❓ FAQ
AgentAuditを設定するにはどうすればいいですか?
npm install -g agentaudit
agentaudit setup
または、インストールせずに使用する場合は npx agentaudit を使用します。
APIキーが必要ですか?
- クイックスキャン (
scan):APIキーは必要ありません。正規表現を使用してローカルで実行されます。
- ディープオーディット (
audit):LLM APIキーが必要です(以下を参照)。
- レジストリ検索 (
lookup):読み取りにはキーは必要ありませんが、レポートのアップロードにはキーが必要です。
- MCPサーバー:追加のキーは必要ありません。ホストエディターのLLMを使用します。
ディープオーディット用のLLMキーを設定する方法
audit コマンドは、Anthropic(Claude) と OpenAI(GPT-4o) をサポートしています。以下の環境変数のいずれかを設定します。
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
$env:ANTHROPIC_API_KEY = "sk-ant-..."
$env:OPENAI_API_KEY = "sk-..."
set ANTHROPIC_API_KEY=sk-ant-...
set OPENAI_API_KEY=sk-...
優先順位:両方が設定されている場合、Anthropicが使用されます。オーディット中にアクティブなプロバイダーが表示されます。
トラブルシューティング:API error: Incorrect API key が表示された場合は、キーが有効でクレジットがあることを再確認してください。--debug を使用して、完全なAPIレスポンスを表示します。
外部に送信されるデータは何ですか?
- レジストリ検索:パッケージ名/スラッグが
agentaudit.dev に送信され、既存のオーディットを確認します。
- レポートアップロード:オーディット結果が公開レジストリにアップロードされます(APIキーが必要)。
- ディープオーディット:ソースコードがAnthropicまたはOpenAIに送信され、LLM分析が行われます。
- クイックスキャン:すべてがローカルで行われ、データはマシンから送信されません。
オフラインで使用できますか?
クイックスキャン (agentaudit scan) は、クローン後に完全にオフラインで動作します。レジストリ検索とディープオーディットにはネットワークアクセスが必要です。
CLIなしでMCPサーバーとして使用できますか?
はい!npx agentaudit は、エディターによって呼び出されるとMCPサーバーを起動します。CLIとMCPサーバーは同じパッケージであり、呼び出し方によって動作が決まります。
discover はどのエディターを使用しているかをどのように知るのですか?
Claude Desktop、Cursor、VS Code、およびWindsurfの標準的な設定ファイルの場所をチェックします。また、現在の作業ディレクトリのプロジェクトレベルの .cursor/mcp.json と .vscode/mcp.json もチェックします。
🔗 関連リンク
📄 ライセンス
AGPL-3.0 — オープンソースでの使用は無料です。独自の統合には商用ライセンスが利用可能です。