다섯 살도 알 수 있게 · 보안

SBOM이 뭐예요?

소프트웨어 자재 명세서(Software Bill of Materials)를 도구마다 붙은 부품 목록표 이야기로 풀어봤어요.

김목수: 손잡이박유리: 유리최심지: 심지등불 하나에도 장인이 셋

도구는 여러 장인의 부품으로 만들어져요.등불 하나에도 손잡이, 유리, 심지가 다 다른 장인 거예요. 프로그램도 그래요.

박유리 3판 유리에틈이 있대요!어느 등불이지…?천 개 중에 어느 것인지, 하나씩 뜯어봐야 해요

부품 하나에 틈이 있대요. 어느 도구에 들어 있죠? 소식은 왔는데, 성에 도구가 천 개예요. 그 유리가 들어간 게 뭔지 아무도 몰라요. 하나씩 뜯어봐야 해요.

손잡이 · 김목수 2판유리 · 박유리 3판심지 · 최심지 1판목수가 넘길 때 같이 줘요어떤 부품이 몇 번 판인지, 누가 만들었는지 적혀 있어요

SBOM은 도구마다 붙은 부품 목록표예요.어떤 부품이 몇 번 판인지, 누가 만들었는지 적혀 있어요. 목수가 도구를 넘길 때 같이 줘요.

부품 이름유리, 손잡이, 심지
몇 번 판3판인지 2판인지
누가 만들었나장인 이름
부품 안의 부품유리 속 모래까지
박유리 3판틈!손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판손잡이 · 김목수 2판유리 · 박유리 3판심지 · 최심지 1판손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판손잡이 · 김목수 2판유리 · 박유리 3판심지 · 최심지 1판손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판손잡이 · 김목수 1판유리 · 박유리 2판심지 · 최심지 1판이 둘만 고치면 돼요뜯어볼 필요가 없어요 — 목록표만 훑어요

틈 소식이 오면 목록표만 훑으면 돼요."박유리 3판" — 목록표에서 찾으면 어느 도구를 고쳐야 하는지 바로 나와요. 뜯어볼 필요가 없어요. → 목수가 보낸 판자

목록표 없음오래된 도구손잡이 · 김목수 2판유리 · 박유리 3판(작년 것)목록표가 없거나 오래됐어요손잡이 · 김목수 2판유리 · 박유리 3판심지 · 최심지 1판틈은 있지만이 등불은 안 켜요'있다'와 '위험하다'는 달라요그건 따로 적어줘요 — VEX

목록표는 '있다'까지만 알려줘요.그 부품이 들어 있어도 실제로 쓰이는지, 틈에 닿는지는 따로 봐야 해요(VEX). 오래된 도구엔 목록표가 아예 없어요.

한 줄로

SBOM = 도구마다 붙은 부품 목록표. 부품에 틈이 나면 어느 도구를 고쳐야 하는지 뜯지 않고 알 수 있어요.

Software Bill of Materials. 2021년 미국 행정명령 이후 요구되기 시작했고, log4j 틈(2021) 때 '어느 도구에 들었지?'로 온 세상이 고생하며 필요성이 드러났어요. 양식은 SPDX와 CycloneDX.

어른들은 이렇게 불러요

부품
Component
장인이 만든 조각. 라이브러리, 패키지. 프로그램 대부분은 남의 부품이에요.
버전
Version
몇 번 판. 틈은 특정 판에만 있어요. 판 번호가 없으면 목록표가 반쪽이에요.
공급자
Supplier
장인. 누가 만들었는지. 장인 공방이 털리면 부품도 위험해요.
전이 의존성
Transitive dependency
부품 안의 부품. 유리 장인도 모래를 남에게 사요. 목록표는 그것까지 적어요.
SPDX · CycloneDX
SPDX · CycloneDX
목록표 양식. 온 세상 목수가 같은 칸에 적게 한 두 가지 서식.
VEX
VEX
'실제로 위험한가' 쪽지. 부품은 있지만 이 도구에선 그 틈에 안 닿는다고 적어줘요.
공급망 공격
Supply-chain attack
장인 공방에 벌레 넣기. 부품 자체에 벌레가 들어오면 그걸 쓴 도구 전부. → 선물 상자 속 벌레
취약점 스캔
Vulnerability scan
목록표와 틈 목록 맞춰보기. 목록표가 있으면 자동으로 돼요. → 목수가 보낸 판자
다음 이야기
우리가 고용한 도둑 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →