SBOM은 제품에 포함된 소프트웨어 구성요소와 그 관계를 기록합니다. VEX 정보는 특정 취약점이 지정된 제품 버전에 영향을 주는지에 관한 공급자 평가를 전달합니다. 같은 CycloneDX BOM 안에 취약점 분석 정보가 표현될 수도 있으므로, 두 개념이 반드시 서로 다른 파일이라는 뜻은 아닙니다.
SBOM에서 취약한 라이브러리 이름을 찾았다는 사실만으로 해당 제품이 취약하다고 결론 내릴 수는 없습니다. 제품 버전, 취약한 코드의 포함 여부, 실행·노출 조건, 평가 근거를 확인해야 합니다. 아래 회사와 구성요소는 모두 설명을 위해 만든 가상 사례입니다.
구성요소 목록과 영향 판단은 서로 다른 질문에 답합니다
CycloneDX 1.7은 소프트웨어 구성요소와 의존 관계를 기계가 읽을 수 있는 BOM으로 표현하고, 취약점 및 취약점 분석 정보도 다룹니다. 그래서 SBOM과 VEX를 늘 별도 파일이라고 부르면 부정확합니다. 먼저 어떤 정보가 질문에 답하는지 구분하세요. SBOM의 구성요소 항목은 ‘이 제품 버전의 목록에 무엇이 기록됐나’를 묻습니다. 제품별 취약점 영향 진술은 ‘이 취약점이 어느 제품 버전에 영향을 주며, 그 판단의 근거와 시점은 무엇인가’를 묻습니다. CycloneDX 개요도 구성요소·의존 관계 목록과 제품 맥락의 취약점·악용 가능성 전달을 각각 설명합니다. CSAF 2.0 VEX 프로필에서는 제품별 취약점 상태를 product_status로 표현합니다. 문서 종류와 관계없이 목록에 등장했다는 사실과 실제 영향에 대한 분석은 같은 판단이 아닙니다.
| 확인 대상 | 가상 기록 | 답하는 질문 | 기록만으로 알 수 없는 점 |
|---|---|---|---|
MapleDesk 4.2 SBOM | delta-parser 3.1.0과 제품 의존 관계가 기재됨 | 이 제품 버전의 구성요소 목록에 무엇이 들어 있나 | 취약한 함수가 배포 빌드에 포함되거나 호출 가능한지는 알 수 없음 |
| 취약점 공지 | delta-parser 3.1.0에 특정 결함이 있다고 공급자가 공지함 | 어떤 구성요소 버전이 결함 범위에 드나 | MapleDesk에서 취약한 코드가 쓰이는지는 추가 확인 필요 |
MapleDesk 4.2 CSAF VEX 진술 | 정확한 제품 ID를 known_not_affected로 적고, 해당 빌드에 취약 코드가 빠졌다는 영향 설명을 연결함 | 공급자가 이 제품 버전에 대해 어떤 영향 평가를 했나 | 설명만으로 독립 검증이 완료됐거나 다른 제품 버전도 안전하다는 뜻은 아님 |
MapleDesk 4.1 VEX 진술 | 다른 제품 ID를 known_affected로 적고 대응 조치를 연결함 | 영향을 받는 제품 버전과 조치 정보는 무엇인가 | 4.2의 평가가 4.1에도 자동으로 적용되지는 않음 |
가상 배포판에서 버전과 근거를 한 줄씩 대조합니다
먼저 SBOM에서 MapleDesk의 정확한 릴리스와 delta-parser 버전을 확인합니다. 제품 이름만 같고 릴리스가 다르면 구성요소 버전이나 빌드 결과도 달라질 수 있습니다. 다음으로 취약점 공지가 말하는 영향 버전 범위와 해당 패키지 버전을 비교합니다. 여기까지는 어떤 구성요소가 목록에 있는지 대조한 단계입니다. 그 다음 공급자 VEX 진술에서 대상 제품 ID가 MapleDesk 4.2인지 확인하고, 상태와 설명이 해당 빌드를 가리키는지 읽습니다. 가상 진술이 vulnerable code not present라고 적었다면, 어떤 빌드 식별자와 구성 설정을 확인했는지 봅니다. 이 설명은 그 회사가 제공한 제품별 평가를 나타냅니다. 실제 고객 환경에서 설정이 다르거나 패치가 적용되지 않았다면 결론이 달라질 수 있습니다.
CycloneDX 1.7의 취약점 분석 구조도 특정 취약점의 분석 상태와 설명을 별도로 두고, 해당 취약점이 영향을 주는 구성요소나 서비스 및 버전 정보를 연결합니다. CSAF 2.0은 별도 데이터 모델에서 제품 ID별 상태를 묶습니다. 두 사례 모두 결과를 읽을 때 문서의 규격, 제품 식별자, 작성 시점이 함께 필요합니다. 한 형식의 필드 이름을 다른 형식의 코드처럼 옮기지 말고, 실제 자료에 쓰인 규격의 정의를 따르세요.
시험에서는 목록 사실과 영향 결론을 분리해 적습니다
- 문제의 산출물이 SBOM인지, 취약점 공지인지, 제품별 영향 진술인지 이름과 문맥을 확인합니다.
- SBOM이면 제품 버전, 구성요소 버전, 직접·간접 의존 관계 중 제시된 사실을 표시합니다.
- 취약점 영향은 공지가 가리키는 취약 버전과 제품 VEX의 대상 제품 식별자·상태·근거를 따로 확인합니다.
- 진술의 작성 시점과 적용 범위가 실제 제품·빌드와 일치하는지 대조합니다.
- 목록만 있고 영향 분석이 없으면 ‘구성요소는 확인됐지만 제품 영향은 추가 판단이 필요하다’고 답 범위를 제한합니다.
‘취약한 패키지가 목록에 있다’와 ‘제품이 영향받는다’를 같게 쓰지 않습니다
흔한 오답은 스캐너가 취약 패키지를 찾았다는 사실을 제품 침해나 악용 성공으로 확대하는 것입니다. 구성요소가 포함돼도 취약한 코드가 해당 빌드에 들어 있지 않거나 제품에서 노출되지 않을 수 있습니다. 반대로 SBOM에 항목이 없다고 해서 자동으로 무영향이라고 볼 수도 없습니다. 생성 도구가 모든 직접·간접 구성요소를 수집했는지, BOM의 범위와 완전성 표시가 무엇인지 확인해야 합니다. VEX 진술 또한 작성자의 특정 제품 평가이지, 모든 환경을 독립적으로 조사했다는 보증은 아닙니다. 버전과 빌드가 맞지 않는 진술은 다른 제품에 대한 답입니다.
세 가지 빈칸으로 두 문서의 역할을 회상합니다
회상할 때 ‘구성요소와 버전을 기록하는 정보’, ‘특정 취약점과 제품 버전의 영향 상태를 전하는 진술’, ‘그 진술이 적용되는 범위와 근거’를 각각 말해 보세요. 앞의 두 정보가 같은 BOM 문서에 함께 실릴 수 있다는 점도 덧붙입니다. 가상 MapleDesk 4.2의 구성요소 목록만 있다면 라이브러리 존재는 답할 수 있지만 취약점 영향은 아직 결론 내릴 수 없습니다. 제품 ID가 일치하는 최신 평가와 근거가 추가로 필요합니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
가상의 MapleDesk 4.2 SBOM에 delta-parser 3.1.0이 있습니다. 공급자 CSAF VEX는 정확한 제품 ID를 known_not_affected로 표시하고 해당 빌드에 취약 코드가 포함되지 않았다는 설명을 덧붙였습니다. SBOM만으로 알 수 있는 사실, VEX가 추가하는 판단, 더 확인할 점을 각각 답해 보세요.
정답과 해설 확인
SBOM은 MapleDesk4.2의 구성요소 목록에 delta-parser 3.1.0이 기록됐다는 사실을 보여 줍니다. VEX는 특정 취약점과 정확한 제품 ID에 대한 공급자 영향 평가를 추가합니다. 문서 시점·제품 ID·빌드가 실제 대상과 일치하는지, known_not_affected 영향 설명이 어떤 빌드 근거를 가리키는지 확인해야 하며 목록만으로 독립적인 안전성을 단정할 수 없습니다.CycloneDX는 BOM에서 구성요소·의존 관계뿐 아니라 취약점 분석 정보도 표현할 수 있습니다. CSAF 2.0 VEX의 known_not_affected는 제품별 상태이며 영향 설명이 연결되어야 합니다. 가상 공급자 진술은 해당 제품·빌드에 관한 정보이지 다른 버전이나 설정에도 자동 적용되지 않습니다.