4. 운영
ISO/IEC 42001 §8(운영) 요구사항 중 오픈소스 관리와 교차하는 내용을 개괄한다. AI 시스템 생애주기에서의 오픈소스 컴플라이언스, AI SBOM, AI 공급망 검증을 다루는 세부 페이지로 안내한다.
1. 개요
ISO/IEC 42001 §8은 AI 관리 시스템의 실제 운영 단계를 다룬다.
오픈소스 관점에서 §8은 가장 많은 교차점을 포함하는 섹션이다.
| 하위 조항 | 내용 | 오픈소스 교차 |
|---|
| §8.1 | 운영 기획 및 통제 | 오픈소스 검토 프로세스 운영 |
| §8.2~8.3 | AI 리스크 평가·처리 (운영 시) | OSS 취약점 리스크 대응 |
| §8.4 | AI 시스템 영향 평가 (운영 시) | OSS 취약점의 시스템 영향 |
| §8.5 | AI 시스템 생애주기 | ★ OSS 프레임워크·모델 라이선스 |
| §8.6 | AI 시스템을 위한 데이터 | ★ 오픈 데이터셋 라이선스 |
| §8.7 | 피드백 인터페이스 | — |
| §8.8 | 외부 AI 시스템 조달 | ★ 외부 OSS 모델 공급망 검증 |
2. 세부 페이지
이 섹션의 오픈소스 교차 항목은 다음 세부 페이지에서 상세히 다룬다:
3. §8.1 운영 기획 — 오픈소스 검토 프로세스 통합
AI 시스템 개발 프로세스에 오픈소스 컴플라이언스 검토 단계를 통합한다.
flowchart TD
A[기획 단계] --> A1["OSS 프레임워크·모델 목록 작성\n라이선스 사전 검토"]
A1 --> B[개발 단계]
B --> B1["컴포넌트 추가 시 라이선스 확인\nAI SBOM 초안 작성\nSCA 스캔"]
B1 --> C[테스트·검증 단계]
C --> C1["AI SBOM 검토\n라이선스 의무 이행 확인\nCritical CVE 해결 확인"]
C1 --> D[배포 단계]
D --> D1["AI SBOM 최종본 보관\n라이선스 고지문 포함 확인"]체크포인트:
4. 참고
1 - AI 시스템의 오픈소스 관리
ISO/IEC 42001 §8.5(AI 시스템 생애주기)와 §8.6(AI 데이터 관리)에 따라 AI 프레임워크, 사전 훈련 모델, 학습 데이터셋의 오픈소스 라이선스를 관리하는 방법을 설명한다.
1. 개요
ISO/IEC 42001 §8.5(AI 시스템 생애주기)와 §8.6(AI 데이터 관리)는 AI 시스템 개발 단계에서
관리해야 할 요구사항을 다룬다. 오픈소스 관점에서는 AI 시스템에 사용하는
오픈소스 컴포넌트의 라이선스 컴플라이언스가 핵심이다.
2. §8.5 AI 시스템 생애주기 — 오픈소스 프레임워크 · 모델 관리
2.1 기획·설계 단계
AI 시스템 기획 단계에서 사용할 오픈소스 프레임워크와 모델을 선정할 때
라이선스를 사전에 검토한다.
라이선스 사전 검토 절차:
1. 사용 후보 컴포넌트 목록 작성
(프레임워크명, 버전, 출처 URL)
2. 라이선스 확인
- 프레임워크: PyPI, npm, GitHub README 확인
- AI 모델: Hugging Face Model Card, 공식 저장소 확인
3. 라이선스 조건 검토 항목
□ 상업적 사용 허용 여부
□ 파생물(Fine-tuning 모델) 공개 의무 여부
□ 저작권 고지 의무 여부
□ 특허 조항 여부 (Apache 2.0의 명시적 특허 허여 등)
□ MAU 또는 매출 기반 사용 제한 여부
4. 허용 불가 라이선스 식별 시 대안 컴포넌트 탐색
2.2 개발 단계
개발 중 새로운 오픈소스 컴포넌트를 추가할 때마다 라이선스를 확인하고
AI SBOM에 즉시 반영한다.
SCA(소프트웨어 구성 분석) 도구 활용:
기존 오픈소스 스캔 도구를 AI 프로젝트 저장소에도 동일하게 적용한다.
# FOSSLight를 이용한 AI 프로젝트 스캔 예시
fosslight -p ./ai-project-dir -o ./ai-sbom-output
# cdxgen으로 Python AI 프로젝트 SBOM 생성
cdxgen -t python ./ai-project-dir -o ai-sbom.json
관련 도구 가이드:
2.3 주요 AI 프레임워크 라이선스 상세
| 프레임워크 | 라이선스 | 저작권 고지 | 특허 허여 | 상업 사용 | 소스 공개 |
|---|
| PyTorch | BSD 3-Clause | ✅ 필요 | ❌ 없음 | ✅ 가능 | ❌ 불필요 |
| TensorFlow | Apache 2.0 | ✅ 필요 | ✅ 있음 | ✅ 가능 | ❌ 불필요 |
| JAX | Apache 2.0 | ✅ 필요 | ✅ 있음 | ✅ 가능 | ❌ 불필요 |
| Hugging Face Transformers | Apache 2.0 | ✅ 필요 | ✅ 있음 | ✅ 가능 | ❌ 불필요 |
| LangChain | MIT | ✅ 필요 | ❌ 없음 | ✅ 가능 | ❌ 불필요 |
| scikit-learn | BSD 3-Clause | ✅ 필요 | ❌ 없음 | ✅ 가능 | ❌ 불필요 |
| ONNX Runtime | MIT | ✅ 필요 | ❌ 없음 | ✅ 가능 | ❌ 불필요 |
| vLLM | Apache 2.0 | ✅ 필요 | ✅ 있음 | ✅ 가능 | ❌ 불필요 |
2.4 주요 오픈소스 AI 모델 라이선스 비교
| 모델 | 라이선스 | 상업 사용 | 파생 모델 | 주요 제한 조건 |
|---|
| Llama 3.1 (8B/70B) | Meta Llama Community License | ✅ 조건부 | ✅ 가능 | MAU 7억 초과 시 Meta 허가 필요 |
| Llama 3.1 (405B) | Meta Llama Community License | ✅ 조건부 | ✅ 가능 | 모델 가중치 재배포 제한 |
| Mistral 7B | Apache 2.0 | ✅ 가능 | ✅ 가능 | 제한 없음 |
| Falcon 180B | Falcon License | ✅ 조건부 | ✅ 가능 | 수익 창출 시 라이선스 필요 |
| Gemma 2 | Gemma ToU | ✅ 조건부 | ✅ 가능 | Google 사용 정책 준수 |
| Phi-3 | MIT | ✅ 가능 | ✅ 가능 | 제한 없음 |
| BERT, GPT-2 | Apache 2.0 / MIT | ✅ 가능 | ✅ 가능 | 제한 없음 |
주의: 모델 라이선스 정기 재확인
AI 모델 라이선스는 버전 업데이트 시 조건이 변경될 수 있다.
모델을 장기간 사용하는 경우 분기별로 라이선스 조건 변경 여부를 재확인한다.
특히 상업적 사용 제한이나 MAU 조건이 있는 모델은 서비스 규모 변화에 따라 재검토가 필요하다.
체크포인트 — §8.5:
3. §8.6 AI 데이터 관리 — 학습 데이터셋 라이선스 ★
AI 시스템 학습에 사용한 데이터셋에 오픈 데이터 라이선스가 적용된 경우
해당 라이선스 조건을 이행해야 한다.
3.1 주요 오픈 데이터 라이선스 의무
| 라이선스 | 저작자 표시 | 동일 조건 | 상업 사용 | 이행 방법 |
|---|
| CC0 1.0 | ❌ 불필요 | ❌ 불필요 | ✅ 가능 | 별도 조치 불필요 |
| CC-BY 4.0 | ✅ 필요 | ❌ 불필요 | ✅ 가능 | 모델 카드에 데이터 출처 기재 |
| CC-BY-SA 4.0 | ✅ 필요 | ✅ 필요 | ✅ 가능 | 법무 검토 필요 (파생 모델 라이선스) |
| CC-BY-NC 4.0 | ✅ 필요 | ❌ 불필요 | ❌ 불가 | 비상업 연구 목적에만 사용 |
| ODbL (OpenStreetMap 등) | ✅ 필요 | ✅ 필요 | ✅ 가능 | 파생 데이터베이스 동일 조건 공개 |
3.2 모델 카드(Model Card) 작성
CC-BY 계열 데이터셋을 학습에 사용한 경우 모델 카드에 출처를 명시한다.
## Model Card — [모델명]
### Training Data
이 모델은 다음 데이터셋을 사용하여 학습되었습니다:
| 데이터셋 | 라이선스 | 출처 |
|---------|---------|------|
| Wikipedia (2024-01) | CC-BY-SA 4.0 | https://dumps.wikimedia.org/ |
| Common Crawl (CC-MAIN-2023) | 조건 없음 | https://commoncrawl.org/ |
| [내부 데이터셋] | 자체 소유 | 내부 |
체크포인트 — §8.6:
4. 참고
2 - 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 42001 | Appendix C.2.11 (투명성·설명 가능성) | AI 시스템 구성 투명성 확보 |
| EU AI Act | 고위험 AI 시스템 기술 문서 요건 | 학습 데이터·모델 출처 명시 |
| EU Cyber Resilience Act(CRA) | AI 제품의 투명성 의무 | 컴포넌트 목록 및 취약점 추적 |
| OpenChain AI Work Group | AI SBOM Compliance Guide | 공급망 내 AI SBOM 표준 절차 |
ISO/IEC 42003과 AI SBOM
ISO/IEC 42001의 구현 가이드인 ISO/IEC 42003(개발 중)에 AI SBOM 관련 구체적 요구사항이
포함될 예정이다. OpenChain AI Work Group은 AI SBOM 가이드를 42003의
§6.2(AI 목표)와 Appendix C.2.11(투명성·설명 가능성)에 반영하는 것을 추진 중이다.
AI SBOM vs 소프트웨어 SBOM
| 비교 항목 | 소프트웨어 SBOM | AI SBOM |
|---|
| 포함 대상 | 라이브러리, 패키지, 실행 파일 | 프레임워크 + 모델 + 데이터셋 |
| 라이선스 유형 | SPDX 표준 라이선스 | SPDX + AI 커스텀 라이선스 (Llama, Gemma ToU 등) |
| 표준 형식 | SPDX 2.x, CycloneDX 1.4 | SPDX 3.0 AI 프로파일, CycloneDX 1.6 |
| 추가 정보 | 없음 | 모델 파라미터 수, 학습 데이터 출처, 모델 목적 등 |
| 관련 ISO 표준 | ISO/IEC 5230 §3.3.1 | ISO/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) 정보 및 한계 사항
- 데이터 출처 및 데이터 가용성
- 모델 성능 및 평가 결과 요약
- 의도된 사용 목적 및 금지 사용 목적
- 안전성·보안 관련 알려진 이슈
Fact Sheet란?
Fact Sheet(또는 모델 카드 확장판)는 AI 시스템의 투명성·설명 가능성을 제공하는 문서다.
ISO/IEC 42001 Appendix C.2.11과 EU AI Act의 고위험 AI 기술 문서 요건을 충족하는 핵심 수단이다.
OpenChain AI Work Group은 이 Fact Sheet 정보를 AI SBOM의 표준 구성 요소로 포함하는 것을 추진 중이다.
3. AI SBOM 표준 형식 명세 (SPDX 3.0 · CycloneDX 1.6)
AI SBOM 표준 형식은 두 가지가 사실상 산업 표준으로 자리잡았다. 두 형식은 보완 관계이며,
조직은 한쪽 또는 양쪽 모두를 채택할 수 있다.
| 표준 | 발표 | AI 영역 명세 | 핵심 강점 |
|---|
| SPDX 3.0 | 2024-04 | AI Profile (AIPackage 클래스) | 라이선스·저작권 표현 강함, ISO/IEC 5962:2021 후속 |
| CycloneDX 1.6 | 2024-04 | ML-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개는 다음과 같다.
| # | 필드 | 의미 | 예시 값 |
|---|
| 1 | typeOfModel | 모델 유형 | “LLM”, “Image Classification”, “Reinforcement Learning” |
| 2 | modelArchitecture | 모델 아키텍처 상세 | “Transformer Decoder”, “Vision Transformer”, “MoE” |
| 3 | hyperparameter | 하이퍼파라미터(key/value) | contextWindow: 131072, learningRate: 2e-5 |
| 4 | modelDataPreprocessing | 학습 데이터 전처리 방법 | “BPE Tokenization”, “Image normalization (224×224)” |
| 5 | informationAboutTraining | 학습 절차 정보 | “Pretrained on 15T tokens, fine-tuned on KoAlpaca” |
| 6 | informationAboutApplication | 의도된 응용 정보 | “Customer support chatbot, EN/KO” |
| 7 | metric | 성능 메트릭 | “MMLU: 0.78”, “HumanEval: 0.65” |
| 8 | metricDecisionThreshold | 결정 임계값 | “Toxicity > 0.7 → reject” |
| 9 | limitation | 알려진 한계·약점 | “Hallucinates on dates after 2024-12” |
| 10 | safetyRiskAssessment | 안전성·보안 위험 평가 결과 | “Prompt injection 평가 완료 (PASS)” |
| 11 | modelExplainability | 설명 가능성 기법 | “SHAP 분석 지원”, “Attention map 시각화” |
| 12 | autonomyType | 자율성 수준 | “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
CC-BY-NC 데이터셋 주의
위 예시의 beomi/KoAlpaca-v1.1a 데이터셋은 CC-BY-NC 4.0 라이선스로,
비상업적 목적에만 사용 가능하다. 상업 서비스에 이 데이터셋으로 파인튜닝한 모델을
사용하고 있다면 즉시 법무팀과 협의해야 한다.
이 예시는 AI SBOM 형식 설명을 위한 것이며, 상업 서비스에서는 Apache 2.0, MIT,
CC-BY 4.0, CC0 등 상업적 사용이 가능한 라이선스의 데이터셋을 사용한다.
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" }
}
]
}
}
}
}
]
}
SPDX 3.0 · CycloneDX 1.6 동시 발행 권장
EU AI Act 고위험 시스템 기술 문서 요건과 향후 ISO/IEC 42003 요구사항을 동시에 충족하기 위해
SPDX 3.0(라이선스 추적용)과 CycloneDX 1.6 ML-BOM(보안·윤리 추적용)을 동시 발행하는 것을
권장한다. 두 형식은 컴포넌트 ID(PURL 또는 modelCard.bom-ref)로 연결할 수 있다.
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 갱신
체크포인트:
6. AI Work Group 가이드 연계
OpenChain Korea Work Group의 AI Work Group은 AI SBOM Compliance Guide를 개발·발표했다.
이 가이드는 SPDX 3.0 AI 프로파일을 활용한 AI SBOM 작성 방법을 상세히 안내한다.
7. 참고
3 - AI 공급망 검증
ISO/IEC 42001 §8.8(외부 당사자가 공급하는 AI 시스템 사용)에 따라 외부에서 조달하는 오픈소스 AI 모델과 AI 서비스의 공급망 검증 방법을 안내한다.
1. 개요
ISO/IEC 42001 §8.8은 외부에서 조달하는 AI 시스템(모델, API, 서비스)을 사용할 때
적절한 평가와 검증을 수행할 것을 요구한다. 오픈소스 관점에서는 외부 오픈소스 AI 모델을
조달할 때 라이선스·보안·공급망 리스크를 검증하는 절차가 핵심이다.
2. 외부 AI 조달의 세 가지 유형
| 유형 | 예시 | 오픈소스 관련성 |
|---|
| 오픈소스 AI 모델 직접 사용 | Llama, Mistral, Falcon 모델 가중치 다운로드 | 높음 — 라이선스 직접 적용 |
| 오픈소스 기반 AI 서비스 | Hugging Face Inference API, Ollama | 중간 — 기반 모델 라이선스 확인 필요 |
| 상용 AI API | OpenAI API, Google Vertex AI | 낮음 — 서비스 약관 적용 (OSS 라이선스 직접 적용 안 됨) |
유형 1·2가 오픈소스 라이선스 직접 적용 영역으로 §3~§4의 핵심 대상이며,
유형 3(상용 AI API)도 ISO/IEC 42001 §8.8이 동일하게 요구하므로 §5에서 별도로 다룬다.
3. 오픈소스 AI 모델 조달 전 검증 체크리스트
외부 오픈소스 AI 모델을 도입하기 전 다음 항목을 검증한다.
3.1 라이선스 검증
## 오픈소스 AI 모델 라이선스 검증 체크리스트
### 기본 라이선스 정보
- [ ] 라이선스 유형 확인: ___________________
(Apache 2.0 / MIT / Llama Community / Gemma ToU / 기타)
- [ ] 라이선스 원문 출처 URL: ___________________
- [ ] 라이선스 버전 확인 (동일 모델의 이전 버전과 다를 수 있음)
### 상업적 사용 조건
- [ ] 상업적 사용 허용 여부: ✅ 허용 / ⚠️ 조건부 / ❌ 불허
- [ ] 사용자 수(MAU) 제한 조건: ___________________
(예: Llama 3 — MAU 7억 초과 시 Meta 허가 필요)
- [ ] 매출 기반 제한 조건: ___________________
### 파생물(Fine-tuning) 조건
- [ ] 파인튜닝 허용 여부: ✅ 허용 / ⚠️ 조건부 / ❌ 불허
- [ ] 파인튜닝 모델 공개 의무 여부: ___________________
- [ ] 파인튜닝 모델 라이선스 요건: ___________________
### 재배포 조건
- [ ] 모델 가중치 재배포 허용 여부: ✅ 허용 / ⚠️ 조건부 / ❌ 불허
- [ ] 재배포 시 라이선스 문서 포함 의무: ___________________
### 표시(Attribution) 의무
- [ ] 저작자 표시 필요 여부: ✅ 필요 / ❌ 불필요
- [ ] 표시 방법 및 위치: ___________________
(서비스 UI, 문서, API 응답 등)
### 법무 검토 필요 여부
- [ ] 표준 SPDX 라이선스가 아닌 경우 법무팀 검토 완료: ✅ / 해당 없음
- [ ] 법무팀 검토 일자: ___________________
- [ ] 검토 의견: ___________________
3.2 보안 검증
### 보안 검증 항목
- [ ] 공식 배포 채널에서 다운로드 확인
(공식 GitHub, Hugging Face 공식 계정)
- [ ] 공식 namespace와 정확 일치 확인 (typo-squatting 방어 — 상세 사례·방어 통제는 §6.1 참조)
- [ ] 파일 해시(SHA256) 검증 완료 및 AI SBOM에 기록
- [ ] 모델 가중치 형식 확인
(Safetensors 우선; `.pt`·`.bin` pickle 형식은 격리 환경에서 검증 후 운영)
- [ ] 알려진 취약점(CVE) 조회 완료
(NVD, OSV.dev 검색 결과: ___________________)
- [ ] 모델 가중치의 악성 코드 · 백도어 삽입 여부 검토
(신뢰할 수 없는 출처의 모델은 사용 금지, 평가 데이터셋으로 백도어 트리거 점검)
- [ ] 라이선스 변경 모니터링 채널 등록
(GitHub Watch, 공식 뉴스레터 등)
3.3 공급망 리스크 평가
### 공급망 리스크 평가 항목
- [ ] 모델 공급자의 신뢰도 확인
(개인 / 연구기관 / 기업 — 오픈소스 커뮤니티 평판)
- [ ] 모델 유지보수 활성도 확인
(마지막 업데이트 일자, 이슈 대응 현황)
- [ ] 라이선스 변경 이력 확인
(과거 라이선스 조건 변경 사례 여부)
- [ ] 대안 모델 식별
(라이선스 변경 또는 서비스 중단 시 대안)
4. 주요 오픈소스 AI 모델 라이선스 리스크 요약
| 모델 계열 | 라이선스 | 주요 리스크 |
|---|
| Llama 3.x | Meta Llama Community License | MAU 7억 초과 시 Meta 승인 필요, 라이선스 버전별 조건 차이 |
| Llama 2 | Meta Llama 2 Community License | 경쟁사(Meta 기준) 사용 제한, 파생 모델 “Llama 2” 명칭 사용 제한 |
| Gemma 2 | Google Gemma ToU | Google 사용 정책 위반 시 라이선스 즉시 종료 |
| Falcon-7B / 40B | Apache-2.0 (2023-09 이후) | 리스크 낮음 — 상업적 사용 자유 |
| Falcon-180B | TII Falcon LLM License v1.0 | 매출 임계치 등 조건부 상업 사용 — 약관 원문 직접 확인 필요 |
| Mistral 7B | Apache 2.0 | 리스크 낮음 |
| Phi-3 | MIT | 리스크 낮음 |
| GPT-2, BERT | MIT / Apache 2.0 | 리스크 낮음 |
커스텀 라이선스 모델 사용 시 주의
Llama, Gemma 등 커스텀 라이선스를 사용하는 모델은 라이선스 원문을 직접 읽고
법무팀 검토를 거친 후 사용한다. 커스텀 라이선스는 SPDX 표준 라이선스가 아니므로
일반적인 라이선스 분류 도구로는 자동 검토가 불가능하다.
5. 상용 AI API §8.8 평가 체크리스트
OpenAI · Anthropic · Google Vertex AI · AWS Bedrock · Azure OpenAI 등 상용 AI API는
오픈소스 라이선스가 직접 적용되지 않지만, ISO/IEC 42001 §8.8은 동일하게 외부 공급
AI 시스템에 대한 평가를 요구한다. 다음 세 영역을 도입 전 검토한다.
5.1 데이터 처리 · 학습 사용 검증
### 데이터 처리 검증 항목
- [ ] 입력 데이터의 학습 사용 여부 (opt-in / opt-out 정책)
(Enterprise/API 플랜은 기본 opt-out인지 확인)
- [ ] 출력 데이터 보존 기간 (zero-retention 옵션 가능 여부)
- [ ] API 호출 로그 저장 위치(국가) — 개인정보보호법 국외 이전 검토
- [ ] 데이터 처리 리전 선택 가능 여부 (EU·KR 리전 등)
- [ ] BAA(Business Associate Agreement) 체결 가능 여부 (의료 분야)
- [ ] 민감정보 · 영업비밀 입력 차단 정책 수립 여부
5.2 IP indemnification (지식재산 면책) 비교
생성형 AI 출력물의 저작권 침해 리스크에 대비해 주요 제공자는 IP 보증 정책을 운영한다.
플랜별 적용 범위와 조건이 다르므로 약관 원문과 최신 정책 페이지를 직접 확인한다.
| 제공자 | 보증 정책 명칭 | 적용 조건(요약) |
|---|
| OpenAI | Copyright Shield | ChatGPT Enterprise · Team · API 사용자 (ChatGPT Plus·무료 명시적 제외) |
| Anthropic | IP Indemnification | Commercial Service Agreement 가입 시 |
| Google Cloud | Generative AI Indemnification | Vertex AI 약관 명시 모델 · 약관 준수 시 |
| AWS | IP Indemnification | Bedrock Titan + 약관 명시 third-party 모델(Claude·Llama 등 일부 — 약관 원문 확인 필요) · Amazon Q |
| Microsoft (Azure OpenAI) | Customer Copyright Commitment | Azure OpenAI Service |
| Microsoft (M365 Copilot) | Copilot Copyright Commitment | M365 Copilot · GitHub Copilot Business/Enterprise |
공통 면책 요건: 콘텐츠 필터 활성화, 출력물 사후 검수, 의도적 침해 시도 없음,
입력 데이터에 대한 적법한 권리 보유(사용자가 prompt에 입력한 자료의 저작권·라이선스 적법성 보장).
면책 청구 가능 손해 범위(법무 자문 비용·합의금 등)는 제공자별로 다르므로 법무팀과 사전 협의.
실제 약관은 자주 변경되므로 도입 전 약관 원문을 직접 확인한다.
5.3 서비스 약관 변경 · 가용성 모니터링
### 약관 · 가용성 모니터링 항목
- [ ] 약관 변경 알림 채널 등록 (이메일 알림 · 변경 로그 페이지 RSS)
- [ ] 가격 변경 정책 확인 (계약상 사전 통지 기간)
- [ ] SLA 가용성 보장 수준 (예: 99.9%)
- [ ] 서비스 종료(EOL) 정책 — 마이그레이션 기간 확보
- [ ] 대체 제공자 식별 (벤더 락인 방지 — 동등 모델 매핑 표 유지)
- [ ] 출력물 책임 한계 조항 검토 (Hallucination · Bias 면책 조항)
상용 API와 오픈소스 모델 병행 운영 권장
상용 API의 가용성·약관 변경·가격 리스크에 대비해 오픈소스 모델 자체 호스팅 옵션을
백업으로 확보하는 것을 권장한다. AI SBOM에 두 옵션의 모델 매핑을 함께 기록하면
신속한 전환이 가능하다.
6. 모델 공급망 공격 방어
오픈소스 모델 가중치 파일과 모델 허브(Hugging Face·PyTorch Hub 등)는 2024년 이후 새로운
공격 표면으로 확인되었다. 도입 전 다음 공격 유형을 인지하고 방어 통제를 적용한다.
6.1 알려진 공격 유형
| 공격 | 설명 | 방어 |
|---|
| Pickle RCE | PyTorch .pt·.bin 등 Python pickle 직렬화 모델에 임의 코드 삽입. 모델 로드 시점에 실행 | Safetensors 형식 우선 사용, untrusted 모델은 격리 컨테이너에서 로드 |
| Typo-squatting | Hugging Face·PyPI에서 모델명·패키지명 오타 변형 게시 (예: meta-Ilama vs meta-llama) | 공식 namespace 명시적 검증, PURL 핀고정, 다운로드 시 hash 검증 |
| Model Poisoning | 학습 데이터 · 가중치에 백도어 삽입 — 특정 트리거 입력 시 악의적 출력 | 신뢰 가능한 제공자, 벤치마크 데이터셋 비교, 트리거 패턴 점검 |
| License-flip | 모델 라이선스 사후 변경 후 기존 사용자에 소급 적용 시도 | 다운로드 시점 라이선스 본문 · 가중치 hash 함께 보관 |
| Dependency Confusion | private 모델명과 동일한 public 모델 발행으로 잘못 다운로드 유도 | namespace 명시적 지정, private registry 우선순위 설정 |
6.2 권장 방어 통제
### 모델 공급망 방어 통제 체크리스트
- [ ] 모델 가중치는 Safetensors 형식 우선 (pickle 회피)
- [ ] 모델 파일 hash(SHA-256) 핀고정 + AI SBOM에 기록
- [ ] OpenSSF Model Signing · Sigstore 서명 검증 도입 (§6.3)
- [ ] SLSA for AI 빌드 레벨 평가 (§6.4)
- [ ] 모델 격리 환경(샌드박스)에서 1차 검증 후 운영 환경 반영
- [ ] 신규 모델 도입 시 보안팀 사전 검토 의무화
- [ ] 모델 허브 계정 typo-squatting 점검 자동화 (CI 단계)
- [ ] 모델 라이선스 본문 · 가중치 hash · 다운로드 일자를 함께 보관
2024년 Hugging Face Hub 사고 사례
2024년 2월 JFrog Security 연구진은 Hugging Face Hub에서 약 100개의 악성 모델을 식별했다.
이들 다수는 pickle 직렬화를 악용해 모델 로드 시점에 reverse shell 등 RCE 페이로드를 실행하도록
설계되었다(일부는 시스템 정찰 목적). Hugging Face는 사고 이전부터 PickleScan과 Safetensors
형식을 운영해 왔으나, 사고를 계기로 보안 강화가 이뤄졌다. 공식 권장은 신뢰 가능한 출처의
Safetensors 형식 사용이다.
6.3 OpenSSF Model Signing 도입 절차
OpenSSF Model Signing은
Sigstore(keyless OIDC 서명) · X.509 인증서 · 공개키 세 가지 방식을 지원하는
ML 모델 서명 표준이다. 2026년 기준 정식 패키지명은 model-signing(v1.1+)이다.
(1) 설치
# 기본 설치 (Sigstore 사용)
pip install model-signing
# X.509(PKCS #11 HSM) 지원 포함
pip install model-signing[pkcs11]
(2) 모델 서명 (Sigstore keyless 방식, 권장)
# 모델 디렉토리 전체에 대한 다이제스트 계산 후 Sigstore로 서명
# → Sigstore Fulcio가 OIDC 신원으로 단기 인증서 발급, Rekor 투명성 로그에 기록
# → model.sig 파일 생성
model_signing sign sigstore /path/to/llama-3.1-8b
(3) 모델 검증 (서명자 신원 확인)
# Google OIDC 사용 예시
model_signing verify sigstore /path/to/llama-3.1-8b \
--signature model.sig \
--identity "release-bot@example.com" \
--identity_provider "https://accounts.google.com"
# GitHub Actions OIDC 사용 예시 (CI 환경에서 가장 흔함)
model_signing verify sigstore /path/to/llama-3.1-8b \
--signature model.sig \
--identity "https://github.com/myorg/myrepo/.github/workflows/release.yml@refs/heads/main" \
--identity_provider "https://token.actions.githubusercontent.com"
정확한 CLI 구문은 sigstore/model-transparency 공식 README를 도입 시점에 재확인합니다(서브커맨드/옵션명이 버전별로 변경될 수 있음).
(4) 자체 키 사용 (오프라인 환경)
# 서명 (RSA/EC 등 자체 키 페어)
model_signing sign key /path/to/model --private_key signing.key
# 검증
model_signing verify key /path/to/model --signature model.sig --public_key signing.pub
(5) AI SBOM과 연계
서명 검증 결과(서명자 identity · 발급 일자 · Rekor 로그 인덱스)를 AI SBOM
hashes · attestation 필드에 기록하여 감사 추적성을 확보한다. CycloneDX 1.6에서는
컴포넌트의 signature 필드에 직접 첨부할 수 있다.
6.4 SLSA for AI 빌드 레벨
SLSA(Supply-chain Levels for Software Artifacts)의
빌드 트랙은 ML 모델 빌드 파이프라인에도 동일하게 적용된다. SLSA for AI는 이를
모델 학습 · 파인튜닝 · 변환 과정에 매핑한 사용 사례다.
| 레벨 | 요구사항 (ML 모델 적용) | 활용 |
|---|
| L0 | (SLSA 미적용 상태를 편의상 표기 — 표준 정의 레벨이 아님) provenance 없음 | 로컬 실험·연구 단계만 허용 |
| L1 | 빌드 플랫폼이 자동으로 provenance 생성 (학습 데이터·코드·하이퍼파라미터·환경) | 내부 모델 일반 |
| L2 | provenance가 위변조 방지 서명을 보유 (in-toto attestation + Sigstore) — 호스팅 빌더 사용 | 외부 배포 모델·고객 제공 모델 |
| L3 | 빌드 단계에서 사용자 정의 코드 주입 방지(은밀한·명시적) — 빌드 정의 외 학습 코드·하이퍼파라미터 주입 차단, hardened build 환경 | 고위험·규제 산업 |
SLSA 정식 안정 버전은 v1.0(2023-04 GA)이며 v1.1 draft가 진행 중이다. 도입 시점에
SLSA 공식 사양의 최신 안정 버전을 확인한다.
ML 모델 provenance에 포함할 핵심 항목
- 학습 데이터 hash(데이터셋 버전 · 라이선스)
- 학습 코드 git commit · CI/CD 빌더 ID
- 하이퍼파라미터 · 학습 환경(GPU 타입 · 라이브러리 버전)
- 베이스 모델 ID · hash(파인튜닝의 경우)
- 빌드 시작 · 종료 시간 · 빌더 신원
적용 권장 순서
- L1 우선 도입: 학습 파이프라인에 provenance 자동 생성(예: GitHub Actions 빌더가 in-toto attestation 자동 출력)
- L2 단계: provenance에 Sigstore 서명 추가 (§6.3 도구 활용)
- L3 단계: hardened build 환경(예: GitHub Actions hosted runner의 격리 워크플로우, GCP/AWS 격리 빌더) 채택
- AI SBOM에 SLSA 레벨 기록(
properties.slsaLevel)
OpenSSF · Sigstore · SLSA 연계
OpenSSF Model Signing(서명) + Sigstore(투명성 로그) + SLSA for AI(provenance)는
서로 보완하는 3개 표준이다. 모델 배포자는 SLSA L2 이상 provenance를 in-toto attestation으로
생성하고, model-signing CLI로 Sigstore에 서명·등록한 뒤, 검증자는 Rekor 로그를 통해
변조 여부를 확인할 수 있다. 이 조합이 2026년 ML 공급망 보안의 사실상 산업 표준이다.
7. 외부 AI 모델 조달 프로세스
flowchart TD
A[도입 필요 모델 식별] --> B[후보 모델 목록 작성]
B --> C[라이선스 검증]
C --> D{커스텀 라이선스?}
D -- Yes --> E[법무팀 검토]
D -- No --> F[보안 검증]
E --> F
F --> G[공급망 리스크 평가]
G --> H[도입 승인]
H --> I[AI SBOM 등록]
I --> J[라이선스 모니터링 등록]체크포인트:
8. 참고