AI SBOM

ISO/IEC 42001 §7.5(문서화된 정보)와 §8.5(AI 시스템 생애주기)에 따른 AI SBOM(AI System Bill of Materials) 구성 방법과 생성 도구를 안내한다.

1. AI SBOM이란?

AI SBOM(AI System Bill of Materials) 은 AI 시스템을 구성하는 모든 요소의 목록과 그 출처·라이선스를 문서화한 것이다. 소프트웨어 SBOM(ISO/IEC 5230 §3.3.1)의 개념을 AI 시스템으로 확장한 것으로, ISO/IEC 42001 §7.5(문서화된 정보) 요구사항의 핵심 산출물이다.

AI SBOM이 필요한 이유: 투명성과 규제 대응

AI SBOM은 AI 시스템의 투명성과 설명 가능성을 확보하는 핵심 수단이다. ISO/IEC 42001 Appendix C.2.11은 투명성과 설명 가능성을 AI 관리 시스템의 핵심 목표로 명시한다.

요구 주체근거AI SBOM 역할
ISO/IEC 42001Appendix C.2.11 (투명성·설명 가능성)AI 시스템 구성 투명성 확보
EU AI Act고위험 AI 시스템 기술 문서 요건학습 데이터·모델 출처 명시
EU Cyber Resilience Act(CRA)AI 제품의 투명성 의무컴포넌트 목록 및 취약점 추적
OpenChain AI Work GroupAI SBOM Compliance Guide공급망 내 AI SBOM 표준 절차

AI SBOM vs 소프트웨어 SBOM

비교 항목소프트웨어 SBOMAI SBOM
포함 대상라이브러리, 패키지, 실행 파일프레임워크 + 모델 + 데이터셋
라이선스 유형SPDX 표준 라이선스SPDX + AI 커스텀 라이선스 (Llama, Gemma ToU 등)
표준 형식SPDX 2.x, CycloneDX 1.4SPDX 3.0 AI 프로파일, CycloneDX 1.6
추가 정보없음모델 파라미터 수, 학습 데이터 출처, 모델 목적 등
관련 ISO 표준ISO/IEC 5230 §3.3.1ISO/IEC 42001 §7.5

2. AI SBOM 구성 요소

AI SBOM
  │
  ├── 1. AI 프레임워크 · 라이브러리
  │       (일반 소프트웨어 SBOM과 동일한 항목)
  │       - name, version, license, PURL, hash
  │
  ├── 2. 사전 훈련 모델 (Pre-trained Model)
  │       - name, version, license
  │       - primaryPurpose (inference / training / fine-tuning / evaluation)
  │       - modelCard URL (모델 카드 링크)
  │       - baseModel (파인튜닝 시 원본 모델)
  │
  ├── 3. 학습 데이터셋
  │       - name, version, license
  │       - dataCollectionProcess (수집 방법)
  │       - dataType (text / image / audio / etc.)
  │       - knownBias (알려진 편향, 있는 경우)
  │
  ├── 4. 파인튜닝 데이터 (해당 시)
  │       - name, license, source
  │       - dataType
  │
  └── 5. Fact Sheet (AI 시스템 카드) ★
          - 편향(bias) 정보 및 한계 사항
          - 데이터 출처 및 데이터 가용성
          - 모델 성능 및 평가 결과 요약
          - 의도된 사용 목적 및 금지 사용 목적
          - 안전성·보안 관련 알려진 이슈

3. AI SBOM 표준 형식 명세 (SPDX 3.0 · CycloneDX 1.6)

AI SBOM 표준 형식은 두 가지가 사실상 산업 표준으로 자리잡았다. 두 형식은 보완 관계이며, 조직은 한쪽 또는 양쪽 모두를 채택할 수 있다.

표준발표AI 영역 명세핵심 강점
SPDX 3.02024-04AI Profile (AIPackage 클래스)라이선스·저작권 표현 강함, ISO/IEC 5962:2021 후속
CycloneDX 1.62024-04ML-BOM (modelCard)보안·윤리·성능 메타데이터 풍부, ECMA-424 표준

OpenChain Korea Work Group의 AI Work Group은 두 형식을 모두 지원하는 AI SBOM 가이드를 개발했다.

3.1 SPDX 3.0 AI Profile 핵심 필드 12종

SPDX 3.0 AI Profile은 AIPackage 클래스를 통해 AI 모델 메타데이터를 표현한다. AI 특화 필드 중 자주 사용되는 핵심 12개는 다음과 같다.

#필드의미예시 값
1typeOfModel모델 유형“LLM”, “Image Classification”, “Reinforcement Learning”
2modelArchitecture모델 아키텍처 상세“Transformer Decoder”, “Vision Transformer”, “MoE”
3hyperparameter하이퍼파라미터(key/value)contextWindow: 131072, learningRate: 2e-5
4modelDataPreprocessing학습 데이터 전처리 방법“BPE Tokenization”, “Image normalization (224×224)”
5informationAboutTraining학습 절차 정보“Pretrained on 15T tokens, fine-tuned on KoAlpaca”
6informationAboutApplication의도된 응용 정보“Customer support chatbot, EN/KO”
7metric성능 메트릭“MMLU: 0.78”, “HumanEval: 0.65”
8metricDecisionThreshold결정 임계값“Toxicity > 0.7 → reject”
9limitation알려진 한계·약점“Hallucinates on dates after 2024-12”
10safetyRiskAssessment안전성·보안 위험 평가 결과“Prompt injection 평가 완료 (PASS)”
11modelExplainability설명 가능성 기법“SHAP 분석 지원”, “Attention map 시각화”
12autonomyType자율성 수준“Human-in-the-loop”, “Fully autonomous”

보조 필드(필요 시): domain(적용 도메인), energyConsumption(에너지 소비량), standardCompliance(준수 표준 목록), useSensitivePersonalInformation(민감 개인정보 사용 여부). 상속 필드(name, packageVersion, downloadLocation, suppliedBy, primaryPurpose, releaseTime)는 일반 SBOM과 동일하게 작성한다.

3.2 SPDX 3.0 AI SBOM 작성 예시

spdxVersion: SPDX-3.0
SPDXID: SPDXRef-DOCUMENT
name: "MyAI-Service AI SBOM"
dataLicense: CC0-1.0
created: "2026-04-01T00:00:00Z"
createdBy:
  - type: Tool
    identifier: "cdxgen-10.0"

packages:
  # 1. AI 프레임워크
  - SPDXID: SPDXRef-pytorch
    name: torch
    versionInfo: "2.2.0"
    supplier: "Organization: Meta AI"
    downloadLocation: "https://pypi.org/project/torch/2.2.0/"
    licenseConcluded: BSD-3-Clause
    primaryPurpose: library

  - SPDXID: SPDXRef-transformers
    name: transformers
    versionInfo: "4.40.0"
    supplier: "Organization: Hugging Face"
    downloadLocation: "https://pypi.org/project/transformers/4.40.0/"
    licenseConcluded: Apache-2.0
    primaryPurpose: library

  # 2. 사전 훈련 모델
  - SPDXID: SPDXRef-llama3-8b
    name: meta-llama/Llama-3.1-8B-Instruct
    versionInfo: "3.1"
    supplier: "Organization: Meta AI"
    downloadLocation: "https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct"
    licenseConcluded: LicenseRef-Meta-Llama-Community-License
    primaryPurpose: inference
    # AI 프로파일 확장 필드
    modelCard: "https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct"
    hyperparameter:
      contextWindow: 131072

  # 3. 파인튜닝 데이터셋
  - SPDXID: SPDXRef-dataset-alpaca-korean
    name: beomi/KoAlpaca-v1.1a
    versionInfo: "1.1a"
    downloadLocation: "https://huggingface.co/datasets/beomi/KoAlpaca-v1.1a"
    licenseConcluded: CC-BY-NC-4.0
    primaryPurpose: trainData
    dataCollectionProcess: "Korean instruction-following dataset"

relationships:
  - spdxElementId: SPDXRef-llama3-8b
    relationshipType: TRAINED_ON
    relatedSpdxElement: SPDXRef-dataset-alpaca-korean

3.3 CycloneDX 1.6 ML-BOM 핵심 필드 (modelCard 4영역)

CycloneDX 1.6 ML-BOM은 컴포넌트의 modelCard 필드에 AI 모델 메타데이터를 표현한다. modelCard는 4개 영역으로 구성된다.

(1) modelParameters — 모델 구성 (7필드)

필드의미
approach학습 접근(Supervised / Unsupervised / Reinforcement / Semi-supervised)
task모델 작업 유형(classification, regression, text-generation 등)
architectureFamily아키텍처 계열(transformer, CNN, RNN, LSTM 등)
modelArchitecture구체적 아키텍처(GPT-4o, ResNet-50, YOLOv8 등)
datasets학습·평가에 사용한 데이터셋 참조 목록
inputs입력 형식(MIME type, 텐서 shape 등)
outputs출력 형식

(2) quantitativeAnalysis — 성능 분석 (2필드)

필드의미
performanceMetrics성능 메트릭(accuracy, F1, MSE, top-k 등)
graphics평가 결과 그래프·이미지 첨부

(3) considerations — 윤리·운영 고려사항 (7필드)

필드의미
users의도된 사용자
useCases의도된 사용 사례
technicalLimitations기술적 한계
performanceTradeoffs성능·정확도 트레이드오프
ethicalConsiderations윤리적 위험 평가
environmentalConsiderations환경 영향(전력 소비·탄소 배출) — 1.6 신설
fairnessAssessments공정성 평가(영향받는 그룹별 편익·위험)

(4) properties — 자유 형식 key-value

조직 내부 메타데이터(승인자·심사 일자 등)를 추가로 기록할 수 있다.

3.4 CycloneDX 1.6 ML-BOM 작성 예시

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "components": [
    {
      "type": "machine-learning-model",
      "bom-ref": "model-llama3.1-8b",
      "name": "Meta Llama 3.1 8B Instruct",
      "version": "3.1",
      "supplier": { "name": "Meta AI" },
      "licenses": [
        { "license": { "name": "Llama 3.1 Community License" } }
      ],
      "modelCard": {
        "bom-ref": "card-llama3.1-8b",
        "modelParameters": {
          "approach": { "type": "supervised" },
          "task": "text-generation",
          "architectureFamily": "transformer",
          "modelArchitecture": "Decoder-only Transformer",
          "datasets": [ { "ref": "ds-meta-pretrain-15T" } ],
          "inputs": [ { "format": "text/plain" } ],
          "outputs": [ { "format": "text/plain" } ]
        },
        "quantitativeAnalysis": {
          "performanceMetrics": [
            { "type": "MMLU", "value": "0.78" },
            { "type": "HumanEval", "value": "0.65" }
          ]
        },
        "considerations": {
          "users": [ "Enterprise developers" ],
          "useCases": [ "Customer support chatbot (EN/KO)" ],
          "technicalLimitations": [ "Hallucinates on dates after 2024-12" ],
          "ethicalConsiderations": [
            { "name": "Prompt injection", "mitigation": "Input filtering" }
          ],
          "environmentalConsiderations": {
            "energyConsumptions": [
              {
                "activity": "inference",
                "energyMeasure": { "value": 0.5, "unit": "kWh" }
              }
            ]
          }
        }
      }
    }
  ]
}

4. AI SBOM 생성 도구

4.1 cdxgen (CycloneDX 형식)

cdxgen은 Python AI 프로젝트의 의존성을 분석하여 CycloneDX 형식의 SBOM을 생성한다. AI 특화 필드는 별도로 추가해야 한다.

# Python AI 프로젝트 SBOM 생성
cdxgen -t python ./my-ai-project -o ai-sbom.json

# requirements.txt 기반 생성
cdxgen -t pypi -r requirements.txt -o ai-sbom.json

도구 가이드: cdxgen 사용 가이드

4.2 Syft (컨테이너 이미지 분석)

AI 서비스를 컨테이너로 배포하는 경우 Syft로 컨테이너 이미지 전체의 SBOM을 생성한다.

# AI 서비스 컨테이너 이미지 SBOM 생성
syft my-ai-service:latest -o spdx-json=ai-container-sbom.json

도구 가이드: Syft 사용 가이드

4.3 Dependency-Track (AI SBOM 관리 및 취약점 추적)

생성된 AI SBOM을 Dependency-Track에 업로드하면 지속적으로 취약점을 모니터링할 수 있다.

# Dependency-Track에 AI SBOM 업로드
curl -X "POST" "http://dtrack:8080/api/v1/bom" \
  -H "X-Api-Key: ${DTRACK_API_KEY}" \
  -F "bom=@ai-sbom.json" \
  -F "projectName=MyAI-Service" \
  -F "projectVersion=1.0.0"

도구 가이드: Dependency-Track 사용 가이드


5. AI SBOM 운영 절차

AI SBOM 수명주기 관리

AI 시스템 개발 착수
  └─ AI SBOM 초안 작성 (프레임워크·모델 확정 시)
       └─ 개발 중 컴포넌트 추가 시 즉시 갱신
            └─ 배포 전 AI SBOM 최종 검토
                 └─ 배포 시 AI SBOM 보관 (버전별)
                      └─ 운영 중 신규 취약점 발견 시 AI SBOM 연계 대응
                           └─ 모델 라이선스 변경 모니터링 → 필요시 AI SBOM 갱신

체크포인트:

  • 모든 배포 버전의 AI SBOM이 생성·보관되어 있는가?
  • AI SBOM에 프레임워크·모델·데이터셋이 모두 포함되어 있는가?
  • 각 컴포넌트의 라이선스가 정확하게 기록되어 있는가?
  • AI SBOM을 기반으로 취약점 모니터링이 수행되고 있는가?
  • 모델 서명(OpenSSF Model Signing · Sigstore) 검증 결과가 AI SBOM에 기록되어 있는가?
  • 학습 빌드 provenance(SLSA for AI L1 이상)가 attestation으로 보관되어 있는가?

6. AI Work Group 가이드 연계

OpenChain Korea Work Group의 AI Work Group은 AI SBOM Compliance Guide를 개발·발표했다. 이 가이드는 SPDX 3.0 AI 프로파일을 활용한 AI SBOM 작성 방법을 상세히 안내한다.


7. 참고