scan-sbom.sh: CoverageProbe 커버리지 자가진단 이식 + 관련 파이프라인 버그 수정
security-catalog 프로젝트에서 자체 빌드 이미지 3종을 실제로 로컬 빌드·게이트 검증하는 과정에서 발견한 문제들: - extract-helm-images.sh 가 `image:` 필드만 잡고 `imageName:`(CNPG Cluster CRD 관례) 은 놓쳐, cnpg-cluster 차트의 이미지가 SBOM·스캔·게이트 어디에도 안 나타났다. - patch-catalog-tag.py 의 split 포맷 패처가 registry 필드가 따로 없고 repository 에 registry+repo 를 합쳐 쓰는 차트(cloudnative-pg 오퍼레이터, 업스트림 템플릿이 image.registry 를 아예 참조하지 않음)에서 tag 만 조용히 갱신하고 repository 는 그대로 남겨 깨진 참조를 만들 수 있었다. - CoverageProbe(센티널 패키지 주입 재스캔으로 "0건"과 "측정 안 됨"을 구분)가 이식되지 않아, 전 심각도 0건인 자체 빌드 이미지가 실제로는 깨끗한데도 게이트가 "데이터 커버리지 이상"으로 오탐 처리했다 — security-catalog 의 scan-sbom.sh 를 이식해 해소. cve-gate.py 는 이미 이 키를 읽도록 구현돼 있어 소비 쪽 변경은 없다. rpm(SUSE)·deb(Debian)·apk(Alpine) 세 센티널 경로와 병렬 스캔 회귀를 로컬에서 확인했고, 이식 후 cloudnative-pg·cnpg-postgresql 게이트가 실제로 FAIL→PASS 로 바뀌는 것도 확인했다. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,8 +40,12 @@ STATUS="$OUT_DIR/render_status.tsv"
|
||||
cd "$HELM_ROOT"
|
||||
|
||||
extract_images() { # stdin: 렌더된 yaml → stdout: 이미지 문자열
|
||||
grep -ioE '^[[:space:]]*(- )?image:[[:space:]]*"?[^"[:space:]]+' \
|
||||
| sed -E 's/.*image:[[:space:]]*"?//' \
|
||||
# `image:` 뿐 아니라 `imageName:` 도 잡는다 — CNPG Cluster CRD(cnpg-cluster 차트의
|
||||
# postgresql.imageName)처럼 단일 문자열 필드로 이미지를 표기하는 관례가 있다
|
||||
# (patch-catalog-tag.py 의 TAG_STYLE=imageName 과 같은 표기). 이걸 놓치면 그 이미지가
|
||||
# SBOM·스캔·게이트 어디에도 나타나지 않고 조용히 빠진다(실측: cnpg-cluster).
|
||||
grep -ioE '^[[:space:]]*(- )?image(Name)?:[[:space:]]*"?[^"[:space:]]+' \
|
||||
| sed -E 's/.*image(Name)?:[[:space:]]*"?//' \
|
||||
| grep -vE '^$'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user