SBOM 뜻과 읽는 법, 프로그램 안에 든 부품 목록
보안 공지나 납품 서류에서 SBOM이라는 영문 약자를 만나면 무엇을 적은 문서인지부터 막혀요. 식품 포장 뒷면의 성분표를 프로그램에 옮겨 놓은 것이라고 보면 이름의 뜻이 풀려요.
3줄 요약
- SBOM은 Software Bill of Materials의 약자로, 프로그램 안에 어떤 부품이 어떤 버전으로 들어 있는지 적은 명세서예요.
- 프로그램은 남이 만든 오픈소스 부품을 조립해서 만드는 일이 흔해서, 부품 하나의 결함이 알려지면 내 제품이 해당되는지 가려내는 데 이 목록이 쓰여요.
- SBOM은 목록일 뿐 안전을 보증하는 인증서가 아니에요. 목록을 취약점 정보와 맞춰 보는 과정이 따라야 쓸모가 생겨요.

01이 말이 무슨 뜻인가
SBOM은 소프트웨어 자재명세서라고 옮겨요. 제조업에서 제품 하나를 만들 때 들어가는 부품과 수량을 적은 부품표(BOM)가 있는데, 그 개념을 프로그램에 가져온 말이에요. 앱이나 서버 프로그램 안에 어떤 구성요소가 들어 있는지를 식별할 수 있게 적어 둔 명세서가 SBOM이에요.
이 말을 처음 만나는 자리는 대개 공공기관이나 큰 회사에 소프트웨어를 납품하는 계약서, 보안 점검표, 또는 새로 알려진 보안 결함을 알리는 공지문이에요. 구성요소의 이름과 버전, 종류, 변조 여부를 가리는 해시값 같은 정보가 줄마다 적혀 있고, 사람이 읽는 문서로도 기계가 읽는 파일로도 만들어요.
프로그램을 만드는 사람은 모든 코드를 직접 짜지 않고, 이미 공개된 오픈소스 부품을 가져다 쓰는 일이 많아요. 그 부품이 또 다른 부품을 끌어오기 때문에, 만든 사람조차 자기 프로그램 속에 무엇이 들었는지 정확히 모르게 되는 일이 생겨요. SBOM은 이 보이지 않는 부분을 눈에 보이게 적어 둔 것이에요.
| 구분 | SBOM | 보안 점검(취약점 검사) |
|---|---|---|
| 무엇을 하나 | 제품 속 부품의 이름과 버전을 적어 둠 | 알려진 결함이나 약점이 있는지 찾아봄 |
| 비유하면 | 식품의 성분표 | 식품의 안전 검사 |
| 언제 쓰나 | 새 결함 소식이 났을 때 내 제품이 해당되는지 가릴 때 | 제품을 내놓기 전이나 운영 중에 위험을 찾을 때 |
| 이것만으로 안전한가 | 아니에요. 목록일 뿐이에요 | 아니에요. 검사한 시점과 범위까지만 알려 줘요 |
02왜 이런 게 생겼나
부품 하나에서 보안 결함이 발견되면 그 부품을 쓴 모든 제품이 한꺼번에 위험해져요. 문제는 어느 제품에 그 부품이 들었는지 아는 사람이 없을 때 시작돼요. 목록이 없으면 제품마다 코드를 열어 일일이 뒤져야 하고, 그동안 결함은 그대로 열려 있어요.
과학기술정보통신부는 국가정보원, 디지털플랫폼정부위원회, 한국인터넷진흥원과 함께 소프트웨어 공급망 보안 가이드라인을 마련했고, 이 가이드라인에서 SBOM을 소프트웨어의 어느 단계에 위협이 있는지 추적하고 취약점을 정확히 분석하는 명세서로 다뤄요. 한국인터넷진흥원은 SBOM을 쓰는 기업을 지원하는 사업도 해마다 이어 가고 있어요.
해외에서는 한발 앞서 정부에 납품하는 소프트웨어에 SBOM 제출을 요구하는 나라가 있고, 다른 나라들도 비슷한 제도를 준비해 왔어요. 그래서 수출을 하거나 외국 고객과 거래하는 회사는 국내 법령과 별개로 SBOM을 요구받는 일이 생겨요. 어떤 제품에 어떤 형식으로 요구하는지는 나라와 시기마다 달라서 거래 상대의 요구 조건을 확인해야 해요.
03숫자로 보면 어떤가
규모를 가정으로 따져 볼게요. 개발자가 직접 가져다 쓴 오픈소스 부품이 20개라고 해 볼게요. 그 20개가 저마다 다른 부품을 끌어와 합쳐서 180개가 더 딸려 들어왔다면, 제품 속 부품은 모두 200개예요. 개발자가 직접 고른 것은 그중 열의 하나뿐이에요.
부품 목록에 이름이 오르지 않은 쪽, 곧 딸려 들어온 부품에서 결함이 나오면 개발자는 그 부품을 쓴다는 사실조차 몰라요. 한국인터넷진흥원이 기업 제품에서 구성요소를 식별해 본 실증에서도 출처와 사용 경로가 불분명한 오픈소스가 여럿 나왔고, 해결되지 않은 취약점이 든 구성요소가 제품에 그대로 반영된 사례가 되풀이해서 확인됐다고 해요.
04자주 헷갈리는 것
SBOM이 있다고 해서 그 프로그램이 안전하다는 뜻은 아니에요. SBOM은 무엇이 들었는지 적은 성분표라서, 성분표가 있는 과자가 건강에 좋다는 보증이 되지 않는 것과 같아요. 목록의 각 부품을 알려진 취약점 정보와 맞춰 보고, 고쳐진 판으로 바꾸는 일이 따로 있어야 안전에 가까워져요.
한 번 만들면 끝나는 문서도 아니에요. 부품을 바꾸거나 판이 올라갈 때마다 내용이 달라지기 때문에, 제품을 새로 내놓을 때마다 갱신해야 쓸모가 유지돼요. 낡은 SBOM은 지금 들어 있는 부품이 아니라 지난 판의 부품을 알려 줘서 오히려 잘못 믿게 만들어요.
백신 프로그램이나 보안 인증과도 역할이 달라요. 백신은 이미 실행 중인 악성코드를 찾고, SBOM은 만들어진 제품의 부품을 기록해요. 둘은 서로 대신할 수 없고 같이 쓰이는 도구예요.
05언제 내 일이 되나
소프트웨어를 만들어 공공기관이나 큰 기업에 납품하는 개발자와 회사는 계약 조건이나 점검표에서 SBOM 제출을 요구받는 일이 생겨요. 반대로 소프트웨어를 사서 쓰는 기관과 회사는 새 결함 소식이 나왔을 때 우리가 쓰는 제품이 영향권인지 납품사에 물어볼 근거를 얻어요.
일반 이용자가 SBOM을 직접 읽을 일은 드물어요. 다만 앱이나 기기에서 보안 결함이 알려졌다는 소식이 나오면, 제조사가 어느 부품이 문제인지 곧바로 밝히고 고친 판을 내놓는 속도는 평소 이 목록을 갖춰 두었는지에 크게 달려 있어요. 의무로 요구하는 범위와 형식은 바뀔 수 있으니 한국인터넷진흥원과 과학기술정보통신부 안내를 확인하면 돼요.
이것만 기억하세요
- SBOM은 프로그램 안에 든 부품의 이름과 버전을 적은 명세서예요.
- 목록은 안전 보증이 아니고, 취약점 정보와 맞춰 보며 갱신할 때 쓸모가 생겨요.
- 새 결함 소식이 났을 때 내 제품이 해당되는지 가리는 속도는 최신 SBOM이 있는지에 달려 있어요.




