AI生成コードをSQLインジェクション、安全でないリフレクション、ハードコードされたシークレットなどの脆弱性についてスキャンする静的解析CLI。SARIFエクスポートとCI/CDゲーティングを備える。
AI が生成したコードに潜むセキュリティリスクを検出するための、高速でスタンドアロンな静的解析ツールです。CanoP はローカルで動作し、実行可能な検出結果と修正ガイダンスを提供します。
fixes.json プロンプトを生成します。pip install canop
macOS および Linux では、グローバルな pip インストールが制限されている場合に pipx を使用してください:
pipx install canop
インストールを確認します:
canop --version
.canop.yml と .canopignore を初期化します:
canop init
カレントディレクトリ、または Git で変更されたファイルのみをスキャンします:
canop scan .
canop scan . --changed
検出結果はデフォルトで 50 件に制限されます。上限なしにするには --all、カスタム上限を指定するには --limit N を使用します:
canop scan . --all
canop scan . --limit 10
以下のオプションは、しきい値を満たさない場合に非ゼロの終了コードを返します:
canop scan . --fail-on HIGH
canop scan . --min-score 85
canop scan . --json-out results.json
canop scan . --sarif results.sarif
canop scan . --prescriptions fixes.json
SARIF 出力は GitHub にアップロードしてインラインの検出結果として表示できます。fixes.json には LLM 支援による修正のためのプロンプトが含まれます。
プロジェクトルートに .canop.yml を追加して、ポリシーのしきい値と無視するパスを定義します:
min_grade: B
fail_on:
- CRITICAL
- HIGH
ignore:
- "tests/**"
- "docs/**"
max_findings: 0
.canopignore は .gitignore 形式のパターンを使用してファイルやディレクトリを除外します。
CanoP は canop/rules/*.yml からルールを読み込み、内蔵のパターンエンジンでローカルにスキャンします。シークレットルールはコメントを検査し、AI コーディングエージェントによってフロントエンドのソースに誤って残された認証情報を検出します。その他のルールはコメントのみの行を無視してノイズを低減します。インストールされている場合、Semgrep が AST ベースの解析を追加します。これはオプションであり、CanoP とともにインストールされることはありません。
git clone https://github.com/openbreach/CanoP.git canop
cd canop
pip install -e .
python -m unittest discover -s tests -v
配布用アーティファクトをビルドします:
pip install -r requirements-dev.txt
python -m build
ルールは Semgrep YAML 形式を使用し、canop/rules/*.yml に配置されます。ガイドラインについては CONTRIBUTING.md を参照してください。
バグや機能リクエストについては、GitHub の issue を作成するか、[email protected] までメールでご連絡ください。
このプロジェクトは MIT License の下でライセンスされています。