
Статический анализатор CLI, который сканирует сгенерированный ИИ код на наличие уязвимостей, таких как SQL-инъекции, небезопасная рефлексия и жёстко закодированные секреты, с экспортом SARIF и контролем в CI/CD.
Быстрый автономный инструмент статического анализа для поиска рисков безопасности в коде, сгенерированном ИИ. CanoP работает локально и выдаёт практичные результаты с рекомендациями по устранению.
fixes.json для исправления с помощью LLM.pip install canop
В macOS и Linux используйте pipx, если глобальная установка через pip ограничена:
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 и сканирует локально с помощью встроенного движка шаблонов. Правила для секретов проверяют комментарии, чтобы выявить учётные данные, случайно оставленные ИИ-агентами в исходном коде фронтенда; другие правила игнорируют строки, состоящие только из комментариев, чтобы снизить шум. Если установлен, 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
Правила используют формат YAML Semgrep и находятся в canop/rules/*.yml. См. CONTRIBUTING.md для получения рекомендаций.
По вопросам ошибок и запросов функций открывайте issue на GitHub или пишите на [email protected].
Этот проект лицензирован по MIT License.