소프트웨어 아티팩트 공급망 수준

소프트웨어 아티팩트 공급망 수준 (SLSA)

SLSA(Supply-chain Levels for Software Artifacts)는 소프트웨어 공급망 보안을 위한 가이드라인으로, 업계 합의를 바탕으로 만들어진 표준이에요. 발음은 "살사"라고 읽습니다. 이 표준은 아티팩트 생성자(producer), 검증자(verifier), 소비자(consumer), 인프라 제공자(infrastructure provider)의 관점에서 정의되죠. GitLab은 인프라 제공자로서 사용자가 컨테이너와 아티팩트에 대한 메타데이터를 안전하게 생성할 수 있는 도구를 제공하고, 이 메타데이터를 검증하고 안전하게 사용해 공급망을 강화하고 일부 공격 유형을 막을 수 있는 방법도 제공합니다.

출처: 문서

본문

소프트웨어 아티팩트 공급망 수준 (SLSA), 줄여서 SLSA는 발음이 "살사"인데요, 업계 합의로 만들어진 공급망 보안 가이드라인 세트예요. 이 표준은 아티팩트 생성자, 검증자, 소비자, 인프라 제공자의 개념으로 정의됩니다.

GitLab은 인프라 제공자로서 사용자가 컨테이너와 아티팩트와 관련된 메타데이터를 안전하게 생성하고, 이 메타데이터를 검증하고 안전하게 사용해 공급망을 강화하고 일부 공격 유형을 막을 수 있는 도구와 메커니즘을 제공합니다.

SLSA 레벨

GitLab은 SLSA 사양에 부합하는 provenance(생산 이력 증명) 인증서를 다양한 레벨로 생성할 수 있어요. 특정 레벨을 달성하려면 해당 기준에 대해 자체 평가(Self-assessment)를 해야 합니다.

자세한 내용은 SLSA의 Build: Track Basics 페이지를 참고하세요.

레벨 1: 패키지가 어떻게 빌드되었는지 보여주는 Provenance

SLSA 레벨 1은 아티팩트가 어떻게 빌드되었는지 설명하는 자동 생성 provenance가 필요해요. 여기에는 다음이 포함됩니다.

  • 어떤 엔티티가 패키지를 빌드했는지
  • 어떤 빌드 프로세스가 사용되었는지
  • 빌드의 최상위 입력이 무엇이었는지

레벨 2: 호스팅 빌드 플랫폼이 생성한 서명된 Provenance

SLSA 레벨 2는 레벨 1과 같은 요구 사항을 가지지만, 추가로 호스팅 빌드 플랫폼이 생성된 provenance에 서명해야 해요. 서명은 다음 방법으로 할 수 있습니다.

  • 원래 빌드
  • 사후 재현 가능한 빌드(원래 빌드를 다시 재현해 서명하는 방식)
  • provenance의 신뢰성을 보장하는 일부 동등한 시스템

GitLab은 GitLab Runner가 생성한 모든 빌드 아티팩트에 대해 자동으로 생성할 수 있는 SLSA 레벨 2 준수 provenance 문을 제공해요. 이 provenance 문은 레벨 1에도 준수하며, 러너 자체가 생성합니다.

이 레벨에서 SLSA를 구현하면 다음과 같은 많은 이점이 있습니다.

  • 조직이 소프트웨어와 빌드 플랫폼의 인벤토리를 만드는 데 도움
  • 디지털 서명을 통한 변조 방지
  • 공격 표면을 특정 빌드 플랫폼으로 축소
CI/CD 컴포넌트로 SLSA provenance 서명 및 검증

GitLab SLSA CI/CD 컴포넌트는 다음에 대한 구성을 제공합니다.

자세한 내용과 예제 구성은 SLSA 컴포넌트 문서를 참고하세요.

레벨 3: 강화된 빌드 플랫폼

SLSA 레벨 3는 레벨 1과 2의 모든 요구 사항을 구현하며, 추가로 provenance의 변조를 방지해요. 예를 들어 빌드 프로세스 자체를 장악한 공격자가 변조를 시도하는 것도 막을 수 있습니다.

이렇게 높아진 변조 저항성은 다음에서 비롯됩니다.

  • 러너 격리 강화
  • 사용자가 정의한 빌드 단계를 실행하는 환경에서 시크릿 자료에 접근할 수 없도록 보장
  • provenance의 모든 필드가 신뢰할 수 있는 제어 평면의 빌드 플랫폼에서 생성되거나 검증되도록 보장

자세한 내용은 SLSA 레벨 3 페이지SLSA provenance 사양을 참고하세요.

더 알아보기 (Learn more)

레벨 3의 구체적인 구현 요구 사항과 provenance 필드 구조를 더 자세히 알고 싶다면 SLSA 레벨 3 문서와 provenance v1 사양 문서를 이어서 읽어 보세요.