공급망 무결성
한눈에 보기
섹션 제목: “한눈에 보기”NextPDF의 공급망 통제는 두 지점에서 동작합니다. 하나는 의존성을 변경하는 모든 풀 리퀘스트와 모든 버전 태그에서 실행되는 CI 게이트이고, 다른 하나는 프로버넌스(provenance) 생성, 키리스 서명, SBOM 생성을 구성하는 릴리스 워크플로입니다.
| 통제 | 유형 |
|---|---|
빌드의 CycloneDX 1.7 SBOM | CI 게이트, 하드 |
| 빌드 입력을 확약하는 in-toto 스테이트먼트 | CI 게이트, 하드 |
| 고정된 기준선과의 SHA-256 의존성 지문 비교 | CI 게이트, 하드 |
| 의존성 보안 권고 정책에 대한 OpenVEX 일관성 검사 | CI 게이트, 하드 |
| 픽스처 간 결정성 검사 | CI 검사, 베스트 에포트 |
고정된 slsa-github-generator 프로버넌스 생성 | 워크플로 구성 — 릴리스 워크플로 |
Rekor 투명성 로그를 포함한 Sigstore cosign 키리스 서명 | 워크플로 구성 — 릴리스 워크플로 |
CycloneDX 1.7 및 SPDX 2.3 SBOM 생성 | 워크플로 구성 — 릴리스 워크플로 |
파서 및 라이터 경로에 대한 야간 php-fuzzer 매트릭스 | 예약 실행 CI |
CI 게이트
섹션 제목: “CI 게이트”의존성을 건드리는 모든 풀 리퀘스트와 모든 버전 태그에서 다음이 실행됩니다.
| 검사 | 수행 내용 | 게이트 |
|---|---|---|
| 인벤토리 | 빌드의 CycloneDX 1.7 SBOM을 생성 | 하드 |
| 빌드 입력 기록 | 빌드 입력을 확약하는 in-toto 스테이트먼트를 생성 | 하드 |
| 의존성 무결성 | SHA-256 바이트 지문을 고정된 기준선과 비교 | 하드 |
| VEX 일관성 | 의존성 보안 권고 정책의 모든 항목이 리포지토리의 OpenVEX v0.2.0 문서에 대응하는 스테이트먼트를 갖도록 요구 | 하드 |
| 재현성 | 픽스처 전반에 걸쳐 결정성 검사를 실행 | 베스트 에포트 |
의존성 무결성 게이트는 패키지 메타데이터와 무관하게, 의존성 트리의 SHA-256 바이트 지문을 리포지토리에 고정된 기준선과 비교합니다.
릴리스 워크플로 구성
섹션 제목: “릴리스 워크플로 구성”프로버넌스 — 워크플로 구성
섹션 제목: “프로버넌스 — 워크플로 구성”릴리스 워크플로는 정식(canonical) slsa-github-generator 재사용 워크플로를
고정 버전으로 사용합니다. 이 워크플로는 격리된 임시(ephemeral) 빌더 내부에서
in-toto 프로버넌스를 생성하도록 구성되어 있으며, 생성기의 출력에 대해
slsa-verifier가 인라인으로 실행되도록 구성됩니다.
서명 및 투명성 — 워크플로 구성
섹션 제목: “서명 및 투명성 — 워크플로 구성”릴리스 워크플로는 아티팩트 번들에 대해 Sigstore cosign 키리스 서명을
구성하며, Rekor에 투명성 로그를 기록합니다. 키리스 서명은 워크플로의 OIDC
아이덴티티(https://token.actions.githubusercontent.com)로부터 단기 인증서를
발급받으므로, 이 릴리스 서명 경로는 장기 아티팩트 서명 키 없이 구성됩니다.
SBOM — 워크플로 구성
섹션 제목: “SBOM — 워크플로 구성”릴리스 워크플로는 이중 SBOM 생성을 구성합니다 — CycloneDX 1.7 문서와
SPDX 2.3 문서입니다.
야간 php-fuzzer 매트릭스가 AST/구조 트리 하네스와 함께 파서 및 라이터
경로를 검증합니다.