
SecureAI-Scan v0.3.1
SecureAI-Scan は、TypeScript および JavaScript のコードベースをスキャンし、AI を活用したアプリに特有のセキュリティ問題 — プロンプトインジェクション、MCP ツールの悪用、RAG データポイズニング、エージェントの信頼違反など — を検出する CLI ツールです。
SecureAI-Scan
TypeScript、JavaScript、Python を対象に LLM・MCP・Agent Skill・RAG のリスクをスキャンするオフライン CLI — import 解決済みのデータフロー証跡を提供し、デフォルトの誤検知ゼロ、OWASP LLM/ASI/MCP Top 10 に対応。
この分野のほとんどのスキャナはキーワードをパターンマッチして検出結果と呼んでいます。SecureAI-Scan は、実際の import 解決済みコードを通して、ソース → フロー → シンクの経路を追跡します。デフォルトのスキャンでは、証明できたものだけが表示されます。アカウント不要、クラウドへのアップロードなし、データがマシンの外に出ることはありません。
公式の OWASP Top 10 for LLM Applications 2026、Top 10 for Agentic Applications (2026)、および MCP Top 10 をリリース初週からカバーしています。
30秒で始める```bash
npx --yes [email protected] scan .
アカウント不要、クラウドアップロード不要、Pythonインタープリタ不要、設定不要。TypeScript、JavaScript、Python、MCP設定、Agent Skillバンドルは自動的に検出されます。
**測定済み `0.9.0` リリース候補:** 136/136テスト · 88.08%ステートメントカバレッジ · 9つの公開リポジトリにわたる12,676ファイル · レビュー済みベースラインに対する新規デフォルト層フィンガープリント0件。[エビデンス](https://github.com/akanthed/secureai-scan/blob/main/docs/benchmarks/v0.9.0.json) · [方法論と限界](https://github.com/akanthed/secureai-scan/blob/main/docs/ReleaseAssurance.md)```
▌ HIGH AI001 Prompt injection via user input
PROVEN LLM01:2026 Prompt Injection
source src/chat.ts:8 request data `req.body.input`
flow src/chat.ts:13 passed as `systemPrompt`
sink src/chat.ts:10 openai.chat.completions.create — system role (OpenAI)
fix Keep system prompts static; pass user input as a user-role message.
これはあなた向けですか? SecureAI-Scanは、LLM、MCP、RAG/エージェントのリスク(プロンプトインジェクション、ツールポイズニング、安全でない出力処理、ベクターストアのアクセス制御、エージェントスキルのポイズニング)に意図的に範囲を絞っています。これは一般的なSASTやシークレットスキャナーではなく、そうであろうともしていません。LLM型のペイロードを持たない既知の悪意あるパッケージ(例:メールAPI呼び出しにハードコードされた外部送信アドレス)は、パターンルールではなくオフラインのアドバイザリリスト(DEP003)で検出されます。コードベースがLLM、MCPサーバー、ベクターストアと通信する場合、またはAgent Skillsを同梱する場合、これはあなたのために作られています。
新機能: LiteLLM Proxy(config.yaml)の静的設定スキャン — ハードコードされたシークレット、平文のプロバイダーエンドポイント、欠落したガードレール。 ルール(LLC001–LLC003)を参照してください。
目次
- このスキャナーが他と違う理由
- 他との比較
- 30秒で始める
- 動作を確認する
- コマンド
- GitHub Action
- Pre-commitフック
- ルール
- アーキテクチャ
- MCPサーバー(Claudeから使用)
- Claudeスキル
- 信頼性とリリース保証
- 精度契約
- テストとベンチマーク
- ロードマップ
- コントリビューション
このスキャナーが他と違う理由
- ノイズではなくエビデンスの階層。 すべての検出結果は
proven(追跡されたデータフローまたは解析済み設定の事実)、likely(解決されたシンク、ヒューリスティック1ホップ)、またはheuristicです。デフォルトのスキャンではproven + likelyのみが表示されます。 ヒューリスティックは--paranoidでオプトインします。 - インポート解決型の検出。 呼び出しが「LLM呼び出し」と見なされるのは、実際のSDKインポート(
openai、@anthropic-ai/sdk、ai、@google/genai、LangChain、Bedrockなど)に解決される場合のみです。Google Mapsクライアントが再びLLMとしてフラグ付けされることはありません。 - 精度でゲートされ、実際のリポジトリに対してベンチマーク済み。 テストスイートは、すべての脆弱なフィクスチャが発火することおよびすべての安全なフィクスチャがクリーンなままであることを検証します — 安全なコーパスでの誤検知はビルドを失敗させます。さらに、
npm run regressionは実際の公開リポジトリ(OpenAI/Anthropic/Vercel AI SDK、公式MCPサーバー、LlamaIndex)をコミット済みの手動レビュー済みベースラインに対してスキャンし、新しいproven/likelyの検出結果があれば失敗します。実際の前後数値についてはテストとベンチマークを、その背景にあるストーリー(ラベル付き悪意あるスキルコーパスでの6/6検出率、そしてなぜllama_indexを「脆弱」と呼んでいないのか — 正直なライブラリレベルの検出結果について)は実際のリポジトリのスキャンで見つかったものを参照してください。 ディスカッションの記事 → - GitHubコードスキャン用のSARIF。
--output report.sarifにより、プルリクエスト上とSecurityタブに検出結果がインライン表示されます。 - AI-BOM。
secureai-scan bom .は、SDK、モデルID、ベクターストア、エージェントフレームワーク、MCPサーバーの構文ベースのインベントリを構築し、OWASP LLM Top 10 / EU AI Actのドキュメント要件にマッピングします。 - MCP設定スキャン。
.mcp.json、claude_desktop_config.json、.cursor/mcp.jsonを解析: ピン留めされていないnpx -yサーバー、インラインシークレット、平文のHTTPトランスポート。 - MCPツールポイズニング検出。 WhatsApp MCPのラグプルとpostmark-mcpのバックドアの背後にあるパターン — 不可視のUnicode、エージェント向けインジェクションフレーズ、ツール名/説明におけるツール間シャドウイング — を、サーバーを実行する前に静的に検出します。
- MCPコマンドインジェクション検出。 リクエストデータから構築されたMCP stdioトランスポートの
command/argsをフラグ付けします — 2026年のMCP STDIO RCE開示の背後にあるパターンです。 - Agent Skillポイズニング検出。 同じ不可視Unicode、インジェクションフレーズ、シャドウイングチェックを
SKILL.mdファイルに適用します — Agent Skillsはコンテキスト全体に読み込まれるため、ポイズニングされたスキルは別名のポイズニングされたツール説明です。 - 回避耐性のあるスキルスキャン。 スキルバンドルは
SKILL.mdだけでなくディレクトリとしてスキャンされ、すべてのコンテンツチェックはテキストの難読化解除バリアントに対して実行されます。これは、Cloak and Detonate(arXiv:2607.02357)で調査された9つのスキャナーの90%以上を回避した公開技術 — ホモグリフ、ゼロ幅分割、.git/やbuild/にステージングされたペイロード、*.test.tsファイルに隠された外部送信 — を対象としています。回避耐性を参照してください。 - 既知の脆弱性および既知の悪意あるパッケージのアドバイザリ、バージョン対応。 すべての依存関係とMCPが起動するすべてのパッケージを、バンドルされたアドバイザリスナップショット — 文書化された実地バックドアの手動キュレーションリストに加え、LLM/MCP/RAGパッケージのウォッチリストに対するHIGH/CRITICAL OSVアドバイザリ(
scripts/sync-advisories.jsによって再生成)— に対してチェックします。フラグ不要で毎回のスキャンでオフライン実行されます。CVEは、ピン留めされたバージョンが影響範囲内に証明可能な場合にのみ発火します。文書化された悪意あるパッケージは、範囲が曖昧な場合でも発火します。バックドアのインストールは回復不能だからです。 - ローカルファースト。 何もマシンの外に出ません。
他との比較
SecureAI-Scanは、一般的なSASTツールやコンテナ/IaCスキャナーの代替ではありません — それらの代わりではなく、併用してください。これはLLM/MCP/RAGの攻撃面に特化して構築されており、フラットなキーワード検出結果よりもデータフローのエビデンスを重視します。
| SecureAI-Scan | Semgrep(OSSルール) | Trivy | GitHub Advanced Security | |
|---|---|---|---|---|
| プロンプトインジェクション(ソース→シンク追跡) | ✅ インポート解決型データフロー | ⚠️ パターンルールのみ、コミュニティ保守 | ❌ | ⚠️ CodeQLは可能だが、AI固有のルールセットなし |
| MCPツールポイズニング / 設定リスク | ✅ MCP007–010、設定スキャナー | ❌ | ❌ | ❌ |
Agent Skillポイズニング(SKILL.md) | ✅ 回避耐性、バンドル対応 | ❌ | ❌ | ❌ |
| RAG / ベクターストアの設定ミス | ✅ VEC001–004 | ❌ | ❌ | ❌ |
| 既知の悪意あるAIパッケージのアドバイザリ | ✅ DEP003、オフライン、バージョン対応 | ❌ | ⚠️ 一般的なCVEフィード、AI固有ではない | ⚠️ Dependabot、一般的なCVEフィード |
| 一般的なSAST(SQLi、XSS、パストラバーサル) | ❌ 設計上スコープ外 | ✅ | ❌ | ✅ |
| コンテナ / IaCスキャン | ❌ | ❌ | ✅ | ⚠️ CodeQL/Actions経由 |
| エビデンス階層(proven/likely/heuristic) | ✅ | ❌ 検出結果はフラット | ❌ | ⚠️ CodeQLには一部あるが、AIチューニングなし |
| SARIF出力(GitHubコードスキャン) | ✅ | ✅ | ✅ | ネイティブ |
| オフライン実行、アカウント不要 | ✅ | ✅(OSSルール) | ✅ | ❌ GitHubが必要 |
すでにSemgrepやGHASを実行している場合は、それらを維持してください — それらがまったくモデル化していないリスク面のためにSecureAI-Scanを追加してください。
まず質問したいですか? 無料の SecureAI-Scan AI Security Advisor on ChatGPT をお試しください。
GitHubやTwitterで見つけたMCPサーバーを実行しようとしていますか? まずそのツール説明を MCP X-Ray に貼り付けてください — ブラウザ内で、インストール不要で、隠されたUnicode、注入された指示、既知の悪意あるパッケージをチェックします。
動作を確認する
secureai-scan scan .をエンドツーエンドで、実際の(小さく、意図的に脆弱な)ファイルに対する実際の出力 — ソース:
スキャナーがエンドツーエンドで追跡する攻撃の形状: