콘텐츠로 이동

SBOM이란

SBOM(Software Bill of Materials)은 소프트웨어 안에 든 구성요소의 목록입니다. 함께 배포되는 모든 오픈소스 라이브러리와 패키지를 이름, 버전, 라이선스와 함께 정리한 것입니다. 포장 식품의 성분표가 제품을 뜯지 않고도 안에 뭐가 들었는지 알려주듯, SBOM은 소프트웨어에 대해 같은 역할을 합니다.

오늘날 소프트웨어 대부분은 오픈소스를 조립해 만들어집니다. 보통의 웹 애플리케이션이 직접 선언하는 패키지는 수십 개지만, 그것들이 다시 수백 개를 끌어옵니다. 이 목록을 사람이 외울 수는 없으므로 도구가 프로젝트에서 생성합니다. BomLens가 하는 일이 그것입니다.

왜 필요한가

소프트웨어 안에 정확히 뭐가 들었는지 알아야 하는 일상 업무가 두 가지 있습니다.

라이선스 의무 이행. 대부분의 오픈소스 라이선스(MIT, Apache-2.0, BSD 등)는 저작권 표시와 라이선스 전문을 제품과 함께 배포하도록 요구합니다. 그 오픈소스 고지문을 쓰려면 먼저 구성요소 목록, 곧 SBOM이 필요합니다. BomLens는 같은 실행에서 SBOM으로부터 고지문까지 생성합니다.

취약점 대응. 어떤 라이브러리에서 취약점이 발표되면 첫 질문은 "우리 제품에 그게 들어 있나, 어느 버전인가"입니다. 제품마다 SBOM이 있으면 이 답은 조사가 아니라 조회가 됩니다. 고객과 규제 기관이 납품 시 SBOM 제출을 점점 더 요구하는 이유이기도 합니다.

결과물에서 만나는 용어

CycloneDX는 BomLens가 SBOM을 기록하는 표준 파일 형식입니다. OWASP CycloneDX 프로젝트가 정의한 JSON 문서(버전 1.6)입니다. 표준 형식이라서 생성한 파일을 다른 도구가 그대로 읽을 수 있습니다. 취약점 추적기, 정책 검사기, 고객사의 자체 도구 모두 해당합니다.

PURL(Package URL)은 SBOM 안에서 각 구성요소가 달고 있는 식별자입니다. 예를 들어 pkg:npm/express@4.18.2처럼 생태계(npm, Maven, PyPI 등), 패키지, 정확한 버전을 한 문자열로 담아, SBOM을 읽는 모든 도구가 같은 구성요소를 가리키게 합니다.

ML-BOM은 같은 개념을 AI 모델에 적용한 것입니다. 모델이 무엇으로 만들어졌는지 — 데이터셋, 베이스 모델, 라이선스 — 를 담은 CycloneDX 문서입니다. BomLens는 HuggingFace 모델 id로 생성합니다. AI 모델 가이드를 참고하세요.

다음 단계

스캔을 실행하는 데 이 내용을 외울 필요는 없습니다. 맞는 길을 고르세요.


관련 문서: 시작하기 | 비개발자 빠른 시작 | 산출물 종류