운영 서버에 올라간 release-final-v3.zip 파일을 보며 ‘정말 우리가 검토한 소스에서 만든 파일인가?’라고 묻는 순간이 있습니다. 파일명이 그럴듯해도 누가 어떤 빌드 환경에서 만들었는지, 어떤 라이브러리가 들어 있는지 알 수 없다면 배포 승인 근거는 약합니다. 오픈소스 취약점이 공개됐을 때도 어느 서비스가 영향을 받는지 찾는 데 시간이 걸립니다.
이 문제를 다루는 도구가 SBOM, 빌드 출처(provenance), 산출물 서명, 배포 시 검증입니다. 네 가지는 비슷해 보이지만 서로 다른 질문에 답합니다.
각 도구가 답하는 질문을 구분하자
SBOM은 소프트웨어의 구성요소 목록입니다. 어떤 패키지와 버전이 포함됐는지 추적할 때 출발점이 됩니다. provenance는 어떤 소스와 빌드 시스템, 빌드 과정에서 산출물이 만들어졌는지 설명합니다. 서명은 기록과 산출물이 기대한 주체에게서 왔고 중간에 바뀌지 않았는지 검증하는 수단입니다. 마지막으로 배포 게이트는 검증에 실패한 파일을 운영 환경에 들이지 않는 정책입니다.
SBOM만 있다고 안전한 것은 아닙니다. 구성요소 목록이 정확해도 공격자가 다른 파일을 배포할 수 있고, 서명된 파일이라도 내부에 취약한 의존성이 있을 수 있습니다. 반대로 provenance가 있어도 검증하지 않고 문서만 보관하면 사고 시 조사에는 도움이 돼도 배포 방어에는 약합니다. 미국 CISA의 SBOM 최소 요소 문서는 구성요소 식별과 관계 정보의 기준을 제공합니다.

빌드 시스템이 출처를 남겨야 한다
개발자 PC에서 수동으로 빌드한 파일을 메신저로 전달하면 검토한 커밋과 배포 파일을 연결하기 어렵습니다. 빌드 파이프라인은 소스 커밋, 빌드 작업 ID, 사용한 빌더, 입력과 출력 해시를 기록하고 산출물과 연결해야 합니다. SLSA provenance 규격은 산출물의 출처와 빌드 정보를 기계가 검증할 수 있는 형태로 표현하는 방법을 설명합니다.
중요한 것은 메타데이터를 사람이 나중에 손으로 작성하지 않는 것입니다. 빌더가 실제 실행 맥락에서 생성하고, 배포 과정이 이를 검증해야 기록과 파일의 연결이 강해집니다. 컨테이너 이미지는 변경 가능한 태그 이름 대신 불변 digest를 기준으로 삼고, SBOM과 provenance도 같은 digest에 연결합니다.
서명은 끝이 아니라 검증의 시작
‘서명 있음’ 표시만 보고 승인해서는 안 됩니다. 허용된 빌드 주체가 서명했는지, 서명 대상 해시가 실제 배포 파일과 일치하는지, 출처에 기록된 저장소·브랜치·작업 흐름이 정책에 맞는지 확인해야 합니다. 테스트 빌드와 운영 배포 빌드를 구분하고, 오래된 정상 서명 파일을 재배포하는 경우도 승인 정책에 포함합니다. SLSA의 산출물 검증 안내는 신뢰 정책과 검증자가 확인해야 할 요소를 정리합니다.

사고 대응에도 바로 쓸 수 있어야 한다
특정 패키지에 취약점이 나왔을 때 SBOM으로 포함 여부를 찾고, provenance로 어떤 빌드와 소스가 영향을 받았는지 좁힙니다. 배포 이력과 연결하면 현재 운영 중인 인스턴스까지 추적할 수 있습니다. 다만 SBOM을 만들었다는 사실만으로 구성요소를 100% 발견했다는 뜻은 아닙니다. 언어·패키징 방식에 따른 누락 가능성을 샘플 검증하고, 정적 목록과 실제 배포 아티팩트가 같은지 확인해야 합니다.
작은 팀이라면 처음부터 복잡한 보안 플랫폼을 도입할 필요는 없습니다. CI에서 산출물 digest와 SBOM을 만들고, 빌드 출처를 자동 생성하고, 운영 배포 단계에서 서명 주체와 digest를 확인하는 좁은 경로부터 시작합니다. 검증 실패 시 예외 승인 절차도 남기되, 예외가 기본 배포 경로가 되지 않도록 만료와 책임자를 기록합니다.
실무 도입 순서
- 운영에 배포되는 산출물 종류와 생성 파이프라인을 목록화한다.
- 각 산출물에 불변 해시와 SBOM을 연결한다.
- 빌드 시스템이 provenance를 자동 생성하도록 한다.
- 서명 주체와 허용 소스·빌드 정책을 정한다.
- 배포 게이트에서 실제 파일과 메타데이터를 대조하고 실패를 차단한다.
공급망 보안의 목표는 문서를 많이 만드는 것이 아닙니다. 운영 중인 파일의 재료와 출처를 설명하고, 설명할 수 없는 파일은 배포하지 않는 것입니다.
#SBOM #소프트웨어공급망 #빌드출처 #Provenance #아티팩트서명 #SLSA #배포보안 #DevSecOps #무결성검증 #보안엔지니어링