소프트웨어 아티팩트를 위한 공급망 레벨 (SLSA)
소프트웨어 아티팩트를 위한 공급망 레벨 (SLSA)("살사"로 발음)는 공급망 보안을 위한 점진적으로 도입 가능한 지침 모음으로, 업계 합의에 의해 수립되었습니다. 인프라 공급자로서 GitLab은 사용자가 컨테이너 및 아티팩트와 관련된 메타데이터를 안전하게 생성할 수 있는 도구를 제공합니다.
소프트웨어 아티팩트를 위한 공급망 레벨 (SLSA)("살사"로 발음)는 공급망 보안을 위한 점진적으로 도입 가능한 지침 모음으로, 업계 합의에 의해 수립되었습니다. 이 표준은 아티팩트 생산자, 검증자, 소비자 및 인프라 공급자 측면에서 정의됩니다.
인프라 공급자로서 GitLab은 사용자가 컨테이너 및 아티팩트와 관련된 메타데이터를 안전하게 생성할 수 있는 도구를 제공합니다. 또한 GitLab은 이 메타데이터를 검증하고 안전하게 사용하여 공급망을 강화하고 일부 공격 유형을 방지하는 메커니즘을 제공합니다.
SLSA 레벨#
GitLab은 서로 다른 레벨에서 SLSA 사양을 준수하는 프로버넌스 증명을 생성할 수 있습니다. 특정 레벨을 달성하려면 특정 기준에 대한 자체 평가가 필요합니다.
자세한 내용은 SLSA 빌드: 트랙 기본 사항 페이지를 참조하세요.
레벨 1: 패키지 빌드 방법을 보여주는 프로버넌스#
SLSA 레벨 1은 다음을 포함하여 아티팩트가 빌드된 방법을 설명하는 자동으로 생성된 프로버넌스를 요구합니다:
- 패키지를 빌드한 엔티티.
- 사용된 빌드 프로세스.
- 빌드의 최상위 입력.
레벨 2: 호스팅된 빌드 플랫폼에서 생성된 서명된 프로버넌스#
SLSA 레벨 2는 레벨 1과 동일한 요구 사항이 있지만, 추가적으로 호스팅된 빌드 플랫폼이 생성된 프로버넌스에 서명하도록 요구합니다. 서명은 다음에 의해 수행될 수 있습니다:
- 원래 빌드.
- 사후 재현 가능한 빌드.
- 프로버넌스의 신뢰성을 보장하는 동등한 시스템.
GitLab은 GitLab Runner가 생성한 모든 빌드 아티팩트에 대해 자동으로 생성될 수 있는 SLSA 레벨 2 준수 프로버넌스 문을 제공합니다. 이 프로버넌스 문은 레벨 1도 준수하며 러너 자체에서 생성됩니다.
이 레벨에서 SLSA를 구현하면 다음을 포함한 많은 이점이 있습니다:
- 소프트웨어 및 빌드 플랫폼의 인벤토리를 만드는 데 조직을 지원합니다.
- 디지털 서명을 통한 변조 방지.
- 특정 빌드 플랫폼으로의 공격 표면 감소.
CI/CD 컴포넌트를 사용하여 SLSA 프로버넌스 서명 및 검증#
GitLab SLSA CI/CD 컴포넌트는 다음에 대한 구성을 제공합니다:
- 러너 생성 프로버넌스 문 서명.
- 잡 아티팩트에 대한 VSA(Verification Summary Attestation) 생성.
자세한 정보 및 구성 예시는 SLSA 컴포넌트 문서를 참조하세요.
레벨 3, 강화된 빌드 플랫폼#
SLSA 레벨 3은 레벨 1과 2의 모든 요구 사항을 구현하고, 프로버넌스에 대한 변조도 방지합니다. 예를 들어, 빌드 프로세스 자체를 손상시킨 공격자에 의한 변조를 방지합니다.
이 증가된 변조 저항성은 다음에서 비롯됩니다:
- 향상된 러너 격리.
- 사용자 정의 빌드 단계를 실행하는 환경에서 시크릿 자료에 접근할 수 없도록 보장.
- 신뢰할 수 있는 제어 평면에서 빌드 플랫폼에 의해 프로버넌스의 모든 필드가 생성되거나 검증되도록 보장.
자세한 내용은 SLSA 레벨 3 페이지 및 SLSA 프로버넌스 사양을 참조하세요.
