공급망 보안: 소프트웨어 체인 보호
La 공급망 보안 소프트웨어에서는 전체를 보호하는 것을 의미합니다. 소프트웨어를 만들고, 배포하고, 소비하는 과정. 공급망에 대한 공격 기하급수적으로 성장하고 있습니다. 체인의 단일 구성 요소가 손상되면 수천 개의 다운스트림 조직에 영향을 미칩니다.
2020년 SolarWinds 공격과 2024년 XZ Utils 사건은 어떻게 공급망이 취약합니다. 이번 글에서는 표준과 도구에 대해 알아보겠습니다. 소프트웨어 체인 보호: 구성요소 재고를 위한 SBOM, 출처 확인을 위한 아티팩트 서명 및 SLSA 프레임워크.
무엇을 배울 것인가
- SBOM이란 무엇이며 왜 필수적인가요?
- SBOM 표준: CycloneDX 및 SPDX
- Sigstore: 아티팩트 서명 및 확인
- 공급망 무결성을 위한 SLSA 프레임워크
- CI/CD 파이프라인에서 SBOM 자동 생성
- 유물의 출처 확인
SBOM: 소프트웨어 BOM
Un SBOM(소프트웨어 자재 명세서) 그리고 모든 항목의 완전한 인벤토리 소프트웨어를 구성하는 구성 요소: 라이브러리, 프레임워크, 도구 및 정확한 버전. 식품의 성분 목록처럼 SBOM을 통해 그 안에 무엇이 들어 있는지 정확히 알 수 있습니다. 소프트웨어 내부.
SBOM은 다양한 상황에서 법적 요구 사항이 되었습니다. 미국은 연방 정부 공급업체 및 유럽 규정(NIS2, Cyber Resilience Act)는 EU에서 판매되는 디지털 제품에 대해 이를 의무화하고 있습니다.
SBOM 표준: CycloneDX 대 SPDX
SBOM 표준 비교
| 특성 | 사이클론DX | SPDX |
|---|---|---|
| 유지관리자 | OWASP | Linux재단 |
| 집중하다 | 보안 및 위험 관리 | 라이센스 준수 |
| 형식 | JSON, XML, 프로토부프 | JSON, RDF, 태그 값 |
| VEX 지원 | 토종의 | 확장을 통해 |
| 양자 | 커뮤니티 보안, DevSecOps | 기업, 정부 |
Syft를 사용하여 SBOM 생성
# Installare Syft
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh
# Generare SBOM da un'immagine Docker (CycloneDX)
syft myapp:latest -o cyclonedx-json > sbom-cyclonedx.json
# Generare SBOM in formato SPDX
syft myapp:latest -o spdx-json > sbom-spdx.json
# Generare SBOM dal filesystem locale
syft dir:. -o cyclonedx-json > sbom-project.json
# Generare SBOM da un lock file
syft file:package-lock.json -o cyclonedx-json > sbom-deps.json
CI/CD 파이프라인의 SBOM
# .github/workflows/sbom.yml
name: SBOM Generation
on:
push:
branches: [main]
tags: ["v*"]
jobs:
sbom:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t myapp:${{ github.sha }} .
- name: Generate SBOM
uses: anchore/sbom-action@v0
with:
image: myapp:${{ github.sha }}
format: cyclonedx-json
output-file: sbom.json
- name: Upload SBOM as artifact
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.json
- name: Attach SBOM to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: sbom.json
Sigstore: 유물 서명
시그스토어 서명 도구를 제공하는 Linux Foundation 프로젝트 암호화 및 소프트웨어 아티팩트 검증. 목표는 소프트웨어 서명을 만드는 것입니다. 코드를 커밋하는 것만큼 쉽고 키 관리의 복잡성이 제거됩니다.
Sigstore는 세 가지 주요 구성 요소로 구성됩니다.
- 공동사인: OCI 컨테이너 이미지 및 아티팩트 서명 및 확인
- 풀시오: OIDC ID를 기반으로 임시 인증서를 발급하는 인증 기관
- 리코르: 모든 서명을 기록하는 불변의 투명성 로그
# .github/workflows/sign-and-verify.yml
name: Sign and Publish
on:
push:
tags: ["v*"]
jobs:
build-sign-publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write # Necessario per Sigstore keyless
steps:
- uses: actions/checkout@v4
- name: Install Cosign
uses: sigstore/cosign-installer@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push
id: build
uses: docker/build-push-action@v5
with:
push: true
tags: ghcr.io/myorg/myapp:${{ github.ref_name }}
- name: Sign image (keyless)
run: cosign sign --yes ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }}
- name: Attach SBOM
run: |
syft ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }} -o cyclonedx-json > sbom.json
cosign attach sbom --sbom sbom.json ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }}
SLSA 프레임워크
SLSA(소프트웨어 아티팩트에 대한 공급망 수준), "소스"라고 발음하고 증가하는 출처 보증 수준을 정의하는 보안 프레임워크 소프트웨어 가공물의 무결성. Google에서 개발한 SLSA는 4가지 수준을 정의합니다.
SLSA 레벨
| 수준 | 요구사항 | 보호 |
|---|---|---|
| SLSA 1 | 빌드 문서화, 출처 생성 | 기본 투명성 |
| SLSA 2 | 자동화된 빌드, 서명된 출처 | 빌드 후 변조 방지 |
| SLSA 3 | 격리된 빌드, 검증 가능한 출처 | 시스템 손상 방지 구축 |
| SLSA 4 | 완벽한 빌드, 2인 검토 | 무결성의 최대 보장 |
VEX: 취약점 악용 교환
벡스 소프트웨어 공급업체가 구성 요소의 알려진 취약점과 해당 제품에서 실제로 악용될 수 있습니다. 이 각 CVE를 수동으로 분류해야 하는 소비자의 소음을 줄입니다.
VEX 상태
- 영향을 받지 않음: 제품에서는 취약점을 악용할 수 없습니다.
- 체하는: 취약점이 악용될 수 있으며 조치가 필요합니다.
- 결정된: 현재 버전에서는 취약점이 수정되었습니다.
- 조사 중: 분석 진행 중
공급망 보안 모범 사례
- 각 릴리스에 대한 SBOM 생성: SBOM 생성 및 각 릴리스에 대한 첨부 자동화
- 모든 아티팩트에 서명: Cosign/Sigstore를 사용하여 컨테이너 이미지, 바이너리 및 SBOM에 서명합니다.
- 배포 시 서명 확인: 서명되지 않은 이미지를 거부하는 승인 컨트롤러 구성
- 종속성 모니터링: 새로운 CVE가 발견되면 SBOM을 사용하여 즉시 알림을 받습니다.
- SLSA 3+ 달성: 검증 가능한 출처로 격리된 빌드 구현
- VEX 게시: 소프트웨어 소비자에게 취약점 상태 전달
결론
공급망 보안은 모든 개발 조직에 필수 요소가 되었습니다. 소프트웨어. SBOM, Sigstore 및 SLSA는 투명하고 검증 가능하며 공격에 강한 소프트웨어 체인입니다.
다음 기사에서는 살펴보겠습니다. 비밀 관리, 관리 방법 분석 HashiCorp Vault 및 전략을 통해 자격 증명, API 키 및 인증서를 안전하게 보호 자동 회전.







