v0.18.0 — 취약점 SLA 추적, 규제 대응 SBOM 적합성, 업그레이드 클러스터링
기능 릴리스입니다. v0.14.0 이후 첫 릴리스라 그동안의 개발 사이클 전체를
담았습니다. 모든 변경은 추가·하위 호환이며, 새로 추가된 forward-only
마이그레이션과 바뀐 기본값은 아래 업그레이드 안내를 읽으십시오. 전체 머신
리더블 체인지로그는
CHANGELOG.md에
있습니다.
주요 변경 사항
재스캔에도 유지되는 조치 시계 — 취약점 SLA/aging
이제 findings에 프로젝트 단위 최초 탐지 시각(first_detected_at)이 붙고, 이
값은 재스캔·재매칭·컨테이너 재스캔에도 유지됩니다 — 조치 시계가 스캔마다
초기화되지 않습니다. 그 위에 심각도별 SLA 기한이 얹힙니다
(VULN_SLA_DAYS_CRITICAL/HIGH/MEDIUM/LOW, 기본 7·30·90·180일. info와 unknown
심각도는 SLA가 없습니다). 취약점 목록·상세 API가 first_detected_at /
sla_due_date / sla_status(overdue · imminent · ok)를 내려주고, sla=
필터와 sort=sla_due도 지원합니다. Vulnerabilities 탭에 "SLA due" 열, 인라인
SLA 필터, 드로어의 최초 탐지 줄이 추가됩니다. 매일 도는 sweep
(trustedoss.vuln_sla_sweep, VULN_SLA_ALERTS_ENABLED, 기본 켬)이 열린
findings가 기한을 넘기면 담당 팀에 프로젝트당 한 번 알립니다(알림 종류
vuln_sla_breach, 사용자별 환경설정을 따릅니다). CRA 컴플라이언스 매핑이
한계로 표시해야 했던 aging·"부당한 지연 없는 조치" 격차를 이로써 해소합니다.
자세한 내용은 조치 SLA와 aging을
참고하십시오.
규제 기관에 답하는 SBOM 적합성 — 필드 검사 + 크로스워크
업로드 SBOM 적합성 점수에 규제 기준(EU 사이버 복원력법의 BSI TR-03183-2, NTIA
최소 요소)이 명명하는 컴포넌트별 필드 검사 다섯 개가 추가됩니다: SHA-512
체크섬, 컴포넌트 작성자, 컴포넌트 파일명, 소스·배포 URI, 전달 파일 속성
커버리지. 이들은 판정 중립이라 SBOM이 규제 기관에 얼마나 잘 답하는지를 설명할
뿐 pass / warn / fail 뱃지를 움직이지 않습니다(SBOM_CONFORMANCE_FIELD_MIN_PCT,
기본 80이 커버리지 기준을 조정합니다). 적합성 응답과 패널에 규제 크로스워크가
추가됩니다: 프레임워크별 집계(BSI TR-03183-2, NTIA, EU AI법 부속서 IV, 한국 AI
기본법)로 매핑된 요구사항이 present인지, gap인지, 사람 검토만 가능한지를
보여줍니다 — 저장소에 포함된 면책 문구가 붙은 문서 준비 보조 수단이지 컴플라이언스
판정이 아닙니다. 또한 커버리지 검사가 패키지 0개인 SBOM을 더는 실패로 처리하지
않고, 데이터셋(type: "data") 컴포넌트는 PURL 커버리지 같은 패키지 전용 필드에
반영되지 않습니다. 자세한 내용은
규제 대응표와
CRA 컴플라이언스 매핑을 참고하십시오.
버전 currency — 최신 패치보다 뒤처진 컴포넌트
EOL 플래그의 형제 격이지만 다른 질문에 답합니다: "이 릴리스 라인이 끝났는가?"가
아니라 "이 버전이 아직 지원되는 릴리스 라인의 최신 패치보다 뒤처졌는가?".
저장소에 포함된 endoflife.date 스냅샷(각 사이클이 자신의 최신 패치를 담습니다)을
재사용하므로 완전 오프라인이며, 스캔 시 새로운 네트워크 접근이 없습니다.
Components 탭과 드로어의 컴포넌트에 최신 패치 버전이 담긴 "Outdated"
뱃지(EOL보다 긴급도가 낮은 톤), "Outdated only" 필터(?outdated=true),
프로젝트 Overview의 "N outdated" 칩이 추가됩니다. 자세한 내용은
버전 currency를
참고하십시오.
"Group by upgrade" — 조치 작업 목록
프로젝트 Vulnerabilities 탭에 Flat ⇄ By upgrade 토글이 추가됩니다. "By
upgrade"는 평면 findings 목록을 프로젝트 전체의 조치 클러스터로 바꿉니다 — 각
클러스터는 한 컴포넌트의 최소 안전 업그레이드(열린 findings의 fix 버전 중
semver 최댓값)로, Upgrade {component} {from} → {to}와 해소되는 findings 수를
보여주고, 펼치면 개별 findings까지 확인할 수 있습니다. 열린 findings에 게시된
fix가 없는 컴포넌트는 오해를 부르는 부분 업그레이드를 제시하는 대신 "No upgrade
available"로 묶입니다. GET /v1/projects/{id}/vulnerabilities/upgrade-clusters가
빌드 게이트와 같은 열림 상태 집합을 재사용하므로 클러스터 수가 게이트와
어긋나지 않습니다. 자세한 내용은
Group by upgrade를
참고하십시오.