ㅇ.ㅇ
[DEV] SBOM에 대하여 본문
반응형

최근에 라이브러리 취약점 관련 이슈가 많이 나왔다. 관련 내용을 찾아보다가 SBOM이라는 개념을 알게 되어 정리를 해본다.
1. SBOM이란?
SBOM(Software Bill of Materials)은 소프트웨어를 구성하는 모든 라이브러리, 패키지, 의존성, 버전 정보를 정리한 문서다.
SBOM이 담고 있는 정보
- 어떤 라이브러리를 쓰고 있는지 (패키지 이름, 버전, 공급업체)
- 오픈소스 라이선스 정보 (MIT, Apache 2.0 등)
- 코드 출처 및 무결성 검증용 해시 값
즉, SBOM이 있으면 소프트웨어 보안, 라이선스 관리를 더 효과적으로 할 수 있다.
2. SBOM이 중요한 이유
보안 강화
- 사용 중인 라이브러리를 한눈에 파악
- Log4j 같은 보안 취약점 발생 시 즉시 대응 가능!
라이선스 준수
- 오픈소스 라이선스 (MIT, Apache 등) 위반 방지
- 기업 규제 및 감사 대응 가능
공급망 공격 방지
- 외부 코드 출처 및 버전 추적
- 안전하지 않은 패키지 유입 차단
3. SBOM 주요 구성 요소
항목설명
패키지 이름 | 사용 중인 라이브러리 이름 |
버전 | 라이브러리 버전 정보 |
공급자(Vendor) | 라이브러리 제공 업체 |
라이선스 | 오픈소스 라이선스 유형 (MIT, Apache 2.0 등) |
의존성 | 해당 라이브러리가 사용하는 다른 라이브러리 목록 |
해시 값 | 패키지 무결성 검증용 SHA-256 값 |
출처(Source URL) | 패키지 다운로드 위치 |
4. SBOM 생성 방법
SBOM을 자동으로 생성해 주는 대표적인 도구들은 다음과 같다. 우리 팀은 CycloneDX를 사용한다.
CycloneDX
- OWASP 제공, JSON/XML 지원
- Maven, Gradle, NPM 등 다양한 언어 지원
SPDX
- Linux Foundation 개발, 오픈소스 라이선스 및 보안 정보 포함
Syft
- Anchore 제공, Docker 이미지 및 파일 시스템에서 SBOM 추출 가능
Trivy
- SBOM 생성 + 취약점 스캐너 기능 포함
5. 실무 적용 방법
CI/CD 파이프라인에 SBOM 생성 및 검증 추가
- GitHub Actions, GitLab CI/CD에서 Syft, CycloneDX 활용
- sbom.json 생성 후 Grype로 보안 점검
컨테이너 이미지 보안 점검
- Docker Hub 배포 전 Trivy, Grype 활용하여 SBOM & 취약점 검사
오픈소스 라이선스 관리
- SPDX 또는 FOSSology 활용해 SBOM 생성 및 라이선스 준수 여부 확인
다음에는 젠킨스에 CycloneDX를 붙이는 작업을 해보고 싶다.
반응형
'Today I Learned' 카테고리의 다른 글
[Java] META-INF 디렉토리와 MANIFEST.MF (0) | 2025.03.12 |
---|---|
[Java] try-with-resources (자원 관리 최적화) (1) | 2025.03.11 |
[Oracle] Oracle에서 NULL 값 다루기 (0) | 2025.03.09 |
[DEV] SSO (0) | 2025.03.02 |
[Linux] Linux에서 사용되는 대표적인 방화벽 종류 (0) | 2025.02.27 |