도구
AI SBOM을 생성하고 분석하는 오픈소스 도구의 주요 기능과 사용법을 실행 화면과 함께 안내한다.
이 절은 AI SBOM 컴플라이언스를 자동화하는 오픈소스 도구를 다룬다. 각 도구의 주요 기능과
설치, 사용법을 실제 실행 결과와 함께 정리했다. 3.9 AI SBOM의
자동화 성숙도 맵에서 본 구분을 도구별로 구체화한 것이다.
정직하게 짚어 둘 경계가 있다. 도구는 BOM을 자동으로 생성하지만, 생성된 BOM의 라이선스가
정확한지, 누락된 자재는 없는지를 보장하지는 못한다. 아래 도구 비교에서 OWASP AIBOM
Generator는 모델 카드의 라이선스를 채우고, cdxgen은 의존성을 빠르게 식별하되 라이선스 필드를
비워 둔다. 도구를 고를 때 이 차이를 본다.
도구 한눈에 보기
| 도구 | 입력 | 출력 | 강점 | 다루는 곳 |
|---|
| OWASP AIBOM Generator | Hugging Face 모델 ID | CycloneDX 1.6/1.7 | 모델 카드와 라이선스 메타데이터, 완전성 점수 | 바로가기 |
| cdxgen | 프로젝트 디렉토리, 모델 파일 | CycloneDX | 의존성 자동 식별, CI/CD 연동 | 바로가기 |
| Lab700x, Trivy, Syft | 모델 바이너리, 컨테이너, 가상환경 | 보고서, SBOM | 모델 정적 분석, 추론 서버와 패키지 식별 | 바로가기 |
각 도구는 생성, 분석, 관리 단계 중 일부를 자동화한다. 한 도구로 전부 해결되지 않으므로, AI
SBOM을 생성하는 도구(OWASP AIBOM Generator, cdxgen)와 보안을 분석하는 도구(Lab700x, Trivy),
관리하는 도구(Dependency-Track)를 조합한다.
1 - OWASP AIBOM Generator
Hugging Face 모델에서 CycloneDX 형식 AI SBOM을 생성하고 완전성 점수를 매기는 OWASP 도구의 사용법을 실행 화면과 함께 안내한다.
개요
OWASP AIBOM Generator는 Hugging Face 모델 ID를 입력받아 모델 카드 메타데이터를 가져오고,
CycloneDX 형식의 AI SBOM을 생성하는 오픈소스 도구다. OWASP Gen AI Security Project가 관리하며,
생성된 BOM이 얼마나 완전한지를 점수로 평가하는 기능이 특징이다.
cdxgen이 의존성을 빠르게 식별하되 라이선스를 비워 두는 것과 달리, 이 도구는 모델 카드에 적힌
라이선스와 작성자, 외부 참조를 채운다. 3.5 라이선스 의무가
요구하는 라이선스 검토의 출발점으로 쓰기 좋다.
주요 기능
- Hugging Face 모델의 메타데이터를 가져와 CycloneDX 1.6과 1.7 형식 AIBOM을 생성한다.
- 생성된 BOM의 완전성을 점수(0~100)와 프로파일로 평가하고 섹션별로 분해해 보여준다.
- 모델 정보, 모델 카드, 라이선스, 외부 참조를 사람이 읽기 쉬운 화면으로 보여준다.
- 웹 UI와 명령줄(CLI) 두 가지로 쓸 수 있다.
사용법 A — 웹 UI
브라우저에서 모델 ID만 넣으면 되어 가장 간단하다. OWASP Gen AI Security Project가 제공하는
Hugging Face Space를 쓰거나, 저장소를 받아 로컬에서 띄운다.
먼저 입력 화면에서 Hugging Face 모델 ID(예: facebook/bart-large-cnn)를 넣고 생성을 누른다.

그림 1. OWASP AIBOM Generator 입력 화면 (GenAI Security Project, 캡처 2026-06-13)
생성이 끝나면 결과 화면에 AIBOM 요약, 완전성 평가, 다운로드 버튼(CycloneDX 1.6과 1.7), AI 모델
정보, 모델 카드가 표시된다. 화면 상단의 완전성 평가는 BOM이 식별에 필요한 최소 항목을 갖췄는지
한눈에 보여준다.

그림 2. 생성 결과 화면 — 모델 정보, 라이선스(MIT), 완전성 평가(Basic) (캡처 2026-06-13)
결과 화면은 사람이 읽는 보기(Human-Friendly View)와 함께 필드 체크리스트, 점수 보고서, JSON
보기 탭을 제공한다. 라이선스 의무 검토와 AI SBOM 보관에 필요한 항목을 화면에서 바로 확인하고
CycloneDX 파일로 내려받는다.
사용법 B — 명령줄(CLI)
CI/CD에 넣거나 여러 모델을 일괄 처리할 때는 CLI가 편하다. 설치 후 모델 ID를 인자로 준다.
# 설치 (Python 가상환경 권장)
pip install "git+https://github.com/GenAI-Security-Project/aibom-generator"
# 모델 ID로 AIBOM 생성
aibom facebook/bart-large-cnn -o aibom.json
아래는 실제 실행 결과다. CycloneDX 1.6과 1.7을 생성하고 스키마 검증을 통과하며, 완전성 점수를
섹션별로 보여준다.
$ aibom facebook/bart-large-cnn -o aibom.json
✅ Successfully generated CycloneDX 1.6 SBOM — Schema Validation (1.6): Valid
✅ Successfully generated CycloneDX 1.7 SBOM — Schema Validation (1.7): Valid
📊 Completeness Score: 58.7/100 Profile: Basic
- Required Fields: 20/20
- Metadata: 8/20
- Component Basic: 17.1/20
- Component Model Card: 6.7/30
- External References: 10/10
그림 3. CLI 실행 출력 (aibom CLI, 모델 facebook/bart-large-cnn, 실행 2026-06-13)
생성된 BOM의 모델 컴포넌트는 라이선스와 모델 카드가 채워진다. cdxgen 출력과 달리 licenses
필드가 비어 있지 않다.
{
"type": "machine-learning-model",
"name": "bart-large-cnn",
"purl": "pkg:huggingface/facebook/bart-large-cnn",
"licenses": [{ "license": { "id": "MIT" } }],
"authors": [{ "name": "facebook" }],
"modelCard": { "modelParameters": { }, "considerations": { } }
}
실행 결과가 보여주는 것
완전성 점수는 입력 메타데이터 품질에 좌우된다
실제 실행에서 완전성 점수는 58.7/100(Basic)이었다. Required Fields와 External References는 만점이지만
모델 카드 점수가 6.7/30으로 낮다. 이는 도구의 한계가 아니라, 모델 제공자가 Hugging Face 모델
카드에 정보를 충분히 채우지 않았기 때문이다. 도구는 있는 메타데이터를 충실히 가져오지만, 없는
정보를 만들어 내지는 못한다. 모델 카드가 부실하면 사람이 출처를 확인해 보강해야 한다.
참고
2 - cdxgen
프로젝트와 모델에서 CycloneDX SBOM을 생성하는 OWASP cdxgen의 AI BOM 모드 사용법을 실행 출력과 함께 안내한다.
개요
cdxgen은 OWASP CycloneDX 프로젝트의 공식 SBOM 생성기다. 20개 이상의 언어와 패키지 매니저를
지원하고, 최신 버전에서 AI BOM 전용 모드를 제공한다. AI 애플리케이션의 의존성(PyTorch,
Transformers 등)을 자동으로 식별하며, CI/CD 파이프라인에 연동하기 좋다.
AI SBOM 관점에서 cdxgen의 강점은 속도와 자동화다. 약점은 라이선스 정보를 기본 실행에서 채우지
않는다는 점이다. 아래 실행 결과에서 이 특성이 드러난다. OWASP AIBOM Generator가 모델 카드 메타데이터
중심이라면, cdxgen은 코드와 의존성 중심이다. 둘을 함께 쓰면 모델과 의존성을 모두 다룬다.
주요 기능
- 소스 코드와 컨테이너 이미지에서 의존성을 식별해 CycloneDX SBOM을 생성한다.
- AI BOM 모드(
-t ai)로 AI/ML 메타데이터(formulation)를 포함한다. - Hugging Face 모델 URL, Modelfile, GGUF 아티팩트를 직접 입력으로 받는다.
- Dependency-Track 서버에 SBOM을 자동 제출해 지속 관리할 수 있다.
설치
# 일회성 실행 (Node.js 필요)
npx @cyclonedx/cdxgen@latest --version
# 전역 설치
npm install -g @cyclonedx/cdxgen
사용법 — AI BOM 생성
AI 프로젝트 디렉토리에서 AI BOM 모드로 실행한다.
# AI BOM 생성
cdxgen -t ai -o aibom.json .
# AI/ML 메타데이터(formulation)를 포함해 생성
cdxgen -t ai --include-formulation -o aibom.json .
아래는 사전학습 모델(facebook/bart-large-cnn)을 불러오는 요약 앱(transformers, torch
의존)에 cdxgen을 실제로 돌린 결과다. 의존성 5건을 자동 식별해 CycloneDX 1.7 BOM을 만든다.
$ cdxgen -t python --include-formulation -o aibom.json .
CycloneDX Generator 12.5.1 (Node.js)
생성된 components — 5건 (CycloneDX 1.7):
transformers 4.44.2 pkg:pypi/transformers@4.44.2 license: 비어 있음
torch 2.4.0 pkg:pypi/torch@2.4.0 license: 비어 있음
numpy 1.26.4 pkg:pypi/numpy@1.26.4 license: 비어 있음
tokenizers 0.19.1 pkg:pypi/tokenizers@0.19.1 license: 비어 있음
huggingface-hub 0.24.6 pkg:pypi/huggingface-hub@0.24.6 license: 비어 있음
그림 1. cdxgen 실행 출력 (cdxgen 12.5.1, 실행 2026-06-13)
생성된 컴포넌트 한 건은 다음과 같다. 식별 근거(evidence)는 채워지지만 licenses 필드는 비어
있다.
{
"name": "transformers",
"version": "4.44.2",
"purl": "pkg:pypi/transformers@4.44.2",
"type": "library",
"evidence": {
"identity": [
{ "field": "purl", "confidence": 0.5,
"methods": [{ "technique": "manifest-analysis", "value": "requirements.txt" }] }
]
}
}
실행 결과가 보여주는 것
cdxgen은 식별이 빠르되 라이선스는 사람이 보강한다
cdxgen은 requirements.txt에서 의존성 5건을 빠르게 식별했지만, 각 컴포넌트의 licenses 필드가
비어 있다. 또 앱이 불러오는 사전학습 모델 facebook/bart-large-cnn은 코드 스캔만으로는 BOM에
잡히지 않았다. 인바운드 자재로 별도 수집해 추가해야 한다. cdxgen으로 의존성 골격을 빠르게 만든
뒤, 라이선스는 사람이 확인해 채우고 모델은 OWASP AIBOM Generator로 별도 생성해 병합하는 조합이
현실적이다.
참고
3 - 모델·컨테이너 스캐너 (Lab700x, Trivy, Syft)
AI 모델 바이너리와 추론 서버, AI 패키지를 분석하는 보안 스캐너의 주요 기능과 사용법을 소개한다.
이 페이지는 AI SBOM 생성을 보완하는 분석·식별 도구를 소개한다. 생성 도구(OWASP AIBOM
Generator, cdxgen)가 “무엇이 들어 있는가"를 기록한다면, 이 도구들은 “그것이 안전한가"와 “어떤
버전인가"를 본다. 아래 명령과 기능은 각 도구의 공식 문서를 기준으로 정리했다(이 가이드에서
직접 실행한 도구는 OWASP AIBOM Generator와 cdxgen이다).
Lab700x AI SBOM Scanner — 모델 바이너리 정적 분석
AI 모델 파일 자체를 정적 분석해 정보를 추출하는 도구다. .safetensors, .pt(PyTorch),
.pkl(Pickle) 같은 모델 바이너리를 실행하지 않고 직접 들여다본다(deep introspection).
- 주요 기능: 모델을 실행(Execute)하지 않고 내부 구조를 파악하므로, 모델 파일에 숨겨진 악성
코드(Pickle 인젝션 등)나 취약점, 라이선스 위반 요소를 배포 전에 검출한다.
- AI SBOM에서의 역할: 외부에서 도입한 모델을 인입 게이트에서 검사하는 데 쓴다.
3.5 라이선스 의무의 인입 메타데이터 강제와
결합하면, 메타데이터 검증과 바이너리 안전성 검사를 함께 수행할 수 있다.
Pickle 형식 모델은 역직렬화 시 임의 코드가 실행될 수 있어 공급망 위험이 크다. 모델을 실행하지
않고 검사한다는 점이 이 도구의 핵심이다.
Trivy — LLM 추론 서버 컨테이너 스캔
Aqua Security의 오픈소스 스캐너로, 컨테이너 이미지와 파일시스템의 취약점을 점검한다. 최근 AI
모델 인프라 인식을 추가했다.
- 주요 기능: Ollama, LocalAI 같은 LLM 추론 서버 컨테이너를 스캔해, 포함된 오픈소스 라이브러리와
컨테이너 취약점을 수집한다.
- 사용법:
# 컨테이너 이미지 스캔 (취약점)
trivy image ollama/ollama:latest
# SBOM(CycloneDX) 생성
trivy image --format cyclonedx --output sbom.json ollama/ollama:latest
AI 모델을 컨테이너로 배포하는 환경에서 추론 서버의 취약점과 구성요소를 SBOM으로 남기는 데 쓴다.
Syft — AI 패키지와 가상환경 식별
Anchore의 SBOM 생성기로, 컨테이너와 파일시스템, 가상환경을 스캔한다.
- 주요 기능: Python 가상환경을 분석해 PyTorch, Transformers 등 AI 가동에 쓰인 패키지의 정확한
버전을 수집한다. SPDX와 CycloneDX 형식으로 출력한다.
- 사용법:
# 디렉토리 스캔 후 CycloneDX 출력
syft scan dir:. -o cyclonedx-json=sbom.json
# 컨테이너 이미지 스캔
syft scan registry:python:3.11-slim -o spdx-json
cdxgen과 역할이 비슷하므로, 이미 Anchore 도구 모음(Syft, Grype)을 쓰는 조직이라면 Syft로 AI
애플리케이션의 의존성 SBOM을 생성하고 Grype로 취약점을 점검하는 조합이 자연스럽다.
도구 조합 권고
한 도구로 전부 해결되지 않는다. 실무에서는 역할을 나눠 조합한다.
| 목적 | 도구 |
|---|
| 모델 메타데이터 AIBOM 생성 | OWASP AIBOM Generator |
| 의존성 SBOM 생성 | cdxgen, Syft |
| 모델 바이너리 안전성 검사 | Lab700x AI SBOM Scanner |
| 추론 서버·컨테이너 취약점 | Trivy |
| SBOM 저장·취약점 모니터링 | Dependency-Track |
참고