diff --git a/.claude/image-authoring.md b/.claude/image-authoring.md index a6d54ba..f0733ac 100644 --- a/.claude/image-authoring.md +++ b/.claude/image-authoring.md @@ -87,8 +87,11 @@ security-catalog 는 자체 빌드 이미지의 최종 런타임 베이스로 SU ```sh IMAGE= BASE_OS= bash scripts/build/build-hardened-image.sh /tmp/out ``` - `cve-gate.md` 로 실효 C/H 0 확인. 커버리지 자가진단(`cov=`)이 `ok` 인지도 확인 — - 패키지가 적은 이미지(최소 베이스 등)는 "데이터 없음"으로 오판될 위험이 있다 + `cve-gate.md` 로 실효 C/H 0 확인. **dip-catalog 의 `scan-sbom.sh` 는 커버리지 + 자가진단(`CoverageProbe`)이 없다** — 패키지가 적은 이미지(최소 베이스 등)는 findings + 전 심각도 0건이라는 이유만으로 게이트가 "데이터 커버리지 이상"으로 실패할 수 있다. + 진짜 0건인지 스캐너 데이터 부재인지는 사람이 `trivy-reports/.json`(OS/패키지 수)을 + 보고 직접 판단한다(`doc/sbom-pipeline.md` 참고) 5. **게이트 PASS 는 "동작한다" 를 증명하지 않는다.** CVE 스캐너는 CVE 와 무관한 런타임 요구사항(예: 오퍼레이터가 자신의 파일 레이아웃에 의존하는 것)을 전혀 보지 못한다. 실제 배포 검증을 반드시 한다 — 자동화된 배포 테스트 절차는 아직 없으므로 해당 차트를 diff --git a/scripts/pipeline/Dockerfile b/scripts/pipeline/Dockerfile index 248671a..b232fee 100644 --- a/scripts/pipeline/Dockerfile +++ b/scripts/pipeline/Dockerfile @@ -2,7 +2,7 @@ # SBOM 파이프라인 실행 이미지 # # .github/workflows/sbom.yml 의 `container:` (Repo Variable SBOM_PIPELINE_IMAGE) -# 로 사용되는 이미지. doc/scripts/*.sh 를 컨테이너 내부에서 직접 실행한다. +# 로 사용되는 이미지. scripts/pipeline/*.sh 를 컨테이너 내부에서 직접 실행한다. # 상세: doc/sbom-pipeline.md # # 도구: helm(v3) + trivy + python3 + bash + git @@ -12,7 +12,7 @@ # # 빌드 & 푸시 (amd64 필수 — GitHub 러너가 amd64): # docker buildx build --platform linux/amd64 \ -# -t docker.io//sbom-pipeline:latest -f doc/scripts/Dockerfile --push doc/scripts +# -t docker.io//sbom-pipeline:latest -f scripts/pipeline/Dockerfile --push scripts/pipeline # # 이후: gh variable set SBOM_PIPELINE_IMAGE --body docker.io//sbom-pipeline:latest # ============================================================================= FROM debian:stable-slim