codesafer について
CodeSafer は、AI を使ったコーディング向けのローカルコードセキュリティ MCP サーバーです。静的スキャナーとローカルの CodeBERT 分析を組み合わせ、隠れた脅威を検出して MCP クライアントに返します。
主な機能
- 01不可視 Unicode、双方向テキスト、同形文字の検出
- 02Unicode ステガノグラフィとルールファイルのバックドア検査
- 03依存関係の偽装名や不審なインストールスクリプトの確認
- 04難読化や悪意あるペイロードの識別
- 05静的スキャナーと CodeBERT 分析の併用
- 06コードをアップロードせずローカルで実行
活用シーン
- 01AI 生成コードを実行前に検査
- 02`.cursorrules` や `CLAUDE.md` をスキャン
- 03`package.json` の依存関係リスクを確認
- 04不審なコードを分析し、修正案を確認
MCP 対応
ローカル MCP サーバーとして、Claude Code、Cursor、VS Code + Copilot、Cline などのクライアントに、スキャンと説明の 6 種類のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| file_path | string | はい | スキャンするファイルの絶対パス |
詳細
CodeSafer (cleaner-code)
Model Context Protocol(MCP)サーバーとして動作する、AI コードセキュリティスキャナーです。 従来のリンターでは見逃される、AI 生成コードに潜む脅威を検出します。
ウェブサイト: codesafer.org · MCP クライアント: Claude Code、Cursor、VS Code + Copilot、Cline
CodeSafer を使う理由
AI コーディングアシスタントはコードをすばやく生成します。しかし、隠れた脅威がないか、誰が確認するのでしょうか?
近年のサプライチェーン攻撃から、悪意のあるコードは、人間のレビュアーや従来のリンターが見逃しがちな方法で隠せることがわかっています。
- 不可視の Unicode 文字が識別子に挿入されます(30 種類以上)
- BiDi/Trojan Source攻撃では、コードの表示と実行の順序が入れ替わります(CVE-2021-42574)
- ホモグリフ — ラテン文字に見せかけたキリル文字(CVE-2021-42694)
- Glassworm 型の Unicode ステガノグラフィでは、空白にペイロードを隠します
.cursorrules、CLAUDE.md、その他の AI 設定ファイルに仕込まれたルールファイルのバックドアpackage.json内のタイポスクワッティングされた依存関係- 難読化パターン —
eval+ base64、リバースシェル、パックされたペイロード
CodeSafer は、コードがマシン上で実行される前に、これらすべてをスキャンします。
仕組み
CodeSafer はローカルの MCP サーバーとして動作します。AI クライアント(Claude Code、Cursor など)は、コードのレビュー時や生成時に CodeSafer のツールを呼び出し、検出結果はインラインで返されます。
ハイブリッド検出:
- 8 種類の静的解析スキャナー — 既知の攻撃カテゴリに対する決定論的なルールです(高速で、対象パターンについて誤検出がありません)。
- CodeBERT による詳細分析 — トランスフォーマーモデルが、コードのチャンクを悪意のあるもの/安全なものに分類し、信頼度スコアを付与します。静的ルールでは見逃される、難読化されたパターンや未知のパターンも検出します。
情報がマシンの外に送信されることはありません。AI 分析は、トークナイザーサーバーを使ってローカルで実行されます。
機能
| 機能 | 詳細 |
|---|---|
| 不可視文字の検出 | ゼロ幅スペース、モンゴル語の母音区切りなど、30 種類以上の Unicode 文字に対応 |
| BiDi/Trojan Source | CVE-2021-42574 に完全対応 |
| ホモグリフの検出 | キリル文字/ギリシャ文字/ラテン文字の紛らわしい文字に対応(CVE-2021-42694) |
| Unicode ステガノグラフィ | Glassworm 型の空白ペイロード |
| ルールファイルのバックドア | .cursorrules、CLAUDE.md、.claude/、Cursor ルールをスキャン |
| 依存関係のスキャン | package.json 内のタイポスクワッティングや疑わしいインストールスクリプトを検出 |
| 難読化の検出 | eval + base64、リバースシェル、パックされたペイロード |
| AI による詳細分析 | 信頼度スコアを表示する CodeBERT トランスフォーマー分類器 |
| MCP ネイティブ | MCP ツール 6 種類、stdio トランスポート |
| ローカル優先 | コードはアップロードされず、すべてマシン上で実行 |
MCP ツール
CodeSafer は、MCP クライアントに 6 種類のツールを提供します。
| ツール | 目的 |
|---|---|
scan_file | 単一ファイルをスキャンして、隠れた悪意のあるコードパターンを検出します |
scan_directory | ディレクトリ内のすべてのソースファイルを再帰的にスキャンします |
scan_rules_file | AI 設定/ルールファイルをスキャンして、プロンプトインジェクションやルールファイルのバックドア攻撃を検出します |
check_dependencies | package.json を確認し、タイポスクワッティング、疑わしいインストールスクリプト、依存関係のリスクを検出します |
ai_analyze | 学習済み CodeBERT モデルを使って詳細な AI 分析を行います(チャンクを悪意のあるもの/安全なものに分類し、信頼度を表示します) |
explain_finding | 特定の脅威カテゴリについて、攻撃シナリオと対処方法を含む詳しい説明を取得します |
インストール
前提条件
- Node.js 18 以降
- MCP 対応クライアント(Claude Code、Cursor、VS Code + Copilot、Cline)
ソースからインストール
git clone https://github.com/goldmembrane/cleaner-code.git
cd cleaner-code
npm install
npm run build
MCP クライアントの設定
Claude Code(~/.claude.json またはプロジェクトの .mcp.json):
{
"mcpServers": {
"codesafer": {
"command": "node",
"args": ["/absolute/path/to/cleaner-code/dist/index.js"]
}
}
}
Cursor(.cursor/mcp.json):
{
"mcpServers": {
"codesafer": {
"command": "node",
"args": ["/absolute/path/to/cleaner-code/dist/index.js"]
}
}
}
クライアントを再起動すると、ツール選択画面に CodeSafer のツールが表示されます。
使用方法
設定が完了したら、AI クライアントに次のような質問をします。
- 「このファイルをスキャンして、隠れたセキュリティ上の問題を見つけてください。」
- 「package.json の依存関係を確認して、タイポスクワッティングがないか調べてください。」
- 「ルールファイルにバックドアがないか、
.cursorrulesをスキャンしてください。」 - 「
src/auth.tsの詳細な AI 分析を実行してください。」 - 「トロイの木馬ソース攻撃とは何か、また上記の検出結果を修正する方法を説明してください。」
クライアントは適切な MCP ツールを呼び出し、重要度、行番号、修正方法のガイダンスとともに検出結果を返します。
無料プランと各プラン
CodeSafer は無料で使用できます。静的解析(scan_file、scan_directory、scan_rules_file、check_dependencies、explain_finding)に制限はありません。
AI 詳細分析(ai_analyze)は、1 セッションあたり 10 回まで無料で実行できます。AI の利用枠が多い有料プランは、codesafer.org でご利用いただけます。
検出カテゴリー
CodeSafer は、9 つのカテゴリーにわたる脅威を検出します。
- 不可視の Unicode 文字 — ゼロ幅スペースやゼロ幅接合子など、30 種類以上のバリエーション
- BiDi/トロイの木馬ソース攻撃 — CVE-2021-42574
- ホモグリフ — ラテン文字に見せかけたキリル文字/ギリシャ文字(CVE-2021-42694)
- Unicode ステガノグラフィー — 空白文字に潜む Glassworm のパターン
- ルールファイルのバックドア —
.cursorrules、CLAUDE.mdなどに含まれる悪意ある指示 - 依存関係のリスク — タイポスクワッティングや不審なインストールスクリプト
- 難読化パターン —
eval+ base64、パックされたペイロード、リバースシェル - 静的解析の検出結果 — 決定論的なスキャナー 8 種類
- AI 詳細分析 — 未知の脅威や難読化された脅威に対応する CodeBERT トランスフォーマー
プロジェクト構成
cleaner-code/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── api-server.ts # Optional HTTP API server
│ ├── types.ts # Scanner interfaces
│ ├── utils.ts # File collection, summary formatting
│ └── scanner/
│ ├── invisible.ts # Invisible Unicode scanner
│ ├── bidi.ts # BiDi / Trojan Source scanner
│ ├── homoglyph.ts # Homoglyph scanner
│ ├── encoding.ts # Encoding / charset scanner
│ ├── obfuscation.ts # Obfuscation pattern scanner
│ ├── steganography.ts # Unicode steganography scanner
│ ├── rules-backdoor.ts # Rules file backdoor scanner
│ ├── dependency.ts # Dependency risk scanner
│ └── ai-analyzer.ts # CodeBERT deep analyzer
├── ml/ # ML model assets and tokenizer
├── functions/ # Cloud function deployments
├── deploy/ # Deployment manifests
└── web/ # Landing page assets
ライセンス
ISC — 詳細は LICENSE ファイルをご覧ください。
リンク
- ウェブサイト: codesafer.org
- Model Context Protocol: modelcontextprotocol.io
- 問題を報告: GitHub Issues
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。