repo-security-scan은(는) 무엇을 하나요?
대상 저장소에서 높은 신뢰도의 보안 이슈를 스캔하고 보고서를 생성합니다.
기능 (MVP)
- 시크릿 스캔 - gitleaks 사용 (로컬 스캔; 시크릿은 로그에서 가려짐)
- 종속성 취약점 스캔 - osv-scanner 사용 (종속성을 OSV와 매칭)
출력:
report.md— 사람이 읽을 수 있는 요약summary.json— 기계가 읽을 수 있는 요약- 원시 도구 출력 (
gitleaks.json,osv.json) + 로그
이 스택을 선택한 이유 (신호/잡음)
- gitleaks: 강력한 기본 설정, 빠름,
.gitleaks.toml/.gitleaksignore로 거짓 양성 억제 용이. - osv-scanner: OSV를 통한 정확한 종속성 취약점 매칭 (광범위한 생태계 지원, 일반적으로 생태계별 "audit" 명령보다 잡음이 적음).
(추후 Semgrep/SAST 및 언어 특화 감사 도구와 같은 다른 스캐너는 --deep 모드 뒤에 추가하여 CI 실패를 방지할 수 있습니다.)
안전성
- 파일을 읽기 전용으로 스캔합니다.
- 소스 코드를 업로드하지 않습니다.
- gitleaks 출력은 가려집니다 (
--redact) 및 보고서에서 시크릿을 출력하지 않습니다. - osv-scanner는 기본적으로 네트워크 접근을 사용하여 OSV에 질의합니다 (패키지 메타데이터를 위해 deps.dev에 접근할 수 있음). 소스 코드 대신 종속성 메타데이터를 전송합니다.
사용법
로컬
이 저장소에서:
# 이 저장소를 스캔하고 출력을 .repo-security-scan/out 아래에 생성
bash scripts/repo-security-scan/scan.sh --repo .
# 다른 저장소 스캔
bash scripts/repo-security-scan/scan.sh --repo /path/to/target --out /tmp/repo-security-scan-out
# 보고서 보기
cat .repo-security-scan/out/report.md
데모
bash scripts/demo.sh # 이 저장소를 스캔함
bash scripts/demo.sh /path/repo # 대상 저장소를 스캔함
출력
출력 디렉터리 (기본값: <skill-suite>/.repo-security-scan/out):
report.mdsummary.jsongitleaks.json,gitleaks.logosv.json,osv.log
종료 코드:
0발견 사항 없음1발견 사항 있음2스캐너 오류 (도구 누락, 실행 실패)
설정 / 허용 목록
특정 프로젝트를 스캔할 때는 저장소 로컬 설정을 선호합니다:
- gitleaks:
<repo>/.gitleaks.toml<repo>/.gitleaksignore
- osv-scanner:
<repo>/osv-scanner.toml(해당 디렉터리에만 적용)
이 스킬 스위트는 다음 위치에 보수적인 기본 설정도 포함합니다:
.repo-security-scan/gitleaks.toml.repo-security-scan/.gitleaksignore.repo-security-scan/osv-scanner.toml
특정 osv-scanner 설정 파일을 강제하려면:
bash scripts/repo-security-scan/scan.sh --repo /path/repo --osv-config /path/to/osv-scanner.toml
사전 요구 사항 설치
- macOS:
brew install gitleaks osv-scanner jq
- Ubuntu:
sudo apt-get update && sudo apt-get install -y jq- 릴리스에서 gitleaks + osv-scanner 설치 또는
go install로 컴파일.