<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cdxgen | Haksung</title><link>https://haksungjang.github.io/tags/cdxgen/</link><description>Haksung's Homepage 장학성 오픈소스 프로그램 매니저 / SK텔레콤</description><generator>Hugo</generator><language>ko-KR</language><lastBuildDate>Sat, 13 Jun 2026 23:47:21 +0900</lastBuildDate><atom:link href="https://haksungjang.github.io/tags/cdxgen/index.xml" rel="self" type="application/rss+xml"/><item><title>cdxgen</title><link>https://haksungjang.github.io/docs/ai-sbom_guide/5-tools/2-cdxgen/</link><pubDate>Sat, 13 Jun 2026 23:47:21 +0900</pubDate><guid>https://haksungjang.github.io/docs/ai-sbom_guide/5-tools/2-cdxgen/</guid><description>프로젝트와 모델에서 CycloneDX SBOM을 생성하는 OWASP cdxgen의 AI BOM 모드 사용법을 실행 출력과 함께 안내한다.</description><content:encoded>&lt;![CDATA[<h2 id="개요">개요</h2><p>cdxgen은 OWASP CycloneDX 프로젝트의 공식 SBOM 생성기다. 20개 이상의 언어와 패키지 매니저를
지원하고, 최신 버전에서 AI BOM 전용 모드를 제공한다. AI 애플리케이션의 의존성(PyTorch,
Transformers 등)을 자동으로 식별하며, CI/CD 파이프라인에 연동하기 좋다.</p><p>AI SBOM 관점에서 cdxgen의 강점은 속도와 자동화다. 약점은 라이선스 정보를 기본 실행에서 채우지
않는다는 점이다. 아래 실행 결과에서 이 특성이 드러난다. OWASP AIBOM Generator가 모델 카드 메타데이터
중심이라면, cdxgen은 코드와 의존성 중심이다. 둘을 함께 쓰면 모델과 의존성을 모두 다룬다.</p><h2 id="주요-기능">주요 기능</h2><ul><li>소스 코드와 컨테이너 이미지에서 의존성을 식별해 CycloneDX SBOM을 생성한다.</li><li>AI BOM 모드(<code>-t ai</code>)로 AI/ML 메타데이터(formulation)를 포함한다.</li><li>Hugging Face 모델 URL, Modelfile, GGUF 아티팩트를 직접 입력으로 받는다.</li><li>Dependency-Track 서버에 SBOM을 자동 제출해 지속 관리할 수 있다.</li></ul><h2 id="설치">설치</h2><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 일회성 실행 (Node.js 필요)</span></span></span><span style="display:flex;"><span>npx @cyclonedx/cdxgen@latest --version</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 전역 설치</span></span></span><span style="display:flex;"><span>npm install -g @cyclonedx/cdxgen</span></span></code></pre></div><h2 id="사용법--ai-bom-생성">사용법 — AI BOM 생성</h2><p>AI 프로젝트 디렉토리에서 AI BOM 모드로 실행한다.</p><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># AI BOM 생성</span></span></span><span style="display:flex;"><span>cdxgen -t ai -o aibom.json .</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># AI/ML 메타데이터(formulation)를 포함해 생성</span></span></span><span style="display:flex;"><span>cdxgen -t ai --include-formulation -o aibom.json .</span></span></code></pre></div><p>아래는 사전학습 모델(<code>facebook/bart-large-cnn</code>)을 불러오는 요약 앱(<code>transformers</code>,<code>torch</code>
의존)에 cdxgen을 실제로 돌린 결과다. 의존성 5건을 자동 식별해 CycloneDX 1.7 BOM을 만든다.</p><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>$ cdxgen -t python --include-formulation -o aibom.json .</span></span><span style="display:flex;"><span>CycloneDX Generator 12.5.1 (Node.js)</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>생성된 components — 5건 (CycloneDX 1.7):</span></span><span style="display:flex;"><span> transformers 4.44.2 pkg:pypi/transformers@4.44.2 license: 비어 있음</span></span><span style="display:flex;"><span> torch 2.4.0 pkg:pypi/torch@2.4.0 license: 비어 있음</span></span><span style="display:flex;"><span> numpy 1.26.4 pkg:pypi/numpy@1.26.4 license: 비어 있음</span></span><span style="display:flex;"><span> tokenizers 0.19.1 pkg:pypi/tokenizers@0.19.1 license: 비어 있음</span></span><span style="display:flex;"><span> huggingface-hub 0.24.6 pkg:pypi/huggingface-hub@0.24.6 license: 비어 있음</span></span></code></pre></div><p><strong>그림 1.</strong> cdxgen 실행 출력<em>(cdxgen 12.5.1, 실행 2026-06-13)</em></p><p>생성된 컴포넌트 한 건은 다음과 같다. 식별 근거(evidence)는 채워지지만<code>licenses</code> 필드는 비어
있다.</p><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-json" data-lang="json"><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"name"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"transformers"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"version"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"4.44.2"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"purl"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"pkg:pypi/transformers@4.44.2"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"type"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"library"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"evidence"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"identity"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[</span></span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#204a87;font-weight:bold">"field"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"purl"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#204a87;font-weight:bold">"confidence"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.5</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"methods"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#204a87;font-weight:bold">"technique"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"manifest-analysis"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#204a87;font-weight:bold">"value"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"requirements.txt"</span><span style="color:#000;font-weight:bold">}]</span><span style="color:#000;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">]</span></span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">}</span></span></span></code></pre></div><h2 id="실행-결과가-보여주는-것">실행 결과가 보여주는 것</h2><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">cdxgen은 식별이 빠르되 라이선스는 사람이 보강한다</div><p>cdxgen은<code>requirements.txt</code>에서 의존성 5건을 빠르게 식별했지만, 각 컴포넌트의<code>licenses</code> 필드가
비어 있다. 또 앱이 불러오는 사전학습 모델<code>facebook/bart-large-cnn</code>은 코드 스캔만으로는 BOM에
잡히지 않았다. 인바운드 자재로 별도 수집해 추가해야 한다. cdxgen으로 의존성 골격을 빠르게 만든
뒤, 라이선스는 사람이 확인해 채우고 모델은 OWASP AIBOM Generator로 별도 생성해 병합하는 조합이
현실적이다.</p></div><h2 id="참고">참고</h2><ul><li>AI SBOM 생성과 관리 절차:<a href="/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>모델 메타데이터 중심 생성기:<a href="/docs/ai-sbom_guide/5-tools/1-aibom-generator/">OWASP AIBOM Generator</a></li><li>SBOM 관리:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/7-dependency-track/">Dependency-Track</a>,<a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/8-cdxgen-dt/">cdxgen + Dependency-Track 연동</a></li><li>공식:<a href="https://github.com/cdxgen/cdxgen/blob/master/docs/AI_BOM.md">cdxgen AI-BOM 문서</a></li></ul>
]]></content:encoded></item></channel></rss>