
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
다음 옵션은 임계값을 충족하지 못할 때 0이 아닌 종료 코드를 반환합니다:
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 이슈를 열거나 [email protected]으로 이메일을 보내주세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.