静态分析CLI,用于扫描AI生成的代码中的漏洞,如SQL注入、不安全反射和硬编码密钥,并支持SARIF导出和CI/CD门禁。
一款快速、独立的静态分析工具,用于发现 AI 生成代码中的安全风险。CanoP 在本地运行,并生成可操作的发现结果及修复指导。
fixes.json 提示词,用于 LLM 辅助修复。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 的分析。Semgrep 是可选的,不会随 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 许可证 授权。