<?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>Guide | Haksung</title><link>https://haksungjang.github.io/en/categories/guide/</link><description>Haksung Jang — Open Source Program Manager at SK telecom</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sun, 09 Aug 2026 17:03:59 +0900</lastBuildDate><atom:link href="https://haksungjang.github.io/en/categories/guide/index.xml" rel="self" type="application/rss+xml"/><item><title>Recommendations and Checklist</title><link>https://haksungjang.github.io/en/docs/sbom_guide/8-checklist/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/8-checklist/</guid><description>Collects the key recommendations from the preceding sections and provides a checklist for reviewing SBOM adoption.</description><content:encoded>&lt;![CDATA[<p>This section organizes the content covered in the preceding sections into practical
recommendations and a checklist. Organizations adopting SBOM for the first time can follow the
checklist in order, while organizations already operating one can use it to check for missing
items.</p><h2 id="key-recommendations">Key Recommendations</h2><h3 id="procurement-and-generation">Procurement and Generation</h3><ul><li>When procuring software, specify the SBOM provision requirement in contracts and purchase terms.
Specify which elements are to be provided, in what format, and when.</li><li>Generate SBOMs in the SPDX or CycloneDX format, choosing based on your counterparty&rsquo;s
requirements and your own toolchain.</li><li>Automatically generate SBOMs at build time within the SSDLC and CI/CD pipeline to ensure
accuracy and timeliness.</li><li>Put in place a workflow to regenerate the SBOM whenever a new component is introduced or an
existing component is updated.</li></ul><h3 id="data-quality">Data Quality</h3><ul><li>Include complete metadata such as component name, version, license, and unique identifier.
Because the minimum elements are only a floor, add fields to fit your own use case.</li><li>Pin components with<a href="/en/docs/sbom_guide/2-standards/2-identifiers/">PURL or CPE</a> so that traceability is not lost
even when names or versions change.</li><li>Pin the version of the generation tool, verify its provenance, and attach hashes and signatures
to the output to ensure integrity.</li></ul><h3 id="vulnerabilities-and-licenses">Vulnerabilities and Licenses</h3><ul><li>Link the SBOM to vulnerability databases and advisories to maintain continuous visibility into
security posture.</li><li>Reflect any applied patches or mitigations in your own SBOM.</li><li>Exchange vulnerability exploitability status using VEX and CSAF, and prioritize response based on
risk.</li><li>Analyze the license compatibility of all components to identify conflicts that may arise from
combining them, in advance.</li></ul><h3 id="storage-and-operations">Storage and Operations</h3><ul><li>Store and transmit SBOMs securely using encryption and access control, and clearly distinguish
between public and private scope.</li><li>Check the accuracy and completeness of SBOMs through regular audits.</li><li>Run training and awareness programs on the role of SBOM, from developers to the security team.</li></ul><h2 id="adoption-checklist">Adoption Checklist</h2><p>A checklist for reviewing what has been done at each stage.</p><table><thead><tr><th>Stage</th><th>Checklist Item</th></tr></thead><tbody><tr><td>Foundational</td><td>Identify critical assets and establish an adoption plan</td></tr><tr><td>Foundational</td><td>Decide on the SBOM format (SPDX/CycloneDX) and minimum data requirements</td></tr><tr><td>Foundational</td><td>Select a secure repository and tools</td></tr><tr><td>Foundational</td><td>Reflect the SBOM provision requirement in procurement contracts</td></tr><tr><td>Developing</td><td>Assign unique identifiers to components</td></tr><tr><td>Developing</td><td>Map supplier SBOMs to internal SBOMs</td></tr><tr><td>Developing</td><td>Integrate automatic SBOM generation into the build pipeline (CI/CD)</td></tr><tr><td>Developing</td><td>Apply secure configuration management, including access control and encryption</td></tr><tr><td>Scaling</td><td>Track SBOM linked with vulnerability databases</td></tr><tr><td>Scaling</td><td>Integrate VEX/CSAF-based exploitability management with incident response</td></tr><tr><td>Scaling</td><td>Run regular review, audits, and awareness programs</td></tr></tbody></table><h2 id="next-steps">Next Steps</h2><p>If you develop AI systems or exchange them across the supply chain, you need to add an AI-specific
layer — models, datasets, and training compute — on top of the SBOM capabilities covered in this
guide. The component, license, and vulnerability management practices of a general SBOM carry over
directly into the software layer of an AI BOM. This is covered in detail in the separate<a href="/en/docs/ai-sbom_guide/">AI SBOM Compliance Guide</a>.</p><h2 id="sources">Sources</h2><p>NTIA (2021).<em>The Minimum Elements For a Software Bill of Materials (SBOM)</em>. CISA (2024).<em>Framing
Software Component Transparency</em>, Third Edition. CERT-In.<em>Technical Guidelines on Software Bill of
Materials (SBOM)</em>. Regulation (EU) 2024/2847 — Cyber Resilience Act. (all accessed:
June 14, 2026)</p>
]]></content:encoded></item><item><title>Sharing and Governance</title><link>https://haksungjang.github.io/en/docs/sbom_guide/7-governance/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/7-governance/</guid><description>Summarizes SBOM access control and disclosure scope, secure sharing channels, and roles-and-responsibilities governance.</description><content:encoded>&lt;![CDATA[<p>An SBOM creates value only when it is delivered along the supply chain, but it is also sensitive
material that contains trade secrets and attack surface. Without governance that determines who
shares what, and how, excessive disclosure heightens risk, and excessive restriction forfeits value.</p><h2 id="access-control-and-disclosure-scope">Access Control and Disclosure Scope</h2><p>Access to SBOM data is managed through Role-Based Access Control (RBAC). Because access needs
differ by stakeholder, general users are granted read-only access, administrators are granted edit
and update access, and sensitive information is granted restricted access.</p><p>For disclosure scope, maintaining two versions is common practice.</p><ul><li><strong>Public SBOM</strong>: Contains non-sensitive information that can be shared with all stakeholders.</li><li>Private SBOM: Contains sensitive information, such as vulnerabilities, and only approved parties can access it.</li></ul><p>Regulation reflects this distinction as well. The EU Cyber Resilience Act does not require an SBOM
to be disclosed to the general public, but requires it to be retained in case market surveillance
authorities request it. Amid the tension between consumers wanting a more complete SBOM and
producers wanting to reduce disclosure, the public/private split is a practical device that
reconciles the two.</p><h2 id="secure-sharing-channels">Secure Sharing Channels</h2><p>When delivering an SBOM, both integrity and confidentiality need to be preserved.</p><ul><li>Use a secure protocol such as HTTPS for transmission, and ensure integrity and confidentiality through digital signatures or encryption.</li><li>Use a sharing platform equipped with access control and audit capabilities.</li><li>Use API integration for automated exchange between systems, and dedicated repositories for industry- or community-level sharing.</li></ul><p>Attach a digital signature to the document so recipients can verify its authenticity and check for
tampering, and clearly mark which information is public and which is private.</p><h2 id="roles-and-responsibilities">Roles and Responsibilities</h2><p>An SBOM program works only when multiple departments share responsibility for it. It should
include an executive sponsor, project leads, systems and design engineers, procurement
specialists, and operations personnel, adding IT, cybersecurity, and maintenance staff as security
needs require. When roles are scattered, responsibility scatters with them, so establishing clear
ownership is the starting point.</p><p>The key activities in building governance are as follows.</p><ul><li>Identify key stakeholders: Include representatives from development, IT operations, security,
procurement, legal, and business leadership, and be sure to include a cybersecurity expert.</li><li>Define responsibilities and assign ownership: Decide who will handle SBOM generation and
consumption, vulnerability monitoring, supplier engagement, and security data management, and
designate a cybersecurity expert as the program owner or co-owner.</li><li>Establish a governance structure: A governance body with participation from stakeholders across
the organization develops policies, standards, and processes, and implements data protection
controls.</li><li>Train and monitor: Train personnel on SBOM security requirements and secure data handling, and
continuously assess the program&rsquo;s security posture through regular audits, adjusting it to
evolving threats and compliance requirements.</li></ul><h2 id="sources">Sources</h2><p>CISA (2024).<em>Framing Software Component Transparency</em>, Third Edition. CERT-In.<em>Technical Guidelines
on Software Bill of Materials (SBOM)</em>. Regulation (EU) 2024/2847 — Cyber Resilience Act, Annex I
Part II. (all accessed: June 14, 2026)</p>
]]></content:encoded></item><item><title>Vulnerability Management and VEX</title><link>https://haksungjang.github.io/en/docs/sbom_guide/6-vulnerability/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/6-vulnerability/</guid><description>Covers how to link an SBOM to vulnerability data for tracking, and the VEX/CSAF framework for exchanging exploitability information.</description><content:encoded>&lt;![CDATA[<p>The most direct use of an SBOM is vulnerability management. With a component list in hand,
affected assets can be looked up immediately when a new vulnerability is disclosed. But listing
components in an SBOM brings along every past CVE for those components, creating a problem of
exploding false positives. Vulnerability Exploitability eXchange (VEX) is what solves this
problem.</p><h2 id="sbom-based-vulnerability-tracking">SBOM-Based Vulnerability Tracking</h2><p>The basic flow of tracking is simple. Each component in an SBOM is matched against vulnerability
databases (NVD, CVE) using an<a href="/en/docs/sbom_guide/2-standards/2-identifiers/">identifier such as PURL or CPE</a> to
map known vulnerabilities. A supplier can pre-map vulnerability information into an SBOM and
provide customers with an enriched SBOM, while a consumer can link its own SBOM to vulnerability
data through an API or data feed to set response priorities.</p><p>To increase effectiveness, a shift-left approach that moves checks earlier in development is
recommended. Integrating security tools into the development pipeline and automatically
analyzing SBOM data at early stages such as build and packaging catches vulnerabilities before
release.</p><h2 id="vex-sorting-out-exploitability">VEX: Sorting Out Exploitability</h2><p>VEX is a document in which a manufacturer asserts &ldquo;is this vulnerability actually exploitable in
our product,&rdquo; helping consumers make priority judgments. Where an SBOM answers &ldquo;what is inside,&rdquo;
VEX answers &ldquo;does a known vulnerability inside actually affect this product.&rdquo; Even if a
component has a vulnerability, it may be unexploitable if the affected code path is never
invoked; VEX states this status explicitly, reducing unnecessary response effort.</p><p>A VEX document notates the vulnerability status of a specific product using the following four
states.</p><ul><li><strong>Not affected</strong>: No remediation is needed for this vulnerability.</li><li>Affected: A fix or mitigating action is recommended.</li><li>Fixed: The vulnerability fix is included in the given product version.</li><li>Under Investigation: Whether the product is affected has not yet been confirmed and will be
updated later.</li></ul><p>VEX is not a single format; CSAF VEX, OpenVEX, and CycloneDX VEX coexist. CycloneDX is
distinguished by expressing VEX natively within the format itself.</p><h2 id="csaf-structuring-advisories">CSAF: Structuring Advisories</h2><p>Common Security Advisory Framework (CSAF) 2.0 is a standard that structures security advisories
in a machine-readable form, and it includes a VEX profile. OASIS approved it as a formal
standard in November 2022. Where VEX communicates exploitability status, CSAF delivers a
detailed advisory that includes a vulnerability description, affected versions, a severity
assessment (CVSS score), and recommended mitigation steps.</p><p>The practical turning point for adoption was Red Hat. Red Hat&rsquo;s Product Security team began
publishing CSAF/VEX files for every CVE in its database in 2023, and has since moved to full
production, publishing them on an ongoing basis.</p><h2 id="case-study-log4shell">Case Study: Log4Shell</h2><p>The Log4j vulnerability (Log4Shell), disclosed in December 2021, is a case that shows how SBOM,
VEX, and CSAF interlock.</p><p><img src="/docs/sbom_guide/6-vulnerability/vulnerability-response-en.png" alt="The flow from discovering the Log4j vulnerability through VEX, a CSAF advisory, and patch guidance, to using an SBOM to locate and respond to affected systems"/><p><strong>Figure 1.</strong> The interplay of SBOM, VEX, and CSAF in the Log4Shell response<em>(source:
reconstructed from CERT-In technical guidelines. Retrieved 2026-06-14)</em></p><p>When the vulnerability was disclosed, maintainers issued a VEX stating the exploitable status,
followed by a CSAF advisory containing the vulnerability description, affected versions, CVSS
10.0 (the highest severity), and mitigation steps. Organizations that included Log4j as a
component integrated this VEX and CSAF data into their own SBOMs, identifying the affected parts
of their systems and setting response priorities. The core point of this case is that, had an
SBOM already been in place, &ldquo;where is Log4j&rdquo; could have been answered with a single query.</p><h2 id="sources">Sources</h2><p>OASIS Open (2022).<em>CSAF 2.0</em>.<a href="https://www.oasis-open.org/2022/11/21/new-version-of-csaf-standard/">https://www.oasis-open.org/2022/11/21/new-version-of-csaf-standard/</a>.
CISA.<em>Vulnerability Exploitability eXchange (VEX)</em>.<a href="https://www.cisa.gov/sbom">https://www.cisa.gov/sbom</a>. OpenVEX<a href="https://github.com/openvex">https://github.com/openvex</a>. NVD.<em>CVE-2021-44228</em>.<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228">https://nvd.nist.gov/vuln/detail/CVE-2021-44228</a>.
Red Hat (2023).<em>VEX files now available</em>. (All retrieved: 2026-06-14)</p>
]]></content:encoded></item><item><title>6. Conformance Declaration</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/6-conforming/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/6-conforming/</guid><description>An enterprise that has built an open source program (open source policy / process / tools / organization) conforming to all the requirements of ISO/IEC 5230 and ISO/IEC 18974 must document and declare the following two items.
(1) Confirming That Standard Requirements Are Met ISO/IEC 5230 and ISO/IEC 18974 require a document confirming that the program meets all requirements, as follows:
ISO/IEC 5230 - License Compliance 3.6.1.1 A document affirming the program specified in §3.1.4 satisfies all the requirements of this document.
A document affirming that the program specified in §3.1.4 satisfies all the requirements of this specification ISO/IEC 18974 - Security Assurance 3.4.1.1: Documented Evidence affirming the Program specified in §3.1.4 satisfies all the requirements of this document.
Documented evidence affirming that the Program specified in §3.1.4 satisfies all the requirements of this document. To this end, an enterprise must prepare a document containing the following content:</description><content:encoded>&lt;![CDATA[<p>An enterprise that has built an open source program (open source policy / process / tools / organization) conforming to all the requirements of ISO/IEC 5230 and ISO/IEC 18974 must document and declare the following two items.</p><h3 id="1-confirming-that-standard-requirements-are-met">(1) Confirming That Standard Requirements Are Met</h3><p>ISO/IEC 5230 and ISO/IEC 18974 require a document confirming that the program meets all requirements, as follows:</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.6.1.1 A document affirming the program specified in §3.1.4 satisfies all the requirements of this document.<br><code>A document affirming that the program specified in §3.1.4 satisfies all the requirements of this specification</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.4.1.1: Documented Evidence affirming the Program specified in §3.1.4 satisfies all the requirements of this document.<br><code>Documented evidence affirming that the Program specified in §3.1.4 satisfies all the requirements of this document.</code></li></ul></div><p>To this end, an enterprise must prepare a document containing the following content:</p><pre tabindex="0"><code>The open source program of [Company Name] meets all the requirements of ISO/IEC 5230:2020 (open source license compliance) and ISO/IEC 18974 (open source security assurance).
This can be confirmed through the following documents and processes:
1. Open source policy document
2. Open source process document
3. Open source training and assessment records
4. SBOM (Software Bill of Materials) management system
5. Open source license compliance artifact generation and retention system
6. Open source security vulnerability management system
7. External inquiry response process records
[Date]
[Signature of Open Source Program Manager]</code></pre><h3 id="2-declaring-continued-conformance-assurance">(2) Declaring Continued Conformance Assurance</h3><p>ISO/IEC 5230 and ISO/IEC 18974 also require a document confirming that all requirements continue to be met for 18 months after obtaining conformance certification:</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.6.2.1 A document affirming the program meets all the requirements of this document, within the past 18 months of obtaining conformance validation.<br><code>A document affirming that the program has met all the requirements of this specification version (v2.1) during the past 18 months since obtaining conformance validation</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.4.2.1: A document affirming the Program meets all the requirements of this specification, within the past 18 months of obtaining conformance validation.<br><code>A document affirming that the program has met all the requirements of this specification during the past 18 months since obtaining conformance validation</code></li></ul></div><p>To this end, an enterprise must prepare and periodically update a document containing the following content:</p><pre tabindex="0"><code>[Company Name] guarantees that it will maintain a state of meeting all requirements for at least 18 months after obtaining conformance certification for ISO/IEC 5230:2020 (open source license compliance) and ISO/IEC 18974 (open source security assurance).
To this end, the following activities are carried out:
1. Conduct an internal audit at least every 6 months to verify that all requirements continue to be met
2. Obtain an external expert review at least once a year to assess the program's effectiveness
3. Provide ongoing training and competency assessment for program participants
4. Regularly review and update the open source policy and processes
5. Monitor and respond to changes in new technology trends and legal requirements
[Date]
[Signature of Open Source Program Manager]</code></pre><p>An enterprise can include this document in its open source policy or publish it on a publicly accessible website. For example,<a href="https://www.sktelecom.com/">SK telecom</a> publishes this content on its own open source portal site:<img src="/docs/opensource_for_enterprise/6-conforming/sktiso.png" alt=""><a href="https://sktelecom.github.io/compliance/iso5230/">https://sktelecom.github.io/compliance/iso5230/</a>
Through this documentation, an enterprise satisfies all the requirements of ISO/IEC 5230 and ISO/IEC 18974, and can guarantee ongoing management and improvement of its open source license compliance and security assurance.</p><p><img src="/docs/opensource_for_enterprise/6-conforming/totalno.png" alt=""/>
]]></content:encoded></item><item><title>Tools</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/</guid><description>Introduces the key features and usage of open source tools that generate and analyze AI SBOMs, with actual execution screens.</description><content:encoded>&lt;![CDATA[<p>This section covers open source tools that automate AI SBOM compliance. It summarizes each tool&rsquo;s key
features, installation, and usage together with actual execution results. This elaborates, tool by tool, on
the categories seen in the automation maturity map in<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a>.</p><p>There is a boundary worth stating honestly. Tools generate a BOM automatically, but they cannot guarantee
that the license information in the generated BOM is accurate or that no components are missing. In the tool
comparison below, OWASP AIBOM Generator fills in license information from model cards, while cdxgen quickly
identifies dependencies but leaves the license field empty. Look at this difference when choosing a tool.</p><h2 id="tools-at-a-glance">Tools at a Glance</h2><table><thead><tr><th>Tool</th><th>Input</th><th>Output</th><th>Strengths</th><th>Covered In</th></tr></thead><tbody><tr><td>OWASP AIBOM Generator</td><td>Hugging Face model ID</td><td>CycloneDX 1.6/1.7</td><td>Model card and license metadata, completeness score</td><td><a href="/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/">Go to section</a></td></tr><tr><td>cdxgen</td><td>Project directory, model files</td><td>CycloneDX</td><td>Automatic dependency identification, CI/CD integration</td><td><a href="/en/docs/ai-sbom_guide/5-tools/2-cdxgen/">Go to section</a></td></tr><tr><td>Lab700x, Trivy, Syft</td><td>Model binaries, containers, virtual environments</td><td>Reports, SBOM</td><td>Static model analysis, inference server and package identification</td><td><a href="/en/docs/ai-sbom_guide/5-tools/3-scanners/">Go to section</a></td></tr></tbody></table><p>Each tool automates part of the generation, analysis, or management stage. No single tool solves everything,
so combine tools that generate AI SBOMs (OWASP AIBOM Generator, cdxgen) with tools that analyze security
(Lab700x, Trivy) and a tool that manages them
(<a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/7-dependency-track/">Dependency-Track</a>).</p>
]]></content:encoded></item><item><title>5. Training</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/5-training/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/5-training/</guid><description>1. Training No matter how excellent the policy and process an enterprise builds, they are useless if none of its employees pay any attention to them. For open source policy and process to work effectively within an enterprise, employee training is essential.
An enterprise must provide practical means, such as training and internal wikis, so that every program participant is aware that an open source policy exists within the organization and can carry out the necessary activities. Here, program participants refers to all employees involved in the enterprise&amp;rsquo;s software development, distribution, and contribution activities, including software developers, release engineers, and quality engineers.</description><content:encoded>&lt;![CDATA[<h2 id="1-training">1. Training</h2><p>No matter how excellent the policy and process an enterprise builds, they are useless if none of its employees pay any attention to them. For open source policy and process to work effectively within an enterprise, employee training is essential.</p><p>An enterprise must provide practical means, such as training and internal wikis, so that every program participant is aware that an open source policy exists within the organization and can carry out the necessary activities. Here, program participants refers to all employees involved in the enterprise&rsquo;s software development, distribution, and contribution activities, including software developers, release engineers, and quality engineers.</p><p>To this end, the ISO standards commonly require a documented procedure for communicating the open source policy, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.1.2 - A documented procedure that makes program participants aware of the existence of the open source policy (e.g., via training, internal wiki, or other practical communication method).<br><code>A documented procedure that makes program participants aware of the existence of the open source policy (e.g., via training, internal wiki, or other practical communication method)</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.1.2: A documented procedure to make Program Participants aware of the Security Assurance policy.<br><code>A documented procedure to make Program Participants aware of the Security Assurance policy.</code></li></ul></div><p>Many enterprises publish their open source policy document on an internal wiki site so that any employee can check what they need. In addition, they mandate open source policy training during new hire onboarding, and provide periodic training to program participants once a year or once every two years, so that every program participant is aware that the open source policy exists.</p><p>An enterprise must write up these methods and include them in the open source policy document, as in the example below.</p><pre tabindex="0"><code>5. Training and Assessment
All members holding a role defined in Chapter 4 must complete the advanced open source training course offered on the [Learning Portal]. This ensures familiarity with the open source policy, the related training policy, and how to look it up. Training records and assessment results are retained on the [Learning Portal] for at least 3 years.</code></pre><p>An enterprise must make program participants aware of its open source policy, its open-source-related objectives, how participants can contribute to making the open source program effective, and the implications of failing to comply with program requirements. To this end, the enterprise must provide training, conduct assessments to confirm that program participants have correctly understood these points, and document and retain the assessment results.</p><p>The ISO standards commonly require documented evidence showing that program participants&rsquo; awareness has been assessed, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.3.1 - Documented evidence of assessed awareness for the program participants - which should include the program&rsquo;s objectives, one&rsquo;s contribution within the program, and implications of program non-conformance.<br><code>Documented evidence that the program participants' awareness of the following has been assessed: the program's objectives, how participants contribute within the program, and the implications of program non-conformance</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.3.1: Documented Evidence of assessed awareness for the Program Participants - which should include the Program&rsquo;s objectives, one&rsquo;s contribution within the Program, and implications of Program non-conformance.<br><code>Documented evidence that the program participants' awareness of the following has been assessed: the program's objectives, how participants contribute within the program, and the implications of program non-conformance.</code></li></ul></div><p>Accordingly, an enterprise can include content such as the following example in its open source policy.</p><pre tabindex="0"><code>1. Purpose
(1) Purpose of the Policy
This policy provides the following principles for the entire organization involved in software development, service, and distribution at OOO Corporation (hereinafter "the Company") to properly use open source software (hereinafter "open source").
1. Principles of open source compliance / security assurance
2. Principles for contributing to external open source projects
3. Principles for releasing internal projects as open source
These principles provide a way for every member of the Company to understand the value of open source, use open source correctly, and contribute to the open source community.
Every member of the Company can check the open source policy at the following link on the internal wiki: [internal_link]
(2) Consequences of Non-Compliance
Failure to comply with this policy may result in the following situations.
- The Company may receive external requests for open source license compliance.
- The Company may be forced to unintentionally disclose source code it developed.
- The Company may be sued by open source copyright holders.
- The Company may be fined for copyright infringement or breach of contract, or ordered to halt product sales.
- The Company's reputation may be damaged.
- The Company may breach a contract with a supplier and be subject to a claim for damages.
- The Company may be exposed to a serious security incident, causing substantial harm to the Company.
For these reasons, the Company regards violations of the open source policy seriously, and members or organizations that violate it may be subject to disciplinary action.
(3) How Members Can Contribute
Every member of the Company can contribute to the effectiveness of this policy and to improving the Company's compliance level by understanding the rationale and content of this policy and faithfully carrying out the required activities.</code></pre><p>Assessment is explained in more detail again below.</p><p>Open source training also includes content on the open source contribution policy. Even if an enterprise has created an open source contribution policy, if internal members are unaware that it exists, there is a risk that indiscriminate contribution activity could cause harm to both individuals and the company.</p><p>To address this, the ISO/IEC 5230 standard requires a documented procedure that makes all program participants aware of the existence of the open source contribution policy, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.5.1.3 - A documented procedure that makes all program participants aware of the existence of the open source contribution policy (e.g., via training, internal wiki, or other practical communication method).<br><code>A documented procedure that makes all program participants aware of the existence of the open source contribution policy (e.g., via training, internal wiki, or other practical communication method)</code></li></ul></div><p>Accordingly, an enterprise must provide open source training so that all in-house developers are aware that the open source contribution policy exists.</p><p>Creating training materials from scratch can also be difficult for someone new to the role. To help with this difficulty, NCSOFT made its internal open source training materials available to anyone by publishing the lesson slides (PPT) and lecture scripts on GitHub.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/5-training/ncsofttraining_hu_99d8b656159f9e27.png" width="900" height="483"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://github.com/ncsoft/oss-basic-training</i></center></p></figcaption></figure><p>Additionally, Kakao, a leading domestic platform company, has also made its open source training materials for in-house developers publicly available for anyone to view.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/5-training/kakaotraining_hu_2f60a795ba2987ca.png" width="900" height="507"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>http://t1.kakaocdn.net/olive/assets/opensource_guide_kakao.pdf</i></center></p></figcaption></figure><p>If an enterprise has not yet created its own training materials, making use of the open source training materials from these leading enterprises is also a good approach.</p><h2 id="2-assessment">2. Assessment</h2><p>Once an enterprise has assigned an owner for each role, it must confirm that the assigned owner is qualified to perform the role based on education, training, and experience. Program participants with insufficient competency must also be given training to build sufficient competency. The enterprise must then assess whether each participant has the required competency and retain the results.</p><p>To this end, the ISO standards commonly require documented evidence that program participants&rsquo; competency has been assessed, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.2.3 - Documented evidence of assessed competence for each program participant.<br><code>Documented evidence of assessed competence for each program participant</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.2.4 - Documented evidence of assessed competence for each Program Participant;<br><code>Documented evidence of assessed competence for each Program Participant</code></li></ul></div><p>Accordingly, an enterprise must carry out training and assessment and retain the results, as follows.</p><ol><li>The enterprise provides training so that each participant can acquire the necessary competencies.</li><li>An assessment is conducted based on the training content.</li><li>The assessment results are retained by the enterprise&rsquo;s training system or HR department.</li></ol><p>When there are hundreds or more program participants, making delivering training difficult, using the enterprise&rsquo;s online training and assessment system is also a good approach.</p><p>Content such as this can be included in an enterprise&rsquo;s open source policy as follows.</p><pre tabindex="0"><code>4. Roles, Responsibilities, and Competencies
To ensure the effectiveness of this policy, the roles and responsibilities and the competencies required of the owner of each role are defined as follows.
The responsible organization/owner and the required competency level for each role are defined in [Appendix 1. Assigned Owners].
5. Training and Assessment
All members holding a role defined in Chapter 4 must complete the advanced open source training course offered on the [Learning Portal]. This ensures familiarity with the open source policy, the related training policy, and how to look it up.
Training records and assessment results are retained on the [Learning Portal] for at least 3 years.</code></pre><h2 id="3-open-source-license-guide">3. Open Source License Guide</h2><p>To properly comply with open source licenses, one must accurately know the requirements of each open source license. However, since it is difficult for individual software developers to grasp all of this on their own, it is advisable for the Open Source Program Manager to summarize the requirements and cautions for common use cases of frequently used open source licenses and share them within the company.</p><p>The open source license guide should include the requirements for common open source license use cases, enabling development teams to properly comply with license obligations while using open source.</p><p>To this end, the ISO/IEC 5230 standard requires a documented procedure for handling common open source license use cases for the open source components within software to be distributed, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.3.2.1 - A documented procedure for handling the common open source license use cases for the open source components of the supplied software.<br><code>A documented procedure for handling the common open source license use cases for the open source components of the supplied software</code></li></ul></div><p>To handle open source license use cases, a license guide organized by open source license is needed. For a general guide to open source licenses and a summary of license obligations, the<a href="https://www.olis.or.kr/license/licenseGuide.do">License Guide</a> provided by the Korea Copyright Commission can be referenced.</p><p>The<a href="https://sktelecom.github.io/guide/use/obligation/">Obligations by License</a> document within SK telecom&rsquo;s open source guide is also a good resource.</p><p><img src="/docs/opensource_for_enterprise/5-training/sktlicenseguide.png" alt=""><a href="https://sktelecom.github.io/guide/use/obligation/gpl-2.0/">https://sktelecom.github.io/guide/use/obligation/gpl-2.0/</a></p><p>An enterprise must provide the open source license guide in a location that members can easily access and reference.</p><h2 id="4-awareness-raising-activities">4. Awareness-Raising Activities</h2><p>To continuously raise program participants&rsquo; awareness of open source license compliance and security assurance, the following activities are carried out:</p><h3 id="1-regular-newsletter-publication">(1) Regular Newsletter Publication</h3><ul><li>The Open Source Program Manager publishes an open-source-related newsletter once a month.</li><li>The newsletter includes the latest open source trends, license compliance cases, security vulnerability information, and more.</li><li>It is distributed by email to all program participants and also posted on the internal intranet.</li></ul><h3 id="2-workshops-and-seminars">(2) Workshops and Seminars</h3><ul><li>Open-source-related workshops or seminars are held quarterly.</li><li>External experts are invited to give talks on open source licenses, security, and the latest technology trends.</li><li>Program participants are encouraged to attend, and attendance records are kept.</li></ul><h3 id="3-open-source-contribution-encouragement-program">(3) Open Source Contribution Encouragement Program</h3><ul><li>A program encouraging program participants to contribute to external open source projects is run.</li><li>An incentive system for contribution activity is established, and outstanding contributors are selected and rewarded quarterly.</li><li>Contribution activities are shared within the company and reflected in performance evaluations.</li></ul><h2 id="5-measuring-and-improving-training-effectiveness">5. Measuring and Improving Training Effectiveness</h2><p>To continuously measure and improve the effectiveness of the open source training program, the following activities are carried out:</p><h3 id="1-training-program-evaluation-metrics">(1) Training Program Evaluation Metrics</h3><ul><li>The training program is evaluated using the following quantitative and qualitative metrics:<ul><li>Training completion rate</li><li>Assessment test scores</li><li>Reduction rate in the number of license compliance violations</li><li>Reduction rate in security vulnerability response time</li><li>Program participant satisfaction score</li></ul></li></ul><h3 id="2-feedback-collection-and-analysis">(2) Feedback Collection and Analysis</h3><ul><li>Feedback is collected from participants after every training program ends.</li><li>Opinions on the training content, instructor, and training method are collected through an online survey.</li><li>The collected feedback is analyzed to identify areas for improvement.</li></ul><h3 id="3-establishing-a-continuous-improvement-plan">(3) Establishing a Continuous Improvement Plan</h3><ul><li>Based on the evaluation metric results and feedback analysis, a training program improvement plan is established semiannually.</li><li>The Open Source Program Manager reports the improvement plan to the OSRB and obtains approval.</li><li>The approved improvements are reflected in the next training program, and their effectiveness is monitored.</li></ul><p>Through these activities, program participants&rsquo; awareness of open source can be raised, and the effectiveness of the training program can be continuously improved.</p><h2 id="6-summary">6. Summary</h2><p>By building the training, assessment, awareness-raising activities, and training-effectiveness measurement and improvement process described so far, an enterprise can satisfy the key requirements of the ISO/IEC 5230 and ISO/IEC 18974 standards.</p><p><img src="/docs/opensource_for_enterprise/5-training/trainingno.png" alt=""/><p>Through this training and assessment system, an enterprise can raise program participants&rsquo; understanding of open source license compliance and security assurance and continuously improve their competency. In addition, through regular assessment and improvement activities, the effectiveness of the program can be continuously enhanced.</p><p>Ultimately, this will help raise an enterprise&rsquo;s level of open source management, minimize the legal risk arising from open source use, and strengthen its ability to respond to security vulnerabilities.</p>
]]></content:encoded></item><item><title>Tools and Automation</title><link>https://haksungjang.github.io/en/docs/sbom_guide/5-tools/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/5-tools/</guid><description>Covers SBOM generation, management, and scanning tools, and where automation ends and human responsibility begins.</description><content:encoded>&lt;![CDATA[<p>An SBOM workflow is not completed by a single tool. The three capabilities of generation,
vulnerability matching, and lifecycle management are split across different tools, and the
common conclusion of recent tool comparison analyses is that no single tool covers all three
areas completely. It is more accurate to think of it as assembling a pipeline from a combination
of tools.</p><h2 id="the-division-of-labor-among-generation-management-and-scanning">The Division of Labor Among Generation, Management, and Scanning</h2><p><img src="/docs/sbom_guide/5-tools/tool-roles-en.png" alt="Three categories of SBOM tools — generation, management, and matching — divide roles, with management and matching exchanging data on every new vulnerability"/><p><strong>Figure 1.</strong> The three roles of SBOM tools<em>(source: compiled from tool comparison analyses,
2026-01. Retrieved 2026-06-14)</em></p><p>In the generation space, Anchore&rsquo;s Syft is regarded as &ldquo;the dedicated tool that does SBOM
generation, and only that, best.&rdquo; Its attestation workflow, combined with the signing tool
cosign, is mature. OWASP CycloneDX&rsquo;s cdxgen is distinguished by broad support for multiple
languages and container images, and by a dedicated AI BOM mode.</p><p>In the management space, OWASP Dependency-Track has established itself as a platform for
monitoring component usage and security/license compliance across an organization&rsquo;s entire
application portfolio. Eclipse SW360 is another option centered on license compliance.</p><p>In the scanning space, Grype takes an SBOM as input and matches it against vulnerabilities,
while Aqua Security&rsquo;s Trivy is both a scanner and an SBOM generator.</p><table><thead><tr><th>Role</th><th>Representative open source tools</th><th>Characteristics</th></tr></thead><tbody><tr><td>Generation</td><td>Syft, cdxgen</td><td>Syft is generation-only with mature attestation; cdxgen offers multi-language support and an AI BOM mode</td></tr><tr><td>Management</td><td>Dependency-Track, SW360</td><td>Portfolio monitoring, license and vulnerability tracking</td></tr><tr><td>Matching/Scanning</td><td>Grype, Trivy</td><td>Matches an SBOM against a vulnerability database</td></tr></tbody></table><p><strong>Table 1.</strong> Classification of SBOM tools by role<em>(source: compiled from tool comparison
analyses, 2026-01. Retrieved 2026-06-14)</em></p><h2 id="how-far-does-automation-go">How Far Does Automation Go</h2><p>It is important to honestly distinguish between areas where automation works well and areas that
people must fill in.</p><table><thead><tr><th>Task</th><th>Automation maturity</th></tr></thead><tbody><tr><td>Code/dependency SBOM generation</td><td>Mature</td></tr><tr><td>Container image component identification</td><td>Mature</td></tr><tr><td>SBOM storage and vulnerability monitoring</td><td>Mature</td></tr><tr><td>Automated license identifier extraction</td><td>Partial (requires review)</td></tr><tr><td>Interpreting non-standard licenses and tracking compliance</td><td>Immature (people/policy)</td></tr></tbody></table><p><strong>Table 2.</strong> Automation maturity of SBOM tasks<em>(source: compiled from tool comparison analyses.
Retrieved 2026-06-14)</em></p><p>Tools do generation well. Put Syft or cdxgen into the build pipeline, and the component list
fills in automatically. But whether the license field of a generated SBOM is accurate, whether
the obligations of a non-standard license are met, and whether obligations propagate downstream
without omission are things no tool guarantees automatically. This area is filled by policy and
human review.</p><h2 id="the-tool-itself-is-an-attack-surface">The Tool Itself Is an Attack Surface</h2><p>Before trusting an automation tool, its own integrity must be verified. In January 2026, a case
was reported in which an SBOM tool was implicated in two supply chain attacks within a short
period, with the damage spreading to downstream projects. On this basis, some pipeline operators
removed the tool in question.</p><p>The fact that an SBOM generation tool can itself become a target of supply chain risk requires
combining hashes, signatures, and attestations at the generation and verification stages. This
same concern lies behind CISA&rsquo;s 2025 minimum elements draft adding Tool Name, Generation Context,
and Component Hash as new fields. Avoiding the paradox that &ldquo;an SBOM made by an untrustworthy
tool cannot be trusted&rdquo; requires pinning tool versions, verifying provenance, and signing the
output.</p><h2 id="sources">Sources</h2><p>Anchore.<em>Syft</em><a href="https://github.com/anchore/syft">https://github.com/anchore/syft</a>,<em>Grype</em><a href="https://github.com/anchore/grype">https://github.com/anchore/grype</a>.
OWASP.<em>cdxgen</em><a href="https://github.com/CycloneDX/cdxgen">https://github.com/CycloneDX/cdxgen</a>,<em>Dependency-Track</em><a href="https://dependencytrack.org/">https://dependencytrack.org/</a>. Aqua Security.<em>Trivy</em><a href="https://github.com/aquasecurity/trivy">https://github.com/aquasecurity/trivy</a>. Eclipse<em>SW360</em><a href="https://www.eclipse.org/sw360/">https://www.eclipse.org/sw360/</a>.
(All retrieved: 2026-06-14)</p>
]]></content:encoded></item><item><title>AI SBOM Compliance Guide</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/</guid><description>An enterprise practice guide that explains the requirements of the OpenChain AI SBOM Compliance Guide (Version 1.0) clause by clause.</description><content:encoded>&lt;![CDATA[<p>This guide explains, one by one, each requirement of<em>AI System Bill of Materials — Compliance
Management Guide for the Supply Chain</em> (Version 1.0), published by the OpenChain AI Work Group.
It walks through what verification material each clause requires, how to comply with it, and
what samples and tools are ready to use.</p><p>This specification carries the same structure as ISO/IEC 5230, the open source license
compliance standard — requirements, verification material, and rationale — over into the AI
supply chain. It brings into scope not only code but also the licensing and transparency
obligations of model weights, training datasets, and the Model Tree.</p><p><strong>Author : OpenChain Korea Work Group /<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></strong></p><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Note</div><p>All 10 requirements (3.1–3.10) per the specification body have been written. The compare page
that positions the standards relative to each other is still being expanded.</p></div><h2 id="intended-audience">Intended Audience</h2><ul><li>Compliance staff at organizations that develop AI systems or exchange them through the supply chain</li><li>Practitioners who have an open source compliance (ISO/IEC 5230) program in place and want to extend it into AI</li><li>Legal, security, and development staff who need to check the licensing and transparency obligations of AI models and datasets</li></ul><h2 id="how-to-use-this-guide">How to Use This Guide</h2><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">Division of Roles Between the OpenChain Specification and the KWG Practice Guide</div><p>The OpenChain specification defines &ldquo;what must be demonstrated.&rdquo; This guide fills in &ldquo;how to
achieve it.&rdquo; Each clause page does more than restate the specification&rsquo;s requirements — it walks
through the actual procedures, samples, tools, and how to handle the parts that tools alone
cannot fill.</p></div><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Notation — [Specification Requirement] vs [Guide Recommendation]</div><p>The content of each clause page falls into two categories.</p><ul><li><strong>[Specification Requirement]</strong> — Items the AI SBOM Compliance Guide body specifies with<code>shall</code> or as verification material.</li><li><strong>[Guide Recommendation]</strong> — Items not found in the specification body but recommended by the
OpenChain Korea Work Group based on practical experience, best practices, and other standards
(ISO/IEC 5230, 42001, etc.). Adoption is at the organization&rsquo;s discretion.</li></ul><p>Activities presented alongside a verification material number (e.g.,<code>3.1.1</code>) are<strong>[Specification Requirement]</strong>. Enhancements this guide adds, such as automation, tool use, and
intake gates, are<strong>[Guide Recommendation]</strong>.</p></div><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Note on Clause Numbering</div><p>The original specification&rsquo;s table of contents and body section numbers are out of sync (the
&ldquo;3.9 AI content review and approval&rdquo; section listed in the table of contents does not appear in
the body, shifting all subsequent numbers down by one). This discrepancy has been reported to
the OpenChain AI Work Group. This guide follows the<strong>body&rsquo;s section numbers (3.1–3.10)</strong>.</p></div><h2 id="phased-implementation-roadmap">Phased Implementation Roadmap</h2><p>The 10 requirements are divided into four phases by implementation priority. Phase 1 establishes
the program&rsquo;s foundation, Phase 2 builds AI-specific compliance processes, Phase 3 puts
operational structures in place, and Phase 4 establishes governance.</p><hr><h3 id="phase-1--program-foundation">Phase 1 — Program Foundation</h3><p><strong>Goal</strong>: Define the program&rsquo;s scope, establish policy, and secure competence and awareness.</p><table><thead><tr><th style="text-align: center">Done</th><th>Verification Material</th><th>Description</th><th>Detailed Guide</th></tr></thead><tbody><tr><td style="text-align: center">☐</td><td><strong>3.4.1</strong></td><td>Program scope statement</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/4-scope/">3.4 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.1.1</strong></td><td>Documented AI SBOM policy</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.1.2</strong></td><td>Policy awareness procedure</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.2.1~3.2.3</strong></td><td>Role list, competence definitions, competence assessment evidence</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/2-competence/">3.2 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.3.1</strong></td><td>Evidence of participant awareness assessment</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/3-awareness/">3.3 →</a></td></tr></tbody></table><hr><h3 id="phase-2--ai-extension-processes">Phase 2 — AI Extension Processes</h3><p><strong>Goal</strong>: Build AI-specific licensing, transparency, and SBOM processes that cover not just code
but also models, weights, and datasets. This is the area where the AI SBOM Guide expands most on
ISO/IEC 5230.</p><table><thead><tr><th style="text-align: center">Done</th><th>Verification Material</th><th>Description</th><th>Detailed Guide</th></tr></thead><tbody><tr><td style="text-align: center">☐</td><td><strong>3.5.1</strong></td><td>License obligation review and documentation procedure</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.6.1</strong></td><td>Transparency obligation review procedure</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/">3.6 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.9.1</strong></td><td>AI SBOM identification, tracking, review, approval, and archiving procedure</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.9.2</strong></td><td>Records demonstrating procedure compliance</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 →</a></td></tr></tbody></table><hr><h3 id="phase-3--operational-structure">Phase 3 — Operational Structure</h3><p><strong>Goal</strong>: Create a channel for responding to external compliance inquiries, and assign
accountability and resources to the program.</p><table><thead><tr><th style="text-align: center">Done</th><th>Verification Material</th><th>Description</th><th>Detailed Guide</th></tr></thead><tbody><tr><td style="text-align: center">☐</td><td><strong>3.7.1~3.7.2</strong></td><td>Public inquiry channel, internal response procedure</td><td><a href="/en/docs/ai-sbom_guide/3-relevant-tasks/1-access/">3.7 →</a></td></tr><tr><td style="text-align: center">☐</td><td><strong>3.8.1~3.8.5</strong></td><td>Role assignment, resources, legal expertise, remediation procedure</td><td><a href="/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/">3.8 →</a></td></tr></tbody></table><hr><h3 id="phase-4--governance">Phase 4 — Governance</h3><p><strong>Goal</strong>: Put in place a governance framework spanning the full AI system lifecycle, and reflect
emerging AI regulation.</p><table><thead><tr><th style="text-align: center">Done</th><th>Verification Material</th><th>Description</th><th>Detailed Guide</th></tr></thead><tbody><tr><td style="text-align: center">☐</td><td><strong>3.10.1</strong></td><td>AI governance framework and periodic review procedure</td><td><a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">3.10 →</a></td></tr></tbody></table><hr><h2 id="full-clause-checklist">Full Clause Checklist</h2><p>The body of the AI SBOM Compliance Guide consists of<strong>10 clauses and 19 verification material
items</strong> in total (by this guide&rsquo;s verification material numbering).</p><table><thead><tr><th>Clause</th><th>Title</th><th style="text-align: center">Verification Material</th><th>Detail</th></tr></thead><tbody><tr><td>3.1</td><td>Policy</td><td style="text-align: center">2 items</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">Go to →</a></td></tr><tr><td>3.2</td><td>Competence</td><td style="text-align: center">3 items</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/2-competence/">Go to →</a></td></tr><tr><td>3.3</td><td>Awareness</td><td style="text-align: center">1 item</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/3-awareness/">Go to →</a></td></tr><tr><td>3.4</td><td>Program Scope</td><td style="text-align: center">1 item</td><td><a href="/en/docs/ai-sbom_guide/1-program-foundation/4-scope/">Go to →</a></td></tr><tr><td>3.5</td><td>License Obligations</td><td style="text-align: center">1 item</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">Go to →</a></td></tr><tr><td>3.6</td><td>Transparency Obligations</td><td style="text-align: center">1 item</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/">Go to →</a></td></tr><tr><td>3.7</td><td>Access</td><td style="text-align: center">2 items</td><td><a href="/en/docs/ai-sbom_guide/3-relevant-tasks/1-access/">Go to →</a></td></tr><tr><td>3.8</td><td>Effectively Resourced</td><td style="text-align: center">5 items</td><td><a href="/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/">Go to →</a></td></tr><tr><td>3.9</td><td>AI SBOM</td><td style="text-align: center">2 items</td><td><a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">Go to →</a></td></tr><tr><td>3.10</td><td>Governance</td><td style="text-align: center">1 item</td><td><a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">Go to →</a></td></tr></tbody></table><p><strong>Total: 10 clauses / 19 verification material items</strong></p><h2 id="automation-maturity-map">Automation Maturity Map</h2><p>This is an honest breakdown of how far each AI SBOM compliance task is automated by tools today.
For &ldquo;generation,&rdquo; usable open source tools already exist. Interpreting license obligations and
tracking compliance with non-standard licenses, on the other hand, remain the work of people and
policy. Each clause page follows this line to distinguish &ldquo;what a tool handles&rdquo; from &ldquo;what a
person must fill in.&rdquo;</p><table><thead><tr><th>Task</th><th>Automation Level</th><th>Representative Open Source Tool</th></tr></thead><tbody><tr><td>Code/dependency SBOM generation</td><td>Mature</td><td>cdxgen, Syft</td></tr><tr><td>AI model/metadata BOM generation</td><td>Tools emerging</td><td>OWASP AIBOM Generator, cdxgen<code>aibom</code> mode</td></tr><tr><td>Static analysis of model binaries</td><td>Tools emerging</td><td>Lab700x AI SBOM Scanner</td></tr><tr><td>Identifying LLM inference servers and AI packages</td><td>Mature</td><td>Trivy, Syft</td></tr><tr><td>SBOM storage and vulnerability monitoring</td><td>Mature</td><td>Dependency-Track, SW360</td></tr><tr><td>Interpreting license obligations, tracking non-standard compliance</td><td>Immature (people/policy)</td><td>Tool support still developing</td></tr></tbody></table><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Generation by Tool, Interpretation by People</div><p>Several tools already generate AI SBOMs automatically. But whether the license fields in a
generated BOM are accurate, whether the behavioral use restrictions of non-standard licenses
(the RAIL family, the Llama Community License) are respected, and whether obligations propagate
downstream without being dropped — a tool cannot automatically guarantee any of this. Policy and
human review fill this gap. See<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a>
for details.</p></div><p>The installation and use of each tool is covered with execution screens and command output in
the<a href="/en/docs/ai-sbom_guide/5-tools/">Tools</a> section.</p><h2 id="relationship-to-other-standards">Relationship to Other Standards</h2><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Relationship to ISO/IEC 5230 and 42001</div><ul><li><strong>ISO/IEC 5230 (License Compliance)</strong>: The AI SBOM Guide inherits the 5230 methodology
directly. Organizations that already have a 5230 program in place can reuse program
foundations such as policy, competence, and resources, and only need to add the AI extension
areas. See the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/">ISO/IEC 5230 Compliance Guide</a>.</li><li><strong>ISO/IEC 42001 (AI Management System)</strong>: The technical details of AI SBOM formats (SPDX 3.0 AI
Profile, CycloneDX ML-BOM) and generation tools are covered in the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso42001_guide/4-operation/2-ai-sbom/">ISO/IEC 42001 Guide — AI SBOM</a>.
Building on that, this guide focuses on &ldquo;how to operate the compliance program.&rdquo;</li></ul></div><h2 id="original-specification">Original Specification</h2><div class="pageinfo pageinfo-primary"><ul><li><strong>Document</strong>: Artificial Intelligence System Bill of Materials — Compliance Management Guide for
the Supply Chain, Version 1.0</li><li><strong>Published</strong>: OpenChain Project AI Work Group, 2025-10-20</li><li><strong>License</strong>: Creative Commons Attribution 4.0 (CC-BY-4.0)</li><li><strong>Authoritative copy</strong>: Published as PDF and markdown in the OpenChain Reference-Material
repository (<code>AI-SBOM-Compliance/en</code>)</li><li><strong>Announcement</strong>:<a href="https://openchainproject.org/news/2025/10/20/welcoming-the-openchain-ai-system-bill-of-materials-compliance-guide">openchainproject.org</a></li></ul></div>
]]></content:encoded></item><item><title>A Practical Guide to SBOM (Software Bill of Materials)</title><link>https://haksungjang.github.io/en/docs/sbom_guide/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/</guid><description>A guide covering the Software Bill of Materials (SBOM), from its concepts and standard formats to regulatory trends, adoption roadmap, tools, vulnerability management, and governance, organized from the perspective of practitioners in Korea.</description><content:encoded>&lt;![CDATA[<p>A Software Bill of Materials (SBOM) is a formal record of what components make up a piece of
software and how those components connect within the supply chain. A US executive order compares
it to the ingredient list on food packaging. Just as an ingredient list is the starting point for
responding to allergies, an SBOM is the data layer on which vulnerability response, license
management, and asset management all rest. An SBOM is not a security tool in itself, but without
one, an organization cannot immediately answer the question, &ldquo;Where in our product is this library
used?&rdquo;</p><p>This guide covers that data layer from beginning to end. Drawing on primary sources, it explains
why SBOM has moved to the forefront of regulation and procurement, what standards and identifiers
underpin it, in what order organizations adopt it and with what tools they automate it, how they
manage vulnerabilities and licenses, and how they share it securely across the supply chain.</p><h2 id="intended-audience">Intended Audience</h2><ul><li>Security, development, procurement, and legal staff at organizations that develop or procure
software</li><li>Practitioners who must respond to the EU Cyber Resilience Act (CRA) or US federal procurement
requirements</li><li>Teams seeking to establish supply chain transparency and open source license compliance systems</li></ul><h2 id="guide-structure">Guide Structure</h2><p>The guide is divided into eight sections. The earlier sections cover concepts, standards, and
regulation, while the later sections cover the practicalities of adoption and operation. You can
read only the sections you need.</p><table><thead><tr><th>Section</th><th>Content</th><th>Link</th></tr></thead><tbody><tr><td>1. Overview</td><td>SBOM definition, supply chain threats and benefits, levels and classification</td><td><a href="/en/docs/sbom_guide/1-overview/">View</a></td></tr><tr><td>2. Standards and Formats</td><td>SPDX, CycloneDX, minimum elements, identifiers and licenses</td><td><a href="/en/docs/sbom_guide/2-standards/">View</a></td></tr><tr><td>3. Regulatory Trends</td><td>United States, EU CRA, India, and Korea</td><td><a href="/en/docs/sbom_guide/3-regulation/">View</a></td></tr><tr><td>4. Adoption Roadmap</td><td>Step-by-step activities from building the foundation to operational maturity</td><td><a href="/en/docs/sbom_guide/4-adoption/">View</a></td></tr><tr><td>5. Tools and Automation</td><td>Generation, management, and scanning tools, and automation maturity</td><td><a href="/en/docs/sbom_guide/5-tools/">View</a></td></tr><tr><td>6. Vulnerability Management</td><td>SBOM-based tracking, VEX, CSAF, the Log4j case</td><td><a href="/en/docs/sbom_guide/6-vulnerability/">View</a></td></tr><tr><td>7. Sharing and Governance</td><td>Access control, disclosure scope, sharing channels, roles and responsibilities</td><td><a href="/en/docs/sbom_guide/7-governance/">View</a></td></tr><tr><td>8. Recommendations and Checklist</td><td>Key recommendations and an adoption checklist</td><td><a href="/en/docs/sbom_guide/8-checklist/">View</a></td></tr></tbody></table><h2 id="quick-starting-points">Quick Starting Points</h2><p>If you already understand SBOM and are looking for where to start, see<a href="/en/docs/sbom_guide/4-adoption/">4. Adoption Roadmap</a> and<a href="/en/docs/sbom_guide/8-checklist/">8. Recommendations and Checklist</a> first.
If you are deciding which format and tools to use,<a href="/en/docs/sbom_guide/2-standards/">2. Standards and Formats</a> and<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a> are good starting points. If your goal is regulatory
compliance, check the jurisdiction-specific obligations in<a href="/en/docs/sbom_guide/3-regulation/">3. Regulatory Trends</a>.</p><h2 id="sources-and-editorial-basis">Sources and Editorial Basis</h2><p>This guide is not a translation of any single document; it is a reconstruction that synthesizes
current primary sources. It draws on the National Telecommunications and Information
Administration (NTIA)&rsquo;s 2021 minimum elements and its update by the Cybersecurity and
Infrastructure Security Agency (CISA) — the 2024<em>Framing Software Component Transparency</em>, Third
Edition, and the 2025 draft revision of the minimum elements — as well as the SPDX and CycloneDX
standard specifications, the EU Cyber Resilience Act (Regulation (EU) 2024/2847), and the supply
chain security guidelines of India&rsquo;s CERT-In and Korea. The first edition began as a translation of
CERT-In&rsquo;s SBOM technical guidelines; the current edition updates that framework with the sources
above and broadens it to a general practitioner&rsquo;s perspective.</p><p>Every factual claim is cited to a primary source, and the materials cited were accessed on
June 14, 2026.</p><p><strong>Author :<a href="https://haksungjang.github.io/">Haksung Jang</a></strong></p>
]]></content:encoded></item><item><title>Governance</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/4-governance/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/4-governance/</guid><description>The stage of establishing a governance framework across the full AI system lifecycle and reflecting emerging AI regulations.</description><content:encoded>&lt;![CDATA[<p>This is stage 4 of the implementation roadmap. It brings the preceding clauses together to establish a
governance framework across the full AI system lifecycle, and reviews it regularly to reflect emerging AI
regulations (3.10).</p>
]]></content:encoded></item><item><title>4. Tools</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/4-tool/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/4-tool/</guid><description>1. Source Code Scanning Tools Source code scanning tools can be used in the open source identification and inspection stage of the open source process. Source code scanning tools help identify the open source included in supplied software and extract license and copyright information. These tools range from free open source-based tools to commercial tools. Each tool has its own strengths, but no tool offers a perfect feature set that solves every problem. An enterprise must therefore choose a tool suited to the characteristics and requirements of its supplied software.</description><content:encoded>&lt;![CDATA[<h2 id="1-source-code-scanning-tools">1. Source Code Scanning Tools</h2><p>Source code scanning tools can be used in the open source identification and inspection stage of the open source process. Source code scanning tools help identify the open source included in supplied software and extract license and copyright information. These tools range from free open source-based tools to commercial tools. Each tool has its own strengths, but no tool offers a perfect feature set that solves every problem. An enterprise must therefore choose a tool suited to the characteristics and requirements of its supplied software.</p><p>Many enterprises use these automated source code scanning tools together with manual review. Two major open source source code scanning tools are introduced here.</p><h3 id="1-fossology">(1) FOSSology</h3><p><a href="https://www.fossology.org/">FOSSology</a> is an open source project managed by the Linux Foundation, a source code scanning tool that supports a license compliance workflow.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 484px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/fossology_hu_464a11d99cc93636.png" width="474" height="231"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://www.fossology.org/</i></center></p></figcaption></figure><p>Key features:</p><ul><li>Source code scanning and license identification</li><li>Extraction of license and copyright information</li><li>Web-based user interface</li><li>Support for analyzing large codebases</li></ul><p>FOSSology is free for enterprises to use and receives continuous improvement and support from the open source community.</p><p>For how to install and use FOSSology, refer to the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/governance_iso5230/appendix/3-tools/fossology/">FOSSology guide</a>.</p><h3 id="2-scanoss">(2) SCANOSS</h3><p><a href="https://www.scanoss.com/">SCANOSS</a> is a platform for identifying and managing open source software components.</p><p>Key features:</p><ul><li>Fast source code scanning and open source component identification</li><li>License and vulnerability information</li><li>Integration support via API</li><li>Generation of the SBOM (Software Bill of Materials)</li></ul><p>SCANOSS offers both a free and a paid version, and supports both cloud-based service and on-premises solutions.</p><p>These source code scanning tools can be used to effectively identify and manage the open source components in supplied software. However, rather than relying entirely on the tool&rsquo;s results, expert review and judgment by program participants must also be part of the process.</p><h2 id="2-dependency-analysis-tools">2. Dependency Analysis Tools</h2><p>Modern software development commonly uses build environments that support package managers such as<a href="https://gradle.org/">Gradle</a> and<a href="https://maven.apache.org/">Maven</a>. In these build environments, dependency libraries needed at build time are fetched from a remote repository even without the source code, and used to compose the supplied software. These dependency libraries are included in the supplied software but are not detected by source code scanning tools. It is therefore important to use tools for dependency analysis.</p><h3 id="1-oss-review-toolkit">(1) OSS Review Toolkit</h3><p>The<a href="https://github.com/oss-review-toolkit/ort">OSS Review Toolkit (ORT)</a> is a suite of tools for automating open source license compliance. ORT provides a dependency analysis tool called the Analyzer.</p><p>Key features of the Analyzer:</p><ul><li>Support for various package managers (Maven, Gradle, NPM, etc.)</li><li>Generation of a project&rsquo;s dependency tree</li><li>Extraction of license and copyright information</li><li>Generation of reports in SPDX format</li></ul><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 650px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/ort_hu_f7c8c311edcd119b.png" width="640" height="144"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://github.com/oss-review-toolkit/ort#analyzer</i></center></p></figcaption></figure><h3 id="2-fosslight-dependency-scanner">(2) FOSSLight Dependency Scanner</h3><p><a href="https://github.com/fosslight/fosslight_dependency_scanner">FOSSLight Dependency Scanner</a>, developed by<a href="https://www.lg.com/">LG Electronics</a> and released as open source, is a dependency analysis tool that supports various package managers.</p><p>Key features:</p><ul><li>Support for various package managers including Gradle, Maven, NPM, PIP, Pub, and Cocoapods</li><li>Extraction of open source license and version information</li><li>Generation of the SBOM (Software Bill of Materials)</li></ul><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 609px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/fosslightdependency_hu_4834b8de5b8621b1.png" width="599" height="409"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://fosslight.org/ko/scanner/</i></center></p></figcaption></figure><p>These dependency analysis tools can be used to accurately identify the open source components included in supplied software and generate an SBOM. This helps meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><h2 id="3-open-source-governance--sbom-management-tools">3. Open Source Governance / SBOM Management Tools</h2><p>Open source governance and SBOM (Software Bill of Materials) management are essential for effective open source license compliance and security assurance. The ISO/IEC 5230 and ISO/IEC 18974 standards require documenting and retaining records of the open source software components included in supplied software.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.3.1.2 - Open source component records for the supplied software that demonstrates the documented procedure was properly followed.<br><code>Open source component records for the supplied software that demonstrate that the documented procedure was properly followed</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.3.1.2: Open Source Software Component Records for the Supplied Software that demonstrates the documented procedure was properly followed.<br><code>Open source software component records for the supplied software that demonstrate that the documented procedure was properly followed</code></li></ul></div><p>An SBOM can be managed even with a spreadsheet program, but manual management becomes difficult as the number of supplied software products and versions grows. Introducing an automated open source tool is therefore efficient.</p><h3 id="1-sw360">(1) SW360</h3><p><a href="https://github.com/eclipse-sw360/sw360">SW360</a> is an open source project sponsored by the Eclipse Foundation that provides the ability to track the open source inventory for each piece of supplied software.</p><p><img src="/docs/opensource_for_enterprise/4-tool/sw360project.png" alt=""/><p>Key features:</p><ul><li>Project, component, and license management</li><li>SBOM generation and management</li><li>Vulnerability management</li><li>Tracking of license obligations</li></ul><p>For how to install and use SW360, see the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/governance_iso5230/appendix/3-tools/sw360/">SW360 guide</a>.</p><h3 id="2-fosslight">(2) FOSSLight</h3><p><a href="https://fosslight.org/">FOSSLight</a> is a comprehensive open source management tool developed by<a href="https://www.lg.com/">LG Electronics</a> and released as open source.</p><p>Key features:</p><ul><li>SBOM generation and management</li><li>Open source license compliance checks</li><li>Vulnerability management</li><li>Open source notice generation</li></ul><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/fosslightproject_hu_1eea98ab2bdc57cd.png" width="900" height="289"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://fosslight.org/fosslight-guide/started/2_try/4_project.html</i></center></p></figcaption></figure><p>LG Electronics has used FOSSLight for years to manage SBOMs company-wide, and released it as open source in June 2021. It provides a Korean-language guide to help domestic enterprises use it.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 849px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/fosslight_hu_ccc47fe0e94f67ac.png" width="839" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://fosslight.org/</i></center></p></figcaption></figure><p>Using these tools, an enterprise can effectively carry out open source governance and manage its SBOM, and can meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><h2 id="4-open-source-security-vulnerability-management-tools">4. Open Source Security Vulnerability Management Tools</h2><p>To effectively manage known vulnerabilities or newly discovered vulnerabilities included in supplied software, an enterprise must build an automated tool environment. Three major open source security vulnerability management tools are introduced here.</p><h3 id="1-owasp-dependency-check">(1) OWASP Dependency-Check</h3><p><a href="https://owasp.org/www-project-dependency-check/">OWASP Dependency-Check</a> is an open source tool that analyzes a project&rsquo;s dependencies to detect known vulnerabilities.</p><p>Key features:</p><ul><li>Support for various languages and package managers (Java, .NET, JavaScript, Ruby, etc.)</li><li>Integration with the CVE (Common Vulnerabilities and Exposures) database</li><li>Easy integration with CI/CD pipelines</li><li>Generation of reports in various formats such as HTML, XML, CSV, and JSON</li></ul><h3 id="2-sw360">(2) SW360</h3><p><a href="https://github.com/eclipse/sw360">SW360</a> is an open source software component management tool managed by the Eclipse Foundation that also provides security vulnerability management features.</p><p>Key features:</p><ul><li>Automatic vulnerability checks for registered releases</li><li>Periodic collection of CVE information (scheduled every 24 hours)</li><li>Viewing security vulnerabilities by project</li><li>Tracking the impact of newly published vulnerabilities on existing products</li></ul><p>For how to manage security vulnerabilities with SW360, refer to the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/governance_iso5230/appendix/3-tools/sw360/">SW360 guide</a>.</p><h3 id="3-fosslight">(3) FOSSLight</h3><p><a href="https://fosslight.org/ko/">FOSSLight</a> similarly acquires security vulnerability information automatically, automatically checks project information where a security vulnerability has been detected, and provides notifications such as email when necessary.</p><p>Using these tools, an enterprise can effectively manage open source security vulnerabilities while meeting the requirements of ISO/IEC 18974.</p><h2 id="5-open-source-compliance-artifact-generation-tools">5. Open Source Compliance Artifact Generation Tools</h2><p>The open source notice, a key open source compliance artifact, is a document that provides the copyright and license information of the open source included in supplied software. An open source notice can be written manually, but it is more efficient to use a tool that generates it automatically.</p><h3 id="1-onot">(1) onot</h3><p><a href="https://www.sktelecom.com/">SK telecom</a> has released as open source, under the name<a href="https://github.com/sktelecom/onot">onot</a>, the tool it uses internally to automatically generate open source notices.<a href="https://www.kakaocorp.com/">Kakao</a> also participated in the joint development by contributing key features.</p><p><img src="/docs/opensource_for_enterprise/4-tool/onot.png" alt=""/><center><i>How to install onot</i></center><br><p><code>onot</code> is a tool that automatically converts an SBOM written in the<a href="https://spdx.dev/">SPDX</a> document format into an open source notice format. It is a Python program that is lightweight and simple to use.</p><p><img src="/docs/opensource_for_enterprise/4-tool/noticesample.png" alt=""/><center><i>Sample open source notice generated by onot</i></center><br><h3 id="2-fosslight-1">(2) FOSSLight</h3><p><a href="https://fosslight.org/">FOSSLight</a> also provides a feature that automatically generates an open source notice based on the SBOM it has acquired.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/fosslightnotice_hu_a4dc2384954af939.png" width="900" height="394"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://fosslight.org/fosslight-guide/started/2_try/4_project.html</i></center></p></figcaption></figure><p>Using these tools makes it possible to automate and standardize the process of generating open source notices, raising the efficiency and accuracy of the open source license compliance process. This also helps meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><h2 id="6-archiving-open-source-compliance-artifacts">6. Archiving Open Source Compliance Artifacts</h2><p>Systematically archiving and managing open source compliance artifacts is very important for open source license compliance. In particular, for licenses such as GPL and LGPL that require source code disclosure, the source code must be available for at least three years after the distribution of the supplied software.</p><p>To this end, the ISO/IEC 5230 standard requires a documented procedure for archiving copies of the compliance artifacts of distributed software, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.4.1.2 - A documented procedure for archiving copies of the compliance artifacts of the supplied software - where the archive is planned to exist for a reasonable period of time (Determined by domain, legal jurisdiction and/or customer contracts) since the last offer of the supplied software; or as required by the identified licenses (whichever is longer). Records exist that demonstrate the procedure has been properly followed.<br><code>A documented procedure for archiving copies of the compliance artifacts of distributed software - the archived copies must be kept for a reasonable period after the last offer of the distributed software, or for the period required by the identified licenses, whichever is longer. Records must exist that demonstrate this procedure has been properly followed.</code></li></ul></div><p>To this end, an enterprise must build a system to safely archive its open source compliance artifacts and disclose them externally when necessary.</p><h3 id="1-github-pages">(1) GitHub Pages</h3><p><a href="https://pages.github.com/">GitHub Pages</a> is a service that lets you host a website directly from a GitHub repository. It can be used to archive and publish open source compliance artifacts.</p><p>The way to archive open source compliance artifacts using GitHub Pages is as follows:</p><ol><li>Create a dedicated repository on GitHub</li><li>Upload the open source notice and source code to the repository</li><li>Activate the website through GitHub Pages settings</li><li>Configure it so it can be accessed externally through a public URL</li></ol><p>Using GitHub Pages has the following benefits:</p><ul><li>Free to use</li><li>Provides version control</li><li>High availability and stability</li><li>Easy to update and manage</li></ul><p>This tool environment can be seen in reference on SK telecom&rsquo;s open source website.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/sktcompliance_hu_98c52e8252e285fe.png" width="900" height="313"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://sktelecom.github.io/compliance/</i></center></p></figcaption></figure><p>This website was developed as open source, and its source code is public, so other enterprises can easily build a similar environment.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/4-tool/sktgithub_hu_ed0a7b008539b471.png" width="900" height="352"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://github.com/sktelecom/sktelecom.github.io</i></center></p></figcaption></figure><p>By using GitHub Pages to archive and publish open source compliance artifacts, an enterprise can effectively fulfill its open source license obligations and improve transparency.</p><h2 id="7-integration-with-continuous-integrationdeployment-cicd-tools">7. Integration with Continuous Integration/Deployment (CI/CD) Tools</h2><p>Integrating open source compliance and security assurance activities into a continuous integration/deployment (CI/CD) pipeline enables automated inspection and management throughout the development process. This makes it possible to discover and resolve open source-related issues early.</p><h3 id="1-jenkins-plugins">(1) Jenkins Plugins</h3><p><a href="https://www.jenkins.io/">Jenkins</a> is a widely used open source automation server that can integrate with open source compliance and security assurance tools through various plugins.</p><p>Major Jenkins plugins:</p><ul><li><a href="https://plugins.jenkins.io/fossology/">FOSSology Plugin</a>: Integrates FOSSology scans into a Jenkins pipeline.</li><li><a href="https://plugins.jenkins.io/dependency-check-jenkins-plugin/">OWASP Dependency-Check Plugin</a>: Automates checks for known vulnerabilities or newly discovered vulnerabilities.</li><li><a href="https://github.com/eclipse/sw360/tree/main/jenkins-pipeline">SW360 Plugin</a>: Integrates SW360 with Jenkins to automate SBOM management.</li></ul><p>Example Jenkins pipeline:</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-groovy" data-lang="groovy"><span style="display:flex;"><span><span style="color:#000">pipeline</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">agent</span><span style="color:#000">any</span></span></span><span style="display:flex;"><span><span style="color:#000">stages</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">stage</span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">'Checkout'</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">steps</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">checkout</span><span style="color:#000">scm</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000">stage</span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">'Dependency Scan'</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">steps</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">dependencyCheck</span><span style="color:#f57900">additionalArguments:</span><span style="color:#4e9a06">''</span><span style="color:#ce5c00;font-weight:bold">,</span><span style="color:#f57900">odcInstallation:</span><span style="color:#4e9a06">'Default'</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000">stage</span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">'License Scan'</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">steps</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">fossology</span><span style="color:#ce5c00;font-weight:bold">()</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000">stage</span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">'SBOM Update'</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">steps</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">sw360UpdateProject</span><span style="color:#ce5c00;font-weight:bold">()</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#000">post</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">always</span><span style="color:#ce5c00;font-weight:bold">{</span></span></span><span style="display:flex;"><span><span style="color:#000">dependencyCheckPublisher</span><span style="color:#f57900">pattern:</span><span style="color:#4e9a06">'**/dependency-check-report.xml'</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">}</span></span></span></code></pre></div><p>This pipeline sequentially performs source code checkout, dependency vulnerability scanning, license scanning, and SBOM update.</p><h3 id="2-gitlab-cicd-pipeline">(2) GitLab CI/CD Pipeline</h3><p><a href="https://docs.gitlab.com/ee/ci/">GitLab CI/CD</a> is a continuous integration/deployment tool built into GitLab, with pipelines defined through a<code>.gitlab-ci.yml</code> file.</p><p>Example GitLab CI/CD pipeline:</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-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">stages</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">scan</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">analyze</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">report</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">dependency_scan</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">stage</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">scan</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">script</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">docker run --rm -v $(pwd):/src owasp/dependency-check --scan /src --format "ALL" --out /src/reports</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">license_scan</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">stage</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">scan</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">script</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">docker run --rm -v $(pwd):/project fossology/fossology:latest /usr/local/fossology/fo_cli -c /project</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">sbom_update</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">stage</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">analyze</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">script</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">sw360 update-project</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">vulnerability_report</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">stage</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">report</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">script</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">generate_vulnerability_report</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">artifacts</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">reports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">dependency_scanning</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">reports/dependency-check-report.json</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">license_report</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">stage</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">report</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">script</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">generate_license_report</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">artifacts</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">reports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">license_scanning</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">reports/license-scan-report.json</span><span style="color:#f8f8f8"/></span></span></code></pre></div><p>This pipeline performs dependency vulnerability scanning, license scanning, SBOM update, and generation of vulnerability and license reports.</p><p>By integrating these processes into a CI/CD pipeline, an enterprise can automate open source compliance and security assurance activities and integrate them smoothly into the development workflow. This helps effectively meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><h2 id="8-summary">8. Summary</h2><p>Once this tool environment is in place, the key requirements of the ISO/IEC 5230 and ISO/IEC 18974 standards can be met.</p><p><img src="/docs/opensource_for_enterprise/4-tool/toolno.png" alt=""/><p>Using these tools brings the following benefits:</p><ol><li><p>Source code scanning and dependency analysis tools make it possible to accurately identify the open source included in supplied software and determine its license.</p></li><li><p>Open source governance and SBOM management tools make it possible to systematically manage and track the open source components in supplied software.</p></li><li><p>Open source security vulnerability management tools make it possible to continuously monitor and respond to known vulnerabilities or newly discovered vulnerabilities.</p></li><li><p>Open source compliance artifact generation and archiving tools make it possible to efficiently generate and manage the documents needed to comply with license obligations.</p></li><li><p>Integration with CI/CD tools makes it possible to integrate the open source management process into the development workflow and automate it.</p></li></ol><p>Building this tool environment allows an enterprise to carry out open source license compliance and security assurance activities in a systematic and efficient way, and provides significant help in meeting the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><p>By making effective use of open source management tools, an enterprise can minimize the legal risk that comes with using open source, respond promptly to security vulnerabilities, and build a transparent and trustworthy software supply chain. This will ultimately lead to improved competitiveness and greater customer trust for the enterprise.</p>
]]></content:encoded></item><item><title>Adoption Roadmap</title><link>https://haksungjang.github.io/en/docs/sbom_guide/4-adoption/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/4-adoption/</guid><description>Summarizes the activities organizations undertake to build an SBOM program in stages, from establishing the foundation to operational maturity.</description><content:encoded>&lt;![CDATA[<p>Introducing an SBOM program into an organization is not a one-time effort. A staged approach is
more realistic: establish the foundation (Foundational), settle generation and integration into
practice (Developing), and mature operations (Scaling). The stage breakdown below is the common
framework presented by both the US NTIA and India&rsquo;s CERT-In guidelines; the order of activities is
only illustrative and can be adjusted to fit an organization&rsquo;s security needs, timeline, and
resources.</p><p><img src="/docs/sbom_guide/4-adoption/adoption-stages-en.png" alt="A maturity path that expands SBOM adoption through three stages — Foundational, Developing, and Scaling"/><p><strong>Figure 1.</strong> The three stages of SBOM adoption<em>(source: reconstructed from NTIA 2021 and CERT-In
technical guidelines; collected June 14, 2026)</em></p><h2 id="stage-1-building-the-foundation">Stage 1: Building the Foundation</h2><p>The first SBOM an organization encounters is usually one received from a supplier during
procurement. The purpose of this stage is to establish how the organization handles SBOM in the
first place.</p><ul><li><strong>Identify critical assets and establish a plan</strong>: Develop a plan that defines roles and
responsibilities, timelines, and resource requirements, and obtain stakeholder buy-in for the new
process.</li><li>Decide on the format and minimum requirements: Before creating SBOMs, determine the format (SPDX
or CycloneDX) and the minimum data requirements. This ensures a standard structure that can be
processed consistently across the supply chain.</li><li>Identify security requirements, storage, and tools: Define classification and handling
procedures, and set up a secure repository for SBOMs.</li><li>Obtain SBOMs through procurement: Specify the requirement for suppliers to provide SBOMs in
purchase orders or contracts, and specify which elements are to be provided, when, and by what
method.</li></ul><h2 id="stage-2-generation-and-integration">Stage 2: Generation and Integration</h2><p>This stage involves establishing secure configuration management, consistently referencing
components with unique identifiers, and embedding generation itself into the development process.</p><ul><li>Assign unique identifiers: Pin each component with<a href="/en/docs/sbom_guide/2-standards/2-identifiers/">an identifier such as PURL</a> so that traceability is not lost even
if a supplier or component name changes, or a different version is released under the same name.</li><li>Map supplier SBOMs to internal SBOMs: Create internal SBOMs based on the SBOMs suppliers provide,
and record the author and timestamp to manage integrity and update history.</li><li><strong>Integrate with the SSDLC and CI/CD</strong>: Integrate SBOM generation into the Secure Software
Development Life Cycle (SSDLC) and continuous integration/continuous deployment (CI/CD) pipeline.
Generating SBOMs automatically at build time improves both accuracy and timeliness. See<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a> for tool selection.</li><li>Secure configuration management: Apply access control, encryption, and regular audits to manage
SBOMs securely.</li></ul><h2 id="stage-3-operational-maturity-and-scaling">Stage 3: Operational Maturity and Scaling</h2><p>The final stage involves fully weaving SBOM into vulnerability management and incident response,
and continuously updating the program.</p><ul><li>Strengthen vulnerability tracking: Establish a process for cross-referencing SBOM components
against vulnerability databases to assess impact and mitigation. Detailed methods are covered in<a href="/en/docs/sbom_guide/6-vulnerability/">6. Vulnerability Management</a>.</li><li>Integrate incident response: Establish a process for using SBOM to quickly determine, for a newly
disclosed vulnerability, whether the organization is affected or has already been compromised.</li><li>Maintain regular review and awareness: Periodically check that components and dependencies match
the latest records, and keep the organization aware of new formats, data elements, and industry
trends.</li></ul><h2 id="choosing-a-starting-point">Choosing a Starting Point</h2><p>Follow the three stages in order, but there is no need to aim for perfection from the start. A
realistic first step is to pick one or two of the most important products, automatically generate
SBOMs in the build pipeline, and feed them into a vulnerability scanner. Once you confirm the
program works for one product, expanding it across the full portfolio reduces the cost of trial and
error.</p><h2 id="sources">Sources</h2><p>NTIA (2021).<em>The Minimum Elements For a Software Bill of Materials (SBOM)</em>. CERT-In.<em>Technical
Guidelines on Software Bill of Materials (SBOM)</em>. CISA SBOM Resource Hub<a href="https://www.cisa.gov/sbom">https://www.cisa.gov/sbom</a>. (all accessed: June 14, 2026)</p>
]]></content:encoded></item><item><title>3.4 Program Scope</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/4-scope/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/4-scope/</guid><description>Explains how to clearly declare the scope and limits to which the AI SBOM compliance program applies.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Stage</div><p>This clause is established during<strong>Phase 1 — Program Foundation</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>Program scope determines how far compliance extends. If the scope is ambiguous, it becomes unclear
which AI systems need an SBOM and which models&rsquo; licenses need review. Scope must be declared first
so that every subsequent clause knows what it applies to.</p><p>3.4 requires declaring the scope of application for each program. Scope can differ by organization.
Some organizations cover a single product line; others cover an entire department or the whole
organization. In AI, scope determination covers not only self-developed models but also externally
sourced models and datasets, and the external release of in-house models.</p><h2 id="2-required-activities">2. Required Activities</h2><ul><li>Define what the program applies to (externally deployed AI systems, externally sourced models and
datasets, external release of in-house models, and so on).</li><li>Record what is excluded from application and the rationale for the exclusion.</li><li>Keep the scope statement consistent with the scope of application in the policy document.</li><li>Review and update the scope periodically as the business environment changes.</li></ul><h2 id="3-requirements-and-verification-material">3. Requirements and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement (EN)</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.4</td><td>Different programs may be governed by different levels of scope. For example, a program could govern a single product line, an entire department, or an entire organisation. The scope designation needs to be declared for each program.</td><td><strong>3.4.1</strong> A written statement that clearly defines the scope and limits of the program</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.4 Program scope</strong>
Different programs may be governed by different levels of scope. For example, a program could govern
a single product line, an entire department, or an entire organisation. The scope designation needs
to be declared for each program.</p><p><strong>Verification material(s):</strong></p><ul><li>A written statement that clearly defines the scope and limits of the program.</li></ul></blockquote></details><h2 id="4-compliance-methods-and-samples-by-verification-material">4. Compliance Methods and Samples by Verification Material</h2><h3 id="341-program-scope-statement">3.4.1 Program scope statement</h3><p><strong>Compliance Method</strong></p><p>State the program&rsquo;s scope and limits in writing. Clearly note what is included, what is excluded,
and if excluded, on what grounds. An AI SBOM program becomes clearer when it declares what it
applies to by breaking it down into material types and activities. The table below is an example of
organizing scope.</p><p><strong>Table 1.</strong> Example of an AI SBOM program scope declaration</p><table><thead><tr><th>Category</th><th>Applies</th><th>Notes</th></tr></thead><tbody><tr><td>AI systems, models, and services deployed externally</td><td>Yes</td><td>AI SBOM generation and license review obligations</td></tr><tr><td>Pretrained models sourced externally</td><td>Yes</td><td>Reflected in the AI SBOM as inbound material</td></tr><tr><td>Datasets sourced externally</td><td>Yes</td><td>License and provenance review</td></tr><tr><td>External release of in-house models</td><td>Yes</td><td>Review of public-release license and transparency obligations</td></tr><tr><td>Internal experimental models (not deployed externally)</td><td>Conditionally excluded</td><td>Applicability determined by separate review</td></tr></tbody></table><p><strong>Considerations</strong></p><ul><li><strong>Consistency with policy</strong>: The scope statement should not conflict with the scope of
application in<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a>.</li><li><strong>Grounds for exclusion</strong>: Record the rationale for excluded items. Even an internal
experimental model falls into scope once it moves to external deployment, so put a review
procedure in place for that transition point.<em>([Recommendation of this guide])</em></li><li><strong>Periodic review</strong>: Update the scope whenever a new product line or new AI service is
introduced.</li></ul><p><strong>Sample (Scope Statement)</strong></p><pre tabindex="0"><code>## AI SBOM Compliance Program Scope
### Applies To
This program applies to all AI systems, models, and services that the company deploys
externally, and to pretrained models and datasets sourced externally. It also covers
activities that release in-house models externally.
### Excluded
Models used solely for internal experimentation or research and not deployed externally
are excluded. However, if such a model transitions to external deployment, it is brought
into scope through the intake review procedure.
### Review Cycle
Scope is reviewed and updated at least once a year, or as the business environment
changes.</code></pre><h2 id="5-see-also">5. See Also</h2><ul><li>Scope of application in the policy:<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a></li><li>AI SBOM for material within scope:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>ISO/IEC 5230 scope example:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/1-program-foundation/4-scope/">ISO/IEC 5230 Compliance Guide — 3.1.4 Program Scope</a></li></ul>
]]></content:encoded></item><item><title>Operations</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/</guid><description>The stage of establishing a channel to respond to external compliance inquiries and assigning responsibility and resources to the program.</description><content:encoded>&lt;![CDATA[<p>This is stage 3 of the implementation roadmap. It establishes a channel to respond to external AI SBOM
compliance inquiries (3.7) and assigns responsibility, personnel, and funding to the program (3.8).</p>
]]></content:encoded></item><item><title>Model and Container Scanners (Lab700x, Trivy, Syft)</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/3-scanners/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/3-scanners/</guid><description>Introduces the key features and usage of security scanners that analyze AI model binaries, inference servers, and AI packages.</description><content:encoded>&lt;![CDATA[<p>This page introduces analysis and identification tools that complement AI SBOM generation. Where
the generation tools (OWASP AIBOM Generator, cdxgen) record &ldquo;what is in it,&rdquo; these tools look at
&ldquo;whether it is safe&rdquo; and &ldquo;what version it is.&rdquo; The commands and features below are organized based
on each tool&rsquo;s official documentation (the tools actually run in this guide are<a href="/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/">OWASP AIBOM Generator</a> and<a href="/en/docs/ai-sbom_guide/5-tools/2-cdxgen/">cdxgen</a>).</p><h2 id="lab700x-ai-sbom-scanner--static-analysis-of-model-binaries">Lab700x AI SBOM Scanner — Static Analysis of Model Binaries</h2><p>A tool that statically analyzes AI model files themselves to extract information. It performs deep
introspection on model binaries such as<code>.safetensors</code>,<code>.pt</code> (PyTorch), and<code>.pkl</code> (Pickle) without
executing them.</p><ul><li><strong>Key features</strong>: Because it examines internal structure without executing the model, it can
detect malicious code hidden in a model file (such as Pickle injection), vulnerabilities, or
license violations before deployment.</li><li><strong>Role in AI SBOM</strong>: Used to inspect externally sourced models at the intake gate. Combined with
the inbound metadata enforcement of<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a>, it lets metadata
verification and binary safety checking be performed together.</li></ul><p>Pickle-format models carry a significant supply-chain risk because arbitrary code can execute during
deserialization. Inspecting the model without executing it is the core of this tool.</p><h2 id="trivy--scanning-llm-inference-server-containers">Trivy — Scanning LLM Inference Server Containers</h2><p>An open source scanner from Aqua Security that checks vulnerabilities in container images and
filesystems. It recently added awareness of AI model infrastructure.</p><ul><li><strong>Key features</strong>: Scans LLM inference server containers such as Ollama and LocalAI to collect the
open source libraries they contain and their container vulnerabilities.</li><li><strong>Usage</strong>:</li></ul><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"># Scan a container image (vulnerabilities)</span></span></span><span style="display:flex;"><span>trivy image ollama/ollama:latest</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Generate an SBOM (CycloneDX)</span></span></span><span style="display:flex;"><span>trivy image --format cyclonedx --output sbom.json ollama/ollama:latest</span></span></code></pre></div><p>Used in environments that deploy AI models as containers, to leave a record of the inference
server&rsquo;s vulnerabilities and components as an SBOM.</p><h2 id="syft--identifying-ai-packages-and-virtual-environments">Syft — Identifying AI Packages and Virtual Environments</h2><p>An SBOM generator from Anchore that scans containers, filesystems, and virtual environments.</p><ul><li><strong>Key features</strong>: Analyzes Python virtual environments to collect the exact versions of packages
used to run AI, such as PyTorch and Transformers. Outputs in SPDX and CycloneDX format.</li><li><strong>Usage</strong>:</li></ul><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"># Scan a directory and output CycloneDX</span></span></span><span style="display:flex;"><span>syft scan dir:. -o cyclonedx-json<span style="color:#ce5c00;font-weight:bold">=</span>sbom.json</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Scan a container image</span></span></span><span style="display:flex;"><span>syft scan registry:python:3.11-slim -o spdx-json</span></span></code></pre></div><p>Its role overlaps with cdxgen&rsquo;s, so an organization already using the Anchore toolset (Syft, Grype)
would naturally generate the dependency SBOM of an AI application with Syft and check vulnerabilities
with Grype.</p><h2 id="recommended-tool-combination">Recommended Tool Combination</h2><p>No single tool solves everything. In practice, combine tools by dividing up their roles.</p><table><thead><tr><th>Purpose</th><th>Tool</th></tr></thead><tbody><tr><td>Model metadata AIBOM generation</td><td>OWASP AIBOM Generator</td></tr><tr><td>Dependency SBOM generation</td><td>cdxgen, Syft</td></tr><tr><td>Model binary safety inspection</td><td>Lab700x AI SBOM Scanner</td></tr><tr><td>Inference server / container vulnerabilities</td><td>Trivy</td></tr><tr><td>SBOM storage and vulnerability monitoring</td><td><a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/7-dependency-track/">Dependency-Track</a></td></tr></tbody></table><h2 id="see-also">See Also</h2><ul><li>AI SBOM generation and management procedure:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Execution results of generation tools:<a href="/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/">OWASP AIBOM Generator</a>,<a href="/en/docs/ai-sbom_guide/5-tools/2-cdxgen/">cdxgen</a></li></ul>
]]></content:encoded></item><item><title>3.9 AI SBOM</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/</guid><description>Explains the procedure and formats for generating and managing an AI SBOM, automation tools, and the verification areas that tools alone struggle to fill.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 2 — AI Extension Processes</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>An AI SBOM (AI System Bill of Materials) is a list capturing the elements that make up an AI
system and the information about them. Where a traditional SBOM records software components, an
AI SBOM adds models, weights, datasets, and hyperparameters on top. 3.9 requires a procedure for
generating and managing the AI SBOM.</p><p>The format is left open. The specification states that SPDX, CycloneDX, or any other format is
acceptable. There is, however, one obligation: the AI SBOM shall account for inbound materials
from third parties. If pre-trained models and datasets brought in from outside are left out, the
basis for tracking license obligations (<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5</a>) and transparency
obligations disappears.</p><p>The AI SBOM area is where the line &ldquo;generation is automated by tools, but accuracy and compliance
judgment are filled by people&rdquo; is sharpest. This page walks through the procedure along that
line.</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Establish a procedure for identifying, tracking, reviewing, approving, and archiving the
components of an AI system (models, datasets, etc.).</li><li>Decide on an AI SBOM format (SPDX 3.0 AI Profile or CycloneDX ML-BOM recommended).<em>([Guide Recommendation])</em></li><li>Ensure models and datasets brought in from third parties are always included in the AI SBOM.</li><li>Wire a generation tool into CI/CD to regenerate the AI SBOM repeatedly.<em>([Guide Recommendation])</em></li><li>Have a person review whether the license and provenance fields of the generated AI SBOM are
accurate.<em>([Guide Recommendation])</em></li><li>Retain records (generation history, approval history) demonstrating that the procedure was
followed.</li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.9</td><td>A procedure shall exist for generating and managing an AI SBOM. Any format — SPDX, CycloneDX, or another — is acceptable. The AI SBOM shall account for inbound materials from third parties.</td><td><strong>3.9.1</strong> A documented procedure for identifying, tracking, reviewing, approving, and archiving information about the components of an AI system (models, datasets, etc.)<br><strong>3.9.2</strong> Records demonstrating the procedure was properly followed for the supplied system</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.9 AI System Bill of Materials</strong>
A process shall exist for creating and managing an AI SBOM, this can be in any format e.g. SPDX,
CycloneDX, or another format. The AI SBOM shall account for inbound materials from third-parties.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented procedure for identifying, tracking, reviewing, approving, and archiving
information related to the components of an AI system (e.g., model, datasets, etc).</li><li>Records for the supplied system that demonstrates the documented procedure was properly followed.</li></ul></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="391-ai-sbom-management-procedure-identification-tracking-review-approval-archiving">3.9.1 AI SBOM Management Procedure (Identification, Tracking, Review, Approval, Archiving)</h3><p><strong>How to Comply</strong></p><p>Design the AI SBOM procedure around four stages: generation, review, approval, and archiving.
Automate the generation stage with tools, and leave the review and approval stages to people.
Even when a tool copies a license field straight from a model card, it cannot judge whether that
license actually fits the use case, or whether something is missing or misstated.</p><p>The figure below shows the flow from AI SBOM generation to archiving.</p><p><img src="/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/aisbom-lifecycle-en.png" alt="Procedure that generates an AI SBOM, checks inbound material inclusion and accuracy, then approves and archives it. Omissions and inaccuracies loop back to an earlier stage"/><p><strong>Figure 1.</strong> Procedure from AI SBOM generation to archiving</p><p><strong>Tool Mapping</strong></p><p>Below are open source tools usable at each stage. &ldquo;Automation level&rdquo; indicates how far a tool
handles that task on its own.</p><table><thead><tr><th>Stage</th><th>Task</th><th>Automation Level</th><th>Representative Tool</th></tr></thead><tbody><tr><td>Generation</td><td>Code/dependency BOM</td><td>Mature</td><td>cdxgen, Syft</td></tr><tr><td>Generation</td><td>Model/metadata AIBOM</td><td>Tools emerging</td><td>OWASP AIBOM Generator, cdxgen<code>aibom</code></td></tr><tr><td>Analysis</td><td>Static inspection of model binaries</td><td>Tools emerging</td><td>Lab700x AI SBOM Scanner</td></tr><tr><td>Management</td><td>SBOM storage, vulnerability monitoring</td><td>Mature</td><td>Dependency-Track, SW360</td></tr><tr><td>Review</td><td>License/provenance accuracy judgment</td><td>People/policy</td><td>Tool support still developing</td></tr></tbody></table><p>Installation, usage, and execution screens for each tool are covered in detail in the<a href="/en/docs/ai-sbom_guide/5-tools/">Tools</a> section (<a href="/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/">OWASP AIBOM
Generator</a>,<a href="/en/docs/ai-sbom_guide/5-tools/2-cdxgen/">cdxgen</a>,<a href="/en/docs/ai-sbom_guide/5-tools/3-scanners/">Model/Container Scanners</a>).</p><p>The command to generate an AI BOM with cdxgen is as follows. You can pass a Hugging Face model
URL and purl, a Modelfile, or a GGUF artifact directly (<a href="https://github.com/cdxgen/cdxgen/blob/master/docs/AI_BOM.md">cdxgen AI-BOM
docs</a>).</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"># Generate an AI BOM from the AI project directory</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"># Generate including AI/ML metadata (formulation)</span></span></span><span style="display:flex;"><span>cdxgen -t ai --include-formulation -o aibom.json .</span></span></code></pre></div><p>The OWASP AIBOM Generator takes a Hugging Face model as input, builds a CycloneDX-format AIBOM,
and scores its completeness. It is maintained by the OWASP Gen AI Security Project and is also
available as a Hugging Face Space (<a href="https://genai.owasp.org/resource/owasp-aibom-generator/">OWASP AIBOM
Generator</a>).</p><p><strong>Hands-On — Generating with cdxgen</strong></p><p>This is the result of actually running cdxgen against a summarization app (depending on<code>transformers</code> and<code>torch</code>) that loads a pre-trained model (<code>facebook/bart-large-cnn</code>). The tool
automatically identifies 5 dependencies and produces a CycloneDX 1.7-format 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>Generated components — 5 items (CycloneDX 1.7):</span></span><span style="display:flex;"><span> transformers 4.44.2 pkg:pypi/transformers@4.44.2 license: empty</span></span><span style="display:flex;"><span> torch 2.4.0 pkg:pypi/torch@2.4.0 license: empty</span></span><span style="display:flex;"><span> numpy 1.26.4 pkg:pypi/numpy@1.26.4 license: empty</span></span><span style="display:flex;"><span> tokenizers 0.19.1 pkg:pypi/tokenizers@0.19.1 license: empty</span></span><span style="display:flex;"><span> huggingface-hub 0.24.6 pkg:pypi/huggingface-hub@0.24.6 license: empty</span></span></code></pre></div><p>One component from the generated BOM looks like this. The identification evidence is filled in,
but the<code>licenses</code> field is empty.</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><p><strong>Figure 2.</strong> cdxgen 12.5.1 execution output<em>(run on 2026-06-13,<code>-t python --include-formulation</code>)</em></p><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">What the Execution Result Shows — Generation by Tool, Verification by People</div><ul><li>The tool automatically identified 5 dependencies from<code>requirements.txt</code> and built a BOM.
Generation is automated.</li><li>But the<code>licenses</code> field of every component is empty. License accuracy has to be checked and
filled in by a person.</li><li>The pre-trained model<code>facebook/bart-large-cnn</code> the app loads was not captured in the BOM by
code scanning alone. It has to be collected separately as an inbound material and added (see
Considerations below).</li></ul><p>The boundary this clause states — &ldquo;generation by tool, accuracy and completeness by people&rdquo; —
shows up directly in the actual tool output here.</p></div><p><strong>Format Sample (CycloneDX ML-BOM)</strong></p><p>Below is a shortened example of the model component structure in a CycloneDX 1.6 ML-BOM. The key
structure follows the<code>machine-learning-model</code> component and<code>modelCard</code> in the<a href="https://cyclonedx.org/capabilities/mlbom/">official
CycloneDX spec</a>. If the license is non-standard (has
no SPDX ID), state it with<code>name</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">"bomFormat"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"CycloneDX"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"specVersion"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"1.6"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"components"</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:#204a87;font-weight:bold">"bom-ref"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"model-llama31-8b"</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">"machine-learning-model"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"group"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"meta-llama"</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">"Llama-3.1-8B"</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">"1.0"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"licenses"</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">"license"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#204a87;font-weight:bold">"name"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"Llama 3.1 Community License"</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:#204a87;font-weight:bold">"modelCard"</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">"modelParameters"</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">"task"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"text-generation"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"architectureFamily"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"llama"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"datasets"</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">"type"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"dataset"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#204a87;font-weight:bold">"name"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"Public pretraining corpus"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#204a87;font-weight:bold">"classification"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"public"</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:#204a87;font-weight:bold">"considerations"</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">"useCases"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[</span><span style="color:#4e9a06">"Internal document summarization"</span><span style="color:#000;font-weight:bold">],</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"technicalLimitations"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[</span><span style="color:#4e9a06">"Potential for hallucination"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">"Performance variance in Korean"</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><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><p>If you use SPDX 3.0, the AI Profile and Dataset Profile express the same information (<a href="https://spdx.github.io/spdx-spec/v3.0.1/model/AI/AI/">SPDX 3.0 AI
Profile</a>). The concrete fields of each
format and the technical details of generation tools are covered in the<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso42001_guide/4-operation/2-ai-sbom/">ISO/IEC 42001 Guide — AI
SBOM</a>.</p><p><strong>Considerations</strong></p><ul><li><strong>Reflect inbound materials (specification obligation)</strong>: Set up a procedure that generates an
SBOM entry at intake time so that models and datasets brought in from outside are never missing
from the AI SBOM. This is a<code>shall</code>-level obligation.</li><li><strong>Generation by tool, review by people</strong>: Generation tools copy the license written on the
model card as-is. Because model cards themselves commonly have missing or incorrect license
information, have a person check the license and provenance fields of the generated AI SBOM
against the original source.</li><li><strong>Format consistency</strong>: Pick either SPDX or CycloneDX as the organization&rsquo;s default format and
operate tools and repositories around it consistently. Both formats treat models and datasets
as first-class components.</li><li><strong>CI/CD integration</strong>: The AI SBOM is not a one-time deliverable. Wire it into the pipeline so
it is regenerated whenever a model or dataset changes.</li></ul><h3 id="392-records-demonstrating-procedure-compliance">3.9.2 Records Demonstrating Procedure Compliance</h3><p><strong>How to Comply</strong></p><p>Verification material 3.9.2 is the record showing the procedure was actually followed. Alongside
the AI SBOM file itself, keep a history of who generated, reviewed, and approved it and when. If
it is generated automatically in CI/CD, the build logs and the generated SBOM artifact become the
record, and the upload history to a management tool such as Dependency-Track also serves as
evidence.</p><p><strong>Considerations</strong></p><ul><li><strong>Retain generation history</strong>: Keep the AI SBOM from each point in time for every version of
the supplied AI system to maintain traceability.</li><li><strong>Approval record</strong>: Record who reviewed and approved it. This connects to the lifecycle review
in<a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">Governance (3.10)</a>.</li></ul><h2 id="5-references">5. References</h2><ul><li>License obligation review procedure:<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a></li><li>Technical details of AI SBOM formats and generation tools:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso42001_guide/4-operation/2-ai-sbom/">ISO/IEC 42001 Guide — AI SBOM</a></li><li>SBOM management tools:<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 integration</a></li><li>Governance and lifecycle review:<a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">3.10 Governance</a></li></ul>
]]></content:encoded></item><item><title>3.3 Awareness</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/3-awareness/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/3-awareness/</guid><description>Explains how to ensure that program participants are aware of the AI SBOM policy and objectives, their own contribution, and the implications of non-conformance.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Stage</div><p>This clause is established during<strong>Phase 1 — Program Foundation</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>If competence (3.2) addresses &ldquo;can they do it,&rdquo; awareness addresses &ldquo;do they know why they should.&rdquo;
It is not enough for participants to merely know that a policy exists. Compliance functions in
practice only when participants also know how their own work contributes to the program and what
happens if they fail to follow it.</p><p>3.3 requires ensuring that program participants are aware of four things: the AI SBOM policy,
relevant business objectives, their own contribution to the program&rsquo;s effectiveness, and the
implications of not following the program&rsquo;s requirements. In AI, the implications of
non-conformance extend beyond copyright disputes to regulatory violations and breaches of usage
restrictions, so participants must clearly recognize this.</p><h2 id="2-required-activities">2. Required Activities</h2><ul><li>Ensure participants know the AI SBOM policy and where to find it.</li><li>Communicate relevant business objectives (building trust, regulatory compliance, meeting
supply-chain requirements).</li><li>Inform participants how their own work contributes to the program.</li><li>Inform participants of the implications of non-conformance (regulatory violations, contract
termination, breaches of usage restrictions).</li><li>Assess participants&rsquo; awareness and preserve evidence of that assessment.</li></ul><h2 id="3-requirements-and-verification-material">3. Requirements and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement (EN)</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.3</td><td>The organisation shall ensure that the program participants are aware of the AI SBOM policy, relevant business objectives, their contribution to the effectiveness of the program, and the implications of not following the Program&rsquo;s requirements.</td><td><strong>3.3.1</strong> Documented evidence of assessed awareness for the program participants, which should include: the program&rsquo;s objectives; one&rsquo;s contribution within the program; and the implications of program non-conformance</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.3 Awareness</strong>
The organisation shall ensure that the program participants are aware of: the AI SBOM policy;
relevant business objectives; their contribution to the effectiveness of the program; and the
implications of not following the Program&rsquo;s requirements.</p><p><strong>Verification material(s):</strong></p><ul><li>Documented evidence of assessed awareness for the program participants, which should include: the
program&rsquo;s objectives; one&rsquo;s contribution within the program; and the implications of program
non-conformance.</li></ul></blockquote></details><h2 id="4-compliance-methods-and-samples-by-verification-material">4. Compliance Methods and Samples by Verification Material</h2><h3 id="331-evidence-of-assessed-participant-awareness">3.3.1 Evidence of assessed participant awareness</h3><p><strong>Compliance Method</strong></p><p>Assess whether participants actually understand the four awareness elements and keep evidence of
that assessment. If policy dissemination (3.1.2) proves that participants &ldquo;were informed,&rdquo; the
awareness assessment proves that they &ldquo;understood.&rdquo; Assess through post-training comprehension
quizzes, acknowledgment signatures, or interviews. Make sure the assessment does not omit the three
elements the standard specifies in its verification material: the program&rsquo;s objectives, one&rsquo;s own
contribution, and the implications of non-conformance.</p><p><strong>Considerations</strong></p><ul><li><strong>Cover all four elements</strong>: In addition to policy awareness, include objectives, contribution,
and the implications of non-conformance in the assessment. Omitting even one can be flagged during
a certification audit.</li><li><strong>Emphasize AI-specific implications</strong>: Include regulatory violations (the EU Artificial
Intelligence Act, Korea&rsquo;s AI Basic Act) and breaches of non-standard license usage restrictions
among the implications of non-conformance.</li><li><strong>Differentiate by role</strong>: Data staff and developers contribute differently, so tailor the
assessment content to each role.</li><li><strong>Retain evidence</strong>: Preserve assessment results and acknowledgment signatures for use as
verification material.</li></ul><p><strong>Sample (Awareness Assessment Log)</strong></p><pre tabindex="0"><code>| Participant (Role) | Policy Awareness | Objectives Awareness | Contribution Awareness | Non-conformance Awareness | Assessment Method | Assessment Date |
|-------------|:--------:|:--------:|:--------:|:---------------:|----------|--------|
| Lee OO (Development) | Met | Met | Met | Met | Post-training check | 2026-03-10 |
| Park OO (Data) | Met | Met | Met | Met | Interview + signature | 2026-03-11 |</code></pre><p>Sample acknowledgment signature form:</p><pre tabindex="0"><code>I have been informed of and understand our company's AI SBOM compliance policy, the program's
objectives, my own contribution, and the implications of non-conformance (regulatory violations,
license usage restriction breaches, contract termination).
Name: ____ Role: ____ Signature: ____ Date: ____</code></pre><h2 id="5-see-also">5. See Also</h2><ul><li>Policy and dissemination procedure:<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a></li><li>Competence by role:<a href="/en/docs/ai-sbom_guide/1-program-foundation/2-competence/">3.2 Competence</a></li><li>ISO/IEC 5230 awareness example:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/1-program-foundation/3-awareness/">ISO/IEC 5230 Compliance Guide — 3.1.3 Awareness</a></li></ul>
]]></content:encoded></item><item><title>Regulatory Trends</title><link>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/</guid><description>Summarizes the regulatory standing of SBOM across jurisdictions, and the US executive order and federal procurement pathway.</description><content:encoded>&lt;![CDATA[<p>The regulatory standing of SBOM differs by jurisdiction. The United States takes an executive-order
pathway that leverages federal procurement, the European Union takes a directly effective
legislative pathway, and most other countries remain at the stage of advisory guidelines. This
section covers the United States first, followed by the<a href="/en/docs/sbom_guide/3-regulation/1-eu-cra/">EU Cyber Resilience Act</a> and<a href="/en/docs/sbom_guide/3-regulation/2-global/">other jurisdictions such as India and Korea</a>.</p><h2 id="regulatory-standing-by-jurisdiction-at-a-glance">Regulatory Standing by Jurisdiction at a Glance</h2><table><thead><tr><th>Jurisdiction</th><th>Document/Legislation</th><th>Standing</th><th>SBOM Requirement</th></tr></thead><tbody><tr><td>United States</td><td>Executive Order 14028 (2021), CISA minimum elements</td><td>Federal procurement recommendation</td><td>SBOM provision for software delivered to the federal government</td></tr><tr><td>European Union</td><td>Cyber Resilience Act, Regulation (EU) 2024/2847</td><td>Legal obligation (with fines)</td><td>Annex I Part II, top-level dependencies, machine-readable</td></tr><tr><td>India</td><td>CERT-In Technical Guidelines (2024)</td><td>Voluntary recommendation</td><td>Best practices for government and essential services</td></tr><tr><td>Korea</td><td>Software Supply Chain Security Guideline 1.0 (2024)</td><td>Administrative recommendation</td><td>Recommended SBOM generation and review procedures</td></tr></tbody></table><p><strong>Table 1.</strong> SBOM regulatory standing in major jurisdictions<em>(source: primary source for each
item; collected June 14, 2026)</em></p><h2 id="united-states-leveraging-federal-procurement">United States: Leveraging Federal Procurement</h2><p>US SBOM policy originates from an executive order. On May 12, 2021, shortly after the SolarWinds
incident, Executive Order 14028 (&ldquo;Improving the Nation&rsquo;s Cybersecurity&rdquo;) was signed and published
in the Federal Register as 86 FR 26633. Section 10(j) of the order defined SBOM as &ldquo;a formal record
containing the details and supply chain relationships of various components used in building
software,&rdquo; and Section 4(f) directed the Secretary of Commerce, working with NTIA, to publish
minimum elements for an SBOM within 60 days. This was the moment SBOM was elevated from a
recommendation of the research community to a candidate requirement for federal procurement.</p><p>Under this mandate, NTIA published the minimum elements in July 2021, and responsibility for the
work subsequently moved to CISA. Under Office of Management and Budget (OMB) Memorandum M-22-18,
CISA holds the authority to update the NTIA minimum elements and has focused on tooling and
operationalization. The results are the 2024<em>Framing Software Component Transparency</em>, Third
Edition, and the 2025 draft revision of the minimum elements. Changes in the data fields between
the two documents are covered in<a href="/en/docs/sbom_guide/2-standards/1-minimum-elements/">Minimum Elements</a>.</p><p>It is important to understand the exact nature of the US pathway. Executive Order 14028 is the
basis for guidance requiring vendors that supply software to the federal government to provide an
SBOM; it is not a general statute that applies to all software. CISA&rsquo;s two documents themselves
state that they do not create new federal requirements. The normative standing remains that of a
procurement criterion and technical reference. Nonetheless, because the vast federal procurement
market operates on this basis, it functions as a de facto requirement for companies that supply
software to the US government.</p><p><img src="/docs/sbom_guide/3-regulation/us-policy-lineage-en.png" alt="The lineage of US SBOM policy, starting from Executive Order 14028 and the NTIA minimum elements in 2021, transferring to CISA, and branching into the 2024 Framing Third Edition and the 2025 draft revision of the minimum elements"/><p><strong>Figure 1.</strong> Lineage of US SBOM policy documents<em>(source: Executive Order 14028, NTIA 2021, CISA
2024 and 2025; collected June 14, 2026)</em></p><h2 id="sources">Sources</h2><p>The White House (2021).<em>Executive Order 14028 — Improving the Nation&rsquo;s Cybersecurity</em>, 86 FR
26633.<a href="https://www.federalregister.gov/documents/2021/05/17/2021-10460/improving-the-nations-cybersecurity">https://www.federalregister.gov/documents/2021/05/17/2021-10460/improving-the-nations-cybersecurity</a>.
OMB (2022).<em>M-22-18</em>.<a href="https://www.whitehouse.gov/wp-content/uploads/2022/09/M-22-18.pdf">https://www.whitehouse.gov/wp-content/uploads/2022/09/M-22-18.pdf</a>. CISA SBOM Resource Hub<a href="https://www.cisa.gov/sbom">https://www.cisa.gov/sbom</a>. (all accessed: June 14, 2026)</p>
]]></content:encoded></item><item><title>3. Process</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/3-process/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/3-process/</guid><description>The open source process is an actionable procedure that enables an enterprise to comply with its open source policy throughout software development and distribution.
From the standpoint of open source license compliance, the enterprise carries out activities to comply with the conditions required by each license governing the open source used while developing and distributing the supplied software, producing compliance artifacts such as the open source notice and the source code to be disclosed.</description><content:encoded>&lt;![CDATA[<p>The open source process is an actionable procedure that enables an enterprise to comply with its open source policy throughout software development and distribution.</p><p>From the standpoint of open source license compliance, the enterprise carries out activities to comply with the conditions required by each license governing the open source used while developing and distributing the supplied software, producing compliance artifacts such as the open source notice and the source code to be disclosed.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 702px"><img class="card-img-top" src="/docs/opensource_for_enterprise/3-process/input_hu_eee543c7c23d09c5.png" width="692" height="176"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>Simplified view of the compliance end-to-end process : https://www.linuxfoundation.org/wp-content/uploads/OpenSourceComplianceHandbook_2018_2ndEdition_DigitalEdition.pdf</i></center></p></figcaption></figure><p>For open source security assurance, the enterprise must detect the presence of Known Vulnerabilities or Newly Discovered Vulnerabilities in the supplied software, identify structural and technical threats, and carry out activities to resolve issues before release.</p><p>To achieve effective open source license compliance and security assurance, an enterprise must establish the following processes:</p><ul><li>Open source process</li><li>Open source security vulnerability response process</li><li>External inquiry response process</li><li>Open source contribution process</li></ul><p>Let&rsquo;s look at how each process should be structured, one by one.</p><h2 id="1-open-source-process">1. Open Source Process</h2><p>An enterprise must establish an open source process for license compliance and security assurance that aligns with its software development process.</p><p>The image below is a sample open source process that an enterprise can commonly adopt and use.</p><p><img src="/docs/opensource_for_enterprise/3-process/process-en.png" alt=""/><p>The procedures to be taken at each stage, in line with the open source process above, are as follows.</p><h3 id="1-open-source-identification-and-inspection">(1) Open Source Identification and Inspection</h3><p>In the open source identification and inspection stage, the enterprise must identify the license of the open source it intends to use, determine what obligations the license requires, and check whether Known Vulnerabilities exist.</p><p>It reviews and records which open source it intends to use, what the license is, what obligations each license imposes, and what Known Vulnerabilities exist.</p><p>The ISO/IEC 5230 standard requires a documented procedure that can address common open source license use cases for license compliance, and that reviews and records the obligations, restrictions, and rights granted by each identified license.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li><p>3.3.2.1 - A documented procedure for handling the common open source license use cases for the open source components of the supplied software.<br><code>A documented procedure for handling the common open source license use cases for the open source components of the supplied software</code></p></li><li><p>3.1.5.1 - A documented procedure to review and document the obligations, restrictions and rights granted by each identified license.<br><code>A documented procedure to review and document the obligations, restrictions and rights granted by each identified license</code></p></li></ul></div><p>An example procedure for this is as follows:</p><ol><li><p>The Open Source Program Manager creates and provides a guide on the obligations, restrictions, and rights of major open source licenses. To manage common open source license use cases, this guide must cover the following use cases:</p><ul><li>Distribution in binary form</li><li>Distribution in source form</li><li>Integration with other open source that triggers additional license obligations</li><li>Inclusion of modified open source</li><li>Inclusion of open source or other software under a license incompatible with other components in the supplied software</li><li>Inclusion of open source with attribution requirements</li></ul></li><li><p>The business unit checks the license and Known Vulnerabilities according to the criteria defined in the open source policy.</p></li><li><p>The business unit consults the Open Source Program Manager and the security officer with any questions. If necessary, it requests advice from external experts.</p></li><li><p>All decisions and their rationale are documented and retained.</p></li></ol><p>To this end, an enterprise must establish a documented procedure, as in the example below, to review and record the obligations and restrictions imposed by each identified license and any Known Vulnerabilities, through the open source identification and inspection stage before releasing the supplied software.</p><pre tabindex="0"><code>(1) Open Source Identification
The business unit complies with the following during the software design stage:
- While designing the software, it identifies the open source expected to be used and confirms the identified licenses.
- It checks the obligations for each open source license. License-specific obligations can be found in the company's open source license guide: https://sktelecom.github.io/guide/use/obligation/
- It designs the software taking into account the source code disclosure scope required by each open source license.
The Open Source Program Manager creates and publishes a guide on the obligations, restrictions, and rights of major open source licenses so that business units across the company can refer to it. To manage common open source license use cases, this guide must cover the following use cases:
- Distribution in binary form
- Distribution in source form
- Integration with other open source that triggers additional license obligations
- Inclusion of modified open source
- Inclusion of open source or other software under a license incompatible with other components in the supplied software
- Inclusion of open source with attribution requirements
The business unit marks copyright and license notices in the source code according to company rules. The company's rules for copyright and license notices in source code can be found on the following page. (insert_link)
When reviewing the adoption of new open source, the business unit first identifies the license. It checks the license obligations, restrictions, and rights according to the company's open source license guide. If the license is not covered by the company's open source license guide, it consults the Open Source Program Manager on whether adoption is possible and what precautions apply. It creates a Jira Ticket for the inquiry.
The Open Source Program Manager analyzes the open source license obligations and provides guidance to the software development organization.
- If there are questions, it requests advice from the legal department to provide clear guidance.
- Newly analyzed license information is reflected in the company-wide license guide.
The security officer provides a guide for the company's security assurance.
(2) Source Code Inspection
The business unit requests an open source inspection according to the guidance of the IT staff and provides the source code.
The IT staff performs the open source inspection using an open source analysis tool and generates an SBOM (Software Bill of Materials).
The Open Source Program Manager reviews whether the open source license obligations can be complied with and whether there are open source license conflicts, and requests the business unit to resolve any issues found. Issues are created as Jira Tickets and assigned to the business unit.
The security officer reviews the detected Known Vulnerabilities and provides response guidance to the business unit according to predefined risk classification criteria. Risk is classified by CVSS (Common Vulnerability Scoring System) score, and for Critical Risk, the business unit is guided to establish a remediation plan within one week.</code></pre><p>In the open source identification and inspection stage, a source code scan tool can be used. This is described in detail in &ldquo;<a href="/en/docs/opensource_for_enterprise/4-tool/#1-source-code-scanning-tools">1. Source Code Scan Tools</a>&rdquo;.</p><h3 id="2-issue-resolution">(2) Issue Resolution</h3><p>After identifying open source and confirming license and security vulnerability risks through open source identification and inspection, a procedure to resolve issues is needed. All detected issues must be resolved using the following methods:</p><ul><li>Remove the open source causing the issue.</li><li>Replace it with open source under a different license to resolve the license issue.</li><li>Replace it with a version of the open source in which the Known Vulnerability or Newly Discovered Vulnerability has been resolved.</li></ul><p>An example of a documented process for this is as follows:</p><pre tabindex="0"><code>(3) Issue Resolution
The business unit resolves all issues found during the source code inspection stage.
It removes the open source causing the issue or replaces it with open source under a different license. For issues involving a Known Vulnerability or a Newly Discovered Vulnerability, it takes measures such as replacing the component with a version in which the vulnerability has been fixed.
Once the business unit resolves all issues found, it resolves the Jira Ticket issue and requests a re-review.</code></pre><h3 id="3-sbom-identification-review-and-retention">(3) SBOM Identification, Review, and Retention</h3><p>The most fundamental part of open source license compliance activities is understanding the open source contained in the supplied software. An enterprise must establish a process to identify the open source and its licenses contained in the supplied software, and to create and manage an SBOM (Software Bill of Materials) that holds this information. This is because knowing which open source is included in each version of the supplied software is necessary to comply with the obligations required by each open source license when distributing the software. This is also an essential process for discovering and responding to open source security vulnerabilities.</p><p>All open source must be reviewed and approved before being integrated into the supplied software. In addition to the functionality and quality of the open source, it must be reviewed beforehand for its origin, whether it can meet license requirements, and whether Known Vulnerabilities or Newly Discovered Vulnerabilities have been resolved. This requires a review request → review → approval process.</p><p>The ISO standards commonly require a documented procedure ensuring that all open source software used in the supplied software is continuously recorded throughout the software life cycle, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.3.1.1 - A documented procedure for identifying, tracking, reviewing, approving, and archiving information about the collection of open source components from which the supplied software is comprised.<br><code>A documented procedure for identifying, tracking, reviewing, approving, and archiving information about the open source components that make up the supplied software</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.3.1.1: A documented procedure ensuring all Open Source Software used in the Supplied Software is continuously recorded across the lifecycle of the Supplied Software. This includes an archive of all Open Source Software used in the Supplied Software;<br><code>A documented procedure ensuring that all open source software used in the supplied software is continuously recorded throughout the lifecycle of the supplied software. This includes an archive of all open source software used in the supplied software.</code></li></ul></div><p>To this end, an enterprise can reflect SBOM-related content in its open source process, as in the example below:</p><pre tabindex="0"><code>(4) Review
The Open Source Program Manager reviews whether all issues have been properly remediated. If necessary, it re-runs the source code inspection using an open source analysis tool.
The security officer reviews whether all serious vulnerabilities have been resolved. If vulnerabilities that are difficult to resolve remain, it reviews whether approval is possible, taking into account the type of business and the extent of service exposure.
(5) Approval
The Open Source Program Manager gives final approval or rejection of whether the open source license compliance procedure was performed properly. In the case of rejection, it explains the reason to the business unit and proposes a way to remediate it.
(6) Registration
The Open Source Program Manager finalizes the SBOM to track the list of open source used, by version, in the supplied software.
The IT staff registers the finalized SBOM in the system. The SBOM includes the list of open source contained in the supplied software along with the following information:
- The product (or service) name and version of the supplied software
- List of open source
- Open source name / version
- Open source license
The Open Source Program Manager finalizes the SBOM to track the list of open source used, by version, in the supplied software.</code></pre><p>Tools for SBOM management are described in detail in &ldquo;<a href="/en/docs/opensource_for_enterprise/4-tool/#3-open-source-governance--sbom-management-tools">SBOM Management Tools</a>&rdquo;.</p><p>In addition, every process and result of this open source process must be documented. Rather than using email, using an issue tracking system such as<a href="https://www.atlassian.com/software/jira">Jira</a> or<a href="https://www.bugzilla.org/">Bugzilla</a> can document this process more efficiently.</p><h3 id="4-creating-license-compliance-artifacts">(4) Creating License Compliance Artifacts</h3><p>The most fundamental part of open source license compliance activities is understanding the open source contained in the supplied software. This is to correctly meet open source license requirements, which are at the core of open source license compliance. In other words, a process must be established to produce a set of compliance artifacts for the open source contained in the supplied software.</p><p>The ISO/IEC 5230 standard requires a documented procedure describing the process for preparing compliance artifacts and providing them together with the supplied software, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.4.1.1 - A documented procedure that describes the process under which the compliance artifacts are prepared and distributed with the supplied software as required by the identified licenses.<br><code>A documented procedure that describes the process under which the compliance artifacts required by the identified licenses are prepared and distributed with the supplied software</code></li></ul></div><p>Compliance artifacts are broadly divided into two types:</p><ol><li><p>Open source notice: a document providing the full text of open source licenses and copyright information</p><p><img src="/docs/opensource_for_enterprise/3-process/ossnotice.png" alt=""/></li></ol><ul><li>How to generate an open source notice corresponding to an SBOM compiled using a tool is further explained in &ldquo;<a href="/en/docs/opensource_for_enterprise/4-tool/#5-open-source-compliance-artifact-generation-tools">Open Source Compliance Artifact Generation Tools</a>&rdquo;.</li></ul><ol start="2"><li>Source code package to be disclosed: a package compiling the source code to be disclosed in order to fulfill the obligations of open source licenses such as GPL and LGPL that require source code disclosure</li></ol><p>Compliance artifacts must be provided together when distributing the supplied software.</p><p>To this end, an enterprise can reflect the creation of compliance artifacts, from the notice stage through the distribution stage, in its open source process, as in the example below:</p><pre tabindex="0"><code>(7) Notice
The Open Source Program Manager creates an open source notice to comply with the notice obligation. The open source notice includes the following content:
- An open source contact for open source-related inquiries
- Notice content for each open source
- Copyright
- Open source license name
- Copy of the open source license
- (if applicable) a Written Offer to obtain a copy of the source code
The Open Source Program Manager creates the open source notice and delivers it to the business unit. If source code disclosure is required, it also guides the business unit on how to compile the source code to be disclosed.
The business unit includes the open source notice when distributing the product. For a product with a screen, it takes measures so that users can view it through a menu. (e.g., App &gt; Menu &gt; Settings &gt; Copyright Information &gt; Open Source Licenses)
If the business unit has used open source under a license requiring source code disclosure, such as GPL or LGPL, it checks the required scope of disclosure and compiles the source code to be disclosed.
- The source code compiled to comply with obligations under licenses such as GPL and LGPL must match the source code that makes up the binary shipped in the product. In other words, building the compiled source code must produce the same result as the binary shipped in the product.
(8) Pre-Distribution Check
The business unit submits the following compliance artifacts demonstrating that open source license compliance activities were properly performed:
1. The final open source notice included in the product
2. Materials confirming that the open source notice is included in the product (e.g., a screenshot showing the open source notice)
3. (if applicable) the source code to be disclosed (submitted compressed into a single file)
The Open Source Program Manager reviews the materials submitted by the business unit to confirm there are no issues.
(9) Distribution
The Open Source Program Manager submits the compliance artifacts submitted by the business unit to the IT staff.
The IT staff registers the compliance artifacts on the company's open source distribution site.</code></pre><p>When distributing the supplied software, it may be difficult to enclose the source code package to be disclosed. In this case, this can be replaced by providing a Written Offer to supply the source code for at least three years. A Written Offer is generally provided through the product&rsquo;s user manual, and an example is as follows:</p><pre tabindex="0"><code>The software included in this product contains copyrighted software
that is licensed under the GPL. A copy of that license is included
in this document on page X. You may obtain the complete Corresponding
Source code from us for a period of three years after our last shipment
of this product, which will be no earlier than 2011-08- 01, by sending
a money order or check for $5 to:
GPL Compliance Division
Our Company
Any Town, US 99999
Please write"source for product Y" in the memo line of your payment.
You may also find a copy of the source at http://www.example.com/sources/Y/.
This offer is valid to anyone in receipt of this information.
&lt;Source: SFLC Guide to GPL Compliance&gt;</code></pre><p>Therefore, compliance artifacts must be retained for at least three years, and a process must be established for this.</p><p>To this end, an enterprise can consider building an open source website. Details can be found in &ldquo;<a href="/en/docs/opensource_for_enterprise/4-tool/#6-archiving-open-source-compliance-artifacts">Open Source Compliance Artifact Retention</a>&rdquo;.</p><h3 id="5-security-vulnerability-inspection-and-assessment">(5) Security Vulnerability Inspection and Assessment</h3><p>The security officer must establish a process to inspect and assess Known Vulnerabilities or Newly Discovered Vulnerabilities in the open source software components of the supplied software. This process must include the following stages:</p><ol><li><p>Vulnerability database search: Use a public vulnerability database such as the<a href="https://nvd.nist.gov/">National Vulnerability Database (NVD)</a> to search for Known Vulnerabilities in the open source components in use.</p></li><li><p>Use of automated vulnerability scanning tools: Use a tool such as<a href="https://owasp.org/www-project-dependency-check/">OWASP Dependency-Check</a> to scan the dependencies of the supplied software and identify Known Vulnerabilities.</p></li><li><p>Vulnerability severity assessment: Use<a href="https://www.first.org/cvss/">CVSS (Common Vulnerability Scoring System)</a> to assess the severity of discovered vulnerabilities.</p></li><li><p>Risk analysis: Analyze the potential impact of the identified vulnerabilities on the supplied software.</p></li><li><p>Response plan development: Establish a response plan for each vulnerability based on its severity and risk analysis results.</p></li></ol><pre tabindex="0"><code>(2) Source Code Inspection
The security officer reviews the detected Known Vulnerabilities and provides response guidance to the business unit according to predefined risk classification criteria. Risk is classified by CVSS (Common Vulnerability Scoring System) score, and for Critical Risk, the business unit is guided to establish a remediation plan within one week.
| Risk | CVSS 2.0 | CVSS 3.0 | Recommended Remediation Timeline |
|---|:---:|:---:|:---:|
| Low | 0.0 - 3.9 | 0.0 - 3.9 | - |
| Medium | 4.0 - 6.9 | 4.0 - 6.9 | - |
| High | 7.0 - 10.0 | 7.0 - 8.9 | Within 4 weeks |
| Critical | - | 9.0 - 10.0 | Within 1 week |</code></pre><ol start="6"><li><p>Reporting and documentation: Document the inspection results, assessment content, and response plan, and report them to relevant stakeholders.</p></li><li><p>Continuous monitoring: Establish a continuous monitoring system, since new vulnerabilities may be discovered or the severity of existing vulnerabilities may change.</p></li></ol><p>Through this process, an enterprise can effectively manage security vulnerabilities in the supplied software and meet the requirements of ISO/IEC 18974.</p><h2 id="2-open-source-security-vulnerability-response-process">2. Open Source Security Vulnerability Response Process</h2><p>While developing the supplied software, an enterprise must carry out activities for security assurance, such as detecting and resolving open source security vulnerabilities.</p><p>The ISO/IEC 18974 standard requires a documented procedure for the security assurance method and a record of the actions taken, as follows.</p><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><p>3.1.5 - Standard Practice Implementation<code>3.1.5 - Standard Practice Implementation</code></p><p>The Program demonstrates a sound and robust handling procedures of Known Vulnerabilities and Secure Software Development by defining and implementing following procedures:<br><code>The Program defines and implements the following procedures to demonstrate sound and robust handling of Known Vulnerabilities and Secure Software Development.</code></p><ul><li><p>Method to identify structural and technical threats to the Supplied Software is defined;<br><code>A method to identify structural and technical threats to the Supplied Software</code></p></li><li><p>Method for detecting existence of Known Vulnerabilities in Supplied Software;<br><code>A method for detecting the existence of Known Vulnerabilities in the Supplied Software</code></p></li><li><p>Method for following up on identified Known Vulnerabilities;<br><code>A method for following up on identified Known Vulnerabilities</code></p></li><li><p>Method to communicate identified Known Vulnerabilities to customer base when warranted;<br><code>A method to communicate identified Known Vulnerabilities to the customer base under warranty when warranted</code></p></li><li><p>Method for analyzing Supplied Software for newly published Known Vulnerabilities post release of the Supplied Software;<br><code>A method for checking whether newly published Known Vulnerabilities exist in already-released Supplied Software after a new Known Vulnerability is published following the release of the Supplied Software</code></p></li><li><p>Method for continuous and repeated Security Testing is applied for all Supplied Software before release;<br><code>A method for applying continuous and repeated Security Testing to all Supplied Software before release</code></p></li><li><p>Method to verify that identified risks will have been addressed before release of Supplied Software;<br><code>A method to verify that identified risks are addressed before release of the Supplied Software</code></p></li><li><p>Method to export information about identified risks to third parties as appropriate.<br><code>A method to appropriately export information about identified risks to third parties</code></p></li><li><p>3.1.5.1: A documented procedure exists for each of the methods identified above.<br><code>A documented procedure exists for each of the methods identified above</code></p></li></ul><p>3.3.2 - Security Assurance<code>3.3.2 - Security Assurance</code></p><ul><li>3.3.2.1: A documented procedure for handling detection and resolution of Known Vulnerabilities for the Open Source Software components of the Supplied Software;<br><code>A documented procedure for detecting and resolving Known Vulnerabilities in the open source software components of the Supplied Software</code></li><li>3.3.2.2: For each Open Source Software component a record is maintained of the identified Known Vulnerabilities and action(s) taken (including even if no action was required).<br><code>For each open source software component, a record is maintained of the identified Known Vulnerabilities and the action(s) taken (including cases where no action was required).</code></li></ul></div><p>To this end, an enterprise must have methods and procedures to detect the presence of Known Vulnerabilities or Newly Discovered Vulnerabilities in the supplied software, resolve identified risks before release, and also respond to vulnerabilities newly published after release.</p><p>First, an enterprise must detect whether Known Vulnerabilities exist in the software to be distributed and resolve identified risks before release. This procedure for detecting and resolving Known Vulnerabilities can be carried out through the open source identification, source code inspection, and issue resolution stages of the<a href="/en/docs/opensource_for_enterprise/3-process/#1-open-source-process">Open Source Process</a>.</p><p>In addition, to check whether a newly published Known Vulnerability exists in software that has already been distributed after the release of the distributed software, and to resolve it, an enterprise must establish a new security vulnerability response process.</p><p>Below is a sample process for responding when a new security vulnerability is discovered.</p><p><img src="/docs/opensource_for_enterprise/3-process/securityprocess-en.png" alt=""/><center><i>New Security Vulnerability Response Process (Sample)</i></center><br><h3 id="1-monitoring-known-vulnerabilities-and-newly-discovered-vulnerabilities">(1) Monitoring Known Vulnerabilities and Newly Discovered Vulnerabilities</h3><pre tabindex="0"><code>(1) Monitoring
The IT staff builds and operates a system to monitor new security vulnerabilities. This system performs the following functions.
- It periodically collects newly published security vulnerabilities.
- If open source with a newly discovered Known Vulnerability is used in an already-released product/service, it sends a notification to the business unit responsible for that product/service. From notification through review, action, and resolution, everything is documented and recorded using the Jira Issue Tracker.</code></pre><p>The IT staff builds and operates a system that monitors Known Vulnerabilities and Newly Discovered Vulnerabilities. This system performs the following functions:</p><ul><li>It periodically collects new security vulnerability information from a public vulnerability database such as the<a href="https://nvd.nist.gov/">National Vulnerability Database (NVD)</a>.</li><li>If an open source software component with a Known Vulnerability or a Newly Discovered Vulnerability is used in already-released supplied software, it sends a notification to the business unit responsible for that supplied software.</li><li>It uses an issue tracking system such as<a href="https://www.atlassian.com/software/jira">Jira</a> so that everything from notification through review, action, and resolution is documented and recorded.</li></ul><h3 id="2-vulnerability-assessment-and-response">(2) Vulnerability Assessment and Response</h3><pre tabindex="0"><code>(2) Initial Response
The security officer provides response guidance to the business unit according to predefined risk classification criteria. Risk is classified by CVSS (Common Vulnerability Scoring System) score, and for Critical Risk, the business unit is guided to establish a remediation plan within one week.
If a new security vulnerability is discovered in a previously released product/service, the business unit establishes a remediation plan according to the response guidance provided by the security officer.
If there are customers under warranty, the business unit notifies them of the identified Known Vulnerability by email or other means, as necessary, according to the risk level.</code></pre><p>The security officer assesses each vulnerability according to predefined risk/impact assessment criteria and provides response guidance to the business unit. Risk is classified by<a href="https://www.first.org/cvss/">CVSS (Common Vulnerability Scoring System)</a> score, and remediation deadlines are set according to severity.</p><p>If a Known Vulnerability or a Newly Discovered Vulnerability is identified in previously released supplied software, the business unit establishes a remediation plan according to the response guidance provided by the security officer.</p><p>If necessary, the business unit notifies customers of identified vulnerabilities according to the risk/impact score.</p><h3 id="3-applying-security-testing">(3) Applying Security Testing</h3><p>The IT staff builds and operates a system that applies continuous, repeated security testing to all supplied software before release. This system performs the following functions:</p><ul><li>It identifies structural and technical threats to the supplied software.</li><li>It detects the presence of Known Vulnerabilities or Newly Discovered Vulnerabilities.</li><li>It verifies that identified risks are resolved before the supplied software is released.</li></ul><h3 id="4-vulnerability-resolution-and-patch-management">(4) Vulnerability Resolution and Patch Management</h3><pre tabindex="0"><code>(3) Issue Resolution
The business unit resolves the security vulnerability issue according to the established remediation plan, by methods such as removing the problematic open source or replacing it with a patched version. Once all identified issues are resolved, it requests a re-review.
(4) Review
The IT staff uses an open source analysis tool to confirm that the issue has been properly resolved.
(5) Approval
The security officer reviews whether all serious vulnerabilities have been resolved. If vulnerabilities that are difficult to resolve remain, it reviews whether approval is possible, taking into account the type of business and the extent of service exposure.
(6) Registration
The IT staff registers the SBOM, with the open source security vulnerability resolved, in the system.</code></pre><p>The business unit resolves the vulnerability issue according to the established remediation plan, by methods such as removing the problematic open source software component or replacing it with a patched version.</p><p>The IT staff uses an open source analysis tool to confirm that the issue has been properly resolved.</p><p>The security officer reviews whether all serious vulnerabilities have been resolved. If vulnerabilities that are difficult to resolve remain, it reviews whether approval is possible, taking into account the type of business and the extent of service exposure.</p><p>The IT staff registers the SBOM (Software Bill of Materials), with the vulnerability resolved, in the system.</p><h3 id="5-customer-notification">(5) Customer Notification</h3><pre tabindex="0"><code>(7) Notice
The Open Source Program Manager creates an open source notice based on the SBOM in which the open source security vulnerability has been resolved, and delivers it to the business unit.
The business unit replaces the open source notice included with the product distribution.
The IT staff registers the revised open source notice on the company's open source distribution site.
(8) Distribution
The business unit redistributes the version of the software in which the open source security vulnerability has been resolved.
The security officer identifies whether there is risk information that needs to be disclosed to third parties, and if so, delivers it to the IT staff.
The IT staff registers the identified risk information on the open source website so that third parties can review it.</code></pre><p>The Open Source Program Manager creates an updated open source notice based on the SBOM in which the vulnerability has been resolved, and delivers it to the business unit.</p><p>The business unit notifies customers of the vulnerability resolution using the following methods:</p><ul><li>It replaces the open source notice included with the product distribution.</li><li>If necessary, it notifies customers directly by email or other means.</li><li>It redistributes the version of the supplied software in which the vulnerability has been resolved.</li></ul><p>The IT staff registers the revised open source notice and vulnerability-related information on the company&rsquo;s open source distribution site so that third parties can review them.</p><p>Through this process, continuous monitoring and response capability is maintained even after the supplied software has been released to the market.</p><p>Through this systematic approach, an organization can gain the following benefits:</p><ol><li>Rapid response capability for new vulnerabilities</li><li>Improved transparency and trust with customers</li><li>Minimization and management of security risk</li><li>Assurance of compliance with regulatory requirements</li><li>Continuous improvement of product quality and security</li></ol><p>This process also satisfies the requirements of ISO/IEC 18974 and can continuously improve the effectiveness of the organization&rsquo;s open source security assurance program.</p><h2 id="3-external-inquiry-response-process">3. External Inquiry Response Process</h2><p>To prevent external claims from escalating into legal action, it is important for an enterprise to respond to external inquiries and requests as quickly and accurately as possible. To this end, an enterprise must establish a process for responding quickly and effectively to external open source inquiries.</p><p>The ISO standards commonly require an internal documented procedure for responding to third-party inquiries, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.1.2 - An internal documented procedure for responding to third party open source license compliance inquiries.<br><code>An internal documented procedure for responding to third-party open source license compliance inquiries</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.1.2: An internal documented procedure exists for responding to third party Known Vulnerability or Newly Discovered Vulnerability inquiries.<br><code>An internal documented procedure for responding to third-party inquiries about a Known Vulnerability or a Newly Discovered Vulnerability</code></li></ul></div><p>The figure below is a sample process an enterprise should have in place to respond to external inquiries.</p><p><img src="/docs/opensource_for_enterprise/3-process/general-inquiry-process-en.png" alt=""/><center><i>External Inquiry Response Process (Sample)</i></center><br><p>The following is the external inquiry response process presented in the open source process template:</p><pre tabindex="0"><code>Responding quickly and accurately to external inquiries related to open source license compliance and security assurance can greatly reduce the risk of escalation to legal action. To this end, the organization follows the process below:</code></pre><h3 id="1-receipt-notification">(1) Receipt Notification</h3><p>As soon as an inquiry is received, the Open Source Program Manager notifies the requester that the inquiry has been received. At this time, it specifies an appropriate response time. If the inquiry is unclear, it requests additional explanation to accurately understand the requester&rsquo;s intent.</p><p>Major inquiries and requests include:</p><ul><li>Whether specific open source is used in a particular supplied software</li><li>A request for the source code under a GPL or LGPL license mentioned in a Written Offer</li><li>A request for clarification and source code disclosure regarding open source missing from the open source notice</li><li>A request for missing files in the disclosed source code and instructions on how to build it</li><li>A request for copyright notice</li><li>An inquiry related to a Known Vulnerability or a Newly Discovered Vulnerability</li></ul><p>The Open Source Program Manager creates an issue for the received request and records the response status in detail.</p><h3 id="2-investigation-notification">(2) Investigation Notification</h3><p>The Open Source Program Manager notifies the requester that open source license compliance and security assurance are being faithfully carried out and that the inquiry is under investigation. It periodically updates and notifies the requester of the progress of the internal investigation.</p><h3 id="3-internal-investigation">(3) Internal Investigation</h3><p>The Open Source Program Manager conducts an internal investigation into the request. It checks, through the SBOM and documented review history, whether the license compliance and security assurance processes were properly carried out for the relevant supplied software. If necessary, it requests advice from the legal department and the security officer.</p><p>If confirmation from a specific business unit is needed, the Open Source Program Manager requests that unit to investigate. The business unit that receives the request immediately checks whether there is a problem with the compliance artifacts and security-related matters, and reports the results.</p><h3 id="4-reporting-to-the-requester">(4) Reporting to the Requester</h3><p>The Open Source Program Manager completes the internal investigation within the specified response time and notifies the requester of the results.</p><ul><li>If the requester&rsquo;s inquiry was a mistaken claim due to a misunderstanding, it explains this without further action and closes the matter.</li><li>If a problem is confirmed, it informs the requester of the exact method and timing for fulfilling the obligations of the relevant open source license or resolving the security vulnerability.</li></ul><h3 id="5-remediation--notification">(5) Remediation / Notification</h3><p>If an actual license compliance or security problem is found during the internal investigation, the relevant business unit carries out all procedures necessary to resolve it.</p><h3 id="6-resolution-notification">(6) Resolution Notification</h3><p>After resolving the problem, it immediately notifies the requester and provides the best available means to confirm that the problem has been resolved.</p><h3 id="7-process-improvement">(7) Process Improvement</h3><p>If there was a license compliance or security problem, the case is reviewed through an<a href="https://www.linuxfoundation.org/tools/open-source-glossary/#osrb">OSRB (Open Source Review Board)</a> meeting to understand how the problem occurred, and process improvement measures are established to prevent recurrence.</p><p>Through this systematic external inquiry response process, an enterprise can respond quickly and effectively to open source-related issues and minimize potential legal risk.</p><h2 id="4-open-source-contribution-process">4. Open Source Contribution Process</h2><p>If an enterprise has a policy that permits contributions to external open source projects, there must be a documented procedure governing how program participants can contribute to external projects.</p><p>The ISO/IEC 5230 standard requires a documented procedure governing open source contributions, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><p>3.5.1.2 - A documented procedure that governs open source contributions;<br><code>A documented procedure that governs open source contributions</code></p></div><h3 id="1-establishing-and-communicating-the-contribution-policy">(1) Establishing and Communicating the Contribution Policy</h3><p>The open source process template describes the establishment and communication of the contribution policy as follows:</p><pre tabindex="0"><code>(1) Establishing and Communicating the Contribution Policy
- A documented policy governing contributions to open source projects must be established.
- This policy must be communicated within the organization.
- There must be a process for enforcing the policy.
The Open Source Program Manager must do the following:
- Draft a documented open source contribution policy.
- Establish a documented procedure to ensure that all program participants are aware of the open source contribution policy (e.g., through training, an internal wiki, or other effective means of communication).</code></pre><h3 id="2-contribution-review-and-approval-procedure">(2) Contribution Review and Approval Procedure</h3><p>The open source process template describes the contribution review and approval procedure as follows:</p><pre tabindex="0"><code>(2) Contribution Review and Approval Procedure
A documented procedure governing open source contributions must be established. This procedure must include the following:
- Confirm the origin and license of the code to be contributed.
- Review whether there is a right to contribute the code.
- Review the license and contribution policy of the project to which the contribution is directed.
- If necessary, obtain a legal team review.
- Define an approval procedure for the contribution.
- Specify how an approved contribution is to be submitted.
The Open Source Program Manager must maintain records demonstrating that this procedure has been properly carried out.</code></pre><p>Through this process, an organization can effectively manage contributions to external open source projects and minimize potential legal risk.</p><p>The<a href="https://sktelecom.github.io/guide/contribute/process/">open source contribution procedure</a> published by<a href="https://www.sktelecom.com/">SK telecom</a> is a good example:</p><p><img src="/docs/opensource_for_enterprise/3-process/contribution-en.png" alt=""/><p><a href="https://sktelecom.github.io/guide/contribute/process/">https://sktelecom.github.io/guide/contribute/process/</a></p><p>This procedure clearly shows the process from the contribution review request through approval to submission of the contribution, making it easy for program participants to understand and follow.</p><h2 id="5-keeping-the-process-current">5. Keeping the Process Current</h2><p>A process is not effective if it exists only on paper without being actually operated, or if it no longer fits the work situation or organizational structure. An enterprise must ensure that its processes are always kept up to date to match its internal organization and circumstances.</p><p>The ISO/IEC 18974 standard requires that the process be periodically reviewed and improved, as follows:</p><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.2.5: Documented Evidence of periodic reviews and changes made to the process;<br><code>Documented evidence that the process has been periodically reviewed and improved</code></li><li>3.1.2.6: Documented verification that these processes are current with company internal best practices and who is assigned to accomplish them.<br><code>Documented evidence that these processes are kept current with the company's internal best practices, specifying who is responsible for carrying them out</code></li></ul></div><h3 id="1-periodic-process-review">(1) Periodic Process Review</h3><p>The open source process template describes periodic process review as follows:</p><pre tabindex="0"><code>The OSRB (Open Source Review Board) is a body composed of the Open Source Program Manager and the heads of related organizations, such as the legal team, patent team, development team, and infrastructure team, for the company's open source management.
The OSRB reviews the policy and process annually on a regular basis and improves them. All improvement processes are documented and recorded.</code></pre><h3 id="2-identifying-and-implementing-improvements">(2) Identifying and Implementing Improvements</h3><p>The following activities are carried out to improve the process:</p><ul><li>The OSRB analyzes the company&rsquo;s process performance, shortcomings, and best practices.</li><li>It improves the process to reflect changes in the business environment.</li><li>The Open Source Program Manager is responsible for managing the policy and process for open source license compliance.</li><li>The security officer is responsible for managing the policy and process for open source security assurance.</li></ul><h3 id="3-documenting-process-updates">(3) Documenting Process Updates</h3><p>The process improvement and update process is documented and recorded. This must include:</p><ul><li>Review date and participants</li><li>Identified improvements</li><li>Implemented changes</li><li>Reason for the change</li><li>Approver of the change</li></ul><p>These documented records can be managed using tools such as<a href="https://www.atlassian.com/software/jira">Jira</a> or<a href="https://www.atlassian.com/software/confluence">Confluence</a>.</p><p>By keeping its processes current, an enterprise can continuously improve the effectiveness of its open source license compliance and security assurance programs and meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><h2 id="6-summary">6. Summary</h2><p>By establishing the processes described so far, an enterprise can meet the key requirements of the ISO/IEC 5230 and ISO/IEC 18974 standards.</p><p><img src="/docs/opensource_for_enterprise/3-process/processno.png" alt=""/><p>Through establishing these processes, an enterprise can gain the following benefits:</p><ol><li><p>Establishing an open source license compliance framework</p><ul><li>Accurately understanding the open source usage status of the supplied software</li><li>Minimizing legal risk by complying with license obligations</li><li>Systematic creation and management of compliance artifacts</li></ul></li><li><p>Strengthening open source security assurance</p><ul><li>Continuous monitoring of Known Vulnerabilities and Newly Discovered Vulnerabilities</li><li>Establishing a vulnerability assessment and response framework</li><li>Preventing risk in advance through security testing</li></ul></li><li><p>Effective response to external inquiries</p><ul><li>Establishing a systematic external inquiry handling process</li><li>Reducing legal risk through fast and accurate response</li></ul></li><li><p>Systematizing open source contribution activities</p><ul><li>Ensuring consistent contribution activity through an established contribution policy</li><li>Protecting intellectual property through a contribution review and approval procedure</li></ul></li><li><p>Continuous process improvement</p><ul><li>Improving efficiency through periodic process review and improvement</li><li>Strengthening responsiveness to the latest open source trends and technological changes</li></ul></li></ol><p>By establishing these processes, an enterprise can systematically manage open source license compliance and security assurance, and build a foundation for continuous improvement. In addition, by having processes that align with international standard initiatives such as the<a href="https://www.openchainproject.org/">OpenChain Project</a>, it can enhance its credibility within the global software supply chain.</p>
]]></content:encoded></item><item><title>Open Source Process</title><link>https://haksungjang.github.io/en/docs/templates/2-process-template/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/templates/2-process-template/</guid><description>Note: This sample open source process was written with reference to the following two materials. 1. [OpenChain Open Source Policy Template](https://github.com/OpenChain-Project/Reference-Material/tree/master/Policy-Templates/Official/2.1/en) 2. [Open Source Compliance In The Enterprise](https://www.linuxfoundation.org/compliance-and-security/2018/12/open-source-compliance-in-the-enterprise/) **Author : OpenChain Korea Work Group Authors / [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)** [Company Name] (hereinafter referred to as &amp;ldquo;the Company&amp;rdquo;) actively utilizes open source software in developing products and services that include software. To minimize open source risk, the Company must carry out (1) activities to comply with the obligations imposed by open source licenses and (2) appropriate activities to detect open source security vulnerabilities and take follow-up action, while distributing software. The Company follows the open source process to ensure these activities.</description><content:encoded>&lt;![CDATA[<div class="alert alert-primary" role="alert"><div class="h4 alert-heading" role="heading">Note:</div>
This sample open source process was written with reference to the following two materials.
1. [OpenChain Open Source Policy Template](https://github.com/OpenChain-Project/Reference-Material/tree/master/Policy-Templates/Official/2.1/en)
2. [Open Source Compliance In The Enterprise](https://www.linuxfoundation.org/compliance-and-security/2018/12/open-source-compliance-in-the-enterprise/)
**Author : OpenChain Korea Work Group Authors / [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)**</div><p>[Company Name] (hereinafter referred to as &ldquo;the Company&rdquo;) actively utilizes open source software in developing products and services that include software. To minimize open source risk, the Company must carry out (1) activities to comply with the obligations imposed by open source licenses and (2) appropriate activities to detect open source security vulnerabilities and take follow-up action, while distributing software. The Company follows the open source process to ensure these activities.</p><h2 id="1-open-source-process">1. Open Source Process</h2><p>[Company Name] (hereinafter referred to as &ldquo;the Company&rdquo;) actively utilizes open source software in developing products and services that include software. To minimize open source risk, the Company must carry out (1) activities to comply with the obligations imposed by open source licenses and (2) appropriate activities to detect open source security vulnerabilities and take follow-up action, while distributing supplied software. The Company follows the open source process to ensure these activities.</p><p>The open source process defines the procedures that must be carried out to comply with open source license obligations and to ensure open source security assurance, at each development stage of developing and distributing the Company&rsquo;s supplied software. Program participants comply with the following 11 stages of the open source process.</p><p><img src="/docs/templates/2-process-template/process.png" alt="process"/><p>Through the open source process, the Company strives to minimize open source risk and provide customers with safe and reliable supplied software.</p><p>The Open Source Program Manager periodically reviews the process at least once a year to disseminate internal best practices and improve any deficiencies.</p><h3 id="1-open-source-identification">(1) Open Source Identification</h3><p>The business unit complies with the following during the software design stage:</p><ul><li>While designing software, identify the anticipated open source usage and confirm the identified licenses.</li><li>Confirm the obligations for each open source license. The obligations for each license can be found in the Company&rsquo;s Open Source License Guide:<a href="https://sktelecom.github.io/guide/use/obligation/">https://sktelecom.github.io/guide/use/obligation/</a></li><li>Design the software considering the source code disclosure scope of each open source license.</li></ul><p>The Open Source Program Manager writes and publishes a guide on the obligations, restrictions, and rights of major open source licenses so that business units across the Company can refer to it. This guide must include the following use cases so that common open source license use cases can be managed:</p><ul><li>Distributed in binary form</li><li>Distributed in source form</li><li>Integrated with other open source that triggers additional license obligations</li><li>Includes modified open source</li><li>Includes open source or other software under a license that is incompatible with other components within the supplied software</li><li>Includes open source with attribution requirements</li></ul><p>The business unit marks the copyright and license in the source code according to Company rules. The Company&rsquo;s rules for marking copyright and license in source code can be found on the following page. (insert_link)</p><p>When considering the introduction of new open source, the business unit first identifies the license. It confirms the license obligations, restrictions, and rights according to the Company&rsquo;s Open Source License Guide. If the license is not described in the Company&rsquo;s Open Source License Guide, it inquires with the Open Source Program Manager about whether it can be introduced and any precautions. A Jira Ticket is created for the inquiry.</p><p>The Open Source Program Manager analyzes open source license obligations and provides guidance to the software development organization.</p><ul><li>If there is a question, requests advice from Legal to provide clear guidance.</li><li>Reflects newly analyzed license information in the company-wide license guide.</li></ul><p>Security provides a guide for the Company&rsquo;s security assurance.</p><h3 id="2-source-code-inspection">(2) Source Code Inspection</h3><p>The business unit requests an open source inspection according to IT&rsquo;s guidance and provides the source code.</p><p>IT performs an open source inspection using an open source analysis tool, and creates the SBOM (Software Bill of Materials).</p><p>The Open Source Program Manager reviews whether open source license obligations can be complied with and whether there are open source license conflicts, and requests the business unit to resolve any issues found. Issues are created as Jira Tickets and assigned to the business unit.</p><p>Security reviews the known vulnerabilities detected and provides response guidance to the business unit according to predefined Risk classification criteria. Risk is classified by CVSS (Common Vulnerability Scoring System) score, and for Critical Risk, guidance is provided to establish an action plan that can be completed within 1 week.</p><h3 id="3-issue-resolution">(3) Issue Resolution</h3><p>The business unit resolves all issues found during the source code inspection stage.</p><p>It removes the open source in question, or replaces it with open source under a different license. For known vulnerability or newly discovered vulnerability issues, it takes measures such as replacing the component with a version in which the vulnerability has been fixed.</p><p>Once the business unit has resolved all issues found, it resolves the Jira Ticket issue and requests a re-review.</p><h3 id="4-review">(4) Review</h3><p>The Open Source Program Manager reviews whether all issues have been adequately addressed. If necessary, it re-performs the source code inspection using an open source analysis tool.</p><p>Security reviews whether all serious vulnerabilities have been resolved. If a vulnerability that is difficult to resolve remains, it reviews whether approval is possible considering the business type and service exposure status.</p><h3 id="5-approval">(5) Approval</h3><p>The Open Source Program Manager gives final approval or rejection as to whether the open source license compliance procedure has been properly carried out. In case of rejection, it explains the reason to the business unit and proposes a method for correction.</p><h3 id="6-registration">(6) Registration</h3><p>The Open Source Program Manager finalizes the SBOM to track the list of open source used in each version of the supplied software.</p><p>IT registers the finalized SBOM in the system. The SBOM includes the list of open source contained in the supplied software and the following information:</p><ul><li>The product (or service) name and version of the supplied software</li><li>List of open source<ul><li>Component name, version, license, source (URL)</li><li>Purpose and manner of use</li><li>Whether modified and details of modifications</li><li>Version history and key changes for each version</li></ul></li></ul><p>The registered information is periodically reviewed and updated.</p><h3 id="7-notice">(7) Notice</h3><p>The Open Source Program Manager creates an open source notice to comply with the notice obligation. The open source notice includes the following content:</p><ul><li>Open source contact information for open source-related inquiries</li><li>Notice content for each piece of open source<ul><li>Copyright</li><li>Open source license name</li><li>Copy of the open source license</li><li>(if applicable) a Written Offer to obtain a copy of the source code</li></ul></li></ul><p>The Open Source Program Manager creates the open source notice and delivers it to the business unit. If source code disclosure is required, it guides the business unit on how to compile the source code to be disclosed.</p><p>The business unit includes the open source notice when distributing the product. For products with a screen, it takes measures so that users can view it through a menu. (e.g., App &gt; Menu &gt; Settings &gt; Copyright Information &gt; Open Source Licenses)</p><p>If the business unit has used open source under a license that requires source code disclosure, such as GPL or LGPL, it confirms the scope of source code disclosure required and compiles the source code to be disclosed.</p><ul><li>The source code compiled to comply with license obligations such as GPL and LGPL must match the source code that makes up the binary included in the product. In other words, building the compiled source code must produce a result identical to the binary included in the product.</li></ul><h3 id="8-pre-distribution-confirmation">(8) Pre-Distribution Confirmation</h3><p>The business unit submits the following compliance artifacts demonstrating that open source license compliance activities have been properly carried out:</p><ol><li>The final open source notice included in the product</li><li>Material confirming that the open source notice is included in the product (e.g., a screenshot showing the open source notice)</li><li>(if applicable) the source code to be disclosed (submitted compressed into a single file)</li></ol><p>The Open Source Program Manager reviews the material submitted by the business unit to check for any issues.</p><h3 id="9-distribution">(9) Distribution</h3><p>The Open Source Program Manager submits the compliance artifacts submitted by the business unit to IT.</p><p>IT registers the compliance artifacts on the Company&rsquo;s open source distribution site.</p><h3 id="10-final-confirmation">(10) Final Confirmation</h3><p>The Open Source Program Manager conducts a comprehensive check to confirm that the compliance artifacts have been registered on the Company&rsquo;s open source portal without issue, and that they can be downloaded externally without issue.</p><h3 id="11-monitoring">(11) Monitoring</h3><p>The Open Source Program Manager periodically checks whether there is any supplied software for which the creation of open source license compliance artifacts is inadequate. It also operates a process to respond quickly to external inquiries. The detailed procedure for the external inquiry response process follows [2. External Inquiry Response Process].</p><p>Security operates a process to monitor and respond to known vulnerabilities or newly discovered vulnerabilities. This process must include the following:</p><ol><li>A method for continuously monitoring known vulnerabilities or newly discovered vulnerabilities in the open source software components used in supplied software</li><li>A risk/impact assessment procedure for discovered vulnerabilities</li><li>A method for contacting customers and taking appropriate action, such as upgrading software components, as necessary</li><li>A method for maintaining continuous monitoring and response capability even after the supplied software has been released to market</li></ol><p>The detailed procedure for this security vulnerability response process follows [2. Security Vulnerability Management Process].</p><h2 id="2-security-vulnerability-management-process">2. Security Vulnerability Management Process</h2><p>After supplied software has been released to market, if a known vulnerability or newly discovered vulnerability is reported, the following process is followed to take appropriate action according to the level of risk.</p><h3 id="1-continuous-security-testing-before-release">(1) Continuous Security Testing Before Release</h3><p>IT builds and operates a system that applies continuous, repeated security testing to all supplied software before release:</p><ol><li>Automated security testing:<ul><li>Integrate automated security testing tools into the CI/CD pipeline.</li><li>Automatically run security tests whenever code changes.</li></ul></li><li>Vulnerability scanning:<ul><li>Use an SCA tool to scan for known vulnerabilities in open source components.</li><li>Automatically update the vulnerability database and perform scans daily.</li></ul></li><li>Security test result review:<ul><li>Security reviews the security test results and takes necessary action.</li><li>If a serious vulnerability is found, immediately notifies the development team and establishes a resolution plan.</li></ul></li></ol><h3 id="2-monitoring-known-vulnerabilities-and-newly-discovered-vulnerabilities">(2) Monitoring Known Vulnerabilities and Newly Discovered Vulnerabilities</h3><p>IT builds and operates a system to monitor known vulnerabilities and newly discovered vulnerabilities. To identify structural/technical threats, this system performs the following functions:</p><ol><li>Automated vulnerability monitoring:<ul><li>Analyzes newly published vulnerabilities daily and automatically identifies affected versions of supplied software.</li><li>Periodically collects publicly available security vulnerability information.</li></ul></li><li>SBOM-based analysis:<ul><li>Uses an SCA tool to perform SBOM-based analysis.</li><li>Integrates the SCA tool into the CI/CD pipeline to perform automated analysis.</li></ul></li><li>Notification and record-keeping:<ul><li>When a vulnerability is discovered, automatically sends a notification to the development lead and security lead for the affected supplied software.</li><li>Uses an issue tracking system so that everything from notification to review, action, and resolution is documented and recorded.</li></ul></li></ol><h3 id="3-vulnerability-assessment-and-response">(3) Vulnerability Assessment and Response</h3><p>Security assesses each vulnerability according to predefined risk/impact assessment criteria and provides response guidance to the business unit. Risk is classified by CVSS (Common Vulnerability Scoring System) score, and the action deadline is set according to severity.</p><table><thead><tr><th>Risk</th><th>CVSS 3.0</th><th>Recommended Action Schedule</th></tr></thead><tbody><tr><td>Low</td><td>0.0 - 3.9</td><td>0.0 - 3.9</td></tr><tr><td>Medium</td><td>4.0 - 6.9</td><td>4.0 - 6.9</td></tr><tr><td>Hgh</td><td>7.0 - 10.0</td><td>7.0 - 8.9</td></tr><tr><td>Critical</td><td>-</td><td>9.0 - 10.0</td></tr></tbody></table><p>If a known vulnerability or newly discovered vulnerability is confirmed in previously released supplied software, the business unit establishes an action plan according to the response guidance provided by Security.</p><p>If necessary, the business unit notifies customers of the confirmed vulnerability according to the risk/impact score.</p><h3 id="4-vulnerability-resolution-and-verification">(4) Vulnerability Resolution and Verification</h3><ul><li>The business unit resolves the vulnerability issue according to the established action plan.</li><li>It resolves the vulnerability by removing the problematic open source software component or replacing it with a patched version, among other methods.</li><li>IT uses an open source analysis tool to confirm that the issue has been properly resolved.</li><li>Security performs additional security testing on the resolved vulnerability to verify that it has been completely resolved.</li><li>The verification results are documented and recorded.</li><li>Reviews whether all serious vulnerabilities have been resolved.</li><li>If a vulnerability that is difficult to resolve remains, reviews whether approval is possible considering the business type and service exposure status.</li></ul><h3 id="5-post-release-vulnerability-analysis-and-response">(5) Post-Release Vulnerability Analysis and Response</h3><p>IT operates an automated system to analyze vulnerabilities in released supplied software daily, even after release, for all supplied software.</p><ul><li>When affected supplied software is identified, it immediately sends a notification to the development lead and security lead.</li><li>The notified person assesses the severity of the vulnerability and establishes a response plan.</li><li>Carries out patch development, mitigation measures, and other actions according to the response plan.</li><li>Performs verification after the action is completed and documents the results.</li></ul><h3 id="6-vulnerability-record-management">(6) Vulnerability Record Management</h3><p>For each open source component, a vulnerability record is maintained that includes the following information:</p><ul><li>Vulnerability ID (e.g., CVE number)</li><li>Vulnerability description</li><li>Affected versions</li><li>Severity (CVSS score)</li><li>Date discovered</li><li>Resolution status</li><li>Resolution method applied</li><li>Verification results</li></ul><p>Vulnerability records are stored in a central database and backed up periodically.</p><p>IT registers the SBOM (Software Bill of Materials) with the vulnerability resolved in the system.</p><h3 id="7-reporting-and-communication">(7) Reporting and Communication</h3><ul><li>A monthly vulnerability management report is prepared and provided to management and relevant stakeholders.</li><li>The report includes the number of newly discovered vulnerabilities, the number of resolved vulnerabilities, the status of and action plan for unresolved vulnerabilities, and key risk factors and response strategies.</li><li>If a serious vulnerability is discovered, it is immediately reported to the relevant department and management.</li></ul><h3 id="8-customer-and-third-party-notification">(8) Customer and Third-Party Notification</h3><p>The Open Source Program Manager creates an updated open source notice based on the SBOM with the vulnerability resolved, and delivers it to the business unit.</p><ol><li><p>Customer notification:</p><p>The business unit notifies customers of the vulnerability resolution in the following ways:</p><ul><li>Replaces the open source notice included with the product distribution.</li><li>Notifies customers directly by email or other means as necessary.</li><li>Redistributes the version of the supplied software with the vulnerability resolved.</li></ul></li><li><p>Third-party disclosure:</p><p>IT discloses risk information to third parties in the following ways:</p><ul><li>Registers the revised open source notice and vulnerability-related information on the Company&rsquo;s open source website.</li><li>Submits vulnerability information to a public vulnerability database (e.g., NVD).</li><li>Notifies the maintainer of the open source project of the discovered vulnerability and its resolution.</li></ul></li><li><p>Notification content:</p><p>The information provided to customers and third parties includes the following:</p><ul><li>Vulnerability overview and identifier (e.g., CVE number)</li><li>Affected products and versions</li><li>Potential impact of the vulnerability and CVSS score</li><li>Temporary response measures</li><li>Patch or update availability and how to apply it</li><li>Contact information for obtaining further information</li></ul></li></ol><h2 id="3-external-inquiry-response-process">3. External Inquiry Response Process</h2><p>Responding quickly and accurately to external inquiries related to open source license compliance and security assurance can greatly reduce the risk of escalation to litigation. To this end, the organization complies with the following process:</p><p><img src="/docs/templates/2-process-template/general-inquiry-process.png" alt="general-inquiry-process"/><h3 id="1-acknowledgment-of-receipt">(1) Acknowledgment of Receipt</h3><p>The Open Source Program Manager notifies the requester immediately upon receiving an inquiry that it has been received. At this time, it specifies an appropriate response time. If the inquiry is unclear, it requests additional explanation to accurately understand the requester&rsquo;s intent.</p><p>Main types of inquiries and requests:</p><ul><li>Whether specific supplied software uses open source</li><li>A request to provide source code under a GPL or LGPL license mentioned in a Written Offer</li><li>A request for an explanation and source code disclosure for open source missing from the open source notice</li><li>A request to provide missing files or build instructions for disclosed source code</li><li>A request for copyright notation</li><li>Inquiries related to known vulnerabilities or newly discovered vulnerabilities</li></ul><p>The Open Source Program Manager creates an issue for the received request and records the response status in detail.</p><h3 id="2-notification-of-investigation">(2) Notification of Investigation</h3><p>The Open Source Program Manager notifies the requester that the Company is faithfully carrying out open source license compliance and security assurance, and that the inquiry is under investigation. It provides periodic updates on the progress of the internal investigation.</p><h3 id="3-internal-investigation">(3) Internal Investigation</h3><p>The Open Source Program Manager conducts an internal investigation of the request. It confirms whether the license compliance and security assurance process was properly carried out for the supplied software in question, using the SBOM and the documented review history. It requests advice from Legal and Security as needed.</p><p>If confirmation is needed from a specific business unit, the Open Source Program Manager requests the investigation from that unit. The business unit that receives the investigation request immediately checks whether there is a problem with the compliance artifacts and security-related matters, and reports the results.</p><h3 id="4-report-to-the-requester">(4) Report to the Requester</h3><p>The Open Source Program Manager completes the internal investigation within the specified response time and notifies the requester of the results.</p><ul><li>If the requester&rsquo;s inquiry was a false claim caused by a misunderstanding, it explains this and closes the matter without further action.</li><li>If a problem is confirmed, it notifies the requester of the accurate method and timing for fulfilling the open source license obligation or resolving the security vulnerability.</li></ul><h3 id="5-issue-remediation--notification">(5) Issue Remediation / Notification</h3><p>If an actual license compliance or security problem is found during the internal investigation, the relevant business unit carries out all procedures necessary to resolve it.</p><h3 id="6-notification-of-issue-resolution">(6) Notification of Issue Resolution</h3><p>Once the problem has been resolved, the requester is notified immediately, and provided with the best way to confirm that the problem has been resolved.</p><h3 id="7-process-improvement">(7) Process Improvement</h3><p>If there was a license compliance or security problem, the case is reviewed at an OSRB meeting to understand how the problem occurred, and process improvement measures are established to prevent recurrence.</p><h2 id="4-open-source-contribution-process">4. Open Source Contribution Process</h2><p>If the organization allows contributions to external open source projects, the following process must be carried out.</p><h3 id="1-establishing-and-disseminating-a-contribution-policy">(1) Establishing and Disseminating a Contribution Policy</h3><ul><li>A documented policy governing contributions to open source projects must be established.</li><li>This policy must be disseminated within the organization.</li><li>There must be a process for enforcing the policy.</li></ul><p>The Open Source Program Manager must do the following:</p><ul><li>Write a documented open source contribution policy.</li><li>Establish a documented procedure to ensure that all program participants are aware of the open source contribution policy (e.g., education, an internal wiki, or other effective means of communication).</li></ul><h3 id="2-contribution-review-and-approval-procedure">(2) Contribution Review and Approval Procedure</h3><p>A documented procedure for managing open source contributions must be established. This procedure must include the following:</p><ul><li>Confirm the origin and license of the code to be contributed.</li><li>Review whether the contributor has the right to contribute the code.</li><li>Review the license and contribution policy of the project being contributed to.</li><li>Obtain review by the Legal team as necessary.</li><li>Define the approval procedure for the contribution.</li><li>Specify the submission method for approved contributions.</li></ul><p>The Open Source Program Manager must maintain records demonstrating that this procedure has been carried out correctly.</p><p>Through this process, the organization can effectively manage contributions to external open source projects and minimize potential legal risk.</p>
]]></content:encoded></item><item><title>India, Korea, and Other Jurisdictions</title><link>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/2-global/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/2-global/</guid><description>Summarizes SBOM recommendation guidelines from India's CERT-In and other jurisdictions, including Korea.</description><content:encoded>&lt;![CDATA[<p>Jurisdictions outside the United States and the European Union are generally at the recommendation
stage. There is no legal enforcement or sanction, but these function as best practices that
influence procurement and contracting practices.</p><h2 id="india-cert-in-technical-guidelines">India: CERT-In Technical Guidelines</h2><p>The Indian Computer Emergency Response Team (CERT-In) published the<em>Technical Guidelines on
Software Bill of Materials (SBOM)</em>. This is a voluntary guideline aimed at government agencies,
the public sector, essential services, and software producing and service companies, covering the
value of SBOMs, best practices, minimum elements, and vulnerability tracking procedures. It has no
legal force, but it influences government procurement and contracting practices.</p><p>In July 2025, CERT-In expanded this guideline to also cover Quantum BOM (QBOM), Cryptography BOM
(CBOM), AI BOM (AIBOM), and Hardware BOM (HBOM). This is an example of how the bill of materials
concept is spreading beyond software into cryptography, AI, and hardware. The expansion into AI
BOM is covered further in<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a> and in the separate<a href="/en/docs/ai-sbom_guide/">AI SBOM Compliance Guide</a>.</p><p>The first edition of this guide began as a Korean translation of this CERT-In document. The
current edition updates that skeleton with current primary sources from the United States and the
European Union, and broadens it to a general practitioner&rsquo;s perspective.</p><h2 id="korea-software-supply-chain-security-guidelines">Korea: Software Supply Chain Security Guidelines</h2><p>In Korea, the Ministry of Science and ICT, the National Intelligence Service, and the Korea
Internet &amp; Security Agency (KISA), among others, published the Software Supply Chain Security
Guidelines 1.0 in May 2024. It recommends SBOM generation and vulnerability inspection procedures,
and the use of the National Institute of Standards and Technology (NIST) Secure Software
Development Framework (SSDF).</p><p>However, this is only an administrative guideline, and Korea&rsquo;s current legal system does not yet
have legislation that imposes a mandatory reporting obligation at the product level, as the EU
Cyber Resilience Act does. Even so, Korean companies exporting software to the EU and the United
States must directly meet the requirements of those markets, so building SBOM capability is a
practical necessity regardless of domestic regulation.</p><h2 id="practical-implications">Practical Implications</h2><p>The legal standing differs by jurisdiction, but the skeleton of the data required converges. A
well-built SBOM system, built once, can satisfy the requirements of multiple jurisdictions at the
same time. If the system is designed around the strictest requirement among your export markets
(currently the EU CRA), the recommendations of other jurisdictions are largely subsumed within it.</p><h2 id="sources">Sources</h2><p>Indian Computer Emergency Response Team (CERT-In).<em>Technical Guidelines on Software Bill of
Materials (SBOM)</em>, CIGU-2024-0002.<a href="https://www.cert-in.org.in/">https://www.cert-in.org.in/</a>. Ministry of Science and ICT,
National Intelligence Service, Korea Internet &amp; Security Agency (2024).<em>Software Supply Chain
Security Guidelines 1.0</em>.<a href="https://www.kisa.or.kr/">https://www.kisa.or.kr/</a>. (all accessed: June 14, 2026)</p>
]]></content:encoded></item><item><title>Identifiers and Licenses</title><link>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/2-identifiers/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/2-identifiers/</guid><description>Covers the PURL, CPE, and SWID identifiers used to consistently point to components, and how to notate SPDX license identifiers.</description><content:encoded>&lt;![CDATA[<p>If the same component is named differently across SBOMs, automated matching breaks down, because
there is no way for a machine to know that &ldquo;Apache Tomcat,&rdquo; &ldquo;tomcat,&rdquo; and &ldquo;Apache Software
Foundation Tomcat&rdquo; are the same thing. This is why an identifier system that consistently points
to components, and a convention for notating licenses with standard codes, are both necessary.</p><h2 id="three-identifiers-purl-cpe-swid">Three Identifiers: PURL, CPE, SWID</h2><p>The three identifiers used together in practice serve different roles. They are not mutually
exclusive, so recording them together where possible is recommended.</p><table><thead><tr><th>Identifier</th><th>Maintained by</th><th>Primary use</th></tr></thead><tbody><tr><td>PURL (Package URL)</td><td>Community (purl-spec)</td><td>Precisely points to a component within a package manager ecosystem</td></tr><tr><td>CPE (Common Platform Enumeration)</td><td>NIST</td><td>Notates a product with a consistent name to look up its CVEs</td></tr><tr><td>SWID (Software Identification Tag)</td><td>ISO/IEC 19770-2</td><td>Structured metadata for product, version, and producing entity</td></tr></tbody></table><p><strong>Table 1.</strong> Identifiers used together in an SBOM<em>(source: purl-spec, NIST NVD,
ISO/IEC 19770-2. Retrieved 2026-06-14)</em></p><p>A Package URL points to a component within a package manager ecosystem in the following format.</p><pre tabindex="0"><code>pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0</code></pre><p>After<code>pkg:</code> come the ecosystem type (maven, npm, pypi, etc.), namespace, name, and version.
Because the same component can be pointed to with the same string everywhere, it links
automatically to vulnerability databases and license databases.</p><p>CPE was developed by MITRE in the mid-2000s and is now maintained by NIST. It notates products
under a fixed naming rule and is used to look up the vulnerabilities (CVEs) corresponding to a
product. SWID is a tag format standardized as ISO/IEC 19770-2 that structurally describes a
product&rsquo;s version and producing/distributing entity, and it is mainly used in asset management.
The CISA 2025 minimum elements draft updating &ldquo;Other Unique Identifiers&rdquo; to &ldquo;Software
Identifiers&rdquo; also reflects the maturing of this identifier ecosystem.</p><h2 id="license-notation-spdx-license-identifiers">License Notation: SPDX License Identifiers</h2><p>License management is one of the earliest use cases for an SBOM. Recording exactly which license
each component is distributed under is what prevents obligation violations and conflicts in
advance. Free-text descriptions cannot be matched automatically, so standard codes are used.</p><p><a href="https://spdx.org/licenses/">SPDX license identifiers</a> assign each license a unique code such as<code>Apache-2.0</code>,<code>MIT</code>, or<code>GPL-3.0-only</code>. When multiple licenses apply together, they are combined
with a license expression.</p><pre tabindex="0"><code>Apache-2.0 OR MIT
GPL-2.0-only WITH Classpath-exception-2.0
(MIT AND BSD-3-Clause)</code></pre><p><code>OR</code> indicates a choice among multiple licenses,<code>AND</code> indicates multiple licenses applying
simultaneously, and<code>WITH</code> indicates combination with an exception clause.</p><p>The principles to follow in practice are as follows.</p><ul><li>The license of every individual component, not just the license of the product as a whole,
must be visible.</li><li>When encountering a license not on the standard list, assign it an identifier with a prefix
indicating its source (for example, a<code>LicenseRef-</code> prefix) to track it.</li><li>If the license text has been trivially modified but its meaning has not changed materially,
use the same identifier as the original.</li><li>Analyze license compatibility to identify in advance the conflicts that can arise when
combining components under different licenses.</li></ul><p>Even when a license field is auto-extracted by a tool, its accuracy is a separate matter.
Precisely identifying non-standard licenses, handling dual licensing, and confirming compliance
with licenses that carry field-of-use restrictions remain the responsibility of people and
policy. The boundary of automation is covered in<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a>.</p><h2 id="sources">Sources</h2><p>Package URL specification<a href="https://github.com/package-url/purl-spec">https://github.com/package-url/purl-spec</a>. NIST.<em>Common Platform Enumeration (CPE)</em><a href="https://nvd.nist.gov/products/cpe">https://nvd.nist.gov/products/cpe</a>. ISO/IEC 19770-2:2015.
SPDX License List<a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a>. SPDX License Expressions<a href="https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/">https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/</a>. (All retrieved: 2026-06-14)</p>
]]></content:encoded></item><item><title>cdxgen</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/2-cdxgen/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/2-cdxgen/</guid><description>Explains how to use the AI BOM mode of OWASP cdxgen, which generates a CycloneDX SBOM from projects and models, together with actual execution output.</description><content:encoded>&lt;![CDATA[<h2 id="overview">Overview</h2><p>cdxgen is the official SBOM generator of the OWASP CycloneDX project. It supports more than 20
languages and package managers, and the latest version offers a dedicated AI BOM mode. It
automatically identifies the dependencies of AI applications (PyTorch, Transformers, and so on) and
integrates well with CI/CD pipelines.</p><p>From an AI SBOM standpoint, cdxgen&rsquo;s strength is speed and automation. Its weakness is that it does
not fill in license information in a default run. This trait shows up in the execution result below.
Where OWASP AIBOM Generator centers on model card metadata, cdxgen centers on code and dependencies.
Using both together covers both models and dependencies.</p><h2 id="key-features">Key Features</h2><ul><li>Identifies dependencies from source code and container images to generate a CycloneDX SBOM.</li><li>Includes AI/ML metadata (formulation) with AI BOM mode (<code>-t ai</code>).</li><li>Takes Hugging Face model URLs, Modelfiles, and GGUF artifacts directly as input.</li><li>Automatically submits SBOMs to a Dependency-Track server for continuous management.</li></ul><h2 id="installation">Installation</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"># One-off run (requires 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"># Global install</span></span></span><span style="display:flex;"><span>npm install -g @cyclonedx/cdxgen</span></span></code></pre></div><h2 id="usage--generating-an-ai-bom">Usage — Generating an AI BOM</h2><p>Run in AI BOM mode from the AI project directory.</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"># Generate an 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"># Generate including AI/ML metadata (formulation)</span></span></span><span style="display:flex;"><span>cdxgen -t ai --include-formulation -o aibom.json .</span></span></code></pre></div><p>Below is the actual result of running cdxgen against a summarization app (<code>transformers</code>,<code>torch</code>
dependencies) that loads a pretrained model (<code>facebook/bart-large-cnn</code>). It automatically identifies
5 dependencies and produces a 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>Generated components — 5 entries (CycloneDX 1.7):</span></span><span style="display:flex;"><span> transformers 4.44.2 pkg:pypi/transformers@4.44.2 license: empty</span></span><span style="display:flex;"><span> torch 2.4.0 pkg:pypi/torch@2.4.0 license: empty</span></span><span style="display:flex;"><span> numpy 1.26.4 pkg:pypi/numpy@1.26.4 license: empty</span></span><span style="display:flex;"><span> tokenizers 0.19.1 pkg:pypi/tokenizers@0.19.1 license: empty</span></span><span style="display:flex;"><span> huggingface-hub 0.24.6 pkg:pypi/huggingface-hub@0.24.6 license: empty</span></span></code></pre></div><p><strong>Figure 1.</strong> cdxgen execution output<em>(cdxgen 12.5.1, run 2026-06-13)</em></p><p>One of the generated components looks like this. The identification evidence is filled in, but the<code>licenses</code> field is empty.</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="what-the-execution-result-shows">What the Execution Result Shows</h2><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">cdxgen identifies quickly, but a human must fill in the license</div><p>cdxgen quickly identified 5 dependencies from<code>requirements.txt</code>, but the<code>licenses</code> field of each
component is empty. Also, the pretrained model<code>facebook/bart-large-cnn</code> that the app loads was not
captured in the BOM by code scanning alone. It must be collected separately as inbound material and
added. A realistic combination is to build the dependency skeleton quickly with cdxgen, have a human
verify and fill in the licenses, and generate the model separately with OWASP AIBOM Generator before
merging.</p></div><h2 id="see-also">See Also</h2><ul><li>AI SBOM generation and management procedure:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Generator centered on model metadata:<a href="/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/">OWASP AIBOM Generator</a></li><li>SBOM management:<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 integration</a></li><li>Official:<a href="https://github.com/cdxgen/cdxgen/blob/master/docs/AI_BOM.md">cdxgen AI-BOM documentation</a></li></ul>
]]></content:encoded></item><item><title>AI Extension Process</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/</guid><description>The stage of building AI-specific license, transparency, and SBOM processes that extend beyond code to cover models, weights, and datasets.</description><content:encoded>&lt;![CDATA[<p>This is stage 2 of the implementation roadmap. It is the area where the AI SBOM guide extends most significantly
beyond ISO/IEC 5230, covering licensing obligations (3.5), transparency obligations (3.6), and AI SBOM
generation and management (3.9).</p>
]]></content:encoded></item><item><title>3.8 Effectively Resourced</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/</guid><description>Explains how to assign responsibility, staffing, funding, and legal expertise to an AI SBOM compliance program, and how to remediate non-conformances.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 3 — Operational Structure</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>If competence (3.2) defines who should be able to do what, effective resourcing is what actually
attaches people, time, and budget to those roles so the program runs. When policy and procedures
exist only on paper and no resources back them, compliance is a name only.</p><p>3.8 requires assigning accountability for program tasks and allocating adequate resources. There
are five verification materials, covering the naming of role holders, the provision of staffing
and funding, access to legal expertise, an internal responsibility-assignment procedure, and a
non-conformance remediation procedure. The specification references the resource-related sections
of ISO/IEC 42001 Annex B (B.4.2, B.4.6) and the human oversight determination section (B.9.3).</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Assign accountability for the successful execution of program tasks.</li><li>Allocate sufficient time and funding to the tasks.</li><li>Make legal expertise on AI SBOM compliance accessible to those who need it.</li><li>Have a procedure for reviewing and updating the policy and its supporting tasks.</li><li>Have a procedure for reviewing and remediating non-conformances.</li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.8</td><td>The organization shall assign accountability for program tasks, allocate sufficient time and funding, and have access to legal expertise and a non-conformance remediation procedure.</td><td><strong>3.8.1</strong> A document identifying the persons, groups, or functions holding program roles<br><strong>3.8.2</strong> Evidence that identified roles have been staffed and adequately funded<br><strong>3.8.3</strong> Identification of expertise (internal or external) available to handle AI SBOM compliance matters<br><strong>3.8.4</strong> A documented procedure for assigning internal responsibility for AI SBOM compliance<br><strong>3.8.5</strong> A documented procedure for handling the review and remediation of non-conformances</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.8 Effectively resourced</strong>
Identify and Resource Program Task(s): assign accountability to ensure the successful execution of
program tasks; program tasks are sufficiently resourced (time and adequate funding allocated); a
process exists for reviewing and updating the policy and supporting tasks; legal expertise
pertaining to AI SBOM Compliance is accessible to those who may need such guidance; and a process
exists for the resolution of AI SBOM Compliance issues.</p><p><strong>Verification material(s):</strong></p><ul><li>Document with name of persons, group or function in program role(s) identified.</li><li>The identified program roles have been properly staffed and adequate funding provided.</li><li>Identification of expertise available to address AI SBOM Compliance matters which could be
internal or external.</li><li>A documented procedure that assigns internal responsibilities for AI SBOM Compliance.</li><li>A documented procedure for handling the review and remediation of non-compliant cases.</li></ul><p>See, e.g., Sections B.4.2 and B.4.6 of Annex B of ISO/IEC 42001. Section B.9.3 also provides
guidance to determine if human resources for human oversight should be incorporated.</p></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="381-document-identifying-role-holders">3.8.1 Document Identifying Role Holders</h3><p><strong>How to Comply</strong></p><p>Document, by name, the people, groups, or functions holding program roles. Including the job
title alongside the name is more stable against personnel changes. The AI SBOM program needs, in
addition to the usual open source roles, an AI governance lead, an AI SBOM verification owner,
and a model/dataset license review owner.</p><p><strong>Sample</strong></p><pre tabindex="0"><code>| Role | Holder (Job Title) | Contact |
|------|-------------|--------|
| AI Governance Lead | Kim, OO (AI Ethics &amp; Governance Lead) | ai-gov@company.com |
| AI SBOM Verification Owner | Lee, OO (Platform Engineer) | sbom@company.com |
| License Review Owner | Park, OO (Open Source Legal) | oss-legal@company.com |
| Security Owner | Choi, OO (Product Security) | psirt@company.com |</code></pre><hr><h3 id="382-staffing-and-funding">3.8.2 Staffing and Funding</h3><p><strong>How to Comply</strong></p><p>Show that identified roles are actually staffed and that budget has been allocated. Record the
time allocation (e.g., 30%) and the basis for the annual budget. AI SBOM compliance takes time for
model/dataset review and tool operation, so estimate the per-role time allocation realistically.</p><p><strong>Considerations</strong></p><ul><li><strong>State the time allocation</strong>: For a shared role, record the percentage of time allocated to AI
SBOM work.</li><li><strong>Tool budget</strong>: Include the cost of AI SBOM generation/management tools and legal counsel in
the budget.</li></ul><p><strong>Sample</strong></p><pre tabindex="0"><code>| Role | Holder | Time Allocation | Annual Budget Basis | Approver / Approval Date |
|------|--------|----------|---------------|--------------|
| AI Governance Lead | Kim, OO | 30% | Personnel cost + regulatory counsel | CTO / 2026-01-15 |
| AI SBOM Verification Owner | Lee, OO | 50% | Personnel cost + tool operation | CTO / 2026-01-15 |</code></pre><hr><h3 id="383-access-to-legal-expertise">3.8.3 Access to Legal Expertise</h3><p><strong>How to Comply</strong></p><p>Make legal expertise on AI SBOM compliance accessible to those who need it. Because interpreting
non-standard licenses and determining regulatory obligations is legal&rsquo;s job, specify the access
path — internal legal counsel or an outside firm. Also define escalation criteria (which matters
get escalated to legal).</p><p><strong>Sample</strong></p><pre tabindex="0"><code>- Internal: Open Source Legal Owner (Park, OO) — first-pass license review
- External: XX Law Firm, AI/IP team — non-standard license disputes, regulatory interpretation
- Escalation criteria: a license not on the policy's prohibited/conditional lists, determining
downstream disclosure obligations, matters where new regulation newly applies</code></pre><hr><h3 id="384-internal-responsibility-assignment-procedure">3.8.4 Internal Responsibility Assignment Procedure</h3><p><strong>How to Comply</strong></p><p>Document the procedure for assigning internal responsibility for AI SBOM compliance. Vague
responsibility leads to gaps, so a RACI matrix distinguishing Responsible (R), Accountable (A),
Consulted (C), and Informed (I) per task is effective.</p><p><strong>Sample (RACI Matrix)</strong></p><table><thead><tr><th>Task</th><th style="text-align: center">AI Governance Lead</th><th style="text-align: center">AI SBOM Verification Owner</th><th style="text-align: center">License Review Owner</th><th style="text-align: center">Security Owner</th></tr></thead><tbody><tr><td>AI SBOM generation</td><td style="text-align: center">I</td><td style="text-align: center">R</td><td style="text-align: center">C</td><td style="text-align: center">I</td></tr><tr><td>License obligation review</td><td style="text-align: center">A</td><td style="text-align: center">C</td><td style="text-align: center">R</td><td style="text-align: center">I</td></tr><tr><td>Transparency obligation review</td><td style="text-align: center">A</td><td style="text-align: center">C</td><td style="text-align: center">R</td><td style="text-align: center">I</td></tr><tr><td>Vulnerability monitoring</td><td style="text-align: center">I</td><td style="text-align: center">C</td><td style="text-align: center">I</td><td style="text-align: center">R</td></tr><tr><td>Periodic framework review</td><td style="text-align: center">R/A</td><td style="text-align: center">C</td><td style="text-align: center">C</td><td style="text-align: center">C</td></tr></tbody></table><p><em>R Responsible, A Accountable, C Consulted, I Informed</em></p><hr><h3 id="385-non-conformance-review-and-remediation-procedure">3.8.5 Non-Conformance Review and Remediation Procedure</h3><p><strong>How to Comply</strong></p><p>Have a procedure for reviewing and remediating non-conformances (e.g., a prohibited-license model
brought in, a missing AI SBOM, a failure to meet transparency obligations). Vary the handling
deadline by severity. In AI, a licensing problem sometimes surfaces after a model has already been
deployed, so prepare a remediation path that includes recall or replacement.</p><p><strong>Sample (Remediation Procedure and Severity Criteria)</strong></p><pre tabindex="0"><code>Remediation procedure: identify/report → assess severity → root-cause analysis → corrective
action → recurrence prevention → record
| Severity | Example | Handling Deadline |
|--------|------|----------|
| High | A prohibited-license model is included in a product shipped externally | Immediate response (contain/replace review within 48 hours) |
| Medium | An inbound model is missing from the AI SBOM | Backfill within 7 days |
| Low | Some model card metadata is missing | Handle at the next periodic review |</code></pre><h2 id="5-references">5. References</h2><ul><li>Competence definitions per role:<a href="/en/docs/ai-sbom_guide/1-program-foundation/2-competence/">3.2 Competence</a></li><li>Governance review linked to non-conformance remediation:<a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">3.10 Governance</a></li><li>ISO/IEC 5230 resourcing model:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/2-relevant-tasks/2-resourced/">ISO/IEC 5230 Compliance Guide — 3.2.2 Effectively Resourced</a></li></ul>
]]></content:encoded></item><item><title>3.6 Transparency Obligations</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/</guid><description>Explains the procedure for reviewing transparency obligations imposed by regulation and applying risk mitigation measures to issues such as disclosure of training data.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Stage</div><p>This clause is established during<strong>Phase 2 — AI Extension Process</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>If license obligations (3.5) ask &ldquo;do we have the right to use this material,&rdquo; transparency
obligations ask &ldquo;what must we disclose about this material.&rdquo; The two obligations come from
different sources. License obligations are imposed by the rights holder through a contract;
transparency obligations are imposed by regulation through law.</p><p>3.6 requires having a procedure to review whether there are transparency obligations imposed by
regulation. The scope of review includes training, testing, and verification datasets, taking into
account the model&rsquo;s intended use. If the use case for the training data creates a transparency
issue (e.g., a disclosure obligation to downstream recipients), appropriate risk mitigation measures
must be taken. As the EU Artificial Intelligence Act begins full enforcement of transparency
obligations from August 2026, the practical weight of this clause is growing.</p><h2 id="2-required-activities">2. Required Activities</h2><ul><li>Maintain a procedure to identify the transparency regulations that apply to AI systems being
adopted or developed.</li><li>Review whether training, testing, and verification datasets carry disclosure obligations, based
on their intended use.</li><li>Determine risk mitigation measures where a disclosure obligation to downstream recipients exists.</li><li>Document the transparency measures taken.</li><li>Regularly update and reflect the latest transparency obligations set by regulators.<em>([Recommendation of this guide])</em></li></ul><h2 id="3-requirements-and-verification-material">3. Requirements and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement (EN)</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.6</td><td>A process shall exist for reviewing if there are any transparency obligations from regulations including but not limited to training, testing, and verification datasets, taking into account the intended use of the model. If the use case for the training data creates a relevant issue (e.g., disclosure obligations to downstream recipients) in the context of transparency, then appropriate risk mitigation measures should be undertaken.</td><td><strong>3.6.1</strong> A documented procedure to review and document the transparency measures undertaken</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.6 Transparency obligations</strong>
A process shall exist for reviewing if there are any transparency obligations from regulations
including but not limited to training, testing, and verification datasets, taking into account the
intended use of the model. If the use case for the training data creates a relevant issue (e.g.,
disclosure obligations to downstream recipients) in the context of transparency, then appropriate
risk mitigation measures should be undertaken.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented procedure to review and document the transparency measures undertaken.</li></ul></blockquote></details><h2 id="4-compliance-methods-and-samples-by-verification-material">4. Compliance Methods and Samples by Verification Material</h2><h3 id="361-procedure-to-review-and-document-transparency-obligations">3.6.1 Procedure to review and document transparency obligations</h3><p><strong>Compliance Method</strong></p><p>Transparency obligations differ by regulation, so first identify which regulations apply. Once the
applicable regulations are determined, derive the disclosure items each one requires and reflect
those items in the AI SBOM or model card. Unlike license obligations, transparency obligations
center on &ldquo;disclosure,&rdquo; so the output must be organized in a form that can be delivered externally.</p><p>The table below lists the main transparency obligations that intersect with the AI SBOM. The
regulatory timeline and broader context are managed together in the regulatory matrix in<a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">3.10 Governance</a>.</p><p><strong>Table 1.</strong> Transparency obligations that intersect with the AI SBOM (as of June 2026)</p><table><thead><tr><th>Source</th><th>Transparency Obligation</th><th>Reflected in AI SBOM / Model Card</th></tr></thead><tbody><tr><td>EU Artificial Intelligence Act Article 53 (GPAI)</td><td>Public summary of training data, honoring copyright opt-outs</td><td>Dataset provenance and license, opt-out handling records</td></tr><tr><td>EU Artificial Intelligence Act Article 50</td><td>Labeling AI-generated content, notice of AI interaction</td><td>Output labeling policy</td></tr><tr><td>Korea&rsquo;s AI Basic Act</td><td>Labeling obligation for high-impact and generative AI, disclosure of training data provenance</td><td>Model card labeling and provenance fields</td></tr><tr><td>License-derived notices</td><td>Notices such as &ldquo;Built with Llama,&rdquo; naming of derivative models</td><td>Tracked together with license obligations (3.5)</td></tr></tbody></table><p>The figure below shows the review flow that derives transparency obligations from a material&rsquo;s
intended use.</p><p><img src="/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/transparency-decision-en.png" alt="A flow that identifies applicable regulations, determines whether transparency obligations and downstream disclosure issues exist, and reflects them in the AI SBOM and model card"/><p><strong>Figure 1.</strong> Transparency obligation review flow</p><p><strong>Considerations</strong></p><ul><li><strong>Dataset provenance is central</strong>: Most transparency obligations attach to training data. A
dataset&rsquo;s provenance and license must be recorded in the AI SBOM to fulfill disclosure
obligations. This connects directly to the AI SBOM (3.9).</li><li><strong>Intended use is the criterion</strong>: The same model can carry different transparency obligations
depending on the use case. High-risk uses or services aimed at the general public carry heavier
obligations.</li><li><strong>Downstream disclosure obligations</strong>: When supplying a model or system externally, review what
information the recipient must be told. Risk mitigation can be fulfilled through a public summary
of training data or contractual notice.</li><li><strong>Reflect regulatory change</strong>: Since the EU Artificial Intelligence Act applies transparency
obligations from August 2026, update the procedure to match the timeline. Responsibility for the
update is managed by governance (3.10).</li></ul><p><strong>Sample (Transparency Obligation Review Procedure)</strong></p><p>Below is a sample of the core part of a transparency obligation review procedure document. This
procedure document becomes verification material 3.6.1.</p><pre tabindex="0"><code>## Transparency Obligation Review Procedure
### 1. Identify Applicable Regulations
Identify applicable regulations based on the AI system's intended use and deployment
region.
(e.g., EU market deployment → EU Artificial Intelligence Act; domestic high-impact AI →
Korea's AI Basic Act)
### 2. Derive Disclosure Items
Organize each regulation's transparency obligations into disclosure items.
- Training data summary (EU Artificial Intelligence Act Article 53)
- AI-generated / interaction labeling (EU Artificial Intelligence Act Article 50, Korea's
AI Basic Act)
- Data provenance disclosure (Korea's AI Basic Act)
### 3. Downstream Review
Review the information to be conveyed to recipients on external supply, and determine the
necessary risk mitigation measures.
### 4. Reflection and Documentation
Reflect the derived disclosure items in the AI SBOM and model card, and record the
measures taken.
### 5. Responsibility and Cycle
- Review: Legal and AI governance lead
- Update: On changes to regulatory enforcement timelines, and at least semiannually</code></pre><h2 id="5-see-also">5. See Also</h2><ul><li>Distinction from license obligations:<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a></li><li>AI SBOM to hold disclosure items:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Regulatory timeline and governance:<a href="/en/docs/ai-sbom_guide/4-governance/1-governance/">3.10 Governance</a></li><li>AI model licenses and labeling obligations:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/opensource_for_enterprise/7-ai-compliance/">Enterprise Open Source Management Guide — AI Compliance</a></li></ul>
]]></content:encoded></item><item><title>3.2 Competence</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/2-competence/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/2-competence/</guid><description>Explains how to define the roles and responsibilities of an AI SBOM compliance program and identify and assess the competence required for each role.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 1 — Program Foundation</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>If policy (3.1) defines what must be done, competence ensures there are people who can do it. AI
SBOM compliance demands broader knowledge than open source compliance, which dealt only with code
licensing. It requires judgment on the licensing of model weights and datasets, interpreting
model cards, emerging AI regulation, and the usage restrictions of non-standard licenses.</p><p>3.2 requires identifying the roles and responsibilities that affect the program&rsquo;s performance,
determining the competence each role needs, and ensuring participants have it. The specification
specifies competence in governance, security, safety, privacy, development, and supplier
management functions where relevant to the use case.</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Identify and document the roles that affect the program&rsquo;s performance and their responsibilities.</li><li>Define the competence required for each role (governance, security, safety, privacy,
development, supplier management).</li><li>Add AI-specific competence (model/dataset licensing, model card interpretation, AI regulation)
to the role-level competence definitions.</li><li>Ensure participants are competent on the basis of education, training, and experience.</li><li>Retain competence assessment evidence, and periodically check that the list stays up to date.</li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.2</td><td>The organization shall identify the roles and responsibilities that affect the program&rsquo;s execution and effectiveness, determine the competence required for each role, and ensure participants have it. Where relevant to the use case, competence shall be secured in the governance, security, safety, privacy, development, and supplier management functions.</td><td><strong>3.2.1</strong> A documented list of roles with the responsibilities of each participant<br><strong>3.2.2</strong> A document identifying the competence for each role<br><strong>3.2.3</strong> Documented evidence of assessed competence for each participant (including periodic checks to keep the list up to date)</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.2 Competence</strong>
The organisation shall identify the roles and the corresponding responsibilities of those roles
that affect the performance and effectiveness of the program; determine the necessary competence
of program participants fulfilling each role (Governance, Security, Safety, Privacy, Development,
Supplier management if relevant to the use case); ensure that program participants are competent on
the basis of appropriate education, training, and/or experience; and retain appropriate documented
information as evidence of competence.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented list of roles with corresponding responsibilities for the different participants in
the program.</li><li>A document that identifies the competencies for each role.</li><li>Documented evidence of assessed competence for each program participant, with periodic checks to
keep the list up-to-date.</li></ul></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="321-list-of-roles-and-responsibilities">3.2.1 List of Roles and Responsibilities</h3><p><strong>How to Comply</strong></p><p>Document the roles involved in the program and the responsibilities of each. In addition to the
usual open source roles, an AI SBOM program includes an AI governance role and roles that review
models and datasets. Writing responsibilities out specifically makes the later work of defining
competence (3.2.2) and assigning accountability (3.8.4) clearer.</p><p><strong>Sample</strong></p><pre tabindex="0"><code>| Role | Responsibility |
|------|------|
| AI Governance Lead | Approves the framework, determines regulatory obligations, chairs periodic reviews |
| AI SBOM Verification Owner | Generates, reviews, and approves the AI SBOM; reflects inbound materials |
| License Review Owner | Determines licensing obligations for models, datasets, and the model tree |
| Data Owner | Manages the provenance and licensing of training/validation datasets |</code></pre><hr><h3 id="322-competence-required-per-role">3.2.2 Competence Required per Role</h3><p><strong>How to Comply</strong></p><p>Define the competence each role must have. Of the six functions the specification lists
(governance, security, safety, privacy, development, supplier management), select the ones that
apply to the role and use case, and add AI-specific competence. For example, the license review
owner needs the competence to interpret the usage restrictions of non-standard licenses (Llama
Community, OpenRAIL).</p><p><strong>Sample</strong></p><pre tabindex="0"><code>| Role | Required Competence |
|------|----------|
| AI Governance Lead | Governance, understanding of AI regulation (EU AI Act, Korea's AI Basic Act), risk management |
| AI SBOM Verification Owner | Development, SPDX/CycloneDX formats, model card interpretation, generation tool operation |
| License Review Owner | Supplier management, interpreting open source and non-standard licenses, model tree tracing |
| Data Owner | Privacy, dataset licensing, provenance management |</code></pre><hr><h3 id="323-competence-assessment-evidence">3.2.3 Competence Assessment Evidence</h3><p><strong>How to Comply</strong></p><p>Assess whether each participant actually has the competence their role requires, and retain the
evidence. Training completion, qualifications, and hands-on experience serve as the basis. Since
AI regulation and licensing change quickly, periodically check the list to keep it current.</p><p><strong>Considerations</strong></p><ul><li><strong>Diversify the basis for assessment</strong>: Use not only training completion but also practical
work products (e.g., license review records) as competence evidence.</li><li><strong>Periodic checks</strong>: Re-review competence requirements when new regulation takes effect or new
license types emerge.</li><li><strong>Fill gaps</strong>: When an assessment reveals a competence gap, close it with training or outside
expertise (<a href="/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/">3.8 Effectively Resourced</a>).</li></ul><p><strong>Sample (Competence Assessment Log)</strong></p><pre tabindex="0"><code>| Participant (Role) | Role | Assessment Item | Basis | Result | Assessment Date |
|-------------|------|----------|----------|------|--------|
| Lee, OO | AI SBOM Verification Owner | Writing CycloneDX ML-BOM | Internal training + work products | Met | 2026-03-10 |
| Park, OO | License Review Owner | Interpreting non-standard licenses | 5 years of OSS legal experience | Met | 2026-03-10 |</code></pre><h2 id="5-references">5. References</h2><ul><li>Procedure for attaching resources to roles:<a href="/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/">3.8 Effectively Resourced</a></li><li>Securing participant awareness:<a href="/en/docs/ai-sbom_guide/1-program-foundation/3-awareness/">3.3 Awareness</a></li><li>ISO/IEC 5230 competence model:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/1-program-foundation/2-competence/">ISO/IEC 5230 Compliance Guide — 3.1.2 Competence</a></li></ul>
]]></content:encoded></item><item><title>Standards and Formats</title><link>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/</guid><description>Compares SPDX and CycloneDX, the two standard formats for expressing an SBOM in a machine-readable form.</description><content:encoded>&lt;![CDATA[<p>Since an SBOM requires machine readability, a standard format is necessary. Among the three
formats specified by the US NTIA minimum elements, SPDX and CycloneDX split practical use between
them. The third, the SWID tag, is used mainly in asset management; its role as an identifier is
covered in<a href="/en/docs/sbom_guide/2-standards/2-identifiers/">Identifiers and Licenses</a>.</p><h2 id="spdx">SPDX</h2><p>SPDX (System Package Data Exchange) is a project under the Linux Foundation. Version 2.2.1
became an international standard as ISO/IEC 5962:2021 in August 2021. It is worth noting that
the current ISO standard refers strictly to version 2.2.1.</p><p>The Linux Foundation released SPDX 3.0 on April 16, 2024, introducing a structure of
purpose-specific profiles. The approach layers Security, Build, Dataset, and AI profiles on top
of a core model. The AI profile carries model training and characterization information, the
Dataset profile carries data provenance and licensing, and the Security profile carries
vulnerability identification, severity, exploitability, and mitigation plans. A patch release,
3.0.1, followed in December of the same year. Whether SPDX 3.x is being re-standardized with ISO
had not been confirmed as of June 2026.</p><h2 id="cyclonedx">CycloneDX</h2><p>CycloneDX is a full-stack BOM standard that originated at OWASP (Open Worldwide Application
Security Project). Its distinguishing feature is native support for Vulnerability Exploitability
eXchange (VEX) within the format itself. International standardization proceeded through Ecma
International&rsquo;s technical committee TC54. Version 1.6 was published as ECMA-424 1st edition in
June 2024, adding a Cryptographic Bill of Materials (CBOM) and CycloneDX Attestations, and v1.7
was announced in October 2025 and standardized as ECMA-424 2nd edition in December 2025. v1.7
added post-quantum cryptography readiness, structured citations, and support for patent objects.</p><p>CycloneDX can express software (SBOM), hardware (HBOM), services (SaaSBOM), and machine learning
models (ML-BOM) all within a single format.</p><h2 id="comparing-the-two-formats">Comparing the Two Formats</h2><table><thead><tr><th/><th>SPDX</th><th>CycloneDX</th></tr></thead><tbody><tr><td>Steward</td><td>Linux Foundation</td><td>OWASP / Ecma TC54</td></tr><tr><td>International standard</td><td>ISO/IEC 5962:2021 (based on v2.2.1)</td><td>ECMA-424 1st edition (v1.6, 2024-06), 2nd edition (v1.7, 2025-12)</td></tr><tr><td>Latest specification</td><td>3.0 (2024-04), 3.0.1 (2024-12)</td><td>1.7 (2025-10)</td></tr><tr><td>Extension mechanism</td><td>Purpose-specific profiles (Security, Build, Dataset, AI)</td><td>Component types and auxiliary objects, native VEX</td></tr><tr><td>Strengths</td><td>License expression and legal compliance history</td><td>Vulnerability/VEX integration, security-operations friendly</td></tr></tbody></table><p><strong>Table 1.</strong> Comparison of the two major SBOM standard formats<em>(source: ISO/IEC 5962:2021,
Linux Foundation 2024, Ecma International ECMA-424. Retrieved 2026-06-14)</em></p><p>The two standards differ in design philosophy. SPDX extends its scope of application through
profiles, while CycloneDX expresses it through component types and auxiliary objects. Both,
however, target the same problem in that they carry component identification, licensing, and
dependency relationships. Whichever you choose, conversion tools exist between the two formats,
so you can choose based on the format your trading partners require and the format your own tool
chain supports well. If license compliance is the focus, SPDX is the familiar starting point; if
vulnerability operations is the focus, CycloneDX is.</p><p>Next, we look at the<a href="/en/docs/sbom_guide/2-standards/1-minimum-elements/">minimum elements</a> that define what a format must
contain, and<a href="/en/docs/sbom_guide/2-standards/2-identifiers/">identifiers and licenses</a> for consistently pointing to
components.</p><h2 id="sources">Sources</h2><p>ISO/IEC (2021).<em>ISO/IEC 5962:2021 — SPDX Specification V2.2.1</em>. The Linux Foundation (2024).<em>SPDX 3.0 Release</em>.<a href="https://www.linuxfoundation.org/press/spdx-3-revolutionizes-software-management-in-systems-with-enhanced-functionality-and-streamlined-use-cases">https://www.linuxfoundation.org/press/spdx-3-revolutionizes-software-management-in-systems-with-enhanced-functionality-and-streamlined-use-cases</a>.
Ecma International.<em>ECMA-424 — CycloneDX Bill of Materials Specification</em>.<a href="https://ecma-international.org/publications-and-standards/standards/ecma-424/">https://ecma-international.org/publications-and-standards/standards/ecma-424/</a>. CycloneDX (2025).<em>CycloneDX v1.7 Released</em>.<a href="https://cyclonedx.org/news/cyclonedx-v1.7-released/">https://cyclonedx.org/news/cyclonedx-v1.7-released/</a>. (All retrieved: 2026-06-14)</p>
]]></content:encoded></item><item><title>2. Policy</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/2-policy/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/2-policy/</guid><description>1. Documenting an Open Source Policy An enterprise must establish and document an open source policy consisting of principles that let the organizations involved in developing, servicing, and delivering supplied software use open source correctly, and must propagate this policy throughout the organization.
To this end, the ISO standards commonly require a documented open source policy and security assurance policy as follows.
ISO/IEC 5230 - License Compliance 3.1.1.1 - A documented open source policy.
A documented open source policy ISO/IEC 18974 - Security Assurance 3.1.1.1: A documented Open Source Software Security Assurance policy A documented Open Source Software Security Assurance policy A typical open source policy includes the following. An enterprise must create and document an open source policy that includes these principles:</description><content:encoded>&lt;![CDATA[<h2 id="1-documenting-an-open-source-policy">1. Documenting an Open Source Policy</h2><p>An enterprise must establish and document an open source policy consisting of principles that let the organizations involved in developing, servicing, and delivering supplied software use open source correctly, and must propagate this policy throughout the organization.</p><p>To this end, the ISO standards commonly require a documented open source policy and security assurance policy as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.1.1 - A documented open source policy.<br><code>A documented open source policy</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.1.1: A documented Open Source Software Security Assurance policy<br><code>A documented Open Source Software Security Assurance policy</code></li></ul></div><p>A typical open source policy includes the following. An enterprise must create and document an open source policy that includes these principles:</p><ol><li>Principles for minimizing open source license compliance and security vulnerability risk when delivering supplied software products and services</li><li>Principles for contributing to external open source projects</li><li>Principles for releasing the enterprise&rsquo;s own software as open source</li><li>Principles for generating and managing the Software Bill of Materials (SBOM) of open source software components</li><li>Principles for responding to known vulnerabilities and newly discovered vulnerabilities</li></ol><p>The open source policy must also be propagated to program participants and reviewed and updated regularly. This ensures the policy always stays current and reflects the organization&rsquo;s requirements.</p><h2 id="2-what-the-open-source-policy-must-cover">2. What the Open Source Policy Must Cover</h2><p>An open source policy must include the following core content:</p><h3 id="1-open-source-license-compliance-principles">(1) Open Source License Compliance Principles</h3><p>To achieve open source license compliance, the following principles must be established:</p><ul><li>Identify and document all open source included in supplied software</li><li>Determine and comply with the license obligations of each open source</li><li>Produce compliance artifacts that satisfy license obligations</li><li>Fulfill license obligations such as open source notices and source code disclosure</li></ul><h3 id="2-open-source-security-assurance-principles">(2) Open Source Security Assurance Principles</h3><p>To achieve open source security assurance, the following principles must be established:</p><ul><li>Monitor known vulnerabilities and newly discovered vulnerabilities in the open source components of supplied software</li><li>Perform a risk/impact assessment when a vulnerability is found</li><li>Respond promptly and apply patches for severe vulnerabilities</li><li>Notify customers of vulnerability information and provide updates</li></ul><h3 id="3-responding-to-open-source-risk">(3) Responding to Open Source Risk</h3><p>To minimize the license and security risks that come with using open source, the following procedures must be established:</p><ol><li>Identify open source and review its license obligations</li><li>Design the architecture with open source licenses in mind</li><li>Produce open source compliance artifacts</li><li>Generate and manage the Software Bill of Materials (SBOM)</li><li>Respond to open source license compliance issues</li><li>Respond to open source security vulnerabilities</li></ol><p>You can see how these principles are documented in<a href="/en/docs/templates/1-policy/">6. Use of Open Source</a> of [Appendix 1] the open source policy template.</p><pre tabindex="0"><code>1. Use of Open Source
When developing and delivering supplied software, the obligations required by each open source license must be observed. The activities carried out for this purpose are called open source license compliance.
For proper open source license compliance activities and security assurance, the software development/delivery organization must comply with the following and record and retain the entire process in an issue tracking system.
(1) Identify open source and review license obligations
When introducing open source into supplied software development, first identify what the open source license is, and review and confirm the obligations the license requires.
The company's [Open Source License Guide] includes a list of major open source licenses, and for each license, it explains the obligations required by each of the following distribution forms.
- Binary form
- Source form
- Strong/weak Copyleft
- SaaS-based delivery
- Whether modified
- Inclusion of open source requiring attribution, etc.
Software development/delivery organizations can refer to this guide when reviewing open source license obligations. If a review of an open source license not covered by this guide is needed, contact the open source program manager.
(2) Design with open source licenses in mind
Identify the coupling relationships of open source and design the software architecture so that the company's own code is not affected by open source licenses.
The company's [Open Source License Guide] explains the source code disclosure scope for each open source license and design methods for preventing disclosure of the company's own code.
(3) Produce open source compliance artifacts
The most basic element of open source license compliance activity is understanding the state of open source included in supplied software. This is precisely to properly satisfy the open source license requirements that are the core of open source license compliance. In other words, a set of compliance artifacts must be produced for the open source included in supplied software.
Open source compliance artifacts fall into two broad categories.
1. Open source notice: a document providing the full text of open source licenses and copyright information
2. Source code package to be disclosed: a package that gathers the source code to be disclosed to fulfill the obligations of open source licenses such as GPL and LGPL that require source code disclosure
To compile, distribute, and archive these compliance artifacts, the following must be observed.
- Compile the open source notice or the source code package to be disclosed according to the conditions required by each license. For example, if a license requires that the full text of the license be enclosed, providing only a link is not sufficient.
- Store the compiled artifacts in a separate repository.
- If the source code to be disclosed is provided via a written offer, publish a download link so that the repository of compiled artifacts can be accessed externally.
The company's open source process can be used to issue the open source notice and compile the source code package to be disclosed.
(4) Generate the Software Bill of Materials (SBOM)
There must be a process to generate and maintain an SBOM (Software Bill of Materials) that includes the details of each open source software component making up the supplied software.
The company's open source process can use open source tools to generate and retain the SBOM.
(5) Compliance issue response procedure
When a compliance issue is raised, the open source program manager performs the following procedure to respond promptly.
1. Acknowledge receipt of the inquiry and specify a reasonable resolution time.
2. Confirm whether the issue content actually points to a real problem. (If not, inform the person who raised the issue that it is not a problem.)
3. If it is a real problem, set a priority and decide on an appropriate response plan.
4. Carry out the response and, if necessary, appropriately supplement the open source process.
5. Preserve the above using the issue tracking system.
(6) Open source security assurance management
A documented procedure for detecting and resolving known vulnerabilities in the open source software components of supplied software must be established and maintained. This procedure must include the following.
- Apply methods for discovering the existence of known vulnerabilities
- Perform a risk/impact assessment for each discovered vulnerability
- Take appropriate action such as contacting customers or upgrading software components when necessary
The following processes must also be built.
- Identify structural and technical threats to supplied software
- Apply continuous and repeated security testing
- Confirm that identified risks have been resolved before the release of supplied software
- Secure monitoring and response capability after supplied software is released to the market
A record must be kept of the known vulnerabilities and newly discovered vulnerabilities identified for each open source software component, and of the actions taken.</code></pre><h3 id="4-internal-responsibility-assignment-procedure">(4) Internal Responsibility Assignment Procedure</h3><p>The open source policy must address a procedure for internally assigning responsibility to resolve open source management issues.</p><p>The ISO standards commonly require a documented procedure for assigning internal responsibility as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.2.4 - A documented procedure that assigns internal responsibilities for open source compliance.<br><code>A documented procedure that assigns internal responsibilities for open source compliance</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.2.4: A documented procedure that assigns internal responsibilities for Security Assurance.<br><code>A documented procedure that assigns internal responsibilities for Security Assurance</code></li></ul></div><p>The open source program manager must identify license compliance issues and appropriately assign responsibility to the person in charge of each role to resolve them. Likewise, for open source security vulnerability issues, the person in charge of security identifies the issue and assigns responsibility to the appropriate personnel to resolve it.</p><p>To this end, a documented procedure for assigning internal responsibility can be reflected in the open source policy as in the example below.</p><pre tabindex="0"><code>4. Roles, Responsibilities, and Competencies
To ensure the policy is effective, the following defines the roles and responsibilities and the competencies the person in charge of each role must have.
(2) Open Source Program Manager
- Defines the roles necessary for open source license compliance and designates the responsible organization and person in charge of each role. Consults with the OSRB when necessary.
(6) Security Lead
- Assigns responsibility for each task so that open source security assurance can be carried out successfully.</code></pre><p>Through this procedure, internal responsibility for open source license compliance and security assurance is clearly assigned, so that each person in charge can understand and perform their role. Consultation with the<a href="https://www.linuxfoundation.org/tools/open-source-glossary/#osrb">OSRB (Open Source Review Board)</a> also helps maintain consistency with the organization&rsquo;s overall open source strategy.</p><p>The internal responsibility assignment procedure must be reviewed and updated regularly, and must be able to be flexibly adjusted as the organization&rsquo;s structure or projects change. This allows the efficiency and effectiveness of open source management to continuously improve.</p><h3 id="5-responding-to-non-compliant-cases">(5) Responding to Non-Compliant Cases</h3><p>An enterprise must document a procedure for promptly reviewing and responding to non-compliant cases in open source license compliance and security assurance.</p><p>ISO/IEC 5230 and ISO/IEC 18974 commonly require a documented procedure for reviewing and remediating non-compliant cases as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.2.5 - A documented procedure for handling the review and remediation of non-compliant cases.<br><code>A documented procedure for handling the review and remediation of non-compliant cases</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.2.5: A documented procedure for handling the review and remediation of non-compliant cases.<br><code>A documented procedure for handling the review and remediation of non-compliant cases</code></li></ul></div><p>To this end, an enterprise can reflect a documented procedure for reviewing and remediating non-compliant cases in the open source policy as in the example below.</p><pre tabindex="0"><code>6. Use of Open Source
(5) Compliance and Security Assurance Issue Response Procedure
When a license compliance or security assurance issue is raised, the open source program manager performs the following procedure to respond promptly:
1. Acknowledge receipt of the inquiry and specify a reasonable resolution time.
2. Confirm whether the issue content actually points to a real problem. (If not, inform the person who raised the issue that it is not a problem.)
3. If it is a real problem, set a priority and decide on an appropriate response plan.
- For license compliance issues, consult with the legal lead to establish a plan for meeting license obligations.
- For security assurance issues, consult with the security lead to establish a plan for resolving the vulnerability.
4. Carry out the response and, if necessary, appropriately supplement the open source process.
5. Record and preserve the above using the issue tracking system.
6. Analyze the root cause of the non-compliant case and establish an improvement plan to prevent recurrence.
7. Report the non-compliant case and the response outcome to the OSRB (Open Source Review Board) and, if necessary, discuss ways to improve the policy and process.</code></pre><p>Through this procedure, an enterprise can systematically manage non-compliant cases related to open source license compliance and security assurance, and pursue continuous improvement. In addition, using a standardized format such as<a href="https://spdx.dev/">SPDX</a> to manage license and security information makes it possible to identify and respond to non-compliant cases even more effectively.</p><h3 id="6-staffing-and-budget-support">(6) Staffing and Budget Support</h3><p>An enterprise must provide sufficient resources for the open source program to function smoothly. Personnel for each role in the program must be appropriately staffed, and adequate budget and working time must be guaranteed. If not, a procedure to compensate for this must be put in place.</p><p>The ISO standards commonly require that the personnel for each role in the program be properly staffed and that adequate funding be provided, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.2.2 - The identified program roles have been properly staffed and adequate funding provided.<br><code>The personnel for each role in the program must be properly staffed and adequate funding provided.</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.2.2: The identified Program roles have been properly staffed and adequate funding provided;<br><code>The personnel for each role in the program must be properly staffed and adequate funding provided.</code></li></ul></div><p>To this end, an enterprise can reflect content on staffing and budget support in the open source policy as in the example below:</p><pre tabindex="0"><code>4. Roles, Responsibilities, and Competencies
The head of the organization responsible for each role designates a person in charge within the organization and allocates adequate time and budget for that person to fully perform the role.
- If the person in charge of each role is not adequately supported while performing the role, they must raise the issue with the open source program manager.
- The open source program manager discusses the resolution with the relevant organization head. If not resolved adequately, the open source program manager may request the OSRB to resolve the issue.
- The OSRB shares the issue with the head of the higher organization and requests resolution.</code></pre><p>In addition, an enterprise can strengthen staffing and budget support by considering the following:</p><ol><li>Assign dedicated personnel to the open source program manager</li><li>Secure a budget for purchasing specialized tools for open source license compliance and security assurance</li><li>Set a budget for training and building the competency of program participants</li><li>Allocate a budget for consulting with outside experts</li><li>Establish a regular process for reviewing personnel and budget</li></ol><p>Through this support, an enterprise can raise the effectiveness of its open source license compliance and security assurance program and meet the requirements of<a href="https://www.iso.org/standard/81039.html">ISO/IEC 5230</a> and<a href="https://www.iso.org/standard/34044.html">ISO/IEC 18974</a>.</p><h3 id="7-providing-expert-advice">(7) Providing Expert Advice</h3><p>When the person in charge of each role needs a professional review to resolve an open source issue, the enterprise must provide a way to request advice for this.</p><p>The ISO standards commonly require a way to use internal or external professional advice to resolve issues, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.2.3 - Identification of legal expertise available to address open source license compliance matters which could be internal or external.<br><code>A way to use internal or external professional legal advice to resolve open source license compliance issues</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.2.3: Identification of expertise available to address identified Known Vulnerabilities<br><code>A way to use professional technical advice to resolve identified known vulnerabilities</code></li></ul></div><p>For open source license compliance issues, the company&rsquo;s internal legal team is the primary owner, and if an issue is contentious, an outside law firm with attorneys specializing in open source can be used.</p><p>For open source security vulnerability issues, the company&rsquo;s internal security team is the primary owner, and if an issue is complex and contentious, advice can be requested from an outside security specialist firm.</p><p>To this end, an enterprise can reflect content on providing advice in the open source policy as in the example below.</p><pre tabindex="0"><code>4. Roles, Responsibilities, and Competencies
(4) Legal Lead
The legal lead provides advice on legal risks and mitigation measures that may arise in the course of using open source, such as interpreting open source licenses and obligations.
- Provides a reasonable way for program participants to inquire about open source license compliance issues.
- Provides advice on license and intellectual property issues, including conflicts caused by incompatible open source licenses.
- Reviews necessary legal matters, such as open source licenses and the CLA (Contributor License Agreement), when contributing to external open source projects.
- If an issue is contentious, requests advice from an outside law firm with attorneys specializing in open source.
(6) Security Lead
The security lead operates open source security vulnerability analysis tools and builds a system so that security vulnerability analysis is smoothly performed for all supplied software.
- Provides a reasonable way for program participants to inquire about known vulnerabilities or newly discovered vulnerabilities, and uses outside professional technical advice when necessary to resolve vulnerabilities.</code></pre><p>For reference, the<a href="https://www.openchainproject.org/">OpenChain Project</a> provides, through its partner program, a list of global law firms that offer open source-related advice:<a href="https://www.openchainproject.org/partners">https://www.openchainproject.org/partners</a></p><p>Law firms registered as OpenChain partners meet the requirements set by the OpenChain Project, and in South Korea,<a href="https://www.bkl.co.kr/">Bae, Kim &amp; Lee LLC</a> is the sole registrant.</p><h3 id="8-specifying-scope-of-application">(8) Specifying Scope of Application</h3><p>A single open source policy (program) does not necessarily have to apply to the entire organization. The scope of application can be set differently depending on the characteristics of each organization and product within the enterprise. For example, an organization that does not deliver any supplied software at all can be excluded from the scope of the open source program.</p><p>The ISO standards commonly require a written statement that clearly defines the scope and limits of the program, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.4.1 - A written statement that clearly defines the scope and limits of the program.<br><code>A written statement that clearly defines the scope and limits of the program</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.4.1: A written statement that clearly defines the scope and limits of the Program<br><code>A written statement that clearly defines the scope and limits of the Program</code></li><li>3.1.4.2: A set of metrics the program shall achieve to improve<br><code>A set of metrics the program must achieve to improve</code></li><li>3.1.4.3: Documented Evidence from each review, update, or audit to demonstrate continuous improvement.<br><code>Documented evidence demonstrating that a review, update, or audit was performed for continuous improvement</code></li></ul></div><p>An enterprise must clearly define the scope and limits of the open source program in view of the characteristics of the organization and products, and state this in the open source policy.</p><p>Also, as the organizational structure, products, and services change to match the business environment, situations may arise where the scope of the program needs to be determined or revised. An enterprise must establish metrics for assessing scope, and perform reviews and inspections for continuous improvement to fix shortcomings.</p><p>To this end, an enterprise must have a system for clearly defining the scope of application in the open source policy and documenting the history of activities, as follows.</p><pre tabindex="0"><code>2. Scope of Application
This policy applies to the following three parts.
1. It applies to all supplied software the company provides or distributes externally. However, using open source solely for internal use is not within the scope of this policy.
2. It applies when program participants contribute to external open source projects.
3. It applies when releasing internal code as open source.
The scope of application can change to match the company's business environment. In particular, to ensure continuous effectiveness, the open source program manager investigates at least once a month whether there is any supplied software distributed or serviced externally that is not covered by this policy. If even one such case is found, this is used as the basis for determining that the scope of application must be changed.
The procedure for changing the scope of application is as follows.
1. When the open source program manager determines that a change to the policy's scope of application is needed due to changes in the company's business environment, such as a new business or reorganization, a proposal for this is submitted to the OSRB.
2. The OSRB approves an appropriate level of change to the scope of application.
3. The OSRB revises the open source policy to change the scope of the policy.
The open source program manager continuously documents the history of reviews, updates, and inspections performed at least once a month to improve the scope of application, using the [Jira](https://www.atlassian.com/software/jira) Issue Tracker.</code></pre><p>Therefore, an enterprise must have a system for clearly defining the scope of application in the open source policy and documenting the history of activities, as shown above.</p><h3 id="9-responding-to-external-inquiries">(9) Responding to External Inquiries</h3><p>Customers and open source copyright holders sometimes contact an enterprise regarding open source-related inquiries, requests, and claims about supplied software developed using open source. The main content of external inquiries and requests is as follows:</p><ul><li>Inquiries about whether open source was used in a specific piece of supplied software</li><li>Requests to provide source code under the GPL or LGPL licenses referenced in a written offer</li><li>Requests to explain and disclose source code for open source found in supplied software but not listed in the open source notice</li><li>Requests to provide missing files and build instructions for source code disclosed under obligations such as GPL and LGPL</li><li>Requests for attribution</li><li>Inquiries and requests related to open source security vulnerabilities</li></ul><p>An enterprise must designate a person in charge of handling these external inquiries. This is typically the open source program manager.</p><p>There have been cases where an outside open source developer, wanting to discuss an open source-related issue with a specific enterprise, could not find a way to contact the enterprise&rsquo;s representative and ended up filing a legal claim directly. To prevent this, an enterprise must always publicly disclose a way for third parties to make open source-related inquiries and requests to the enterprise.</p><p>The ISO standards commonly require a publicly available way for third parties to make open source inquiries, as follows:</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.1.1 - Publicly visible method that allows any third party to make an open source license compliance inquiry (e.g., via a published contact email address, or the Linux Foundation&rsquo;s Open Compliance Directory).<br><code>A publicly available way for a third party to make an open source license compliance inquiry (e.g., a contact email address, or use of the Linux Foundation's Open Compliance Directory)</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.2.1.1: Publicly visible method to allow third parties to make Known Vulnerability or Newly Discovered Vulnerability enquires (e.g., via an email address or web portal that is monitored by Program Participants)<br><code>A publicly available way for a third party to make an inquiry about a known vulnerability or a newly discovered vulnerability (e.g., an email address or a web portal monitored by program participants)</code></li></ul></div><p>The following ways can be provided so that outside parties can make open source-related inquiries to the enterprise:</p><ol><li>Publish a representative email address for the organization in charge of open source.</li><li>Use the<a href="https://compliance.linuxfoundation.org/references/open-compliance-directory/">Linux Foundation&rsquo;s Open Compliance Directory</a>.</li><li>If the enterprise has an open source website, publish the email address through it.</li></ol><p>Including and publishing the representative email address of the organization in charge of open source in the open source notice enclosed with supplied software is also a good approach.</p><p>An enterprise can reflect content on responding to external inquiries in the open source policy as in the example below:</p><pre tabindex="0"><code>9. Responding to External Inquiries
(1) Responsibility for Responding to External Inquiries
Responding to inquiries and requests about open source from external parties is the responsibility of the open source program manager.
- The open source program manager may assign all or part of the handling of an inquiry to an appropriate program participant within the company. Legal is consulted for handling when necessary.
- Any program participant who receives an external inquiry about open source must notify the open source program manager so a prompt response can be made.
(2) Publishing Contact Information
The open source program manager publicly provides the contact information of the person in charge so that external parties can make open source-related inquiries and requests.
- Provides contact email information in the open source notice.
- Provides email information on the open source website.
- Registers contact information in the Linux Foundation's Open Compliance Directory.
(3) External Inquiry Response Procedure
Responding to external open source inquiries promptly and accurately can greatly reduce the risk of claims or legal action. To this end, the company follows the external inquiry response procedure defined in the company's open source process for responding to external open source inquiries.</code></pre><p><a href="https://www.sktelecom.com/">SK telecom</a> includes an open source notice in all of its supplied software. The open source notice provides the address of the SK telecom open source website together with an email address for contacting the open source program office.</p><p><img src="/docs/opensource_for_enterprise/2-policy/ossnotice.png" alt=""/><center><i>SK telecom open source notice</i></center><br><p>The<a href="https://sktelecom.github.io/">SK telecom open source website</a> also provides an email address for contacting the open source program office.</p><p><img src="/docs/opensource_for_enterprise/2-policy/website_email.jpg" alt=""/><center><i>SK telecom open source website</i></center><br><h3 id="10-open-source-contribution">(10) Open Source Contribution</h3><p>Global software companies value not only using open source to build products and provide services, but also the strategic value that can be created by contributing to open source projects. However, approaching this without a sufficient understanding of and strategy for the open source project ecosystem and how communities operate can unexpectedly damage the company&rsquo;s reputation and create legal risk. It is therefore important for an enterprise to establish a strategy and policy for participating in and contributing to open source projects.</p><p>ISO/IEC 5230 requires a documented open source contribution policy, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.5.1.1 - A documented open source contribution policy<br><code>A documented open source contribution policy</code></li></ul></div><p>This policy on open source contribution can be found in<a href="/en/docs/templates/1-policy/#7-contribution-to-external-open-source-projects">7. Open Source Contribution</a> of the [Appendix 1] open source policy sample.</p><pre tabindex="0"><code>7. Open Source Contribution
The company encourages participation and contribution to external open source projects to create business value from open source. However, this process requires care to avoid unintended exposure of the company's intellectual property or infringement of third-party rights. To this end, when a program participant of the company contributes to an external open source project, the following must be observed.
(1) Review Request and Approval
From a copyright standpoint, an open source contribution grants the open source project the right to modify, use, and distribute the work. In some cases, copyright must even be assigned to the open source project. Generally, the copyright of a work created during employment is owned by the employer. In other words, a work created by a program participant is owned by the company. A program participant contributing a work to open source on their own judgment can cause unnecessary copyright infringement issues.
Therefore, if there is an open source project you wish to contribute to, follow the review request and approval procedure before the first contribution, in accordance with the open source contribution process.
However, in the following simple cases, since the risk of copyright infringement is not significant, a program participant may contribute based on their own judgment without going through the review procedure.
- A small code snippet of 10 lines or fewer
- Questions/answers on Stack Overflow
- Administrative activity on GitHub: creating issues, reviewing/approving pull requests, etc.
...</code></pre><p>The open source contribution policy must include the contribution procedure, approval process, measures for protecting intellectual property rights, and guidance on signing a<a href="https://en.wikipedia.org/wiki/Contributor_License_Agreement">CLA (Contributor License Agreement)</a>. It must also provide guidelines for behavior when program participants engage with the open source community on behalf of the company.</p><h3 id="11-sbom-generation-and-management">(11) SBOM Generation and Management</h3><p>A procedure for generating and managing the<a href="https://www.cisa.gov/sbom">SBOM (Software Bill of Materials)</a> must be established:</p><ul><li>Select the SBOM generation tool and methodology</li><li>Ensure the accuracy and completeness of SBOM information</li><li>Establish an SBOM update and version management process</li><li>Define a method for sharing and distributing the SBOM</li></ul><p>An enterprise can reflect content on SBOM generation and management in the open source policy as in the example below:</p><pre tabindex="0"><code>6. Use of Open Source
(4) Generate the Software Bill of Materials (SBOM)
There must be a process to generate and maintain an SBOM (Software Bill of Materials) that includes the details of each open source software component making up the supplied software.
The company's open source process can use open source tools to generate and retain the SBOM.
- The SBOM is generated using a standard format such as [SPDX](https://spdx.dev/) or [CycloneDX](https://cyclonedx.org/).
- An SBOM is generated and managed for all supplied software.
- The SBOM is updated and version-controlled with each release of the supplied software.
- The accuracy of SBOM information is periodically verified.
- Preparations are made to share the SBOM with customers and regulators when necessary.</code></pre><p>SBOM generation and management are core elements of open source license compliance and security assurance. Through this, an enterprise can accurately understand the open source components in use and respond promptly to known vulnerabilities or license issues.</p><p>An enterprise must include these SBOM-related principles in its open source policy to build a systematic SBOM management system.</p><h2 id="3-summary">3. Summary</h2><p>Documenting an open source policy is the single most important process for effective open source management.</p><p>The next page provides a sample open source policy document that meets the requirements of ISO/IEC 5230 and ISO/IEC 18974 mentioned above:<a href="/en/docs/templates/1-policy/">[Appendix 1] Open Source Policy (template)</a></p><p>Referring to the content above, it is necessary to establish appropriate principles for each requirement that fit the company&rsquo;s situation. It is also important to go beyond documentation alone and consider actionable procedures. A policy that is words alone is of no use.</p><p>An open source policy must include the following core elements:</p><ol><li>Open source license compliance principles</li><li>Open source security assurance principles</li><li>Response to open source risk</li><li>Internal responsibility assignment procedure</li><li>Response to non-compliant cases</li><li>Staffing and budget support plan</li><li>Method of providing expert advice</li><li>Specification of the policy&rsquo;s scope of application</li><li>External inquiry response procedure</li><li>Open source contribution guidelines</li><li>Method for generating and managing the SBOM (Software Bill of Materials)</li></ol><p>Establishing and documenting an open source policy that includes these elements makes it possible to meet the key requirements of the ISO/IEC 5230 and ISO/IEC 18974 standards.</p><p><img src="/docs/opensource_for_enterprise/2-policy/spec_number_02.png" alt=""/><p>A policy must not stop at documentation alone; it must actually be implemented within the organization. This requires regular review and updates, along with training for program participants. An effective open source policy will help systematically manage the organization&rsquo;s use of and contribution to open source, and minimize potential legal and security risks.</p>
]]></content:encoded></item><item><title>Program Foundation</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/</guid><description>The stage of establishing the foundation of an AI SBOM compliance program. Covers policy, competency, awareness, and scope.</description><content:encoded>&lt;![CDATA[<p>This is stage 1 of the implementation roadmap. It defines the program&rsquo;s scope (3.4), establishes policy (3.1),
and secures the competency and awareness of participants (3.2, 3.3). All subsequent clauses operate on top of
this foundation.</p>
]]></content:encoded></item><item><title>OWASP AIBOM Generator</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/5-tools/1-aibom-generator/</guid><description>Explains how to use the OWASP tool that generates a CycloneDX-format AI SBOM from a Hugging Face model and scores its completeness, together with actual execution screens.</description><content:encoded>&lt;![CDATA[<h2 id="overview">Overview</h2><p>OWASP AIBOM Generator is an open source tool that takes a Hugging Face model ID as input, fetches
model card metadata, and generates an AI SBOM in CycloneDX format. It is maintained by the OWASP
Gen AI Security Project, and its distinguishing feature is scoring how complete the generated BOM is.</p><p>Where cdxgen identifies dependencies quickly but leaves the license fields empty, this tool fills in
the license, author, and external references recorded in the model card. It works well as a
starting point for the license review required by<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a>.</p><h2 id="key-features">Key Features</h2><ul><li>Fetches metadata from Hugging Face models and generates an AIBOM in both CycloneDX 1.6 and 1.7
format.</li><li>Evaluates the completeness of the generated BOM with a score (0–100) and a profile, broken down
section by section.</li><li>Displays model information, the model card, license, and external references in a human-readable
view.</li><li>Available both as a web UI and a command-line interface (CLI).</li></ul><h2 id="usage-a--web-ui">Usage A — Web UI</h2><p>The simplest approach: just enter a model ID in the browser. Use the Hugging Face Space provided by
the OWASP Gen AI Security Project, or clone the repository and run it locally.</p><p>First, enter a Hugging Face model ID (e.g.,<code>facebook/bart-large-cnn</code>) on the input screen and click
generate.</p><p><img src="/docs/ai-sbom_guide/5-tools/1-aibom-generator/images/input-form.png" alt="OWASP AIBOM Generator input screen"/><p><strong>Figure 1.</strong> OWASP AIBOM Generator input screen<em>(GenAI Security Project, captured 2026-06-13)</em></p><p>Once generation finishes, the result screen shows an AIBOM summary, the completeness assessment,
download buttons (CycloneDX 1.6 and 1.7), AI model information, and the model card. The completeness
assessment at the top of the screen shows at a glance whether the BOM has the minimum fields needed
for identification.</p><p><img src="/docs/ai-sbom_guide/5-tools/1-aibom-generator/images/result-view.png" alt="OWASP AIBOM Generator result screen"/><p><strong>Figure 2.</strong> Generation result screen — model information, license (MIT), completeness assessment
(Basic)<em>(captured 2026-06-13)</em></p><p>The result screen offers a Human-Friendly View along with a field checklist, a score report, and a
JSON view tab. Check the items needed for license obligation review and AI SBOM retention directly
on screen, and download the CycloneDX file.</p><h2 id="usage-b--command-line-cli">Usage B — Command Line (CLI)</h2><p>The CLI is convenient for embedding in CI/CD or batch-processing multiple models. After
installation, pass the model ID as an argument.</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"># Install (a Python virtual environment is recommended)</span></span></span><span style="display:flex;"><span>pip install<span style="color:#4e9a06">"git+https://github.com/GenAI-Security-Project/aibom-generator"</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Generate an AIBOM from a model ID</span></span></span><span style="display:flex;"><span>aibom facebook/bart-large-cnn -o aibom.json</span></span></code></pre></div><p>Below is the actual execution result. It generates CycloneDX 1.6 and 1.7, passes schema
validation, and shows the completeness score broken down by section.</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>$ aibom facebook/bart-large-cnn -o aibom.json</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>✅ Successfully generated CycloneDX 1.6 SBOM — Schema Validation (1.6): Valid</span></span><span style="display:flex;"><span>✅ Successfully generated CycloneDX 1.7 SBOM — Schema Validation (1.7): Valid</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>📊 Completeness Score: 58.7/100 Profile: Basic</span></span><span style="display:flex;"><span> - Required Fields: 20/20</span></span><span style="display:flex;"><span> - Metadata: 8/20</span></span><span style="display:flex;"><span> - Component Basic: 17.1/20</span></span><span style="display:flex;"><span> - Component Model Card: 6.7/30</span></span><span style="display:flex;"><span> - External References: 10/10</span></span></code></pre></div><p><strong>Figure 3.</strong> CLI execution output<em>(aibom CLI, model facebook/bart-large-cnn, run 2026-06-13)</em></p><p>The model component in the generated BOM has its license and model card filled in. Unlike cdxgen&rsquo;s
output, the<code>licenses</code> field is not empty.</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">"type"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"machine-learning-model"</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">"bart-large-cnn"</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:huggingface/facebook/bart-large-cnn"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"licenses"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#204a87;font-weight:bold">"license"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#204a87;font-weight:bold">"id"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"MIT"</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">"authors"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#204a87;font-weight:bold">"name"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#4e9a06">"facebook"</span><span style="color:#000;font-weight:bold">}],</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">"modelCard"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#204a87;font-weight:bold">"modelParameters"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#000;font-weight:bold">},</span><span style="color:#204a87;font-weight:bold">"considerations"</span><span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</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></code></pre></div><h2 id="what-the-execution-result-shows">What the Execution Result Shows</h2><div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">The completeness score depends on the quality of the input metadata</div><p>In the actual run, the completeness score was 58.7/100 (Basic). Required Fields and External
References scored full marks, but the model card score was low at 6.7/30. This is not a limitation
of the tool but a result of the model provider not filling in enough information in the Hugging
Face model card. The tool faithfully fetches whatever metadata exists, but it cannot invent
information that isn&rsquo;t there. When the model card is sparse, a human must verify the source and
supplement it.</p></div><h2 id="see-also">See Also</h2><ul><li>AI SBOM generation and management procedure:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>License obligation review:<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a></li><li>Another generation tool:<a href="/en/docs/ai-sbom_guide/5-tools/2-cdxgen/">cdxgen</a></li><li>Official:<a href="https://genai.owasp.org/resource/owasp-aibom-generator/">OWASP AIBOM Generator</a></li></ul>
]]></content:encoded></item><item><title>Open Source Policy</title><link>https://haksungjang.github.io/en/docs/templates/1-policy/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/templates/1-policy/</guid><description>Note: This sample open source policy was written with reference to the following two materials. 1. [OpenChain Open Source Policy Template](https://github.com/OpenChain-Project/Reference-Material/tree/master/Policy-Templates/Official/2.1/en) 2. [Linux Foundation Generic FOSS Policy](https://github.com/todogroup/policies/blob/master/linuxfoundation/lf_compliance_generic_policy.pdf) **Author : OpenChain Korea Work Group Authors / [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)** 1. Purpose and Scope 1.1 Purpose This policy provides principles and procedures for the Company to safely and effectively utilize open source software. The main objectives of the policy are as follows:</description><content:encoded>&lt;![CDATA[<div class="alert alert-primary" role="alert"><div class="h4 alert-heading" role="heading">Note:</div>
This sample open source policy was written with reference to the following two materials.
1. [OpenChain Open Source Policy Template](https://github.com/OpenChain-Project/Reference-Material/tree/master/Policy-Templates/Official/2.1/en)
2. [Linux Foundation Generic FOSS Policy](https://github.com/todogroup/policies/blob/master/linuxfoundation/lf_compliance_generic_policy.pdf)
**Author : OpenChain Korea Work Group Authors / [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)**</div><h2 id="1-purpose-and-scope">1. Purpose and Scope</h2><h3 id="11-purpose">1.1 Purpose</h3><p>This policy provides principles and procedures for the Company to safely and effectively utilize open source software. The main objectives of the policy are as follows:</p><ol><li><strong>Open Source License Compliance</strong>:<ul><li>Comply with the license obligations of open source components included in supplied software, and satisfy relevant legal requirements.</li></ul></li><li><strong>Open Source Security Assurance</strong>:<ul><li>Identify security vulnerabilities in open source components included in supplied software, and minimize security risk through appropriate response measures.</li></ul></li><li><strong>Contribution to External Open Source Projects</strong>:<ul><li>Promote collaboration with the open source community by contributing to external open source projects, and protect the Company&rsquo;s intellectual property.</li></ul></li><li><strong>Open Sourcing of Internal Projects</strong>:<ul><li>Release internal projects as open source to enhance collaboration with the open source community and promote the Company&rsquo;s technical capabilities.</li></ul></li></ol><p>These principles are designed to satisfy the requirements of ISO/IEC 5230 (open source license compliance) and ISO/IEC 18974 (open source security assurance).</p><h3 id="12-impact-of-non-compliance">1.2 Impact of Non-Compliance</h3><p>If the Company fails to comply with this policy, it may face the following risks:</p><ul><li><strong>Legal Risk</strong>: The Company may receive external demands for open source license compliance, and may face litigation or fines.</li><li><strong>Reputational Damage</strong>: The Company&rsquo;s reputation may be damaged due to source code disclosure obligations or security incidents.</li><li><strong>Business Loss</strong>: Relationships with customers or suppliers may deteriorate due to contract violations.</li><li><strong>Security Incidents</strong>: Serious security incidents may occur due to known vulnerabilities or newly discovered vulnerabilities.</li></ul><h3 id="13-how-program-participants-can-contribute">1.3 How Program Participants Can Contribute</h3><p>All program participants of the Company must understand and comply with this policy. Participants can contribute in the following ways:</p><ul><li>Perform the responsibilities and obligations defined in the policy according to their role.</li><li>Complete education related to open source licenses and security, and apply it in practice.</li><li>Report immediately if they discover an issue that impedes compliance with the policy.</li></ul><h3 id="14-scope">1.4 Scope</h3><p>This policy applies to all software projects that the Company develops, distributes, or uses. The main scope of application is as follows:</p><ul><li>All supplied software provided or distributed externally.</li><li>Activities contributing to external open source projects.</li><li>Activities releasing internal projects as open source.</li></ul><p>However, open source used only for internal purposes may be subject to a separate review procedure to determine whether the policy applies.</p><p>The scope of the policy is reviewed and updated periodically according to changes in the Company&rsquo;s business environment.</p><h2 id="2-definitions">2. Definitions</h2><p>This section defines the key terms used in the policy. These definitions are necessary to help clearly understand and apply the policy.</p><h3 id="21-key-terms">2.1 Key Terms</h3><ol><li><strong>Open Source Software</strong>:<ul><li>Software that satisfies the Open Source Definition defined by the Open Source Initiative or the Free Software Definition defined by the Free Software Foundation. This is software with a license that allows users to freely use, modify, and distribute the software.</li></ul></li><li><strong>SBOM (Software Bill of Materials)</strong>:<ul><li>A list of all components, libraries, and dependencies that make up a piece of software. This is like a software &ldquo;bill of materials,&rdquo; and is used to ensure transparency in the software supply chain and to identify potential security vulnerabilities and license-related issues.</li></ul></li><li><strong>Known Vulnerability</strong>:<ul><li>A previously discovered, publicly available security vulnerability. This can be found in databases such as NVD and CVE.</li></ul></li><li><strong>Newly Discovered Vulnerability</strong>:<ul><li>A new security vulnerability that had not previously been discovered. This may be discovered while software is in use, or reported by external researchers.</li></ul></li><li><strong>Security Assurance</strong>:<ul><li>Confidence that a system satisfies the requirements for security best practices and is resilient against known vulnerabilities.</li></ul></li><li><strong>Verification Material</strong>:<ul><li>Material demonstrating that a given requirement of a specification has been satisfied. This may be provided in various forms such as documents, records, and test results.</li></ul></li><li><strong>Supplied Software</strong>:<ul><li>All software that an organization provides or distributes to a third party.</li></ul></li><li><strong>Program</strong>:<ul><li>The set of policies, processes, and personnel that make up an organization&rsquo;s open source license compliance and security assurance activities.</li></ul></li><li><strong>Program Participant</strong>:<ul><li>Any member of the organization or contractor responsible for defining, contributing to, or preparing supplied software. This includes software developers, release engineers, quality engineers, product marketing, and product managers.</li></ul></li><li><strong>Compliance Artifact</strong>:<ul><li>Represents the output of an open source license compliance program, and is the collection of deliverables that must be provided along with supplied software. This includes attribution notices, source code, copies of licenses, copyright notices, notices of modification, and Written Offers.</li></ul></li><li><strong>Identified License</strong>:<ul><li>The set of open source licenses identified by an appropriate method for identifying the open source components included in supplied software.</li></ul></li></ol><h2 id="3-roles-and-responsibilities">3. Roles and Responsibilities</h2><p>This section defines the key roles and responsibilities related to open source software management. Each role is essential to ensuring the organization&rsquo;s open source license compliance and security assurance.</p><h3 id="31-role-descriptions">3.1 Role Descriptions</h3><ol><li><strong>Open Source Program Manager (OSPM)</strong><ul><li><strong>Responsibility</strong>: Overall responsibility for the Company&rsquo;s open source program.</li><li><strong>Key Duties</strong>:<ul><li>Manage open source license compliance and security assurance activities.</li><li>Create and maintain the SBOM.</li><li>Respond to external inquiries related to open source.</li><li>Manage internal best practices.</li></ul></li><li><strong>Required Competencies</strong>: Understanding of software development processes, expertise in open source licenses, communication skills.</li></ul></li><li><strong>Legal</strong><ul><li><strong>Responsibility</strong>: Assess legal risk related to open source licenses and provide advice.</li><li><strong>Key Duties</strong>:<ul><li>Interpret and review open source license obligations.</li><li>Review license compatibility and provide advice on intellectual property protection.</li></ul></li><li><strong>Required Competencies</strong>: Expertise in software copyright, expertise in open source licenses, ability to assess legal risk.</li></ul></li><li><strong>IT</strong><ul><li><strong>Responsibility</strong>: Operate and automate open source analysis tools.</li><li><strong>Key Duties</strong>:<ul><li>Operate open source analysis tools and integrate them into the DevOps environment.</li><li>Create and maintain the SBOM.</li></ul></li><li><strong>Required Competencies</strong>: Expertise in IT infrastructure, understanding of open source analysis tools, understanding of CI/CD pipelines.</li></ul></li><li><strong>Security</strong><ul><li><strong>Responsibility</strong>: Operate open source security vulnerability analysis tools.</li><li><strong>Key Duties</strong>:<ul><li>Respond to known vulnerabilities and newly discovered vulnerabilities.</li><li>Integrate into the DevSecOps environment and perform security measures.</li></ul></li><li><strong>Required Competencies</strong>: Understanding of DevSecOps, understanding of security vulnerability analysis tools, ability to assess and manage risk.</li></ul></li><li><strong>Developer Culture</strong><ul><li><strong>Responsibility</strong>: Support in-house developers in actively utilizing open source.</li><li><strong>Key Duties</strong>:<ul><li>Encourage participation in the open source community and improve developer culture.</li><li>Support external contribution activities.</li></ul></li><li><strong>Required Competencies</strong>: Understanding of software development processes, ability to design education, experience with community engagement.</li></ul></li><li><strong>Quality</strong><ul><li><strong>Responsibility</strong>: Verify open source license obligations when distributing supplied software.</li><li><strong>Key Duties</strong>:<ul><li>Verify the creation of compliance artifacts.</li><li>Review compliance with license obligations before distribution.</li></ul></li><li><strong>Required Competencies</strong>: Understanding of software development processes, basic knowledge of compliance.</li></ul></li><li><strong>OSRB (Open Source Review Board)</strong><ul><li><strong>Responsibility</strong>: Establish and improve policies and processes for open source management.</li><li><strong>Key Duties</strong>:<ul><li>Periodically review and improve the policy.</li><li>Discuss key issues and develop resolutions.</li></ul></li><li><strong>Required Competencies</strong>: Expertise in policy development, experience operating a governance body.</li></ul></li><li><strong>OSPO (Open Source Program Office)</strong><ul><li><strong>Responsibility</strong>: Support contributions to external open source projects and the release of internal projects.</li><li><strong>Key Duties</strong>:<ul><li>Provide guidance for external contributions.</li><li>Manage the release procedure for internal projects.</li></ul></li><li><strong>Required Competencies</strong>: Experience with community engagement, project management skills.</li></ul></li></ol><h3 id="32-staffing-and-funding">3.2 Staffing and Funding</h3><ol><li>Appropriate staffing:<ul><li>Assign appropriate personnel with the necessary competencies and expertise for each role.</li><li>The head of each department must designate a suitable person to perform the role.</li></ul></li><li>Sufficient funding:<ul><li>The Company provides sufficient budget and resources necessary to perform each role.</li><li>Budget items include education, tool licensing fees, and external consulting costs.</li></ul></li><li>Periodic review:<ul><li>The OSRB reviews the staffing and funding status of each role at least once a year, and recommends adjustments as needed.</li><li>The review results are documented and reported to the OSPO (Open Source Program Office).</li></ul></li><li>Issue resolution procedure:<ul><li>If a department&rsquo;s person in charge lacks the necessary support (personnel or funding), they must immediately report this to the OSPM.</li><li>The OSPM works with the relevant departments to resolve the issue, and requests the OSRB to resolve the issue if necessary.</li></ul></li></ol><h3 id="33-internal-responsibility-assignment-procedure">3.3 Internal Responsibility Assignment Procedure</h3><ol><li><p>Responsibility assignment procedure:</p><p>a. The OSPM convenes an annual responsibility assignment meeting.</p><p>b. Consults with each department head (Legal, IT, Security, Development, Quality, etc.) to select a person responsible for each activity.</p><p>c. Submits the list of selected persons responsible to the OSRB (Open Source Review Board) for final approval.</p></li><li><p>Balance of responsibility and authority:</p><ul><li>Each person responsible is granted appropriate authority necessary to perform the relevant duties.</li><li>They have the authority to request the resources (e.g., budget, personnel) necessary to fulfill their responsibilities.</li></ul></li><li><p>Periodic review and updates:</p><ul><li>The OSRB reviews the status of responsibility assignments at least once a year and makes adjustments as needed.</li><li>Responsibility assignments are updated immediately whenever there is a major change, such as an organizational restructuring or personnel change.</li></ul></li><li><p>Documentation:</p><ul><li>The results of responsibility assignment are recorded as an official document and registered in the Company&rsquo;s document management system.</li><li>The document specifies each activity, the person responsible, their role, and the required competencies.</li></ul></li><li><p>Education and awareness:</p><ul><li>Provide necessary education to newly assigned persons responsible.</li><li>Share the results of responsibility assignment with the entire organization to raise awareness.</li></ul></li></ol><h3 id="34-current-assignees">3.4 Current Assignees</h3><p>The organization and person responsible for each role can be found in [Appendix A: Current Assignees]. The list is updated as needed.</p><h2 id="4-open-source-license-compliance">4. Open Source License Compliance</h2><p>This section describes the procedures for complying with the license obligations of open source components included in supplied software. Through this, the Company can ensure open source license compliance and minimize legal risk.</p><h3 id="41-open-source-identification-and-license-obligation-review">4.1 Open Source Identification and License Obligation Review</h3><ol><li><strong>Open Source Identification</strong>:<ul><li>Identify all open source components used when developing supplied software.</li><li>Use SCA (Software Composition Analysis) tools to automatically detect and record open source components.</li></ul></li><li><strong>License Obligation Review</strong>:<ul><li>Review the licenses of identified open source components and confirm the obligations required by each license.</li><li>Refer to the Company&rsquo;s [Open Source License Guide] to understand licenses, and work with the Legal team to resolve compatibility issues.</li></ul></li></ol><h3 id="42-design-considering-open-source-licenses">4.2 Design Considering Open Source Licenses</h3><ol><li><strong>Software Architecture Design</strong>:<ul><li>Design the software architecture to minimize the impact of open source licenses.</li><li>Identify the coupling relationship between open source components and the Company&rsquo;s own code to comply with license obligations.</li></ul></li><li><strong>License Compatibility Review</strong>:<ul><li>Review whether the licenses of multiple open source components are compatible with each other.</li><li>If incompatible licenses are used, propose alternative components or take appropriate action.</li></ul></li></ol><h3 id="43-creating-and-managing-compliance-artifacts">4.3 Creating and Managing Compliance Artifacts</h3><ol><li><strong>Creating Open Source Notices</strong>:<ul><li>Prepare a notice containing the copyright information and licenses of the open source components included in supplied software.</li><li>The notice is prepared according to the conditions required by each license, and is included in the distribution package.</li></ul></li><li><strong>Creating Source Code Packages for Disclosure</strong>:<ul><li>Create the source code packages necessary to comply with licenses that require source code disclosure, such as GPL and LGPL.</li><li>Source code packages are securely stored in a separate repository and provided upon external request.</li></ul></li><li><strong>Distribution and Storage of Compliance Artifacts</strong>:<ul><li>All compliance artifacts are distributed together with supplied software and systematically managed in an internal repository.</li><li>Operate a system that can provide artifacts upon external request.</li></ul></li></ol><h3 id="44-creating-and-managing-the-sbom">4.4 Creating and Managing the SBOM</h3><ol><li><strong>Creating the SBOM</strong>:<ul><li>Create the SBOM (Software Bill of Materials) for all open source components that make up supplied software.</li><li>The SBOM includes the name, version, license information, and download location of each component.</li></ul></li><li><strong>Maintaining and Updating the SBOM</strong>:<ul><li>The SBOM is updated with each software release and kept up to date.</li><li>The SBOM is securely managed in an internal repository and prepared to be provided upon external request.</li></ul></li><li><strong>Managing Open Source Component Records</strong>:<ul><li><p>Maintain detailed records for each open source component. These records include the following information:</p><p>a. Component identification information (name, version, source)</p><p>b. License information and obligations</p><p>c. Purpose and manner of use</p><p>d. Whether modified and details of modifications</p><p>e. Vulnerability analysis results and response measures</p></li><li><p>These records are periodically reviewed and updated, and managed according to documented procedures.</p></li></ul></li><li><strong>Record Verification Procedure</strong>:<ul><li>Verify the accuracy and completeness of open source component records quarterly.</li><li>Verification results are documented and stored, and improvement measures are taken as needed.</li></ul></li></ol><h3 id="45-compliance-issue-response-procedure">4.5 Compliance Issue Response Procedure</h3><ol><li><strong>Issue Identification and Response</strong>:<ul><li>When a compliance issue occurs, the OSPM immediately identifies the issue and develops a response plan.</li><li>Works with the Legal team to assess the severity of the issue and determine the necessary action.</li></ul></li><li><strong>Maintaining Response Records</strong>:<ul><li>All response processes are recorded and preserved through Jira or another issue tracking system.</li><li>Response records are periodically reviewed and used as reference material in the event of a similar problem in the future.</li></ul></li></ol><h2 id="5-open-source-security-assurance">5. Open Source Security Assurance</h2><p>This section describes the procedures for ensuring the security of open source components included in supplied software. Through this, the Company can effectively manage known vulnerabilities and newly discovered vulnerabilities, and raise the security level of its software.</p><h3 id="51-known-vulnerability-detection-and-response-procedure">5.1 Known Vulnerability Detection and Response Procedure</h3><ol><li><strong>Vulnerability Detection</strong>:<ul><li>Use SCA (Software Composition Analysis) tools to detect known vulnerabilities in each open source component included in the SBOM.</li><li>Regularly update vulnerability databases such as the NVD (National Vulnerability Database) and CVE (Common Vulnerabilities and Exposures) to check the latest information.</li></ul></li><li><strong>Vulnerability Severity Assessment</strong>:<ul><li>Assess the severity of a vulnerability using its CVSS (Common Vulnerability Scoring System) score.</li><li>Determine response priority considering the exploitability of the vulnerability, its scope of impact, and its potential impact on the system.</li></ul></li><li><strong>Response Measures</strong>:<ul><li>Immediately apply a patch or take mitigation measures for high-risk vulnerabilities.</li><li>If customers may be affected, notify customers and present a resolution plan.</li></ul></li><li><strong>Maintaining Response Records</strong>:<ul><li>All vulnerabilities and response measures are recorded in a database, and reports are generated periodically.</li><li>Response records are used as reference material in the event of a similar problem in the future.</li></ul></li></ol><h3 id="52-newly-discovered-vulnerability-response-procedure">5.2 Newly Discovered Vulnerability Response Procedure</h3><ol><li><strong>Detecting Newly Discovered Vulnerabilities</strong>:<ul><li>Identify and assess new security vulnerabilities that had not previously been discovered.</li><li>Newly discovered vulnerabilities may be reported by external researchers or through internal testing.</li></ul></li><li><strong>Severity Assessment and Response</strong>:<ul><li>Assess the severity of a newly discovered vulnerability using its CVSS score.</li><li>Determine response priority based on the assessment results and take necessary action.</li><li>If customers may be affected, notify customers and present a resolution plan.</li></ul></li><li><strong>Maintaining Response Records</strong>:<ul><li>Newly discovered vulnerabilities and response measures are recorded in a database, and reports are generated periodically.</li></ul></li></ol><h3 id="53-continuous-monitoring-and-response">5.3 Continuous Monitoring and Response</h3><ol><li><strong>Vulnerability Monitoring</strong>:<ul><li>Continuously monitor software even after release to identify known vulnerabilities or newly discovered vulnerabilities.</li><li>Use automated tools to detect anomalies based on the latest data.</li></ul></li><li><strong>Response Preparation</strong>:<ul><li>Security experts prepare the response, and receive assistance from external experts as needed.</li><li>The response plan is periodically reviewed and updated.</li></ul></li><li><strong>Reporting and Improvement</strong>:<ul><li>All monitoring and response activities are reported periodically and shared with program participants.</li><li>Improve processes based on monitoring results to continuously enhance the security level.</li></ul></li></ol><h3 id="54-alignment-with-internal-best-practices">5.4 Alignment with Internal Best Practices</h3><ol><li><strong>Investigating Internal Best Practices</strong>:<ul><li>Investigate security-related activities and processes that are successfully operated by other teams or departments within the Company.</li><li>Example: the information security team&rsquo;s vulnerability management process, the development team&rsquo;s secure coding guidelines, etc.</li></ul></li><li><strong>Comparing and Analyzing Processes</strong>:<ul><li>Compare and analyze how the investigated best practices operate relative to the open source security assurance program.</li><li>Identify differences, weaknesses, and opportunities for improvement.</li></ul></li><li><strong>Integrating and Improving Processes</strong>:<ul><li>Adjust or integrate the open source security assurance program to align with the Company&rsquo;s internal best practices.</li><li>Example: applying the company-wide vulnerability management system to open source vulnerability management as well.</li></ul></li><li><strong>Assigning and Managing Responsibility</strong>:<ul><li>The OSPM is responsible for compliance with internal best practices, and periodically reviews the operating approach and proposes improvements.</li></ul></li></ol><h2 id="6-education-and-awareness">6. Education and Awareness</h2><p>This section describes the education and awareness activities necessary to ensure the competency and awareness of program participants. Through this, participants can fully understand the open source policy, the goals of the related program, and their own roles and responsibilities, and raise their awareness of open source license compliance and security assurance.</p><h3 id="61-open-source-education">6.1 Open Source Education</h3><ol><li><strong>Education Objectives</strong>:<ul><li>Help program participants use open source correctly, and understand and apply license compliance and security assurance procedures in practice.</li><li>Key education content:<ul><li>The purpose and principles of the open source policy.</li><li>License obligations and compliance procedures.</li><li>How to create and use the SBOM.</li><li>Procedures for managing known vulnerabilities and newly discovered vulnerabilities.</li></ul></li></ul></li><li><strong>Education Methods</strong>:<ul><li>Completed through online courses provided on the [Learning Portal].</li><li>Additional education is provided in workshop or seminar format as needed.</li><li>Case-based learning is used to strengthen the ability to solve real-world problems.</li></ul></li></ol><h3 id="62-competency-assessment">6.2 Competency Assessment</h3><ol><li><strong>Assessment Criteria</strong>:<ul><li>Assess the competencies required for each role.</li><li>Assessment items:<ul><li>Understanding of the open source policy.</li><li>Ability to perform compliance procedures.</li><li>Ability to manage security vulnerabilities.</li></ul></li></ul></li><li><strong>Assessment Methods</strong>:<ul><li>Measure participants&rsquo; competency through periodic tests and practical evaluations.</li><li>Assessment results are reflected in individual performance records, and additional education is provided as needed.</li></ul></li></ol><h3 id="63-awareness-raising-activities">6.3 Awareness-Raising Activities</h3><ol><li><strong>Periodic Newsletters and Workshops</strong>:<ul><li>Share the latest open source trends and policy changes through a periodic newsletter.</li><li>Raise program participants&rsquo; understanding and promote collaboration through workshops and seminars.</li></ul></li><li><strong>Use of Communication Channels</strong>:<ul><li>Share open source-related information through internal communication channels (e.g., email, internal portal).</li><li>Encourage collaboration and information exchange among program participants.</li></ul></li></ol><h3 id="64-record-retention">6.4 Record Retention</h3><ol><li><strong>Education and Assessment Records</strong>:<ul><li>All education completion records and assessment results are retained for at least 3 years.</li><li>This allows the Company to demonstrate that program participants have a sufficient understanding of the policy and processes.</li></ul></li><li><strong>Periodic Review and Updates</strong>:<ul><li>The OSPM reviews the education content and assessment methods at least once a year and updates them as needed to reflect the latest open source trends and the organization&rsquo;s requirements.</li></ul></li></ol><h3 id="65-identifying-and-utilizing-expertise">6.5 Identifying and Utilizing Expertise</h3><ol><li><strong>Identifying Required Areas of Expertise</strong>:<ul><li>Periodically identify the technical and legal areas of expertise necessary to operate the program.</li><li>Example: web security, cryptography, network security, systems administration, open source license interpretation, etc.</li></ul></li><li><strong>Preparing and Updating a List of Internal Experts</strong>:<ul><li>Prepare a list of personnel with expertise in the relevant field within the Company, and update it periodically.</li><li>Record each expert&rsquo;s career history, certifications, and contact information.</li></ul></li><li><strong>Establishing a Plan to Secure External Resources</strong>:<ul><li>Establish a plan to utilize external experts or consulting firms for problems that are difficult to resolve internally.</li><li>Secure reliable external resources and clearly define contract terms.</li></ul></li><li><strong>Establishing a Procedure for Accessing Expertise</strong>:<ul><li>Establish a procedure so that program participants can easily access the expertise they need.</li><li>Example: how to consult an internal expert, how to utilize an external consulting firm, etc.</li></ul></li></ol><h2 id="7-contribution-to-external-open-source-projects">7. Contribution to External Open Source Projects</h2><p>This section describes the procedures and principles that the Company&rsquo;s program participants must follow when contributing to external open source projects. Through this, the Company can actively participate in external open source projects while preventing intellectual property and copyright issues.</p><h3 id="71-contribution-procedure">7.1 Contribution Procedure</h3><ol><li><strong>Review Request and Approval</strong>:<ul><li>To contribute to an external open source project, a program participant must obtain review and approval from the OSPO (Open Source Program Office).</li><li>The OSPO confirms that the code to be contributed does not infringe on the Company&rsquo;s intellectual property, and requests review by the Legal team as needed.</li></ul></li><li><strong>Contribute Only Code You Have the Right to Contribute</strong>:<ul><li>Program participants may only contribute code they have written themselves or code owned by the Company.</li><li>Third-party code must not be contributed without authorization.</li></ul></li><li><strong>Caution Regarding Exposure of Intellectual Property</strong>:<ul><li>Take care not to include sensitive information, patents, or other Company intellectual property.</li><li>If the code to be contributed includes a Company patent, it must be reviewed by the OSPO and the Legal team.</li></ul></li></ol><h3 id="72-caution-regarding-cla-signing">7.2 Caution Regarding CLA Signing</h3><ol><li><strong>CLA Review</strong>:<ul><li>Some open source projects require contributors to sign a CLA (Contributor License Agreement).</li><li>Before signing a CLA, request a review from the OSPO to ensure protection of the Company&rsquo;s intellectual property.</li></ul></li><li><strong>Prohibition on Copyright Assignment</strong>:<ul><li>To protect its own intellectual property, the Company does not permit contributions to open source projects whose CLA terms require copyright assignment.</li></ul></li></ol><h3 id="73-copyright-notice">7.3 Copyright Notice</h3><ol><li><p><strong>Copyright Notation</strong>:</p><ul><li><p>When a program participant contributes code to an external open source project, the Company&rsquo;s copyright must be clearly stated.</p></li><li><p>State the copyright and license at the top of the file as follows:</p><p><code>textCopyright (c) [Year] [Company Name] SPDX-License-Identifier: [SPDX_license_name]</code></p></li></ul></li><li><p><strong>Use of Company Email</strong>:</p><ul><li>When contributing to an open source project, use the Company email rather than a personal email.</li><li>This instills a sense of responsibility for communicating with the community on behalf of the Company.</li></ul></li></ol><h3 id="74-maintaining-contribution-records">7.4 Maintaining Contribution Records</h3><ol><li><strong>Managing Contribution History</strong>:<ul><li>Manage the entire history of contributions to external open source projects, and report it to the OSPO.</li><li>Contribution history is retained in an internal system (e.g., the Learning Portal) for at least 3 years.</li></ul></li><li><strong>Assessing Contribution Activities</strong>:<ul><li>Contribution activities to external open source projects are reflected in program participants&rsquo; performance evaluations.</li><li>The OSPO periodically assesses the effectiveness of contribution activities and proposes improvement measures as needed.</li></ul></li></ol><h2 id="8-releasing-internal-projects-as-open-source">8. Releasing Internal Projects as Open Source</h2><p>This section describes the procedures and principles for releasing internal projects as open source. Through this, the Company can promote collaboration with the open source community, protect its intellectual property, and minimize legal risk.</p><h3 id="81-approval-procedure">8.1 Approval Procedure</h3><ol><li><strong>Review and Approval</strong>:<ul><li>To release an internal project as open source, review and approval must be obtained from the OSPO (Open Source Program Office).</li><li>The OSPO confirms that the code to be released does not infringe on the Company&rsquo;s intellectual property, and requests review by the Legal team as needed.</li></ul></li><li><strong>Intellectual Property Protection</strong>:<ul><li>Take care not to include sensitive information, patents, or other Company intellectual property.</li><li>For code that includes a patent, work with the Legal team to confirm whether it can be released.</li></ul></li><li><strong>Copyright Notice</strong>:<ul><li>State the Company&rsquo;s copyright in the code being released.</li><li>Example: &ldquo;Copyright (c) [Year] [Company Name]&rdquo;</li></ul></li></ol><h3 id="82-release-preparation">8.2 Release Preparation</h3><ol><li><strong>Code Preparation</strong>:<ul><li>Organize and document the code to be released so it can be used externally.</li><li>Verify the origin of the code, and delete or modify any code that poses a potential problem.</li></ul></li><li><strong>Choosing an Open Source License</strong>:<ul><li>Select an appropriate open source license under which to release the code.</li><li>When choosing a license, consider protection of the Company&rsquo;s intellectual property and the needs of the community.</li></ul></li><li><strong>Securing Resources</strong>:<ul><li>Secure the infrastructure and budget necessary to maintain and manage the project.</li><li>Use a project hosting platform such as GitHub to maintain transparency.</li></ul></li></ol><h3 id="83-post-release-management">8.3 Post-Release Management</h3><ol><li><strong>Community Management</strong>:<ul><li>Collect community feedback on the released project and respond appropriately.</li><li>The OSPO manages the relationship with the community and actively accepts external contributions.</li></ul></li><li><strong>Ongoing Maintenance</strong>:<ul><li>The released project is continuously maintained, with bug fixes and feature improvements.</li><li>Quality is ensured through code review, and the project collaborates with external contributors.</li></ul></li><li><strong>Use of Company Email</strong>:<ul><li>Use the Company email rather than a personal email during open source activities, to maintain the Company&rsquo;s representation.</li></ul></li></ol><h3 id="84-record-retention">8.4 Record Retention</h3><ol><li><strong>Retaining Release Records</strong>:<ul><li>All records related to a released project are retained for at least 3 years.</li><li>Records include the approval procedure, code versions, and community feedback.</li></ul></li><li><strong>Periodic Review and Updates</strong>:<ul><li>Released projects are periodically reviewed and updated as needed.</li><li>Continuously improved to reflect the latest open source trends and organizational requirements.</li></ul></li></ol><h2 id="9-responding-to-external-inquiries">9. Responding to External Inquiries</h2><p>This section describes the procedure by which the Company responds quickly and effectively when there is an external open source-related inquiry or request, particularly one related to open source license compliance and open source security vulnerabilities. Through this, the Company can appropriately respond to external demands, minimize legal risk, and promote collaboration with the open source community.</p><h3 id="91-responsibility-for-responding-to-external-inquiries">9.1 Responsibility for Responding to External Inquiries</h3><ol><li><strong>Designating the Person Responsible</strong>:<ul><li>Responding to external open source-related inquiries and requests is handled by the<strong>OSPM</strong>.</li><li>As needed, works with the Legal team (for license compliance matters) or the Security team (for security vulnerability matters) to resolve the issue.</li></ul></li><li><strong>Inquiry Escalation Procedure</strong>:<ul><li>Any program participant who receives an external open source-related inquiry must immediately forward it to the<strong>OSPM</strong>.</li><li>Depending on the nature of the inquiry, it is promptly assigned to the department responsible for license compliance or security vulnerabilities.</li></ul></li></ol><h3 id="92-publishing-contact-information">9.2 Publishing Contact Information</h3><ol><li><strong>Public Contact Information</strong>:<ul><li>The official contact information for the<em>OSPM</em> is made publicly available.</li><li>The contact information is registered on the following channels:<ul><li>The open source notice</li><li>The Company website</li><li>The Linux Foundation&rsquo;s Open Compliance Directory</li></ul></li></ul></li><li><strong>Guidance on How to Make Inquiries</strong>:<ul><li>Clearly explain how external parties can make open source-related inquiries.</li><li>Operate a system that can accept inquiries by email address, website inquiry form, and other means.</li></ul></li></ol><h3 id="93-external-inquiry-response-procedure">9.3 External Inquiry Response Procedure</h3><ol><li><strong>Receiving and Confirming the Inquiry</strong>:<ul><li>When an external inquiry is received, the<strong>OSPM</strong> immediately confirms it and specifies an appropriate resolution time.</li><li>Reviews the nature of the inquiry and classifies it as a license compliance or security vulnerability matter.<ul><li>License compliance: reviewed and addressed in cooperation with the Legal team.</li><li>Security vulnerability: assessed for severity and addressed in cooperation with the Security team.</li></ul></li></ul></li><li><strong>Carrying Out the Response</strong>:<ul><li>Take appropriate response measures according to the content of the inquiry, and receive assistance from external experts as needed.</li><li>All response processes are recorded through an internal system (e.g., Jira Tracker).</li></ul></li><li><strong>Providing Feedback and Improving</strong>:<ul><li>After responding, provide feedback to the external inquirer, and propose improvement measures as needed.</li><li>Analyze response records and improve processes to prevent recurring problems.</li></ul></li></ol><h2 id="10-measuring-and-improving-program-effectiveness">10. Measuring and Improving Program Effectiveness</h2><p>This section describes the procedure for measuring and continuously improving the effectiveness of the open source program. Through this, the Company can evaluate and improve the performance of its open source license compliance and security assurance program.</p><h3 id="101-defining-performance-indicators">10.1 Defining Performance Indicators</h3><ol><li><strong>List of Performance Indicators</strong>:<ul><li>Number of supplied software analyzed.</li><li>Number of known vulnerabilities and newly discovered vulnerabilities resolved.</li><li>Number of compliance artifacts created and distributed.</li><li>Response time for external inquiries.</li><li>Education completion rate of program participants.</li><li>Number of external open source contributions and released projects.</li></ul></li><li><strong>Setting Indicator Targets</strong>:<ul><li>Set target values for each indicator so that the program&rsquo;s performance can be evaluated.</li><li>Target values are set in line with the organization&rsquo;s business goals and the program&rsquo;s objectives.</li></ul></li></ol><h3 id="102-periodic-program-assessment">10.2 Periodic Program Assessment</h3><ol><li><strong>Assessment Cycle</strong>:<ul><li>Conduct a program assessment at least once a year.</li><li>Conduct additional assessments as needed when there is a change in the business environment or a major issue occurs.</li></ul></li><li><strong>Assessment Procedure</strong>:<ul><li>Document the assessment results and report them to the OSRB (Open Source Review Board).</li><li>Collect and reflect feedback from program participants during the assessment process.</li><li>Assessment results are recorded and preserved through an internal system (e.g., Jira Issue Tracker).</li></ul></li><li><strong>Periodic Policy Review and Renewal</strong>:<ul><li>The policy is periodically reviewed and, if necessary, renewed to reflect the latest open source trends and the organization&rsquo;s requirements.</li><li>This continuously improves the effectiveness of the program.</li></ul></li></ol><h3 id="103-continuous-improvement-plan">10.3 Continuous Improvement Plan</h3><ol><li><strong>Identifying Areas for Improvement</strong>:<ul><li>Identify areas that need improvement based on assessment results, and set priorities.</li><li>Areas needing improvement may include process efficiency, education content, response time, and more.</li></ul></li><li><strong>Setting Improvement Targets</strong>:<ul><li>Set specific improvement targets and schedules.</li><li>The progress of improvement activities is monitored and documented.</li></ul></li><li><strong>Reflecting Improvement Results</strong>:<ul><li>Reflect improvement results in the next assessment cycle to continuously enhance the program&rsquo;s effectiveness.</li><li>Improvement results are shared with program participants to encourage continued commitment to improvement.</li></ul></li></ol><h3 id="104-integrating-and-improving-internal-best-practices">10.4 Integrating and Improving Internal Best Practices</h3><ol><li><strong>Planning Integration Activities</strong>:<ul><li>Identify the gaps between internal best practices and the open source security assurance program, and establish an integration plan based on this.</li><li>Example: integrating vulnerability management systems, standardizing code review procedures.</li></ul></li><li><strong>Periodic Review and Updates</strong>:<ul><li>Review the alignment between internal best practices and the open source program at least once a year, and reflect improvements as needed.</li><li>The review results are reported to the OSRB (Open Source Review Board).</li></ul></li></ol><h3 id="105-assessing-personnel-and-resources">10.5 Assessing Personnel and Resources</h3><ol><li>Assessment cycle:<ul><li>The Company assesses the staffing and funding status for each role at least once a year.</li><li>Assessment results are reported to the OSRB, and improvements are implemented as needed.</li></ul></li><li>Assessment items:<ul><li>Whether appropriate personnel have been assigned for each role.</li><li>Whether sufficient budget has been provided to perform each role.</li><li>Cases of problems caused by insufficient support, and their resolutions.</li></ul></li><li>Establishing an improvement plan:<ul><li>Establish a specific plan to supplement insufficient personnel or resources based on the assessment results.</li><li>The improvement plan is implemented upon approval by the OSRB.</li></ul></li></ol><h2 id="11-iso-standard-compliance-declaration-and-maintenance">11. ISO Standard Compliance Declaration and Maintenance</h2><p>This section describes the procedure by which the Company complies with and maintains the requirements of ISO/IEC 5230 (open source license compliance) and ISO/IEC 18974 (open source security assurance). Through this, the Company can ensure the continuous improvement of its open source program and compliance with the standards.</p><h3 id="111-iso-standard-compliance-declaration">11.1 ISO Standard Compliance Declaration</h3><ol><li><strong>Compliance Declaration</strong>:<ul><li>Through this policy, the Company declares that it satisfies all the requirements of ISO/IEC 5230 (open source license compliance) and ISO/IEC 18974 (open source security assurance).</li><li>The date of declaration and validity period (18 months) are clearly stated.</li><li>The compliance declaration may be made through Self Certification under the Linux Foundation&rsquo;s OpenChain project.</li></ul></li><li><strong>Documenting Evidence</strong>:<ul><li>The OSPM documents and maintains evidence of satisfaction for each requirement.</li><li>Evidence documents include policy documents, process descriptions, education records, compliance artifacts, and security vulnerability management records.</li><li>All evidence documents are stored in a central repository and retained for at least 3 years.</li><li>This document must be prepared within 18 months after undergoing conformance verification, and is renewed at least once a year.</li></ul></li><li><strong>Periodic Review and Renewal</strong>:<ul><li>The OSRB reviews whether the requirements are satisfied at least once a year, and improves the policy and processes as needed.</li><li>The review results and improvements are documented and stored.</li></ul></li><li><strong>Preparing for External Verification</strong>:<ul><li>Prepare to provide evidence documents to external auditors or certification bodies upon request.</li></ul></li></ol><h3 id="112-maintaining-compliance-status">11.2 Maintaining Compliance Status</h3><ol><li><strong>Periodic Review</strong>:<ul><li>The OSRB conducts an internal review of all the requirements of ISO/IEC 5230 and ISO/IEC 18974 at least once a year.</li><li>The review results are documented and stored, and an improvement plan is established for any items not satisfied.</li></ul></li><li><strong>Periodic Internal Audit</strong>:<ul><li>Internal audits assess whether program participants are performing their roles, whether compliance artifacts are adequate, and the effectiveness of security assurance activities.</li><li>Based on the audit results, areas for improvement are identified and necessary action is taken.</li></ul></li><li><strong>Providing Education and Training</strong>:<ul><li>Provide periodic education and training to continuously improve the competency and awareness of program participants.</li><li>Education content reflects the latest open source trends and the organization&rsquo;s requirements, and emphasizes compliance with ISO standards.</li></ul></li><li><strong>Preparing to Respond to External Inquiries</strong>:<ul><li>Maintain a system that can respond quickly and effectively to external inquiries related to ISO standard compliance.</li><li>Inquiry response is handled by the OSPM, who works with the Legal team as needed.</li></ul></li><li><strong>Periodic Policy Renewal</strong>:<ul><li>The policy is reviewed at least once a year, and renewed to reflect the latest open source trends and the organization&rsquo;s requirements.</li><li>The renewed policy is shared with all program participants.</li></ul></li></ol>
]]></content:encoded></item><item><title>Minimum Elements of an SBOM</title><link>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/1-minimum-elements/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/2-standards/1-minimum-elements/</guid><description>Covers the data fields an SBOM must contain, from the NTIA 2021 minimum elements to the CISA 2025 revision draft.</description><content:encoded>&lt;![CDATA[<p>Once a format is chosen, the next question is what that format must contain. The documents that
define this floor are the US Minimum Elements series. Though they are recommendations, they
function as the de facto standard for federal procurement, and SBOM requirements in the EU and
other jurisdictions largely reference this same framework.</p><h2 id="lineage-from-ntia-2021-to-cisa-2025">Lineage: From NTIA 2021 to CISA 2025</h2><p>The National Telecommunications and Information Administration (NTIA) published<em>The Minimum
Elements For a Software Bill of Materials (SBOM)</em> in July 2021, under the delegation of
Executive Order 14028. The document organized the minimum elements into three categories: the
data fields to track per component, automation support requiring a machine-readable format, and
practices and processes covering generation frequency, depth, and the like.</p><p>Stewardship of the community&rsquo;s work then moved to the Cybersecurity and Infrastructure Security
Agency (CISA), and two lines of revision followed. One was the third edition (September 2024) of<em>Framing Software Component Transparency</em>, a reference document that defines attributes, which
added License and Copyright Notice to the baseline attributes. The other was a revision of the
minimum elements document itself: CISA released<em>2025 Minimum Elements for a Software Bill of
Materials</em> as a public comment draft in August 2025, with the comment period closing on
October 3, 2025. As of June 2026, this revision remains in draft status, and the date of a final
version has not been confirmed.</p><h2 id="the-data-fields-and-three-categories-of-ntia-2021">The Data Fields and Three Categories of NTIA 2021</h2><p>The NTIA 2021 minimum elements set seven per-component data fields.</p><table><thead><tr><th>Data field</th><th>Description</th></tr></thead><tbody><tr><td>Supplier Name</td><td>The entity that supplied the component</td></tr><tr><td>Component Name</td><td>The name of the component or library</td></tr><tr><td>Version</td><td>The version identifier of the component</td></tr><tr><td>Other Unique Identifiers</td><td>Identifiers such as PURL, CPE</td></tr><tr><td>Dependency Relationship</td><td>The inclusion relationship with the parent component</td></tr><tr><td>Author of SBOM Data</td><td>The entity that generated this SBOM</td></tr><tr><td>Timestamp</td><td>The date and time of generation</td></tr></tbody></table><p>The three categories are as follows.</p><ul><li><strong>Data fields</strong>: The seven items above — the basic information for tracking and identifying
components.</li><li>Automation support: Specified SPDX, CycloneDX, and SWID as standard formats for automated
generation and machine readability.</li><li>Practices and processes: Covers generation frequency, depth, handling of known unknowns,
distribution and delivery, access control, and how errors are accommodated.</li></ul><h2 id="what-the-cisa-2025-draft-adds">What the CISA 2025 Draft Adds</h2><p>The CISA 2025 minimum elements draft expanded the data fields to reflect the maturing state of
tooling. Four core elements were newly added.</p><table><thead><tr><th>New field</th><th>Purpose</th></tr></thead><tbody><tr><td>Component Hash</td><td>Ensures integrity and precise identification through a cryptographic hash</td></tr><tr><td>License</td><td>Primary data for tracking legal compliance</td></tr><tr><td>Tool Name</td><td>Records which tool generated it</td></tr><tr><td>Generation Context</td><td>Records at which stage of the lifecycle it was created</td></tr></tbody></table><p>Existing items were also revised. The roles of SBOM Author and Software Producer were
distinguished, &ldquo;Other Unique Identifiers&rdquo; was updated to &ldquo;Software Identifiers,&rdquo; and the access
control element, previously separate, was folded into the distribution and delivery item. The
trajectory of License — entering as a baseline attribute in Framing 3rd edition and hardening
into a data field in the 2025 draft — shows that the SBOM is establishing itself as primary data
for open source license compliance, beyond a security inventory. Behind adding Tool Name,
Generation Context, and Hash together lies the concern that an SBOM produced by an untrustworthy
tool cannot itself be trusted. Tool integrity is covered in<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a>.</p><h2 id="practical-recommendations">Practical Recommendations</h2><p>The minimum elements are, as the name says, a floor. Organizations can, and should, add fields
suited to their own purposes. Carrying CVE references and patch status for vulnerability
identification, SPDX license identifiers and copyright notices for license management, and
release and End-of-Life dates for lifecycle management, together in one SBOM, lets a single SBOM
answer multiple operational questions. If you are introducing an SBOM for the first time,
starting with the NTIA seven fields as a base but including the four new fields from the CISA
2025 draft — especially hash and license — from the outset saves the effort of rebuilding it
later.</p><h2 id="sources">Sources</h2><p>NTIA (2021).<em>The Minimum Elements For a Software Bill of Materials (SBOM)</em>.<a href="https://www.ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf">https://www.ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf</a>. CISA (2024).<em>Framing Software Component Transparency</em>, Third Edition.<a href="https://www.cisa.gov/resources-tools/resources/framing-software-component-transparency-2024">https://www.cisa.gov/resources-tools/resources/framing-software-component-transparency-2024</a>.
CISA (2025).<em>2025 Minimum Elements for a Software Bill of Materials (SBOM)</em> (public comment
draft).<a href="https://www.cisa.gov/resources-tools/resources/2025-minimum-elements-software-bill-materials-sbom">https://www.cisa.gov/resources-tools/resources/2025-minimum-elements-software-bill-materials-sbom</a>.
(All retrieved: 2026-06-14)</p>
]]></content:encoded></item><item><title>SBOM Levels and Classification</title><link>https://haksungjang.github.io/en/docs/sbom_guide/1-overview/1-types/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/1-overview/1-types/</guid><description>Summarizes SBOM levels based on the depth of information they contain, and classification based on when they are generated.</description><content:encoded>&lt;![CDATA[<p>Not all SBOMs are the same. They are divided into levels based on how deep a dependency chain they
cover, and classified based on the point in the software lifecycle at which they were created.
Distinguishing these two axes makes it possible to clearly decide &ldquo;which SBOM to require and which
SBOM to produce.&rdquo;</p><h2 id="levels-by-depth-of-information">Levels by Depth of Information</h2><table><thead><tr><th>Level</th><th>Description</th></tr></thead><tbody><tr><td>Top-Level SBOM</td><td>A summary of the components directly integrated into or used by the product. Contains essential information such as component name and version.</td></tr><tr><td>Transitive SBOM</td><td>Includes not only direct dependencies but also the indirect (transitive) dependencies that those dependencies rely on in turn.</td></tr><tr><td>n-Level SBOM</td><td>Contains information hierarchically to an arbitrary depth (N levels), beyond the top-level overview.</td></tr><tr><td>Delivery SBOM</td><td>Describes all components and libraries included in a release or distribution package.</td></tr><tr><td>Complete SBOM</td><td>A complete inventory of all components, dependencies, and metadata present in a system.</td></tr></tbody></table><p>An organization does not need to commit to a single level. A common approach is to tailor the SBOM
delivered to consumers to a level that omits sensitive information while still meeting security
requirements, while internally maintaining a complete-level SBOM to track vulnerability updates.
This reduces the risk of exposing trade secrets and intellectual property while securing both
supply chain transparency and internal resilience.</p><p>The regulatory floor for obligations is also expressed in the language of levels. The EU Cyber
Resilience Act requires an SBOM that &ldquo;cover[s] at the very least the top-level dependencies of the
product.&rdquo; There is no obligation to expand the entire dependency tree, but that is clearly the
direction of recommended practice.</p><h2 id="classification-by-point-of-generation">Classification by Point of Generation</h2><p>The US CISA document<em>Types of Software Bill of Materials (SBOM)</em> divides SBOM into six types
aligned with the stages of the Software Development Life Cycle (SDLC). For the same product, the
information captured and its accuracy differ depending on when the SBOM was generated.</p><p><img src="/docs/sbom_guide/1-overview/1-types/sbom-types-en.png" alt="The six SBOM stages — Design, Source, Build, Analyzed, Deployed, and Runtime — follow the order of the software lifecycle, with later stages containing more information"/><p><strong>Figure 1.</strong> SBOM classification by SDLC stage<em>(source: CISA, Types of Software Bill of Materials
(SBOM), 2023)</em></p><ul><li><strong>Design SBOM</strong>: Records the components planned at the design stage, before the components
actually exist.</li><li>Source SBOM: Reflects the development environment and contains source files and dependencies.</li><li>Build SBOM: Generated during the build process and includes information on source, dependencies,
and pre-built components.</li><li>Analyzed SBOM: Generated by inspecting the final artifact after the build.</li><li>Deployed SBOM: A list of software installed and configured on a specific system, taking the
deployment environment into account as well.</li><li>Runtime SBOM: Monitors components while running, capturing dynamically loaded dependencies and
external interactions as well.</li></ul><p>The Build SBOM, generated at build time, is the most widely recommended in terms of accuracy and
automation, because it records exactly what the build tool actually assembled. Generation timing
and automation are covered in detail in<a href="/en/docs/sbom_guide/5-tools/">5. Tools and Automation</a>.</p><h2 id="sources">Sources</h2><p>CISA (2023).<em>Types of Software Bill of Materials (SBOM)</em>.<a href="https://www.cisa.gov/resources-tools/resources/types-software-bill-materials-sbom">https://www.cisa.gov/resources-tools/resources/types-software-bill-materials-sbom</a> (accessed:
June 14, 2026). This is the primary basis for the classification of the six SBOM types (Design,
Source, Build, Analyzed, Deployed, Runtime). For attributes and maturity stages, see CISA (2024).<em>Framing Software Component Transparency</em>, Third Edition.<a href="https://www.cisa.gov/resources-tools/resources/framing-software-component-transparency-2024">https://www.cisa.gov/resources-tools/resources/framing-software-component-transparency-2024</a>. The
EU Cyber Resilience Act&rsquo;s top-level dependency requirement is based on Regulation (EU) 2024/2847,
Annex I Part II(1).</p>
]]></content:encoded></item><item><title>EU Cyber Resilience Act (CRA)</title><link>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/1-eu-cra/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/3-regulation/1-eu-cra/</guid><description>Summarizes the SBOM requirements and implementation timeline of the EU Cyber Resilience Act, the first major legislation to establish SBOM as a legal obligation.</description><content:encoded>&lt;![CDATA[<p>The first major piece of legislation to establish SBOM as an explicit legal obligation is the EU
Cyber Resilience Act (CRA, Regulation (EU) 2024/2847). Whereas the United States effectively
mandates SBOM through the market of federal procurement, the CRA is a directly effective law that
applies horizontally across products with digital elements.</p><h2 id="legal-basis-of-the-sbom-obligation">Legal Basis of the SBOM Obligation</h2><p>In the CRA, the SBOM obligation appears in Annex I, Part II (vulnerability handling requirements),
point (1). Manufacturers must identify and document the vulnerabilities and components contained
in a product, and as a means of doing so, the CRA specifies that they must &ldquo;draw up a software
bill of materials, in a commonly used and machine-readable format, covering at the very least the
top-level dependencies of the product.&rdquo;</p><p>Two points that matter in practice differ from the US pathway.</p><ul><li><strong>The scope of the obligation is top-level dependencies</strong>: There is no obligation to expand the
entire dependency tree; covering at least the top-level dependencies is sufficient. That said,
going deeper than this is clearly the recommended direction.</li><li>It is an obligation to retain and submit, not to disclose: There is no obligation to disclose the
SBOM to the general public. It is sufficient to retain it so that it can be submitted when a
market surveillance authority makes a reasoned request.</li></ul><p>The core of the CRA is that producing an SBOM is not a recommendation but a legal obligation backed
by a system of fines.</p><h2 id="implementation-timeline">Implementation Timeline</h2><p><img src="/docs/sbom_guide/3-regulation/1-eu-cra/cra-timeline-en.png" alt="The phased EU CRA implementation timeline, running from publication and entry into force in 2024, through the reporting obligation in September 2026, to full application in December 2027"/><p><strong>Figure 1.</strong> Phased implementation timeline of the EU CRA<em>(source: Regulation (EU) 2024/2847;
collected June 14, 2026)</em></p><p>The CRA was published in the Official Journal on November 20, 2024, and entered into force on
December 10, 2024. Its application is staged: the Article 14 obligation to report exploited
vulnerabilities and severe incidents applies from September 11, 2026, and full application of the
essential cybersecurity requirements, including SBOM, begins on December 11, 2027.</p><h2 id="absence-of-format-implementing-rules-and-a-practical-reference-point">Absence of Format Implementing Rules and a Practical Reference Point</h2><p>As of June 2026, no official CRA-level implementing rule for SBOM format has been published. This
means there is not yet a document that establishes, as an EU-wide binding norm, which schema and
fields must be used to conform to the CRA.</p><p>The current practical reference point is Technical Guideline TR-03183-2 v2.1.0, published in
August 2025 by Germany&rsquo;s Federal Office for Information Security (Bundesamt für Sicherheit in der
Informationstechnik, BSI). This document provides specific field mappings for CRA-conformant SBOM
for both CycloneDX and SPDX. Note, however, that this is a German guideline, not an EU-wide binding
norm.</p><h2 id="considerations-for-open-source">Considerations for Open Source</h2><p>The CRA uses commercial activity as its applicability criterion, and in principle excludes
non-commercial open source that is distributed free of charge without commercial activity. This is
a mechanism to avoid imposing manufacturer-level obligations directly on open source maintainers.
However, the obligations still apply in full to manufacturers who integrate open source into a
product and supply it commercially, so obtaining and managing SBOMs for open source components
remains the manufacturer&rsquo;s responsibility.</p><h2 id="sources">Sources</h2><p>European Parliament and Council (2024).<em>Regulation (EU) 2024/2847 — Cyber Resilience Act</em>. OJ L,
2024/2847, 20.11.2024.<a href="https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng">https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng</a>. European Commission,
DG CNECT.<em>Cyber Resilience Act</em>.<a href="https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act">https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act</a>. BSI.<em>Technical Guideline
TR-03183-2</em>. (all accessed: June 14, 2026)</p>
]]></content:encoded></item><item><title>Appendix</title><link>https://haksungjang.github.io/en/docs/templates/1-policy/appendix/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/templates/1-policy/appendix/</guid><description>Appendix 1. Personnel Assignments No Role Responsibility Required Competency Owning Organization Assignee 1 Open Source Program Manager (OSPM) Bears overall responsibility for the company&amp;rsquo;s open source program. Understanding of software development processes
Understanding of copyright and patents
Expertise in open source license compliance
Communication skills Open Source Management Team [Name] 2 Legal Assesses legal risks related to open source licenses and provides legal advice. Understanding of the open source ecosystem
Expertise in software copyright
Expertise in open source licenses
Ability to assess legal risk Legal Team [Name] 3 IT Operates and automates open source analysis tools. Understanding of open source license compliance processes
Understanding of open source analysis tools
Expertise in IT infrastructure
Understanding of automation and CI/CD pipelines IT Team [Name] 4 Security Operates open source security vulnerability analysis tools. Understanding of DevSecOps
Understanding of open source security vulnerability analysis tools
Expertise in known and newly discovered vulnerabilities
Ability to assess and manage risk Security Team [Name] 5 Development Culture Supports in-house developers in actively using open source. Understanding of software development processes
Basic knowledge of open source license compliance
Ability to design education and training
Experience participating in open source communities Development Team [Name] 6 Quality Verifies open source license obligations when distributing supplied software. Understanding of software development processes
Basic knowledge of open source license compliance
Understanding of open source policy
Basic knowledge of open source licenses Quality Assurance Team [Name] 7 OSRB (Open Source Review Board) Establishes and improves policies and processes for open source management. Expertise in open source policy and process
Experience operating a deliberative body OSRB [Name] 8 OSPO (Open Source Program Office) Supports contributions to external open source projects and open sourcing of in-house projects. Experience participating in open source communities
Ability to manage open source projects OSPO [Name]</description><content:encoded>&lt;![CDATA[<h2 id="appendix-1-personnel-assignments">Appendix 1. Personnel Assignments</h2><table><thead><tr><th>No</th><th>Role</th><th>Responsibility</th><th>Required Competency</th><th>Owning Organization</th><th>Assignee</th></tr></thead><tbody><tr><td>1</td><td>Open Source Program Manager (OSPM)</td><td>Bears overall responsibility for the company&rsquo;s open source program.</td><td>Understanding of software development processes<br>Understanding of copyright and patents<br>Expertise in open source license compliance<br>Communication skills</td><td>Open Source Management Team</td><td>[Name]</td></tr><tr><td>2</td><td>Legal</td><td>Assesses legal risks related to open source licenses and provides legal advice.</td><td>Understanding of the open source ecosystem<br>Expertise in software copyright<br>Expertise in open source licenses<br>Ability to assess legal risk</td><td>Legal Team</td><td>[Name]</td></tr><tr><td>3</td><td>IT</td><td>Operates and automates open source analysis tools.</td><td>Understanding of open source license compliance processes<br>Understanding of open source analysis tools<br>Expertise in IT infrastructure<br>Understanding of automation and CI/CD pipelines</td><td>IT Team</td><td>[Name]</td></tr><tr><td>4</td><td>Security</td><td>Operates open source security vulnerability analysis tools.</td><td>Understanding of DevSecOps<br>Understanding of open source security vulnerability analysis tools<br>Expertise in known and newly discovered vulnerabilities<br>Ability to assess and manage risk</td><td>Security Team</td><td>[Name]</td></tr><tr><td>5</td><td>Development Culture</td><td>Supports in-house developers in actively using open source.</td><td>Understanding of software development processes<br>Basic knowledge of open source license compliance<br>Ability to design education and training<br>Experience participating in open source communities</td><td>Development Team</td><td>[Name]</td></tr><tr><td>6</td><td>Quality</td><td>Verifies open source license obligations when distributing supplied software.</td><td>Understanding of software development processes<br>Basic knowledge of open source license compliance<br>Understanding of open source policy<br>Basic knowledge of open source licenses</td><td>Quality Assurance Team</td><td>[Name]</td></tr><tr><td>7</td><td>OSRB (Open Source Review Board)</td><td>Establishes and improves policies and processes for open source management.</td><td>Expertise in open source policy and process<br>Experience operating a deliberative body</td><td>OSRB</td><td>[Name]</td></tr><tr><td>8</td><td>OSPO (Open Source Program Office)</td><td>Supports contributions to external open source projects and open sourcing of in-house projects.</td><td>Experience participating in open source communities<br>Ability to manage open source projects</td><td>OSPO</td><td>[Name]</td></tr></tbody></table>
]]></content:encoded></item><item><title>3.7 Access</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/1-access/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/3-relevant-tasks/1-access/</guid><description>Explains how to publicly identify a means for third parties to make AI SBOM compliance inquiries and the internal procedure for responding to them.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Stage</div><p>This clause is established during<strong>Phase 3 — Operations</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>Organizations that exchange AI systems in the supply chain need to verify each other&rsquo;s compliance.
That requires a publicly available channel for external inquiries, and readiness on the
organization&rsquo;s side to respond to them. Access secures both directions.</p><p>3.7 requires two things: publicly identifying a means by which a third party can make an AI SBOM
compliance inquiry, and maintaining an internal procedure to respond effectively to that inquiry.
In AI, AI-specific information — model and dataset licenses, training data provenance, model cards —
is added to the subject matter of such inquiries.</p><h2 id="2-required-activities">2. Required Activities</h2><ul><li>Publicly identify a means (e.g., a public email address) by which a third party can make an AI
SBOM compliance inquiry.</li><li>Post the public means somewhere externally discoverable, such as a product notice or website.</li><li>Document the internal procedure for receiving, classifying, and responding to external inquiries.</li><li>Define the responsible party and the response deadline.</li><li>Record the history of inquiries and responses.</li></ul><h2 id="3-requirements-and-verification-material">3. Requirements and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement (EN)</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.7</td><td>Maintain a process to effectively respond to external AI SBOM Compliance inquiries. Publicly identify a means by which a third party can make an AI SBOM Compliance inquiry.</td><td><strong>3.7.1</strong> Publicly visible method that allows any interested parties to make an AI SBOM Compliance inquiry (e.g., via a published contact email address)<br><strong>3.7.2</strong> An internal documented procedure for responding to third-party AI SBOM Compliance inquiries</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.7 Access</strong>
Maintain a process to effectively respond to external AI SBOM Compliance inquiries. Publicly
identify a means by which a third party can make an AI SBOM Compliance inquiry.</p><p><strong>Verification material(s):</strong></p><ul><li>Publicly visible method that allows any interested parties to make an AI SBOM Compliance inquiry
(e.g., via a published contact email address).</li><li>An internal documented procedure for responding to third-party AI SBOM Compliance inquiries.</li></ul></blockquote></details><h2 id="4-compliance-methods-and-samples-by-verification-material">4. Compliance Methods and Samples by Verification Material</h2><h3 id="371-publicly-identified-means-of-external-inquiry">3.7.1 Publicly identified means of external inquiry</h3><p><strong>Compliance Method</strong></p><p>Identify a public contact means that anyone can find. A role-based email address (a job function
address, not an individual) is stable. Post it in locations such as the product notice, the open
source/AI policy page on the company website, or the contact field of the model card. Stating a
response deadline alongside it builds trust.</p><p><strong>Sample</strong></p><pre tabindex="0"><code>AI Compliance Inquiries: ai-compliance@company.com
We accept inquiries regarding the components of the AI systems we provide, model and
dataset licenses, and AI SBOMs. We send an initial reply within 14 business days of
receipt.
(Posted at: product notice, company website AI policy page, model card contact field)</code></pre><hr><h3 id="372-internal-inquiry-response-procedure">3.7.2 Internal inquiry response procedure</h3><p><strong>Compliance Method</strong></p><p>Document the internal procedure from receiving an external inquiry to answering it. Define the
stages of intake, classification, assignment, review, reply, and recording, with a deadline for
each stage. Because AI SBOM inquiries need to reference model cards or license review records, the
AI SBOM verification lead and the license review lead respond together.</p><p>The figure below shows the external inquiry response flow.</p><p><img src="/docs/ai-sbom_guide/3-relevant-tasks/1-access/access-workflow-en.png" alt="A flow that receives an external inquiry, classifies and assigns it, reviews it, determines whether legal review is needed, and replies"/><p><strong>Figure 1.</strong> External AI SBOM compliance inquiry response flow</p><p><strong>Considerations</strong></p><ul><li><strong>Set deadlines</strong>: Define both an initial reply deadline (e.g., 14 days) and a final answer
deadline (e.g., 60 days).</li><li><strong>Protect AI-specific information</strong>: Set a standard for how far to disclose sensitive information
such as model weights or training data when answering inquiries. Define the boundary between
trade secrets and transparency obligations (3.6).<em>([Recommendation of this guide])</em></li><li><strong>Retain history</strong>: Record the inquiry content, the reply, and the processing time as verification
material.</li></ul><p><strong>Sample (Response Procedure Outline)</strong></p><pre tabindex="0"><code>## AI SBOM Compliance Inquiry Response Procedure
1. Intake: Register inquiries received at ai-compliance@.
2. Classification: Classify as AI SBOM request / license inquiry / transparency
obligation inquiry.
3. Assignment: Assign to the AI SBOM verification lead or the license review lead based
on classification.
4. Review and Reply: Reply after checking the relevant AI SBOM and model card. Follow the
disclosure standard for sensitive information. Involve legal review if needed.
5. Record: Retain the inquiry, reply, and processing time.
Deadlines: 14 days for the initial reply, 60 days for the final answer.</code></pre><h2 id="5-see-also">5. See Also</h2><ul><li>Role and resources of the response lead:<a href="/en/docs/ai-sbom_guide/3-relevant-tasks/2-resourced/">3.8 Effective Resource Allocation</a></li><li>AI SBOM used in replies:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Disclosure scope and transparency obligations:<a href="/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/">3.6 Transparency Obligations</a></li><li>ISO/IEC 5230 external inquiry example:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/2-relevant-tasks/1-access/">ISO/IEC 5230 Compliance Guide — 3.2.1 Responding to External Inquiries</a></li></ul>
]]></content:encoded></item><item><title>3.5 License Obligations</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/</guid><description>Explains the procedure for reviewing the licenses of an AI system's code, weights, datasets, and model tree to determine obligations, restrictions, and rights.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 2 — AI Extension Processes</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>License obligations are where the AI SBOM Guide expands most on ISO/IEC 5230. Where traditional
open source compliance reviewed the licenses of code, AI expands the review to four fronts: an AI
system&rsquo;s code, model weights, datasets (including training, testing, and validation datasets),
and the license of the AI system itself. It is common for a model to be derived from several
other models, so each parent model sitting in the Model Tree can carry its own distinct license.</p><p>3.5 requires a procedure for reviewing these licenses to determine, in light of the AI system&rsquo;s
intended use, the obligations, restrictions, and rights each license grants. The review covers
both obligations inherited from upstream and obligations passed downstream.</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Establish a procedure for identifying the licenses of code, weights, datasets, and the AI
system itself.</li><li>Track the license of each parent model in the model tree, and document the obligations,
restrictions, and rights of each license.</li><li>Perform an initial identification pass on source code and dependencies with automated scanning
tools.<em>([Guide Recommendation])</em></li><li>Route model weights, datasets, and non-standard licenses to legal or governance review.<em>([Guide Recommendation])</em></li><li>Set up an intake procedure that requires license metadata to accompany any model or dataset
brought in from outside.<em>([Guide Recommendation])</em></li><li>Record the review results (obligations, restrictions, rights) in the AI SBOM for tracking.</li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.5</td><td>A procedure shall exist for reviewing the licenses of an AI system&rsquo;s code, weights, datasets, and the AI system itself to determine, taking the intended use into account, the obligations, restrictions, and rights each license grants. Note that parent models in the model tree may each carry their own distinct license.</td><td><strong>3.5.1</strong> A documented procedure for properly reviewing and documenting the upstream and downstream obligations, restrictions, and rights granted by each identified license</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.5 License obligations</strong>
A process shall exist for reviewing the relevant identified licenses for an AI system&rsquo;s code,
weights, and datasets (including but not limited to training, testing, and verification datasets)
as well as the license for the AI system itself to determine the obligations, restrictions, and
rights granted by each license, taking into account the intended use of the AI system. Note that
it&rsquo;s often the case that an AI system is trained on multiple other AI systems that may be
identified in the AI system Model Tree for example; each of these may have their own licenses.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented procedure to review and document upstream and downstream obligations,
restrictions, and rights granted by each identified license, as appropriate.</li></ul></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="351-license-obligation-review-and-documentation-procedure">3.5.1 License Obligation Review and Documentation Procedure</h3><p><strong>How to Comply</strong></p><p>Design the review procedure around the premise that the level of automation differs by material
type. Source code and dependency licenses can be identified to a large degree with automated
scanning tools such as FOSSology, ScanCode, and the OSS Review Toolkit. But the licensing of
model weights and datasets, and the derivation relationships in the model tree, fall outside the
reach of these tools or are identified with low accuracy. The usage-purpose restrictions of
non-standard licenses require human interpretation. A realistic division of labor is therefore to
do an initial identification pass with automated scanning, and route models, datasets, and
non-standard licenses to legal or governance review.</p><p>The figure below shows the decision flow for determining license obligations as materials come
in.</p><p><img src="/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/license-decision-en.png" alt="Decision flow that splits incoming AI materials into code and models, identifies their licenses, determines whether they conflict with the intended use, and records the result in the AI SBOM"/><p><strong>Figure 1.</strong> Decision flow for license obligation review</p><p><strong>Considerations</strong></p><ul><li><strong>Enforce metadata at the intake gate</strong>: The largest cause of missed license obligations is
license drift — the loss of provenance and license information as a model propagates
downstream. One study reports that a substantial share of restriction clauses disappear in the
transition from model to application (<a href="https://arxiv.org/abs/2509.09873">arXiv:2509.09873</a>).
Rather than trying to reconstruct this downstream, it is more effective to block the intake of
materials lacking license metadata at the internal model/dataset registry.<em>([Guide Recommendation])</em></li><li><strong>Decide non-standard licenses through policy in advance</strong>: The behavioral use restrictions of
the Llama Community License or the OpenRAIL family are hard to track automatically for
compliance after the fact. Decide them at intake time using the allowed/prohibited lists in<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a>.<em>([Guide Recommendation])</em></li><li><strong>Trace the model tree</strong>: Check the model card to see which parent model an incoming model was
derived from, and review whether the parent model&rsquo;s license obligations propagate downstream.</li><li><strong>Check dataset usage restrictions</strong>: Check whether a non-commercial-licensed dataset such as
CC-BY-NC was used to train a commercial product. Dataset license omissions and misstatements
are common, so cross-check against the original text.</li><li><strong>Recognize the limits of automation</strong>: Do not treat automated scan results as the final
judgment. Tools help with identification; people handle the interpretation of obligations and
conflict determination.</li></ul><p><strong>Sample</strong></p><p>Below is a sample of the core part of a license obligation review procedure document. This
procedure document becomes verification material 3.5.1.</p><pre tabindex="0"><code>## AI License Obligation Review Procedure
### 1. Scope of Review
- AI system code and dependencies
- Model weights (imported models, fine-tuned models)
- Datasets (training, testing, validation)
- Licenses of parent models in the model tree
### 2. Review Steps
1) Automated identification: scan code and dependencies for licenses using an SCA tool.
2) Metadata collection: collect licenses for models and datasets from model cards and
datasheets. Hold intake if metadata is missing.
3) Classification: check identified licenses against the policy's allowed/conditional/
prohibited lists.
4) Legal review: route non-standard or unclear licenses to legal/governance review to
interpret the obligations.
5) Recording: record upstream and downstream obligations, restrictions, and rights in
the AI SBOM.
### 3. Responsibility and Frequency
- Initial identification: development staff
- Interpreting obligations: legal / AI governance lead
- Re-review: when a model or dataset is replaced, and at least once a quarter</code></pre><h2 id="5-references">5. References</h2><ul><li>Policy for allowed/prohibited license lists:<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a></li><li>AI SBOM for recording review results:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Automated scanning tools:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/1-fossology/">Tools — FOSSology</a>,<a href="https://openchain-project.github.io/OpenChain-KWG/guide/tools/9-scanoss/">SCANOSS</a></li><li>AI model/dataset licensing strategy:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/opensource_for_enterprise/7-ai-compliance/">Enterprise Open Source Management Guide — AI Compliance</a></li></ul>
]]></content:encoded></item><item><title>3.10 Governance</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/4-governance/1-governance/</link><pubDate>Sun, 09 Aug 2026 22:27:14 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/4-governance/1-governance/</guid><description>Explains how to establish a governance framework spanning the full AI system lifecycle and review it periodically to reflect emerging AI regulation.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 4 — Governance</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>Governance is the framework that ties all the preceding clauses together to ensure the AI
system&rsquo;s lifecycle is developed, deployed, and managed responsibly from end to end. Where policy
(3.1) sets the principles and license obligations (3.5) and the AI SBOM (3.9) build individual
processes, governance manages these so they keep operating consistently through regulatory change
and model replacement.</p><p>3.10 requires an AI governance framework, policies, and practices. The specification emphasizes
compliance with emerging AI laws such as the EU AI Act, the Hiroshima AI Process, and China&rsquo;s
Global AI Governance Initiative, and addresses ethical considerations, risk management, and
transparency together. The core is to review a framework, once built, periodically so it reflects
the latest regulation and model changes.</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Write a governance framework document that spans the full AI system lifecycle.</li><li>Include emerging AI regulation tracking, risk management, transparency, and ethical
considerations in the framework.</li><li>Have a procedure for periodically reviewing and updating the framework.</li><li>Monitor the risks that come with the ongoing use of AI systems and training data.</li><li>Reflect events such as model tree changes, regulatory enforcement, and OSAID classification
changes in governance.<em>([Guide Recommendation])</em></li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.10</td><td>The organization shall have an AI governance framework, policies, and practices that help ensure AI systems are developed, deployed, and managed responsibly. This shall emphasize compliance with emerging AI laws (the EU AI Act, the Hiroshima AI Process, China&rsquo;s initiative) and address ethical considerations, risk management, and transparency.</td><td><strong>3.10.1</strong> A documented AI governance framework for the AI system lifecycle, including a procedure for periodically reviewing the framework</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.10 Governance</strong>
An organization shall have a governance framework for AI, policies, and practices to help ensure
that AI systems are developed, deployed, and managed responsibly. Governance emphasizes compliance
with emerging AI laws and regulations, such as the EU AI Act, Hiroshima AI process or Global AI
Governance Initiative (China), and addresses ethical considerations, risk management, and
transparency. For example, understand the risks associated with ongoing use of AI Systems and
training data in the context of their intended Programs. This could include the ability to monitor
the lifecycle of the AI system and perform ongoing analysis of its intended uses.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented AI governance framework for the lifecycle of an AI system with a process to review
the framework periodically.</li></ul></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="3101-ai-governance-framework-and-periodic-review-procedure">3.10.1 AI Governance Framework and Periodic Review Procedure</h3><p><strong>How to Comply</strong></p><p>The governance framework covers three things: tracking emerging regulation to derive obligations,
monitoring the AI system lifecycle, and a procedure for periodically reviewing the framework
itself. Because regulation changes quickly, the framework must be a living system built for
updates, not a fixed document.</p><p>The three axes the specification names differ in character. The EU AI Act imposes concrete,
article-level obligations; the Hiroshima AI Process runs voluntary transparency reporting; and
China&rsquo;s initiative is closer to a policy declaration. Governance distinguishes these differences
and tracks each accordingly.</p><p>The table below lists the major regulations to track from an AI SBOM perspective. The full
regulatory matrix and its ISO/IEC 42001 context are covered in<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso42001_guide/1-context-leadership/">ISO/IEC 42001 Guide —
Organizational Context and
Leadership</a>.</p><p><strong>Table 1.</strong> Major AI regulations intersecting with AI SBOM (as of 2026-06)</p><table><thead><tr><th>Regulation/Initiative</th><th>Timing</th><th>Core AI SBOM-Relevant Obligation</th><th>Governance Reflection</th></tr></thead><tbody><tr><td>EU AI Act Article 11 + Annex IV</td><td>2027 (high-risk)</td><td>Technical documentation obligation</td><td>Produce the AI SBOM as a core element of the technical documentation</td></tr><tr><td>EU AI Act Article 53 (GPAI)</td><td>2026-08</td><td>Disclosure of a training data summary, respecting copyright opt-outs</td><td>Track dataset provenance and licensing</td></tr><tr><td>EU AI Act Article 50</td><td>2026-08</td><td>Labeling of AI-generated content</td><td>Links to the transparency obligation (3.6)</td></tr><tr><td>Hiroshima AI Process</td><td>Launched 2025, Reporting 2.0 (2026-05)</td><td>Voluntary transparency reporting</td><td>Consider participating in the OECD reporting framework</td></tr><tr><td>China&rsquo;s Global AI Governance Initiative</td><td>Announced 2023</td><td>Policy declaration (no concrete deliverable)</td><td>Monitor trends</td></tr><tr><td>Korea&rsquo;s AI Basic Act</td><td>Effective 2026-01</td><td>High-impact AI impact assessment, labeling obligation, disclosure of training data provenance</td><td>AI SBOM and model card production</td></tr></tbody></table><p>Lifecycle monitoring means placing governance checkpoints along the flow from development to
retirement. The figure below shows lifecycle governance built around the AI SBOM.</p><p><img src="/docs/ai-sbom_guide/4-governance/1-governance/governance-cycle-en.png" alt="Governance cycle that runs from model intake through development, review, deployment, and operational monitoring, looping back to development or review depending on the type of change"/><p><strong>Figure 1.</strong> Lifecycle governance built around the AI SBOM</p><p><strong>Considerations</strong></p><ul><li><strong>Assign regulatory-tracking responsibility</strong>: Specify in governance who tracks emerging
regulation and derives obligations from it. The EU AI Act&rsquo;s obligations expand in stages in
August 2026 and 2027, so manage the timing.</li><li><strong>Manage model tree changes</strong>: When an imported model moves to a new version or a parent model
is replaced, license obligations can change. Register the change as a governance review event.<em>([Guide Recommendation])</em></li><li><strong>Update OSAID classification</strong>: The distinction between &ldquo;open source AI&rdquo; and &ldquo;open weight&rdquo;
(OSAID 1.0) affects model licensing judgments. Include classification changes in the periodic
review.</li><li><strong>State the review cycle</strong>: Review model and dataset changes quarterly, and regulation and the
overall framework annually. Record the review completion date and reviewer.</li><li><strong>Connect to other clauses</strong>: Governance ties together the regulatory review under the
transparency obligation (3.6) and the lifecycle management under the AI SBOM (3.9) from above.
Connect them rather than building duplicate procedures.</li></ul><p><strong>Sample (Governance Framework and Annual Review Plan)</strong></p><p>Below is a sample of the core part of a governance framework document and periodic review plan.
This document becomes verification material 3.10.1.</p><pre tabindex="0"><code>## AI Governance Framework
### 1. Scope and Purpose
Manages licensing, transparency, risk, and regulatory compliance across the full
lifecycle of an AI system — intake, development, deployment, operation, and
retirement.
### 2. Governance Structure
- AI Governance Lead: approves the framework, makes the final call on regulatory obligations
- Regulatory Tracking Owner: monitors emerging AI regulation, derives obligations
- AI SBOM Verification Owner: runs the generation, review, and approval procedure
- Legal: interprets non-standard licenses and regulation
### 3. Periodic Review Plan
| Frequency | Review Item | Owner | Deliverable |
|------|----------|------|--------|
| Quarterly | Model/dataset changes, model tree licensing | AI SBOM Verification Owner | Change review record |
| Semiannual | Non-standard license classification, OSAID updates | Legal | Updated classification |
| Annual | Regulatory enforcement schedule, overall framework, policy alignment | AI Governance Lead | Revised framework |
### 4. Change Management
When a model tree change, new regulation taking effect, or a license policy change
occurs, convene an ad hoc review rather than waiting for the periodic review. Record
the review outcome and action taken in the change history.</code></pre><h2 id="5-references">5. References</h2><ul><li>Policy foundation:<a href="/en/docs/ai-sbom_guide/1-program-foundation/1-policy/">3.1 Policy</a></li><li>Transparency obligations and regulatory review:<a href="/en/docs/ai-sbom_guide/2-ai-extension/2-transparency-obligations/">3.6 Transparency Obligations</a></li><li>AI SBOM lifecycle management:<a href="/en/docs/ai-sbom_guide/2-ai-extension/3-ai-sbom/">3.9 AI SBOM</a></li><li>Full regulatory matrix and ISO/IEC 42001 context:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso42001_guide/1-context-leadership/">ISO/IEC 42001 Guide — Organizational Context and Leadership</a></li></ul>
]]></content:encoded></item><item><title>3.1 Policy</title><link>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/1-policy/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/ai-sbom_guide/1-program-foundation/1-policy/</guid><description>Explains how to establish and communicate a written policy that governs AI SBOM compliance.</description><content:encoded>&lt;![CDATA[<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Implementation Phase</div><p>This clause is built during<strong>Phase 1 — Program Foundation</strong>.<a href="/en/docs/ai-sbom_guide/#phased-implementation-roadmap">View the full implementation roadmap</a></p></div><h2 id="1-clause-overview">1. Clause Overview</h2><p>Without an AI SBOM policy, an organization ends up deploying AI systems while developers remain
unaware of the licensing obligations attached to models and datasets. In AI, what needs to be
tracked goes beyond code. Model weights, training datasets, and the model tree derived from other
models each carry their own license, and non-standard licenses that restrict the purpose of use —
such as the Llama Community License or the RAIL family — are common. Missing these obligations
leads to copyright disputes, violations of usage restrictions, and terminated business contracts.</p><p>To prevent this risk, 3.1 requires establishing a documented policy that governs AI SBOM
compliance and communicating it so that program participants are aware of its existence. This
policy must reflect business strategy, the legal requirements of relevant jurisdictions, and the
level of risk appropriate to the use case. All subsequent clauses (competence, license
obligations, AI SBOM, governance, and so on) operate on top of this policy.</p><h2 id="2-activities-to-perform">2. Activities to Perform</h2><ul><li>Draft and formalize a policy document that governs AI SBOM compliance.</li><li>Define the scope of application in the policy (AI systems deployed externally, external
models/datasets brought in, internal models released publicly, etc.).</li><li>Reflect business strategy, the legal requirements of relevant jurisdictions, and the risk level
for each use case in the policy.</li><li>Include in the policy a list of licenses allowed or prohibited for models and datasets.<em>([Guide Recommendation] Because compliance with non-standard licenses is hard to track
automatically after the fact, decide it through policy at intake time.)</em></li><li>Establish and document a procedure for communicating the policy to program participants
(development, legal, security, data staff, etc.).</li><li>Retain records that prove the policy was communicated (training completion, notice history, etc.).</li><li>Include in the policy a procedure for periodically reviewing it and re-communicating it when it
changes.</li></ul><h2 id="3-requirement-and-verification-material">3. Requirement and Verification Material</h2><table><thead><tr><th>Clause</th><th>Requirement</th><th>Verification Material</th></tr></thead><tbody><tr><td>3.1</td><td>A written policy shall exist that governs AI SBOM compliance, and it shall be communicated internally. The policy shall reflect business strategy, the legal requirements of relevant jurisdictions, and the level of risk appropriate to the use case.</td><td><strong>3.1.1</strong> A documented policy meeting the above requirement<br><strong>3.1.2</strong> A documented procedure that makes program participants aware of the existence of the policy (e.g., training, an internal wiki, or another practical communication method)</td></tr></tbody></table><details><summary>View original English text</summary><blockquote><p><strong>3.1 Policy</strong>
A written policy shall exist that governs AI System Bill of Materials (AI SBOM) compliance.
The policy shall be internally communicated, and informed by business strategy, legal
requirements in the relevant jurisdictions, and the level of risk appropriate for the use case.</p><p><strong>Verification material(s):</strong></p><ul><li>A documented policy meeting the above requirements</li><li>A documented procedure that makes program participants aware of the existence of the policy
(e.g. via training, internal wiki or other practical communication method)</li></ul></blockquote></details><h2 id="4-how-to-comply-with-each-verification-material-with-samples">4. How to Comply with Each Verification Material, with Samples</h2><h3 id="311-documented-ai-sbom-policy">3.1.1 Documented AI SBOM Policy</h3><p><strong>How to Comply</strong></p><p>The AI SBOM policy is a formal document that captures the principles and procedures by which the
organization manages the licensing and transparency obligations of its AI systems. The policy
should include its purpose, scope, roles and responsibilities, principles for reviewing model and
dataset licenses, AI SBOM management, how transparency obligations are addressed, and the review
cycle. Because this document itself is verification material 3.1.1, manage it as a formal
document with recorded version and approval history.</p><p>For an organization that already has an ISO/IEC 5230 open source policy, it is more efficient to
add an AI-related section to the existing policy than to create a separate new one. Add that
models and datasets fall within the scope of license review, how non-standard licenses are
handled, and what format is used to manage the AI SBOM.</p><p>A policy is not a document to be written once and left alone. Because the AI regulatory landscape
changes quickly, conduct a periodic review at least once a year and record the change history.</p><p><strong>Considerations</strong></p><ul><li><strong>State the AI-specific scope explicitly</strong>: Clearly state in the policy that license review
covers not only code but also model weights, training/testing/validation datasets, and the
derivation relationships in the model tree.</li><li><strong>Allowed/prohibited license lists</strong>: Divide model and dataset licenses into allowed and
prohibited lists, based on whether commercial use is permitted and whether there are behavioral
use restrictions, and set this in the policy in advance.<em>([Guide Recommendation])</em></li><li><strong>Approval procedure</strong>: Have the legal team or the AI governance lead give final approval, and
record the approval date and approver.</li><li><strong>Version control</strong>: Maintain the document version and change history so that previous versions
can be compared during an audit.</li><li><strong>Periodic review</strong>: Review at least once a year, and record the review completion date and
reviewer.</li></ul><p><strong>Sample</strong></p><p>Below is a sample of the scope of application and the allowed/prohibited license lists for an AI
SBOM policy. This text becomes a core component of verification material 3.1.1. Check the actual
terms of each license against its original text, then classify it to fit the organization&rsquo;s use
case.</p><pre tabindex="0"><code>## 1. Purpose and Scope
This policy defines the compliance principles and procedures for the company to
develop and deploy AI systems safely and responsibly. It is designed to satisfy
the requirements of ISO/IEC 5230 (open source license compliance) and the
OpenChain AI SBOM Compliance Guide.
Scope:
- All AI systems, models, and services distributed externally.
- Pre-trained models and datasets brought in from outside.
- Activities that release internal models to the outside.
## 2. Model/Dataset License Classification
Licenses for models and datasets being brought in are reviewed against the
classification below. A license not in this classification goes through review
by the AI governance lead before being brought in.
- Allowed (commercial use permitted, no behavioral restrictions): Apache-2.0, MIT, BSD, CC-BY-4.0, etc.
- Conditionally allowed (use after review): licenses with restrictions on purpose or
scale of use, such as the Llama Community License, the Gemma Terms of Use,
and the OpenRAIL family
- Prohibited (non-commercial only, etc.): using a CC-BY-NC dataset in a commercial product, etc.</code></pre><hr><h3 id="312-policy-awareness-procedure">3.1.2 Policy Awareness Procedure</h3><p><strong>How to Comply</strong></p><p>Writing the policy document alone is not enough. A communication procedure must be established
and documented so that program participants actually become aware the policy exists. This
communication procedure document itself is verification material 3.1.2. Because AI systems
involve not just developers but also data staff, legal, and security, design the channel so the
policy reaches all of them.</p><p>Include AI SBOM policy guidance in onboarding for new hires, and use internal wiki postings and
email notices for existing employees. To prove that the policy was communicated, retain evidence
such as notice history and training completion records for at least three years.</p><p><strong>Considerations</strong></p><ul><li><strong>Use multiple channels</strong>: Use two or more channels, such as an internal wiki, email notices,
and onboarding training.</li><li><strong>Include AI-related roles</strong>: Include dataset owners and model operators as recipients as well.</li><li><strong>When the policy changes</strong>: Have a separate procedure to notify participants of changes
immediately.</li><li><strong>Retain evidence</strong>: Keep notice history and training completion certificates for at least
three years.</li></ul><p><strong>Sample</strong></p><p>Below is a sample policy communication notice email. Retaining the send history serves as
evidence for verification material 3.1.2.</p><pre tabindex="0"><code>Subject: [AI Compliance] AI SBOM Policy Notice and Acknowledgment Request
To: Employees involved in AI system development, operations, and data
From: AI Compliance Officer
Hello,
Our AI SBOM compliance policy has been established (or revised).
All employees involved in using, bringing in, or deploying AI models and
datasets are asked to review and familiarize themselves with the policy
document below.
- Policy document: [internal portal link]
- Key contents: model/dataset license classification, license obligation
review procedure, AI SBOM management, transparency obligation response
- Policy version: v1.0 (effective date: YYYY-MM-DD)
Contact: AI Compliance Officer (ai-compliance@company.com)</code></pre><h2 id="5-references">5. References</h2><ul><li>License obligation review procedure:<a href="/en/docs/ai-sbom_guide/2-ai-extension/1-license-obligations/">3.5 License Obligations</a></li><li>Basic structure of an open source policy:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/iso5230_guide/1-program-foundation/1-policy/">ISO/IEC 5230 Compliance Guide — 3.1.1 Policy</a></li><li>AI license management strategy:<a href="https://openchain-project.github.io/OpenChain-KWG/guide/opensource_for_enterprise/7-ai-compliance/">Enterprise Open Source Management Guide — AI Compliance</a></li></ul>
]]></content:encoded></item><item><title>SBOM Overview</title><link>https://haksungjang.github.io/en/docs/sbom_guide/1-overview/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/sbom_guide/1-overview/</guid><description>An overview of what an SBOM is and why it is needed, covering software supply chain threats and the benefits an SBOM provides.</description><content:encoded>&lt;![CDATA[<h2 id="what-is-an-sbom">What Is an SBOM</h2><p>A Software Bill of Materials (SBOM) is a machine-readable list of all the components and
libraries that make up a software product, along with the dependency relationships among them.
It carries over the manufacturing concept of a Bill of Materials into software. Just as a
finished vehicle has a specification sheet recording which parts came from which supplier, an
SBOM records which open source and commercial components, at which versions, went into an
application.</p><p>Most modern software is filled more with components brought in from outside than with code
written in-house. Those external components can carry vulnerabilities, come with license
obligations attached, and in turn depend on still other components. An SBOM makes this chain of
dependencies visible, providing a common data layer that security, license management, and asset
management can all reference.</p><h2 id="why-it-matters-the-collapse-of-supply-chain-trust">Why It Matters: The Collapse of Supply Chain Trust</h2><p>Two supply chain incidents raised the SBOM onto the policy agenda. In the SolarWinds incident
that came to light in December 2020, attackers poisoned the legitimate update path of the Orion
software itself. A backdoor spread along with that update to the many organizations that trusted
and installed it. It was a structure in which a compromise at a single point upstream in the
supply chain spread across the entire downstream.</p><p>A year later, in December 2021, a remote code execution vulnerability in the Java logging
library Log4j (CVE-2021-44228, commonly known as Log4Shell) was disclosed. What this incident
exposed was not a breach itself but an absence of visibility. Log4j was buried deep as an
indirect dependency in countless products, so few organizations could give an immediate answer
to the question, &ldquo;where in our products does this library exist?&rdquo; If every piece of software had
already had a machine-readable component list in place, determining the scope of impact would
have taken a single query. This experience gave direct momentum to the SBOM agenda.</p><p>After that, the SBOM moved beyond recommendation into regulation. The United States opened a
path to requiring SBOMs for software delivered to the federal government through Executive Order
14028 in 2021, and the European Union made producing an SBOM a legal obligation through the
Cyber Resilience Act (CRA). The detailed regulatory landscape is covered in<a href="/en/docs/sbom_guide/3-regulation/">3. Regulatory Landscape</a>.</p><h2 id="benefits-of-an-sbom">Benefits of an SBOM</h2><p>The value of an SBOM is not limited to security alone. The same data — a component list — serves
multiple purposes at once.</p><ul><li><strong>Vulnerability management and incident response</strong>: When a new vulnerability is disclosed,
affected components can be looked up immediately to set response priorities.</li><li>Supply chain risk management: The provenance and trustworthiness of external components are
assessed and reflected in procurement and supplier management.</li><li>License compliance: Tracking the license of each component prevents obligation violations and
conflicts in advance.</li><li>Regulatory compliance: Meets transparency requirements and provides the evidence needed for
regulatory reporting and audits.</li><li>Asset management and operational efficiency: Knowing exactly what is in use makes lifecycle
management easier.</li></ul><h2 id="who-creates-and-uses-it">Who Creates and Uses It</h2><p>The value of an SBOM does not come from a single organization producing it alone; it is realized
when it flows along the supply chain. The third edition of CISA&rsquo;s<em>Framing Software Component
Transparency</em> organizes the actors around an SBOM into three perspectives: producers (Produce)
who make software, choosers (Choose) who select which software to use, and operators (Operate)
who run it. It is common for a single organization to hold all three roles at once, as with a
company that develops its own products while also bringing in external libraries and operating
infrastructure.</p><p>The core of this structure is the chain of supplier-consumer relationships. When an upstream
producer creates an SBOM and passes it downstream, the downstream chooser uses it to assess risk
before adoption, and the operator looks up the scope of impact immediately when a new
vulnerability is disclosed. What Log4Shell showed was precisely a break in this chain. Because
producers had not passed along a component list, operators could not know what libraries existed
in their own assets.</p><p>Interests diverge subtly across actors. Consumers want a deeper, more complete SBOM, while
producers, concerned about trade secrets and attack surface exposure, want to narrow the scope of
disclosure. Where regulation sets the floor of obligation, and how it adjusts the scope of
disclosure, are the mechanisms that resolve this tension. Sharing and disclosure scope are
covered in<a href="/en/docs/sbom_guide/7-governance/">7. Sharing and Governance</a>.</p><p>The next section looks at<a href="/en/docs/sbom_guide/1-overview/1-types/">levels and types</a> according to the depth of information
an SBOM carries.</p><h2 id="sources">Sources</h2><p>The factual basis for this section is compiled in this guide&rsquo;s background research materials.
Executive Order 14028 (86 FR 26633, May 12, 2021), CVE-2021-44228 (NVD), and the third edition
of CISA&rsquo;s<em>Framing Software Component Transparency</em> (September 3, 2024) were used as primary
sources. For the full set of sources, see<a href="/en/docs/sbom_guide/3-regulation/">3. Regulatory Landscape</a> and the
bottom of each section.</p>
]]></content:encoded></item><item><title>1. Organization</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/1-teams/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/1-teams/</guid><description>First, an enterprise must establish an organization responsible for open source management.
The following should be considered when forming the organization:
Roles and responsibilities of the organization Competencies required for each role The organization/person responsible for each role 1. Defining the Roles and Responsibilities of the Organization The ISO standards commonly require a document that describes the roles and responsibilities of the various participants in the program, as follows.
ISO/IEC 5230 - License Compliance 3.1.2.1 - A documented list of roles with corresponding responsibilities for the different participants in the program.
A document listing the roles of the various participants in the program and the responsibilities of each role ISO/IEC 18974 - Security Assurance 3.1.2.1: A documented list of roles with corresponding responsibilities for the different Program Participants
A document listing the responsibilities of each of the various program participants Open Source Program Manager To build an open source management system, an enterprise first needs someone responsible for leading and carrying it out. This person is called by titles such as Open Source Program Manager or Open Source Compliance Officer; this guide uses the term Open Source Program Manager.</description><content:encoded>&lt;![CDATA[<p>First, an enterprise must establish an organization responsible for open source management.</p><p>The following should be considered when forming the organization:</p><ul><li>Roles and responsibilities of the organization</li><li>Competencies required for each role</li><li>The organization/person responsible for each role</li></ul><h2 id="1-defining-the-roles-and-responsibilities-of-the-organization">1. Defining the Roles and Responsibilities of the Organization</h2><p>The ISO standards commonly require a document that describes the roles and responsibilities of the various participants in the program, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.2.1 - A documented list of roles with corresponding responsibilities for the different participants in the program.<br><code>A document listing the roles of the various participants in the program and the responsibilities of each role</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.2.1: A documented list of roles with corresponding responsibilities for the different Program Participants<br><code>A document listing the responsibilities of each of the various program participants</code></li></ul></div><h3 id="open-source-program-manager">Open Source Program Manager</h3><p>To build an open source management system, an enterprise first needs someone responsible for leading and carrying it out. This person is called by titles such as<code>Open Source Program Manager</code> or<code>Open Source Compliance Officer</code>; this guide uses the term<code>Open Source Program Manager</code>.</p><p>The Open Source Program Manager is in charge of the enterprise&rsquo;s Open Source Program Office (OSPO).<code>Open Source Program Office</code> refers to the organization responsible for an enterprise&rsquo;s open source management, and is also referred to by the term<code>Open Source Secretariat</code>.</p><p>A person with the following competencies can be considered well-suited for the role of Open Source Program Manager.</p><ul><li>Understanding of the open source ecosystem and development experience</li><li>Broad understanding of the enterprise&rsquo;s business</li><li>Passion and communication skills to spread effective open source use among employees</li></ul><p>It is best for the Open Source Program Manager to be guaranteed the ability to perform the role full-time whenever possible.</p><p>Global ICT enterprises are making efforts to hire capable Open Source Program Managers of this kind. Various job postings can be found at the following site:<a href="https://github.com/todogroup/job-descriptions">https://github.com/todogroup/job-descriptions</a></p><h3 id="documenting-roles-and-responsibilities">Documenting Roles and Responsibilities</h3><p>An enterprise must define each role needed for the OSPO and determine what responsibilities to assign to it.</p><p>In a small enterprise, it is possible for the Open Source Program Manager alone to perform all the roles. Depending on the size of the enterprise, an IT staff member to operate open source tools may also be needed, and a legal role may be required to provide specialized legal counsel.</p><p>In general, the following roles are needed to build an enterprise&rsquo;s open source management system.</p><ul><li>Legal</li><li>IT</li><li>Security</li><li>Developer Relations</li></ul><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 543px"><img class="card-img-top" src="/docs/opensource_for_enterprise/1-teams/complianceofficer_hu_27ccab53fd425923.png" width="533" height="434"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>Individuals and teams involved in ensuring open source compliance : https://www.linuxfoundation.org/wp-content/uploads/OpenSourceComplianceHandbook_2018_2ndEdition_DigitalEdition.pdf</i></center></p></figcaption></figure><p>To this end, the roles and responsibilities that make up the OSPO must be documented as follows.</p><table><thead><tr><th>No</th><th style="text-align: left">Role</th><th style="text-align: left">Responsibility</th></tr></thead><tbody><tr><td>1</td><td style="text-align: left">Open Source Program Manager</td><td style="text-align: left">Holds overall responsibility for the company&rsquo;s open source program.</td></tr><tr><td>2</td><td style="text-align: left">Legal</td><td style="text-align: left">Interprets open source licenses and obligations. Provides advice to mitigate legal risks that may arise from open source use, including fulfilling these obligations in practice.</td></tr><tr><td>3</td><td style="text-align: left">IT</td><td style="text-align: left">Operates and automates open source scanning tools, building a system so that open source analysis is performed smoothly for all software to be distributed.</td></tr><tr><td>4</td><td style="text-align: left">Security</td><td style="text-align: left">Operates open source vulnerability scanning tools, builds a system so that vulnerability analysis is performed for all software to be distributed, and takes action to ensure that identified vulnerabilities are remediated according to defined criteria.</td></tr><tr><td>5</td><td style="text-align: left">Developer Relations</td><td style="text-align: left">Supports in-house developers in actively using open source and participating in internal and external communities to adopt advanced development practices.</td></tr><tr><td>6</td><td style="text-align: left">Business Unit</td><td style="text-align: left">Software development/distribution organizations comply with open source policy and process to ensure proper open source use.</td></tr></tbody></table><h2 id="2-defining-required-competencies">2. Defining Required Competencies</h2><p>Once each role and its responsibilities have been defined, the essential competencies that the person performing that role must have need to be identified.</p><p>The ISO standards commonly require a document that describes the competencies needed for each role, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.1.2.2 - A document that identifies the competencies for each role.<br><code>A document that describes the competencies needed for each role</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.2.2: A document that identifies the competencies for each role.<br><code>A document that describes the competencies needed for each role</code></li></ul></div><p>This is because it is necessary to assess whether the person assigned to each role has the competencies to perform it, and to provide training if needed.</p><p>To this end, an enterprise must document the competencies needed for each role, as follows.</p><table><thead><tr><th>No</th><th style="text-align: left">Role</th><th style="text-align: left">Required Competencies</th></tr></thead><tbody><tr><td>1</td><td style="text-align: left">Open Source Program Manager</td><td style="text-align: left">1. Understanding of the software development process<br>2. Understanding of intellectual property related to open source licenses, including copyright and patents<br>3. Expert knowledge of open source compliance<br>4. Open source development experience<br>5. Communication skills<br>6. Basic knowledge of open source security assurance</td></tr><tr><td>2</td><td style="text-align: left">Legal</td><td style="text-align: left">1. Basic knowledge of the open source ecosystem<br>2. Expert knowledge of software copyright<br>3. Expert knowledge of open source licenses<br>4. Ability to assess open-source-related legal risk</td></tr><tr><td>3</td><td style="text-align: left">IT</td><td style="text-align: left">1. Basic knowledge of the open source compliance process<br>2. Understanding of open source scanning tools<br>3. Expert knowledge of IT infrastructure<br>4. Understanding of automation and CI/CD pipelines</td></tr><tr><td>4</td><td style="text-align: left">Security</td><td style="text-align: left">1. Broad understanding of<a href="https://www.redhat.com/ko/topics/devops/what-is-devsecops">DevSecOps</a><br>2. Understanding of open source vulnerability scanning tools<br>3. Expert knowledge of open source vulnerabilities<br>4. Communication skills<br>5. Risk assessment and management ability</td></tr><tr><td>5</td><td style="text-align: left">Developer Relations</td><td style="text-align: left">1. Understanding of the software development process<br>2. Basic knowledge of open source compliance<br>3. Understanding of open source policy<br>4. Ability to design education and training<br>5. Experience participating in open source communities</td></tr><tr><td>6</td><td style="text-align: left">Business Unit</td><td style="text-align: left">1. Understanding of the software development process<br>2. Basic knowledge of open source compliance<br>3. Understanding of open source policy<br>4. Basic knowledge of open source licenses<br>5. Understanding of the business impact of open source use</td></tr></tbody></table><h2 id="3-assigning-owners">3. Assigning Owners</h2><p>The Open Source Program Manager consults with the relevant departments to assign an owner for each role and document this. To do so, the goals and direction for building the open source compliance system must be reported to the top decision-maker, such as the CEO, in order to obtain the necessary support.</p><p>The organization and owners related to open source do not necessarily need to work on open source full-time. It is also possible to form a virtual organization in the form of an OSRB (Open Source Review Board) to carry out the necessary roles.</p><p>The ISO standards commonly require a document naming the persons, groups, or functions responsible for each role in the program, as follows.</p><div class="alert alert-success" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 5230 - License Compliance</div><ul><li>3.2.2.1 - Document with name of persons, group or function in program role(s) identified.<br><code>A document naming the persons, group, or function responsible for each role in the program</code></li></ul></div><div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">ISO/IEC 18974 - Security Assurance</div><ul><li>3.1.2.3: List of participants and their roles<br><code>A list of participants and their roles</code></li><li>3.2.2.1: Document with name of persons, group or function in Program role(s) identified<br><code>A document naming the persons, group, or function responsible for each role in the program</code></li></ul></div><p>To this end, an enterprise must document the names of the persons, groups, or functions responsible for each role in the program, as follows.</p><table><thead><tr><th>No</th><th style="text-align: left">Role</th><th style="text-align: left">Responsible Organization</th><th style="text-align: left">Owner</th></tr></thead><tbody><tr><td>1</td><td style="text-align: left">Open Source Program Manager</td><td style="text-align: left">CTO</td><td style="text-align: left">OOO</td></tr><tr><td>2</td><td style="text-align: left">Legal</td><td style="text-align: left">Legal Team</td><td style="text-align: left">OOO</td></tr><tr><td>3</td><td style="text-align: left">IT</td><td style="text-align: left">IT Infrastructure Team</td><td style="text-align: left">OOO</td></tr><tr><td>4</td><td style="text-align: left">Security</td><td style="text-align: left">Security Team</td><td style="text-align: left">OOO</td></tr><tr><td>5</td><td style="text-align: left">Developer Relations</td><td style="text-align: left">DR</td><td style="text-align: left">OOO</td></tr><tr><td>6</td><td style="text-align: left">Business Unit</td><td style="text-align: left">Development Team</td><td style="text-align: left">All members</td></tr></tbody></table><p>A documented sample of roles, responsibilities, required competencies, and owner assignments can be found on the next page.<a href="/en/docs/templates/1-policy/">[Appendix 1] Open Source Policy (Sample) - Appendix 1. Assigned Owners</a></p><p><a href="https://www.sktelecom.com/">SK telecom</a> has formed an<a href="https://sktelecom.github.io/about/osrb/">OSRB</a> to create open source policies and processes within the company, and collaborates to prepare response plans when issues arise.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 471px"><img class="card-img-top" src="/docs/opensource_for_enterprise/1-teams/sktosrb_hu_7da96304c6a03ac0.png" width="461" height="300"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>https://sktelecom.github.io/about/osrb/</i></center></p></figcaption></figure><h2 id="4-summary">4. Summary</h2><p>A documented sample of roles, responsibilities, required competencies, and owner assignments can be found in the open source policy template document:<a href="/en/docs/templates/1-policy/">Appendix 1. Assigned Owners</a></p><p>An enterprise can refer to this to organize its open source management structure to fit its own situation.</p><p>By designating and documenting the OSPO organization in this way, an enterprise satisfies the requirements marked in red below among the ISO standard specifications.</p><p>In fact, more important than the documentation itself is appointing an owner who will faithfully carry out the actual work, and supporting that owner in acquiring the necessary competencies.</p><p>Taking part in systematic training, such as the<a href="https://www.olis.or.kr/consulting/openswStudy.do">Open Source License Professional Training</a> offered by the Korea Copyright Commission or the<a href="https://www.oss.kr/oss_data/show/448d2e96-6819-45f4-b114-73cd41b3e9d3">NIPA Open Software Management Academy</a>, is also very helpful.</p><p>The roles of the Open Source Program Manager and the Security role are becoming increasingly important. The Open Source Program Manager must also have a basic understanding of open source security assurance, and the Security role needs an understanding of new security requirements such as<a href="https://www.cisa.gov/sbom">SBOM</a> (Software Bill of Materials) management.</p><p>In addition, continuous learning and staying current with the latest trends are becoming important across every role. The open source ecosystem and related technologies and regulations are changing rapidly, so each owner must continuously update their knowledge in their own field. Participating in international communities such as<a href="https://www.openchainproject.org/">OpenChain</a> or the<a href="https://todogroup.org/">TODO Group</a>, or attending<a href="https://www.oss.kr/">domestic open source conferences</a>, is also a good approach.</p>
]]></content:encoded></item><item><title>0. Understanding OpenChain</title><link>https://haksungjang.github.io/en/docs/opensource_for_enterprise/0-openchain/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/opensource_for_enterprise/0-openchain/</guid><description>1. What Is the OpenChain Project? Today, software continues to grow in scale and complexity. Developing a single piece of software can involve not only software built in-house but also a variety of software spanning the software supply chain, including open source, third-party software, and vendor SDKs.
If even a single organization within this complex software supply chain fails to comply with open source license obligations or fails to provide accurate information about its open source use, the enterprise distributing the final software has no choice but to fail at meeting its own open source license obligations. This can result in lawsuits and even the suspension of product sales.</description><content:encoded>&lt;![CDATA[<h2 id="1-what-is-the-openchain-project">1. What Is the OpenChain Project?</h2><p>Today, software continues to grow in scale and complexity. Developing a single piece of software can involve not only software built in-house but also a variety of software spanning the software supply chain, including open source, third-party software, and vendor SDKs.</p><p>If even a single organization within this complex software supply chain fails to comply with open source license obligations or fails to provide accurate information about its open source use, the enterprise distributing the final software has no choice but to fail at meeting its own open source license obligations. This can result in lawsuits and even the suspension of product sales.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 823px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/supplychain_hu_7af9bd5b7a71dad7.png" width="813" height="552"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>[OpenChain Open Source Software License Compliance General Public Guide]</center></p></figcaption></figure><p>In December 2009, a lawsuit arose involving the open source project<a href="https://busybox.net/">Busybox</a>. Busybox is open source licensed under GPL-2.0 that is widely used in embedded systems, and 14 companies, including two South Korean companies, became subject to the lawsuit. A notable point in this case is that among the defendants were companies that were sued despite not developing the product themselves but only distributing it.</p><p>In such a complex software supply chain environment, it is very difficult for any single enterprise, no matter how excellent its processes are, to achieve perfect open source compliance on its own. Ultimately, for an enterprise to properly implement open source compliance, every member of the software supply chain must comply with license obligations and provide accurate open source information. This kind of trust must be built across the entire supply chain.</p><p>The<a href="https://www.openchainproject.org/">OpenChain</a> project, part of the<a href="https://www.linuxfoundation.org/">Linux Foundation</a>, was founded on the belief that concisely and consistently defining the core requirements enterprises must meet for open source compliance, and having everyone comply with them, can build trust in open source licensing across the entire software supply chain.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 610px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/openchainlogo_hu_7581e73b0d768d82.png" width="600" height="79"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>[OpenChain Project Logo]</center></p></figcaption></figure><p>At an open source conference in Europe in 2016, Dave Marr, an open source attorney at Qualcomm, emphasized exactly this point. To raise one enterprise&rsquo;s level of open source compliance, the compliance level of every member across the software supply chain must be raised. He further suggested that, to achieve this, leading enterprises that already have a solid understanding of open source and have established policies and processes should openly share their assets and know-how so that anyone could reference them. Conference attendees agreed with the idea that &ldquo;open source compliance is not an area where enterprises can differentiate their profits. Enterprises want an appropriate level of risk management while investing minimal resources. That is why the more enterprises share their assets with one another, the more everyone can achieve compliance together with fewer resources.&rdquo; This is how the OpenChain project (then called a Work Group) began, with numerous global enterprises participating, including<a href="https://www.qualcomm.com/">Qualcomm</a>,<a href="https://www.siemens.com/">Siemens</a>,<a href="https://www.windriver.com/">Wind River</a>,<a href="https://www.arm.com/">ARM</a>, and<a href="https://www.adobe.com/">Adobe</a>.</p><p>The OpenChain project provides three main things to help enterprises more easily achieve open source compliance.</p><ol><li><a href="https://www.openchainproject.org/get-started/conformance">OpenChain Specification</a></li><li><a href="https://certification.openchainproject.org/">OpenChain Conformance Certification</a></li><li><a href="https://www.openchainproject.org/resources">Documentation Resources</a></li></ol><p>Let&rsquo;s look at how enterprises can make use of each of these, one by one.</p><h2 id="2-the-openchain-specification-and-isoiec-standards">2. The OpenChain Specification and ISO/IEC Standards</h2><p>The OpenChain Specification is a 10-page document that defines the core requirements for open source compliance. Version 1.0 of the OpenChain Specification was published in 2016. The OpenChain Specification is designed to be suitable for any enterprise, regardless of size or industry.</p><p>In 2020, version 2.1 of the specification was released, defining the six core requirements that enterprises must fulfill to achieve open source compliance, along with the list of materials needed to demonstrate them.</p><ol><li>Program Establishment</li><li>Defining and Supporting Related Tasks</li><li>Reviewing and Approving Open Source Content</li><li>Creating and Delivering Compliance Artifacts</li><li>Understanding Open Source Community Engagement</li><li>Conformance to Specification Requirements</li></ol><p>For an enterprise just starting out with open source compliance, a good strategy is to raise its maturity level by fulfilling these OpenChain Specification requirements one by one.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 604px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/spec_hu_14b92d21e27f4a59.png" width="594" height="775"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Source:= https://github.com/OpenChain-Project/Specification/blob/master/Official/en/2.1/openchainspec-2.1.pdf=/></p></figcaption></figure><p>In December 2020, this OpenChain Specification was formally registered as<a href="https://www.iso.org/standard/81039.html">ISO/IEC 5230:2020</a>, the international standard for open source compliance.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 681px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/iso_hu_b3d947295c1afb95.png" width="671" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Source:= https://www.iso.org/standard/81039.html=/></p></figcaption></figure><p>The OpenChain Specification, which had served as a de facto standard for the previous four years, was converted into the formal international standard ISO/IEC 5230:2020 — the first international standard to define open source compliance and process management. As a result, interest among global IT enterprises in complying with ISO/IEC 5230 is rising, and more enterprises are expected to require ISO/IEC 5230 compliance from their suppliers across the software supply chain.</p><p>In 2023,<a href="https://www.iso.org/standard/81039.html">ISO/IEC 18974</a>, a new standard for open source security assurance, was published. This standard is based on the OpenChain Security Assurance Specification and defines the core requirements for managing known security vulnerabilities in open source software. ISO/IEC 18974 covers the following key areas:</p><ol><li>Identifying the core areas requiring security processes</li><li>How to assign roles and responsibilities</li><li>How to ensure the sustainability of the process</li></ol><p>Like ISO/IEC 5230, ISO/IEC 18974 is concise and easy to understand, and it is backed by the global community, providing free reference materials and conformance resources.</p><p>Together, these two standards support organizations in effectively managing both license compliance and security assurance for open source software. Where ISO/IEC 5230 focuses on license compliance, ISO/IEC 18974 focuses on vulnerability management, making the two mutually complementary.</p><h2 id="3-how-to-certify-to-the-isoiec-standards">3. How to Certify to the ISO/IEC Standards</h2><p>If an enterprise complies with all the requirements of both ISO/IEC 5230 and ISO/IEC 18974, it can be certified as having an open source program conforming to these standards. An open source program refers to the set of management systems — including policies, processes, and personnel — that an enterprise uses to carry out its open source compliance and security assurance activities.</p><p>The image below lists the item numbers required by ISO/IEC 5230. An enterprise that fulfills all these items can be recognized as having built a transparent and trustworthy open source governance system within the software supply chain.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 682px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/spec3111_hu_ca82823cea2e5897.png" width="672" height="440"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"/></figcaption></figure><p>The<a href="https://www.openchainproject.org/">OpenChain project</a> proposes three certification methods:</p><ul><li>Self-Certification</li><li>Independent Assessment</li><li>Third-Party Certification</li></ul><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/certify_hu_6ec67eff1d183638.png" width="900" height="596"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i> https://www.openchainproject.org/get-started/conformance</i></center></p></figcaption></figure><p>Let&rsquo;s look at each method.</p><h3 id="1-self-certification">(1) Self-Certification</h3><p>Self-certification is the method most recommended by the OpenChain project and has the advantage of incurring no cost. The OpenChain Project provides an<a href="https://openchainproject.org/checklist-iso-5230-2020">ISO/IEC 5230 self-certification website</a> so that enterprises can verify on their own whether they comply with the OpenChain Specification. An enterprise&rsquo;s open source manager can sign up on this website and begin the online self-certification process. Self-certification proceeds by answering Yes/No questions, as shown below.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 846px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/question_hu_8cde8c4c95a4ad9f.png" width="836" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Source:= https://certification.openchainproject.org=/></center></p></figcaption></figure><p>If an enterprise has built its open source compliance system well enough to answer Yes to every question in the OpenChain self-certification, it can submit the result on the website (Conforming Submission). After a brief question-and-answer verification process with the<a href="https://www.linuxfoundation.org/">Linux Foundation</a>, it can then declare ISO/IEC 5230 certification.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 877px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/sktannounce_hu_324168ab09a53f9c.png" width="867" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><Example: SK= telecom's= certification= declaration= -= Source:= https://www.openchainproject.org/featured/2021/09/08/sk-telecom=/></p></figcaption></figure><p>By making this certification declaration, an enterprise is recognized within the global software supply chain as having an open source program that conforms to ISO/IEC 5230.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 850px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/announcelogo_hu_baf613e8a8938a49.png" width="840" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Enterprises= that= have= declared= conformant= ISO/IEC= 5230= programs,= Source= -= https://www.openchainproject.org/=/></p></figcaption></figure><p>The OpenChain project recommends the self-certification method. For reference, most enterprises that have declared OpenChain conformance have also adopted self-certification.</p><p>In addition, going through the self-certification process lets an enterprise determine what is lacking and what additional activities are needed. This guide explains, by major component — organization, policy, process, and so on — how to meet the requirements of ISO/IEC 5230 and ISO/IEC 18974.</p><p>For an enterprise that lacks the capability to make improvements on its own using only this guide, the independent assessment method can be considered.</p><h3 id="2-independent-assessment">(2) Independent Assessment</h3><p>In an independent assessment, an independent organization outside the enterprise inspects and evaluates the enterprise&rsquo;s open source compliance and security assurance status from an impartial standpoint. What distinguishes independent assessment is that it does not stop at producing an assessment report, but also provides consulting to address the gaps identified. (It does not, however, issue an official certificate.)</p><p>By receiving impartial assessment and consulting from an independent organization, an enterprise can raise its compliance and security assurance level, and through the iterative process of undergoing independent assessment again, refine its policies and build out its processes.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/independent2_hu_ff934ab02968f472.png" width="900" height="409"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Independent= Compliance= Assessment,= Source= -= https://youtu.be/DEBd-g0Ab8E=/></p></figcaption></figure><p>Eventually, the enterprise reaches a level where it can obtain ISO/IEC 5230 and ISO/IEC 18974 certification, at which point it can move into the process of obtaining self-certification or third-party certification. In this way, independent assessment provides evaluation and consulting to raise an enterprise&rsquo;s open source compliance and security assurance level, supporting the enterprise in holding a conformant ISO/IEC 5230 and ISO/IEC 18974 program and obtaining certification.</p><p>Companies that provide independent assessment include<a href="https://alektometis.com/">AlektoMetis</a> and<a href="https://sourcecodecontrol.co/">Source Code Control</a>, among others.</p><p>In South Korea, the<a href="https://openchain-project.github.io/OpenChain-KWG/subgroup/conformance/">Conformance Group</a>, a subgroup of the OpenChain Korea Work Group, is a community where enterprises discuss and share methods for achieving ISO/IEC 5230 and ISO/IEC 18974 conformance on their own. Anyone who is a member of the OpenChain Korea Work Group can participate and get help.</p><h3 id="3-third-party-certification">(3) Third-Party Certification</h3><p>An enterprise wishing to demonstrate a more reliable and transparent level of open source compliance and security assurance to buyers in the software supply chain can obtain a certificate from a third-party certification body and use it for promotional purposes. In addition, some buyers who demand stronger assurance of open source compliance and security may come to require third-party certification from their suppliers.</p><p>As of 2024, OpenChain&rsquo;s authorized third-party certification bodies are<a href="https://orcro.co.uk/">ORCRO</a>,<a href="https://www.pwc.de/en/opensource">PWC</a>,<a href="https://www.tuvsud.com/">TÜV SÜD</a>,<a href="https://www.synopsys.com/">Synopsys</a>, and<a href="https://group.bureauveritas.com/">Bureau Veritas</a>.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/3rdpartycertifiers_hu_7c533f93b38ab71e.png" width="900" height="320"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< Third-Party= Certifiers,= Source= -= https://www.openchainproject.org/partners=/></p></figcaption></figure><p>These bodies provide assessments to verify conformant ISO/IEC 5230 and ISO/IEC 18974 programs and issue certificates to enterprises that pass.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 910px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/pwc_hu_5bb61fd5d863abe9.png" width="900" height="331"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< PWC= certification,= Source= -= https://youtu.be/HslvXCM-4pQ=/></p></figcaption></figure><p>As of 2024, buyers or organizations that mandatorily require third-party certification are not yet common. However, some experts in the European automotive industry predict that it will not be long before ISO/IEC 5230 and ISO/IEC 18974 become mandatory for automotive software suppliers, much like<a href="http://www.automotivespice.com/">ASPICE</a> (Automotive SPICE, an international standard process model for automotive software development).</p><p>In addition, detailed self-certification methods can be found in the following slides:</p><ul><li><a href="https://openchain-project.github.io/OpenChain-KWG/meeting/9th/OpenChain_Korea_20210311_howto.pptx">OpenChain Korea 9th Meeting - How to Self Certify</a></li></ul><h2 id="4-openchain-resources">4. OpenChain Resources</h2><p>The<a href="https://www.openchainproject.org/">OpenChain project</a> provides a variety of documentation resources that enterprises need to build a compliance program, including policy document templates and training materials. These materials are designed to support conformance with the OpenChain Specification and general open source compliance activities, and are provided under the CC-0 license so that anyone can use them freely.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 843px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/resource_hu_bf8f6802d2e8f11f.png" width="833" height="557"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center>< OpenChain= Curriculum,= Source= -= https://www.openchainproject.org/resources=/></p></figcaption></figure><p>Much of this guide was also written based on materials published by OpenChain. If an enterprise&rsquo;s open source manager needs policies, processes, or training materials, they should look to the OpenChain Resources first. These materials are also translated into Korean and published. The<a href="https://openchain-project.github.io/OpenChain-KWG/">OpenChain Korea Work Group</a> leads this translation effort. Anyone interested can<a href="https://openchain-project.github.io/OpenChain-KWG/resource/">participate</a> in the Korean translation.</p><p>The OpenChain project also provides additional resources by running various webinars and study groups:</p><ol><li><p>Webinars: The OpenChain project regularly hosts webinars to share the latest trends and best practices in open source compliance and security. These webinars can be found on the<a href="https://openchainproject.org/webinars">OpenChain website</a>, where recordings are also available.</p></li><li><p>Training Materials: The OpenChain project provides a<a href="https://github.com/OpenChain-Project/Reference-Material">comprehensive training curriculum</a> to help enterprises develop internal training programs. This material covers a range of topics, from the basic concepts of open source software to license compliance and security assurance.</p></li></ol><p>By making use of these various resources, an enterprise can build and maintain a strong open source program that conforms to the ISO/IEC 5230 and ISO/IEC 18974 standards.</p><h2 id="5-trends-in-isoiec-standard-adoption">5. Trends in ISO/IEC Standard Adoption</h2><p>Adoption of the ISO/IEC 5230 and ISO/IEC 18974 standards is showing a gradually expanding trend across the global software supply chain.</p><p>In early 2021, news emerged that a German automaker had begun requiring its parts suppliers to have an ISO/IEC 5230 compliance plan. In response, a European open source professor predicted that &ldquo;it is clear that buyers in the software supply chain will increasingly require suppliers to comply with ISO/IEC 5230,&rdquo; adding that &ldquo;in the automotive industry, it will come to occupy the same position as ASPICE.&rdquo;</p><p>Reflecting this outlook, in May 2021,<a href="https://www.scania.com/">Scania</a>, part of the Volkswagen Group, incorporated a requirement for ISO/IEC 5230 compliance into its own corporate standard (STD 4589) that suppliers must follow.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 323px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/scania_hu_2ffdfde30b765742.png" width="313" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>linkedin, May 2021</i></center></p></figcaption></figure><p>Also, in July 2021,<a href="https://www.bosch.com/">Bosch</a>, an automotive and industrial technology company, declared that all of its group companies would have an ISO/IEC 5230-compliant program by the end of the year. The industry outlook is that it is only a matter of time before every automaker, and other industries as well, begin requiring ISO/IEC 5230 within their software supply chains.</p><figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 323px"><img class="card-img-top" src="/docs/opensource_for_enterprise/0-openchain/bosch_hu_3bddac9870a960ef.png" width="313" height="600"><figcaption class="card-body px-0 pt-2 pb-0"><p class="card-text"><center><i>linkedin, July 2021</i></center></p></figcaption></figure><p>In 2023, ISO/IEC 18974, a new standard for open source security assurance, was published. This standard defines the core requirements for managing known security vulnerabilities in open source software. Together with ISO/IEC 5230, ISO/IEC 18974 supports organizations in effectively managing both license compliance and security assurance for open source software.</p><p>As of 2024, this trend is accelerating further. For example,<a href="https://www.kt.com/">KT</a> announced in October 2024 that it had obtained ISO/IEC 18974 certification. This shows that South Korean enterprises, too, are actively adopting international standards for open source security management.</p><p>The activities of the<a href="https://openchain-project.github.io/OpenChain-KWG/">OpenChain Korea Work Group</a> are also becoming more active. At its 22nd regular meeting held in June 2024, discussions covered the state of readiness for the ISO/IEC 18974 open source security standard and SBOM-based software supply chain management guidelines. This shows that South Korean enterprises are actively embracing the ISO/IEC 5230 and ISO/IEC 18974 standards.</p><p>This trend is expected to continue. As the complexity of the software supply chain increases and security threats grow, the importance of international standards such as ISO/IEC 5230 and ISO/IEC 18974 is likely to grow further. By complying with these standards, enterprises will be able to increase transparency in their open source use and effectively manage security risk.</p>
]]></content:encoded></item><item><title>OSV-SCALIBR</title><link>https://haksungjang.github.io/en/docs/tools/4-osvscalibr/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/tools/4-osvscalibr/</guid><description>OSV-SCALIBR (Software Composition Analysis LIBRary) is an open source software composition analysis library developed by Google. It supports various programming languages and aims to provide fast and accurate analysis results. It offers core functionality for generating a Software Bill of Materials (SBOM), but because it is provided as a library rather than as a standalone executable, users need to write their own code to integrate it.
1 Introduction to OSV-SCALIBR Key Features: Support for various programming languages (Python, Go, Java, etc.) Analysis of package manifest files (requirements.txt, pom.xml, go.mod, etc.) Dependency information extraction Vulnerability information integration (using the OSV database) Fast analysis speed Advantages: Support for various programming languages Fast analysis speed Provides the latest vulnerability information through OSV database integration Flexible integration possibilities Open source license Disadvantages: Provided as a library rather than as a standalone executable Users need to write their own code to integrate it SBOM generation functionality must be implemented directly Lack of documentation and community support 2 Installing OSV-SCALIBR Because OSV-SCALIBR is provided as a library, you need to install it through the package manager appropriate for the programming language you intend to use. This guide explains how to install it in a Python environment.</description><content:encoded>&lt;![CDATA[<p>OSV-SCALIBR (Software Composition Analysis LIBRary) is an open source software composition analysis library developed by Google. It supports various programming languages and aims to provide fast and accurate analysis results. It offers core functionality for generating a Software Bill of Materials (SBOM), but because it is provided as a library rather than as a standalone executable, users need to write their own code to integrate it.</p><h3 id="1-introduction-to-osv-scalibr">1 Introduction to OSV-SCALIBR</h3><ul><li><strong>Key Features</strong>:<ul><li>Support for various programming languages (Python, Go, Java, etc.)</li><li>Analysis of package manifest files (requirements.txt, pom.xml, go.mod, etc.)</li><li>Dependency information extraction</li><li>Vulnerability information integration (using the OSV database)</li><li>Fast analysis speed</li></ul></li><li><strong>Advantages</strong>:<ul><li>Support for various programming languages</li><li>Fast analysis speed</li><li>Provides the latest vulnerability information through OSV database integration</li><li>Flexible integration possibilities</li><li>Open source license</li></ul></li><li><strong>Disadvantages</strong>:<ul><li>Provided as a library rather than as a standalone executable</li><li>Users need to write their own code to integrate it</li><li>SBOM generation functionality must be implemented directly</li><li>Lack of documentation and community support</li></ul></li></ul><h3 id="2-installing-osv-scalibr">2 Installing OSV-SCALIBR</h3><p>Because OSV-SCALIBR is provided as a library, you need to install it through the package manager appropriate for the programming language you intend to use. This guide explains how to install it in a Python environment.</p><ol><li><p><strong>Confirm Python and pip Are Installed</strong>:</p><ul><li>Before installing OSV-SCALIBR, confirm that Python and pip are installed on the system.</li><li>Run the following command in the command prompt or terminal to check the Python version.</li></ul><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>python --version</span></span></code></pre></div><ul><li>Python 3.7 or higher must be installed.</li><li>To check the pip version, run the following command.</li></ul><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>pip --version</span></span></code></pre></div><ul><li>If Python and pip are not installed, download and install them from the official Python website (<a href="https://www.python.org/downloads/%29">https://www.python.org/downloads/)</a>.</li></ul></li><li><p><strong>Install OSV-SCALIBR</strong>:</p><ul><li>Run the following command to install the OSV-SCALIBR library.</li></ul><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>pip install osv-db</span></span></code></pre></div></li><li><p><strong>Verify the Installation</strong>:</p><ul><li>Run the Python interpreter and enter the following code to confirm that OSV-SCALIBR was installed correctly.</li></ul><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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">osv</span></span></span><span style="display:flex;"><span><span style="color:#204a87">print</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">osv</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">__version__</span><span style="color:#000;font-weight:bold">)</span></span></span></code></pre></div><ul><li>If the OSV-SCALIBR version information is printed, the installation completed successfully.</li></ul></li></ol><h3 id="3-osv-scalibr-usage-guide">3 OSV-SCALIBR Usage Guide</h3><p>Because OSV-SCALIBR is provided as a library, you need to write your own code to generate an SBOM. The following is a basic example of generating an SBOM using OSV-SCALIBR in a Python environment.</p><ol><li><p><strong>Install Required Libraries</strong>:</p><ul><li>In addition to<code>osv-db</code>, install the libraries needed to generate an SBOM (e.g.,<code>spdx-tools</code>).</li></ul><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>pip install spdx-tools</span></span></code></pre></div></li><li><p><strong>Write the Code</strong>:</p><ul><li>The following is example code that extracts dependency information from a<code>requirements.txt</code> file, checks vulnerability information using OSV-SCALIBR, and then generates an SBOM in SPDX format.</li></ul><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-python" data-lang="python"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">osv</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span><span style="color:#000">spdx_tools.spdx.model</span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">Document</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">Package</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span><span style="color:#000">spdx_tools.spdx.builder</span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">Builder</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span><span style="color:#000">spdx_tools.spdx.validation.document_validator</span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">validate_full</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">os</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">def</span><span style="color:#000">create_sbom_from_requirements</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">requirements_file</span><span style="color:#000;font-weight:bold">):</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">"""</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Extracts dependency information from a requirements.txt file,</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> checks vulnerability information using OSV-SCALIBR, and then</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> generates an SBOM in SPDX format.</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> """</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 1. Read the requirements.txt file</span></span></span><span style="display:flex;"><span><span style="color:#000">dependencies</span><span style="color:#ce5c00;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">with</span><span style="color:#204a87">open</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">requirements_file</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">"r"</span><span style="color:#000;font-weight:bold">)</span><span style="color:#204a87;font-weight:bold">as</span><span style="color:#000">f</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">for</span><span style="color:#000">line</span><span style="color:#204a87;font-weight:bold">in</span><span style="color:#000">f</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#000">line</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">line</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">strip</span><span style="color:#000;font-weight:bold">()</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">if</span><span style="color:#000">line</span><span style="color:#204a87;font-weight:bold">and</span><span style="color:#204a87;font-weight:bold">not</span><span style="color:#000">line</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">startswith</span><span style="color:#000;font-weight:bold">(</span><span style="color:#4e9a06">"#"</span><span style="color:#000;font-weight:bold">):</span></span></span><span style="display:flex;"><span><span style="color:#000">package_name</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">package_version</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">line</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">split</span><span style="color:#000;font-weight:bold">(</span><span style="color:#4e9a06">"=="</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span><span style="color:#000">dependencies</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">append</span><span style="color:#000;font-weight:bold">((</span><span style="color:#000">package_name</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">package_version</span><span style="color:#000;font-weight:bold">))</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 2. Create the OSV API client</span></span></span><span style="display:flex;"><span><span style="color:#000">client</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">osv</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">Client</span><span style="color:#000;font-weight:bold">()</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 3. Create the SPDX document</span></span></span><span style="display:flex;"><span><span style="color:#000">document</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">Document</span><span style="color:#000;font-weight:bold">(</span></span></span><span style="display:flex;"><span><span style="color:#000">spdx_version</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"SPDX-2.2"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#000">data_license</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"CC0-1.0"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#000">spdx_id</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"SPDXRef-DOCUMENT"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#000">name</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"SBOM for "</span><span style="color:#ce5c00;font-weight:bold">+</span><span style="color:#000">requirements_file</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">document</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">creators</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000;font-weight:bold">[</span><span style="color:#4e9a06">"Tool: OSV-SCALIBR Example Script"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">"Organization: Your Organization"</span><span style="color:#000;font-weight:bold">]</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 4. Add package information and check vulnerability information</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">for</span><span style="color:#000">package_name</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">package_version</span><span style="color:#204a87;font-weight:bold">in</span><span style="color:#000">dependencies</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Query vulnerability information using the OSV API</span></span></span><span style="display:flex;"><span><span style="color:#000">vulnerabilities</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">client</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">get_vulnerabilities</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">package_name</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">package_version</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Create the package</span></span></span><span style="display:flex;"><span><span style="color:#000">package</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">Package</span><span style="color:#000;font-weight:bold">(</span></span></span><span style="display:flex;"><span><span style="color:#000">name</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">package_name</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#000">spdx_id</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">f</span><span style="color:#4e9a06">"SPDXRef-Package-</span><span style="color:#4e9a06">{</span><span style="color:#000">package_name</span><span style="color:#4e9a06">}</span><span style="color:#4e9a06">"</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#000">version</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">package_version</span><span style="color:#000;font-weight:bold">,</span></span></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># TODO: License information needs to be added.</span></span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># If vulnerability information exists, add a comment</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">if</span><span style="color:#000">vulnerabilities</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#000">comment</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">f</span><span style="color:#4e9a06">"Vulnerabilities found:</span><span style="color:#4e9a06">{</span><span style="color:#204a87">len</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">vulnerabilities</span><span style="color:#000;font-weight:bold">)</span><span style="color:#4e9a06">}</span><span style="color:#4e9a06">"</span></span></span><span style="display:flex;"><span><span style="color:#000">package</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">comment</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">comment</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#000">document</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">packages</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">append</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">package</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># 5. Validate and output</span></span></span><span style="display:flex;"><span><span style="color:#000">validation_messages</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">validate_full</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">document</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">if</span><span style="color:#000">validation_messages</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#204a87">print</span><span style="color:#000;font-weight:bold">(</span><span style="color:#4e9a06">"Validation errors:"</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">for</span><span style="color:#000">message</span><span style="color:#204a87;font-weight:bold">in</span><span style="color:#000">validation_messages</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#204a87">print</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">message</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">else</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Convert the SPDX document to a string (using spdx-tools)</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span><span style="color:#000">spdx_tools.spdx.writer.write_anything</span><span style="color:#204a87;font-weight:bold">import</span><span style="color:#000">write_anything</span></span></span><span style="display:flex;"><span><span style="color:#000">output_file</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"sbom.spdx"</span></span></span><span style="display:flex;"><span><span style="color:#000">write_anything</span><span style="color:#000;font-weight:bold">(</span><span style="color:#000">document</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">output_file</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">"tag"</span><span style="color:#000;font-weight:bold">,</span><span style="color:#000">check_licenses</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87;font-weight:bold">False</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span><span style="color:#204a87">print</span><span style="color:#000;font-weight:bold">(</span><span style="color:#4e9a06">f</span><span style="color:#4e9a06">"SPDX document generated successfully! File:</span><span style="color:#4e9a06">{</span><span style="color:#000">output_file</span><span style="color:#4e9a06">}</span><span style="color:#4e9a06">"</span><span style="color:#000;font-weight:bold">)</span></span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># Example run</span></span></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># The requirements.txt file must be in the current directory.</span></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">if</span><span style="color:#000">os</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">path</span><span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#000">exists</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></span><span style="display:flex;"><span><span style="color:#000">create_sbom_from_requirements</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></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">else</span><span style="color:#000;font-weight:bold">:</span></span></span><span style="display:flex;"><span><span style="color:#204a87">print</span><span style="color:#000;font-weight:bold">(</span><span style="color:#4e9a06">"Error: could not find the requirements.txt file."</span><span style="color:#000;font-weight:bold">)</span></span></span></code></pre></div></li><li><p><strong>Run the Code</strong>:</p><ul><li>Save the code above as a Python file (e.g.,<code>sbom_generator.py</code>), and run the following command.</li></ul><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>python sbom_generator.py</span></span></code></pre></div></li><li><p><strong>Check the Results</strong>:</p><ul><li>If the code runs successfully, a<code>sbom.spdx</code> file is generated. This file contains the SBOM written in SPDX format.</li></ul></li></ol><h3 id="4-precautions-when-using-osv-scalibr">4 Precautions When Using OSV-SCALIBR</h3><ul><li>Because OSV-SCALIBR is provided as a library, you need to write your own code to generate an SBOM.</li><li>Because OSV-SCALIBR does not provide every function needed for SBOM generation, you need to implement the required functionality yourself or use it together with other libraries.</li><li>OSV-SCALIBR&rsquo;s documentation can be somewhat lacking, and community support may not be very active.</li><li>The code example generates an SBOM based on a<code>requirements.txt</code> file, but a real environment may need support for various package managers.</li><li>The code example does not add license information directly. In an actual SBOM, you need to accurately determine and add the license information for each package.</li></ul><h3 id="5-example-of-a-generated-sbom-inferred">5 Example of a Generated SBOM (Inferred)</h3><p>An SBOM (in SPDX format) generated using OSV-SCALIBR would have a structure like the following. (The actual content depends on the contents of the<code>requirements.txt</code> file.)</p><pre tabindex="0"><code>SPDXVersion: SPDX-2.2
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
Name: SBOM for requirements.txt
Creator: Tool: OSV-SCALIBR Example Script
Created: 2025-02-11T00:00:00Z
# Package Information
PackageName: requests
SPDXID: SPDXRef-Package-requests
PackageVersion: 2.28.1
# Comment: Vulnerability found: 1 (may vary depending on the OSV database)
PackageName: urllib3
SPDXID: SPDXRef-Package-urllib3
PackageVersion: 1.24.13
# Relationships
# (Dependency relationship information between each package)</code></pre><p><strong>Note</strong>: the example above merely shows the format of an SBOM that OSV-SCALIBR could generate; the actual SBOM content depends on the code and the dependency analysis results. Additional information such as license information and origin information needs to be added by modifying the code directly.</p><h3 id="6-additional-information">6 Additional Information</h3><ul><li>OSV-SCALIBR GitHub repository: (no information)</li><li>OSV (Open Source Vulnerabilities) database:<a href="https://osv.dev/">https://osv.dev/</a></li><li>SPDX official website:<a href="https://spdx.dev/">https://spdx.dev/</a></li></ul><p><strong>Caution</strong>: because OSV-SCALIBR is a library, this guide alone may not be enough to complete SBOM generation. It requires an understanding of Python programming and SBOM generation, along with additional code.</p>
]]></content:encoded></item><item><title>FOSSLight</title><link>https://haksungjang.github.io/en/docs/tools/3-fosslight/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/tools/3-fosslight/</guid><description>FOSSLight is an open source project led by LG Electronics that uses various scanners to analyze source code, binaries, and dependencies, and generates a Software Bill of Materials (SBOM). In particular, FOSSLight Hub supports the compliance process by providing open source management, license management, and vulnerability management functions.
1 Introduction to FOSSLight Key Features: Integration of various scanners: integrates and uses various open source scanners such as ScanCode Toolkit, SPDX Tools, CycloneDX, and Fossology Support for various analysis targets: supports various analysis targets such as source code, binaries, container images, and Linux packages SBOM generation and management: generates and manages SBOMs in various formats (SPDX, CycloneDX, Excel, Text) License information detection and management: accurately detects and manages open source license information Vulnerability information integration: integrates with external vulnerability databases such as NVD and CVE to provide vulnerability information FOSSLight Hub: provides open source management, license management, and vulnerability management functions through a web-based UI Advantages: High extensibility: various scanners can be integrated and used as plugins Web-based UI: provides a user-friendly interface through FOSSLight Hub Support for various report formats: reports can be generated in various formats such as SPDX, CycloneDX, Excel, and Text Open source license Disadvantages: Complex initial setup: initial setup can be somewhat complex because various scanners need to be integrated FOSSLight Hub installation required: FOSSLight Hub must be installed separately to use the web-based UI 2 Installing FOSSLight FOSSLight consists of FOSSLight Scanner and FOSSLight Hub. FOSSLight Scanner runs various scanners to generate analysis results, while FOSSLight Hub provides a web-based UI that integrates, manages, and visualizes the scanner results.</description><content:encoded>&lt;![CDATA[<p>FOSSLight is an open source project led by LG Electronics that uses various scanners to analyze source code, binaries, and dependencies, and generates a Software Bill of Materials (SBOM). In particular, FOSSLight Hub supports the compliance process by providing open source management, license management, and vulnerability management functions.</p><h3 id="1-introduction-to-fosslight">1 Introduction to FOSSLight</h3><ul><li><strong>Key Features</strong>:<ul><li>Integration of various scanners: integrates and uses various open source scanners such as ScanCode Toolkit, SPDX Tools, CycloneDX, and Fossology</li><li>Support for various analysis targets: supports various analysis targets such as source code, binaries, container images, and Linux packages</li><li>SBOM generation and management: generates and manages SBOMs in various formats (SPDX, CycloneDX, Excel, Text)</li><li>License information detection and management: accurately detects and manages open source license information</li><li>Vulnerability information integration: integrates with external vulnerability databases such as NVD and CVE to provide vulnerability information</li><li>FOSSLight Hub: provides open source management, license management, and vulnerability management functions through a web-based UI</li></ul></li><li><strong>Advantages</strong>:<ul><li>High extensibility: various scanners can be integrated and used as plugins</li><li>Web-based UI: provides a user-friendly interface through FOSSLight Hub</li><li>Support for various report formats: reports can be generated in various formats such as SPDX, CycloneDX, Excel, and Text</li><li>Open source license</li></ul></li><li><strong>Disadvantages</strong>:<ul><li>Complex initial setup: initial setup can be somewhat complex because various scanners need to be integrated</li><li>FOSSLight Hub installation required: FOSSLight Hub must be installed separately to use the web-based UI</li></ul></li></ul><h3 id="2-installing-fosslight">2 Installing FOSSLight</h3><p>FOSSLight consists of FOSSLight Scanner and FOSSLight Hub. FOSSLight Scanner runs various scanners to generate analysis results, while FOSSLight Hub provides a web-based UI that integrates, manages, and visualizes the scanner results.</p><p><strong>This section explains how to install FOSSLight Scanner and FOSSLight Hub together using Docker Compose.</strong></p><ol><li><p><strong>Install Docker and Docker Compose</strong>:</p><ul><li>Before installing FOSSLight, confirm that Docker and Docker Compose are installed on the system.</li><li>Docker installation instructions vary by operating system, so refer to the official Docker documentation (<a href="https://docs.docker.com/get-docker/%29">https://docs.docker.com/get-docker/)</a>.</li><li>Docker Compose is a tool for running and managing multiple containers simultaneously using Docker. For Docker Compose installation instructions, refer to the official Docker documentation (<a href="https://docs.docker.com/compose/install/%29">https://docs.docker.com/compose/install/)</a>.</li></ul></li><li><p><strong>Clone the FOSSLight Repository</strong>:</p><ul><li>Run the following command to clone the FOSSLight GitHub repository.</li></ul><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>git clone &lt;https://github.com/fosslight/fosslight_hub.git&gt;</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> fosslight_hub</span></span></code></pre></div></li><li><p><strong>Configure the Docker Compose File</strong>:</p><ul><li>The<code>fosslight_hub</code> directory contains a<code>docker-compose.yml</code> file. You can open this file in a text editor and change the FOSSLight Hub configuration.</li></ul><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-yaml" data-lang="yaml"><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:#f8f8f8"/><span style="color:#4e9a06">"3.7"</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">fosslight_db</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">mariadb:10.6.4</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">fosslight_db</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">volumes</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">fosslight_db:/var/lib/mysql</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">restart</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">always</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">MYSQL_ROOT_PASSWORD=fosslight</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">MYSQL_DATABASE=fosslight_db</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">MYSQL_USER=fosslight</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">MYSQL_PASSWORD=fosslight</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">fosslight_web</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">fosslight/fosslight_hub:latest</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">fosslight_web</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#4e9a06">"8080:8080"</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">restart</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">always</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">FOSSLightDB_HOST=fosslight_db</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">FOSSLightDB_PORT=3306</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">FOSSLightDB_USER=fosslight</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">FOSSLightDB_PASSWORD=fosslight</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">FOSSLightDB_NAME=fosslight_db</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">depends_on</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">fosslight_db</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">fosslight_scanner</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">fosslight/fosslight_scanner:latest</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">fosslight_scanner</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">restart</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/><span style="color:#000">always</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">volumes</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">./upload:/home/fosslight_scanner/upload</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/>-<span style="color:#000">./result:/home/fosslight_scanner/result</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">volumes</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span><span style="display:flex;"><span><span style="color:#f8f8f8"/><span style="color:#204a87;font-weight:bold">fosslight_db</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8"/></span></span></code></pre></div><ul><li>You can change the port number, database settings, and so on as needed.</li></ul></li><li><p><strong>Run FOSSLight</strong>:</p><ul><li>Run the following command to start FOSSLight.</li></ul><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>docker-compose up -d</span></span></code></pre></div><ul><li>This command runs FOSSLight Hub, FOSSLight Scanner, and the MariaDB database as Docker containers.</li></ul></li><li><p><strong>Verify the FOSSLight Installation</strong>:</p><ul><li>In a web browser, access<code>http://localhost:8080</code> to confirm that you can reach FOSSLight Hub.</li><li>If the FOSSLight Hub web UI is displayed, the installation completed successfully.</li></ul><p><strong>Figure 2.1: FOSSLight Hub Web UI</strong></p><p>(Insert screenshot of the FOSSLight Hub web UI)</p></li></ol><h3 id="3-fosslight-usage-guide">3 FOSSLight Usage Guide</h3><p>FOSSLight can be used through a web UI (FOSSLight Hub) and a CLI (FOSSLight Scanner).</p><p><strong>3.1 Using FOSSLight Hub</strong></p><p>FOSSLight Hub provides functionality, through a web UI, to manage open source projects, check scan results, and generate various reports.</p><ol><li><p><strong>Register a Project</strong>:</p><ul><li>Access FOSSLight Hub and register a new project.</li><li>Enter information such as the project name, description, and owner.</li></ul><p><strong>Figure 2.2: FOSSLight Hub Project Registration Screen</strong></p><p>(Insert screenshot of the FOSSLight Hub project registration screen)</p></li><li><p><strong>Upload Scan Results</strong>:</p><ul><li>Upload the scan results generated using FOSSLight Scanner to FOSSLight Hub.</li><li>The scan result file must be in SPDX, CycloneDX, or FOSSLight JSON format.</li></ul><p><strong>Figure 2.3: FOSSLight Hub Scan Result Upload Screen</strong></p><p>(Insert screenshot of the FOSSLight Hub scan result upload screen)</p></li><li><p><strong>Check Scan Results</strong>:</p><ul><li>Check the uploaded scan results.</li><li>FOSSLight Hub visually presents SBOM information, license information, and vulnerability information.</li></ul><p><strong>Figure 2.4: FOSSLight Hub Scan Result Review Screen</strong></p><p>(Insert screenshot of the FOSSLight Hub scan result review screen)</p></li><li><p><strong>Generate Reports</strong>:</p><ul><li>Generate various reports based on the scan results.</li><li>You can choose the report format: SPDX, CycloneDX, Excel, or Text.</li></ul><p><strong>Figure 2.5: FOSSLight Hub Report Generation Screen</strong></p><p>(Insert screenshot of the FOSSLight Hub report generation screen)</p></li></ol><p><strong>3.2 Using FOSSLight Scanner</strong></p><p>FOSSLight Scanner provides functionality, through the CLI, to scan source code, binaries, and container images and generate an SBOM.</p><ol><li><p><strong>Run a Scan</strong>:</p><ul><li>Run the following command to execute a scan.</li></ul><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>docker run --rm -v<span style="color:#204a87;font-weight:bold">$(</span><span style="color:#204a87">pwd</span><span style="color:#204a87;font-weight:bold">)</span>/upload:/home/fosslight_scanner/upload -v<span style="color:#204a87;font-weight:bold">$(</span><span style="color:#204a87">pwd</span><span style="color:#204a87;font-weight:bold">)</span>/result:/home/fosslight_scanner/result fosslight/fosslight_scanner -p /home/fosslight_scanner/upload/&lt;scan target&gt; -o /home/fosslight_scanner/result/&lt;result file name&gt; -f &lt;result format&gt;</span></span></code></pre></div><ul><li>Each option is explained as follows.<ul><li><code>-rm</code>: automatically removes the container after it runs.</li><li><code>v $(pwd)/upload:/home/fosslight_scanner/upload</code>: shares the<code>upload</code> directory in the current directory with the<code>/home/fosslight_scanner/upload</code> directory inside the container. You need to copy the file or directory to be scanned into this directory.</li><li><code>v $(pwd)/result:/home/fosslight_scanner/result</code>: shares the<code>result</code> directory in the current directory with the<code>/home/fosslight_scanner/result</code> directory inside the container. The scan result file is saved to this directory.</li><li><code>p /home/fosslight_scanner/upload/&lt;scan target&gt;</code>: specifies the path to the file or directory to be scanned.</li><li><code>o /home/fosslight_scanner/result/&lt;result file name&gt;</code>: specifies the name of the scan result file.</li><li><code>f &lt;result format&gt;</code>: specifies the scan result format (spdx, cyclonedx, fosslight_json).</li></ul></li><li>Example:</li></ul><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>docker run --rm -v<span style="color:#204a87;font-weight:bold">$(</span><span style="color:#204a87">pwd</span><span style="color:#204a87;font-weight:bold">)</span>/upload:/home/fosslight_scanner/upload -v<span style="color:#204a87;font-weight:bold">$(</span><span style="color:#204a87">pwd</span><span style="color:#204a87;font-weight:bold">)</span>/result:/home/fosslight_scanner/result fosslight/fosslight_scanner -p /home/fosslight_scanner/upload/my_project -o /home/fosslight_scanner/result/my_project_sbom.json -f fosslight_json</span></span></code></pre></div></li><li><p><strong>Check the Scan Results</strong>:</p><ul><li>Once the scan completes, the scan result file is generated in the<code>result</code> directory.</li><li>You can check the scan result file using a text editor or FOSSLight Hub.</li></ul></li></ol><h3 id="4-precautions-when-using-fosslight">4 Precautions When Using FOSSLight</h3><ul><li>Because FOSSLight integrates and uses various scanners, you need to understand the characteristics and usage of each scanner.</li><li>Because FOSSLight Hub requires a web server and a database, you need to install it with system resource requirements in mind.</li><li>FOSSLight Scanner requires permission to access the file or directory being scanned.</li></ul><h3 id="5-troubleshooting">5 Troubleshooting</h3><ul><li><strong>Docker execution error</strong>: confirm that Docker is installed correctly, and check for permission issues.<ul><li>Try running with administrator privileges using the<code>sudo docker run ...</code> command.</li></ul></li><li><strong>Scan error</strong>: confirm that the path to the file or directory being scanned is correct, and check that you have permission to access that file or directory.</li><li><strong>FOSSLight Hub access error</strong>: confirm that the Docker container is running properly, and check that the port forwarding is configured correctly.</li></ul><h3 id="6-additional-information">6 Additional Information</h3><ul><li>FOSSLight official website:<a href="https://fosslight.org/">https://fosslight.org/</a></li><li>FOSSLight GitHub repository:<a href="https://github.com/fosslight/fosslight_hub">https://github.com/fosslight/fosslight_hub</a></li><li>SPDX official website:<a href="https://spdx.dev/">https://spdx.dev/</a></li><li>CycloneDX official website:<a href="https://cyclonedx.org/">https://cyclonedx.org/</a></li></ul>
]]></content:encoded></item><item><title>SW360</title><link>https://haksungjang.github.io/en/docs/tools/2-sw360/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/tools/2-sw360/</guid><description>(Updated on August 29, 2023.)
A company that develops and distributes products containing open source needs to collect and track information such as the version and license of the open source used, for each product and release version. This allows the company to carry out proper open source compliance activities.
In particular, when a security vulnerability is reported for a specific open source version at NVD (https://nvd.nist.gov/vuln), a company that cannot trace which products use that version ends up unable to determine which products need the security patch applied, leaving its products exposed to the vulnerability.</description><content:encoded>&lt;![CDATA[<p>(Updated on August 29, 2023.)</p><p>A company that develops and distributes products containing open source needs to collect and track information such as the version and license of the open source used, for each product and release version. This allows the company to carry out proper open source compliance activities.</p><p>In particular, when a security vulnerability is reported for a specific open source version at NVD (https://nvd.nist.gov/vuln), a company that cannot trace which products use that version ends up unable to determine which products need the security patch applied, leaving its products exposed to the vulnerability.</p><p>This makes tracking open source information a necessity. Companies address this either by building their own system or by purchasing and using a commercial service. SW360 is open source software sponsored by the Eclipse Foundation, providing a web application and repository for collecting and tracking software Bill of Materials (BOM) information.</p><p><img src="/docs/tools/2-sw360/sw3601.png" alt="https://www.eclipse.org/sw360/"/><p><em><center>&lt;<a href="https://www.eclipse.org/sw360/">https://www.eclipse.org/sw360/</a> &gt;</center></em></p><h2 id="key-features">Key Features</h2><p>SW360 provides a web-based UI, and its key functions are as follows.</p><ul><li>Tracking components used in a product</li><li>Security vulnerability assessment</li><li>License obligation management</li><li>Generating legal documents such as notices</li></ul><p><img src="https://lh3.googleusercontent.com/MPrOy70nOVSCRiorql9Momzi18lG66Liqttyutjwc9LAhVUwqmVf8xyeEkg085Pm1OYxwPRzyh68Th93ZlKA3fjG5_PnsBQijwUGkRa7o72h8Jco_7BcIwfoR7FGu8hsZA8n5ASq" alt="https://www.eclipse.org/sw360/"/><h2 id="installation">Installation</h2><p>SW360 is composed as follows.</p><ul><li>Frontend : Liferay-(Tomcat-)based portal application</li><li>Backend : Tomcat-based thrift service</li><li>Database : CouchDB</li></ul><p>For details on the project structure and the software required for installation, see the Required software section of the README. :<a href="https://github.com/eclipse-sw360/sw360">https://github.com/eclipse-sw360/sw360</a></p><p>SW360 offers the following installation methods. Users can choose one of them for installation.</p><ol><li>Can be deployed via Docker. :<a href="https://github.com/eclipse-sw360/sw360/blob/main/README_DOCKER.md">https://github.com/eclipse-sw360/sw360/blob/main/README_DOCKER.md</a></li><li>Can install SW360&rsquo;s components individually. :<a href="https://github.com/eclipse/sw360">https://github.com/eclipse/sw360</a></li><li>Vagrant-based (<a href="https://www.vagrantup.com/">https://www.vagrantup.com/</a>) installation: Vagrant is a tool for managing virtualized instances, and sw360vagrant provides an environment for deploying SW360 all at once. :<a href="https://github.com/sw360/sw360vagrant">https://github.com/sw360/sw360vagrant</a><ul><li>The Vagrant-based installation guide can be found<a href="https://openchain-project.github.io/OpenChain-KWG/guide/nipa_openchain/appendix/3-tools/sw360/#%EC%84%A4%EC%B9%98">here</a>. (Note: because the code has changed since the guide was written, it may not work correctly.)</li></ul></li></ol><p>This guide introduces the method of deploying with<code>Docker</code>. For details, refer to the README. :<a href="https://github.com/eclipse-sw360/sw360/blob/main/README_DOCKER.md">https://github.com/eclipse-sw360/sw360/blob/main/README_DOCKER.md</a></p><h3 id="1-download-the-code">1. Download the Code</h3><p>Download the code to build the Docker image. The tested code can be obtained here. :<a href="https://github.com/haksungjang/sw360/tree/docker_build">https://github.com/haksungjang/sw360/tree/docker_build</a></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-sh" data-lang="sh"><span style="display:flex;"><span>git clone -b docker_build https://github.com/haksungjang/sw360.git</span></span></code></pre></div><h3 id="2-build">2. Build</h3><p>First, install<a href="https://www.docker.com/">Docker</a>. (Note that a<a href="https://www.docker.com/pricing/">paid purchase</a> may be required for corporate developer use.)</p><p>Build by running<code>docker_build.sh</code> as shown below.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#204a87">cd</span> sw360</span></span><span style="display:flex;"><span>./docker_build.sh</span></span></code></pre></div><p>Once the build completes successfully, you can check the created images as shown below.</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-sh" data-lang="sh"><span style="display:flex;"><span>docker image ls</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>REPOSITORY TAG IMAGE ID CREATED SIZE</span></span><span style="display:flex;"><span>eclipse-sw360/sw360 18-development ab0fd848bf80<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 2.95GB</span></span><span style="display:flex;"><span>eclipse-sw360/sw360 latest ab0fd848bf80<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 2.95GB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/sw360 18-development ab0fd848bf80<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 2.95GB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/sw360 latest ab0fd848bf80<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 2.95GB</span></span><span style="display:flex;"><span>eclipse-sw360/binaries 18-development aa7debf0a1fc<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 347MB</span></span><span style="display:flex;"><span>eclipse-sw360/binaries latest aa7debf0a1fc<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 347MB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/binaries 18-development aa7debf0a1fc<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 347MB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/binaries latest aa7debf0a1fc<span style="color:#0000cf;font-weight:bold">8</span> minutes ago 347MB</span></span><span style="display:flex;"><span>eclipse-sw360/base 18-development e5147733fc88<span style="color:#0000cf;font-weight:bold">37</span> minutes ago 1.52GB</span></span><span style="display:flex;"><span>eclipse-sw360/base latest e5147733fc88<span style="color:#0000cf;font-weight:bold">37</span> minutes ago 1.52GB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/base 18-development e5147733fc88<span style="color:#0000cf;font-weight:bold">37</span> minutes ago 1.52GB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/base latest e5147733fc88<span style="color:#0000cf;font-weight:bold">37</span> minutes ago 1.52GB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/thrift 0.18.1 0012d7998058<span style="color:#0000cf;font-weight:bold">4</span> weeks ago 152MB</span></span><span style="display:flex;"><span>ghcr.io/eclipse-sw360/thrift latest 0012d7998058<span style="color:#0000cf;font-weight:bold">4</span> weeks ago 152MB</span></span><span style="display:flex;"><span>eclipse-sw360/thrift 0.18.1 0012d7998058<span style="color:#0000cf;font-weight:bold">4</span> weeks ago 152MB</span></span><span style="display:flex;"><span>eclipse-sw360/thrift latest 0012d7998058<span style="color:#0000cf;font-weight:bold">4</span> weeks ago 152MB</span></span></code></pre></div><h3 id="3-run">3. Run</h3><p>Run the created images with the<code>docker-compose up</code> command.</p><pre tabindex="0"><code>docker-compose up</code></pre><p>Once it runs successfully, you can see three containers running as shown below.</p><pre tabindex="0"><code>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4299fd39010c eclipse-sw360/sw360 "/app/entry_point.sh" 3 minutes ago Up 3 minutes 0.0.0.0:8080-&gt;8080/tcp, 0.0.0.0:11311-&gt;11311/tcp sw360
13fd5696b140 postgres:14 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:5438-&gt;5432/tcp sw360-postgresdb-1
7bb70f2daaf4 couchdb "tini -- /docker-ent…" 3 minutes ago Up 3 minutes (healthy) 4369/tcp, 9100/tcp, 0.0.0.0:5984-&gt;5984/tcp sw360-couchdb-1</code></pre><p>At this point, accessing<code>http://localhost:8080/</code> takes you to the following screen.</p><p><img src="/docs/tools/2-sw360/liferay.png" alt=""/><h2 id="configuration">Configuration</h2><p>After installing SW360 successfully, you need to perform the initial configuration following the procedure below. For details, see:<a href="https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay7.4/">SW360 Initial Setup Configuration</a></p><h3 id="1-user-and-login-configuration">1. User and Login Configuration</h3><p>Log in with the following account to perform the configuration.</p><ul><li>id :<a href="mailto:setup@sw360.org">setup@sw360.org</a></li><li>pw : sw360fossy</li></ul><p>Once you log in, a Not Found message appears as shown below.</p><p><img src="/docs/tools/2-sw360/liferay1.png" alt=""/><p>Click the item icon (cube shape) in the upper right of the screen and select the<code>Control Panel</code> tab.</p><p><img src="/docs/tools/2-sw360/liferay2.png" alt=""/><p>Enable<code>SECURITY</code> &gt;<code>Password Policies</code> &gt;<code>Default Password Policy</code> &gt;<code>PASSWORD CHANGES</code> &gt;<code>Change Requried</code>.</p><p><img src="/docs/tools/2-sw360/liferay3.png" alt=""/><p>Then, back in the<code>Control Panel</code> tab, select<code>CONFIGURATION</code> &gt;<code>Instance Settings</code>. This shows the<code>PLATFORM</code> menu.</p><p><img src="/docs/tools/2-sw360/liferay4.png" alt=""/><p>There, select<code>Users</code>. Then go into the<code>Default User Associations</code> menu, check<code>Apply to Existing Users</code>, and<code>Save</code>.</p><p><img src="/docs/tools/2-sw360/liferay5.png" alt=""/><p>Now, under<code>Instance Settings</code> &gt;<code>PLATFORM</code>, select<code>User Authentication</code>. Go into<code>General</code> and uncheck all items. (You can check and enable any items needed for administrative purposes.) Then<code>Save</code>.</p><p><img src="/docs/tools/2-sw360/liferay6.png" alt=""/><p>Finally, you need to enable jQuery and Font Awesome. To do this, go into<code>CONFIGURATION</code> &gt;<code>System Settings</code> in the<code>Control Panel</code> tab, where you can find<code>Third Party</code> under<code>PLATFORM</code>.</p><p><img src="/docs/tools/2-sw360/liferay7.png" alt=""/><p>Go into<code>Third Party</code> and enable<code>JQuery</code> and<code>Font Awesome</code> respectively.</p><p><img src="/docs/tools/2-sw360/liferay8.png" alt=""/><p><img src="/docs/tools/2-sw360/liferay9.png" alt=""/><p>Restart your browser for the changes to take effect.</p><h3 id="2-import-lar-files">2. Import LAR Files</h3><p>To configure SW360, you need to import the<code>*.lar</code> files. To do this, you need to go into the menu, and the menu button is in the upper left of the screen.</p><p><img src="/docs/tools/2-sw360/liferay10.png" alt=""/><p>In the menu, go into<code>Publishing</code> &gt;<code>Import</code>.</p><p><img src="/docs/tools/2-sw360/liferay11.png" alt=""/><p>Click the<code>+</code> button on the right to upload a LAR file. The LAR files are located under the<code>frontend/configuration</code> folder in the SW360 source files. (e.g.,<a href="https://github.com/haksungjang/sw360/tree/docker_build/frontend/configuration">https://github.com/haksungjang/sw360/tree/docker_build/frontend/configuration</a>)</p><p>First, upload the<code>Public_Pages_7_4_3_18_GA18.lar</code> file and click the<code>Continue</code> button.</p><p><img src="/docs/tools/2-sw360/liferay12.png" alt=""/><p>On the File Summary screen, you can see the details of the uploaded LAR file.</p><p><img src="/docs/tools/2-sw360/liferay13.png" alt=""/><p>Change<code>AUTHORSHIP OF THE CONTENT</code> at the bottom to<code>Use the Current User as Author</code> and click the<code>Import</code> button.</p><p><img src="/docs/tools/2-sw360/liferay14.png" alt=""/><p>You can then see that the import completed successfully.</p><p><img src="/docs/tools/2-sw360/liferay15.png" alt=""/><p>Similarly, import the<code>Private_Pages_7_4_3_18_GA18.lar</code> file. On the File Summary screen, change<code>PAGES</code> &gt;<code>Private Pages</code> as shown below.</p><p><img src="/docs/tools/2-sw360/liferay16.png" alt=""/><p>Then select the<code>PERMISSIONS</code>,<code>UPDATE DATA</code>, and<code>AUTHORSHIP OF THE CONTENT</code> items as shown in the image below, and click the<code>Import</code> button to perform the import.</p><p><img src="/docs/tools/2-sw360/liferay17.png" alt=""/><p>After completing this, click the<code>Home</code> button at the top of the menu.</p><p><img src="/docs/tools/2-sw360/liferay18.png" alt=""/><p>This takes you to the<code>Welcome to SW360!</code> screen shown below.</p><p><img src="/docs/tools/2-sw360/liferay19.png" alt=""/><p>Click the<code>Start</code> button to go into the SW360 main screen. (All items are empty at this point.)</p><p><img src="/docs/tools/2-sw360/liferay20.png" alt=""/><h3 id="3-user-account-configuration-for-testing">3. User Account Configuration (for Testing)</h3><p>In the SW360 menu, select<code>Admin</code> &gt;<code>User</code>.</p><p><img src="/docs/tools/2-sw360/liferay21.png" alt=""/><p>In the<code>UPLOAD USERS</code> menu at the bottom of the screen, upload the user list for testing. (The user list for testing can be downloaded here. :<a href="https://github.com/haksungjang/sw360/blob/main/frontend/configuration/test_users_with_passwords_12345.csv">test_users_with_passwords_12345.csv</a> )</p><p><img src="/docs/tools/2-sw360/liferay22.png" alt=""/><p>You can then see that a list of 9 users has been uploaded, as shown below.</p><p><img src="/docs/tools/2-sw360/liferay23.png" alt=""/><p>Try logging in again with the<code>user@@sw360.org</code> account, one of the users shown in the list. The password is<code>12345</code>.</p><h2 id="basic-workflow">Basic Workflow</h2><h3 id="1-registering-licenses">1. Registering Licenses</h3><p>When you first install SW360, you need to first register the open source licenses you use frequently. A license includes the following information.</p><ul><li>Full Name</li><li>Short Name</li><li>License Type</li><li>GPL-2.0 Compatibility (e.g., yes, no)</li><li>License Text</li></ul><p>Selecting Menu &gt; Licenses &gt; Add License takes you to the Create License screen shown below.</p><p><img src="https://lh6.googleusercontent.com/8bn6z_39PK5WrjP7mzhHrTwfM5PU19QT3TiQnAatOYywVwcGLJGFMmMgMkzh4CKAPM0SOOy7VDoboaj9OKpD1QEZv6KWOeWxZfqGA_2geYrYOBm2kOVzrNOmGPVK-8hzJvBZ-klT" alt=""/><p>Registering licenses one by one manually like this can be quite tedious, but fortunately SW360 provides a feature to import the SPDX License List all at once. Click Menu &gt; Admin &lt; Import SPDX Information.</p><p><img src="https://lh5.googleusercontent.com/d8ZK-dD34z1yKZn-szPNrN7iT4zg1EQnKnAv4QcPslSR0-laETy37ArojuweqSsxpWuvGXtdF5FabiWk57So-bD_iiEx7eVIR6tWDsYO2SkaCdlKr6ELDN9y_NdkqWFbQgRF2lXN" alt=""/><p>The SPDX License List is then automatically registered shortly after. At Menu &gt; Licenses, you can confirm that 338 licenses have been registered.</p><p><img src="https://lh6.googleusercontent.com/Ucjuo09uJKhEhACZ90y98PszgSiCGtlDotH8mbTXJ2ePnF3TquzNX2yWzOCENTKNk1UjMJhyFgHxTCH6lxvZJg1l07M0hCc-v-14loAJ0efUU9V9hqS9mUabAT9QNysYL8E2tgIf" alt=""/><h3 id="2-registering-components-and-releases">2. Registering Components and Releases</h3><p>In SW360, a Component is a single unit of software. Various forms of software can fall into this category, for example:</p><ul><li>Open source software</li><li>Libraries</li><li>Third-party software</li></ul><p>A Component includes the following information.</p><ul><li>Component Name</li><li>Main Licenses</li><li>Categories (e.g., Library, Cloud, Mobile, &hellip;)</li><li>Component Type (e.g., OSS, Internal, InnerSource, Service, Freeware)</li><li>Default Vendor</li><li>Homepage URL</li></ul><p>A Release is the unit that refers to a single Version within a Component. Accordingly, one Component can have multiple Releases. A Release is created and managed under a single Component.</p><p>A Release includes the following information.</p><ul><li>Component Name</li><li>Version</li><li>License</li><li>Download URL</li><li>CPE ID (e.g., cpe:2.3:a:apache:maven:3.0.4)</li></ul><p>For example, if you need to register zlib-1.2.8, you first register zlib as a Component, then register zlib 1.2.8 as a Release. Selecting Menu &gt; Components &gt; Add Component takes you to the Create Component screen, where you can register information about zlib.</p><p><img src="https://lh6.googleusercontent.com/0a3ecmmFzumTZTaoWCOZPKkQIZLJwbPoAaduCTfwQMH_N67DPaMpTkerA4LOynwkl_nLkNT-pRh-rKzj4XHtBjoTkVMW9g06Rywryk3wbAj-Y3ONDg16VcGepMEm7m7Y8M3iDWyH" alt=""/><p>Once you create the Component, you can register information for the zlib-1.2.8 version at Components &gt; Releases &gt; Add Release.</p><p><img src="https://lh4.googleusercontent.com/ynUEB5-rGVYDirFghLx2v3tUt-uh-WL3YTN0siaGZWBrWQKYnIiV3B04mvdv3nZUW7t_U2Gl8msV_es1X181uq95YAp1bnqa0e3QLshhd1zhqk6z8ubPeEfo74cKdwho95_NyI1J" alt=""/><p>When versions 1.2.8 and 1.2.11 are each registered as Releases under the single zlib Component, the Release Overview screen shows 2 Releases existing, as below.</p><p><img src="https://lh3.googleusercontent.com/GxgMJQbNjRBNxMTMBvqEXNFNElXGXoCnaksCMs46ydREIrqrj7dFxMK0YkvjviHYMCiHY07xlR-Xixpa_C5nMFLzih0dXZAtv-6yKg4RdADJxr5qmDwhAEopVOaVNqzVWc3gMpLq" alt=""/><p>SW360 provides a feature for importing information for multiple Components at once. At Menu &gt; Admin &gt; Import / Export, you can enter the Component information you want to register into the CSV template and then import it.</p><p><img src="https://lh5.googleusercontent.com/VInFwWAV-1lG1E7zFQPvn1GIlYPPY5ToGbSa49Brg7XuB-AwyCEHA9han0EUij1KX3c8aN2UZ1mKkN-5Y4BNv8LOV3O5YoypLQ7EF43QFPAU9L18XT57Ec5eoneswtGtt3rMSPoQ" alt=""/><p>Note that, as of February 2020, this feature may not yet work reliably.</p><h3 id="3-creating-a-project">3. Creating a Project</h3><p>A Project refers to a single product. Depending on the type of business, it may be a product, a service, or software. Under a Project, you register and manage the Components/Releases used in the product.</p><p>When creating a Project, you register the following information.</p><ul><li>Project Name</li><li>Version</li><li>Project type (e.g., Product, Customer Project, Service, Internal Project, InnerSource)</li></ul><p>You can create a Project via Menu &gt; Projects &gt; Add Project.</p><p><img src="https://lh6.googleusercontent.com/6gNtLci53U6zaU6Th5SHousuZ4VUijzuYjiJJlB0R6JwiHG4ggjb0RcnRYDkZCBhE2dMP2gGbT4qmB2FE5O8EW8hTfv1lgM4_XN0vzQUkttfTbX2cF0aNftHYuUy9EXczT2LzLO5" alt=""/><p>Once you create the Project, register the Releases or sub-Projects it includes. Selecting the Project at Menu &gt; Projects lets you register Linked Projects and Linked Releases under &ldquo;Linked Releases and Projects.&rdquo;</p><p><img src="https://lh4.googleusercontent.com/ZjD7r7EzxfdQ4bhw4ODsChydb6Vgqj1m4Ad0cWlYtyYXO40MCbPpTHHcy-wJmbHeA_FxTa66Mpza6-9ohu0e93b7BaGb7Zc9soTA3mGCHGnyGURukRUnJS_duI7T8IL2aTgMFzjB" alt=""/><p>The following is the screen after registering OpenSSL 1.0.1 and zlib 1.2.8 as Linked Releases in a Project named SuperCalc.</p><p><img src="https://lh3.googleusercontent.com/tZCshPwxtukNLvfL-f-LfNOH-4ATof0bIGxpghVKXQ9QMBgoc_t0ROJMYafS9V4PuRaOOEW9zp25yk0gFA_kcaoRN83UKwUaFhaXxSWg7xPWvsYoJ_-pZkROkey1mYVTqGxKsCRu" alt=""/><h3 id="4-security-vulnerability-management">4. Security Vulnerability Management</h3><p>SW360 can automatically check whether registered Releases have security vulnerabilities. To do this, SW360 provides a feature for scheduling periodic collection of CVE information. At Menu &gt; Admin &gt; Schedule, you can set a schedule to collect CVE SEARCH information every 24 hours.</p><p><img src="https://lh5.googleusercontent.com/V2AJbexZqJJqwFYD1kFpjdZ7zVM9PCd-I_6MSBu3djO2Gi6gQxxQpKoqqsETxDaSkpDXOKFOp9h0Fps1xYHEphesVX9ECwBwnSX5cWdziXoohh-CMmqRh_wVkwUD8dZE9w1raJRk" alt=""/><p>Once this schedule is set, SW360 collects CVE information from the CVE Search site (<a href="https://cve.circl.lu/">https://cve.circl.lu/</a>) at the scheduled time. The collected CVE information can be checked at Menu &gt; Vulnerabilities.</p><p><img src="https://lh3.googleusercontent.com/dpIMyX7qCMdnibNihuL6RBSKg2fEckbOBPWJEtw08mY4quhv6Hh3BlgFIeydPOS6N8rF6ZSs4hpZgBGcXbcJI9saFDyfv4i-TCvxV5z-4LD9ZXpKah0jQU45j3iibxFpYoa7Hj9u" alt=""/><p>Once the Vulnerabilities information has been collected, you can query whether a created Project has security vulnerabilities. In the SuperCalc Project created above, you can confirm that 85 security vulnerabilities were reported.</p><p><img src="https://lh5.googleusercontent.com/lGeLbWHIBk6y2OSOXskcp4A2c5od0eTH6n7U5YG0p4cwTrrX02b6TpeRqJ7VXg5aUE7qDP2X2f8o4Rj1JsPHhZ-CUdLiy80O532Cgw-h_P9r-jHdL61QaXhFOPxIjTlX1cg9XPk5" alt=""/><p>By registering and managing the software a company develops and distributes in SW360 this way, you can manage it in a form that minimizes risk not only for open source compliance but also for security vulnerabilities.</p><p>SW360 also offers most of its functionality via a REST API in addition to the Web Interface above, making integration with other tools such as FOSSology possible. :<a href="https://github.com/eclipse/sw360/wiki/Dev-REST-API">https://github.com/eclipse/sw360/wiki/Dev-REST-API</a></p><p>In other words, integrating this into DevOps by, for example, importing the analysis results of a source code scanning tool into SW360, and automating the registration of Projects and Releases, would greatly increase efficiency.</p>
]]></content:encoded></item><item><title>FOSSology</title><link>https://haksungjang.github.io/en/docs/tools/1-fossology/</link><pubDate>Sun, 09 Aug 2026 17:03:59 +0900</pubDate><guid>https://haksungjang.github.io/en/docs/tools/1-fossology/</guid><description>For open source compliance, you can use a source code scanning tool to detect the open source and license information contained within software.
&amp;lt; https://www.fossology.org/ &amp;gt;
The Linux Foundation&amp;rsquo;s FOSSology project developed this scanning tool and released it as open source so that anyone can use it freely.
Key Features FOSSology is a web-based program that lets users log in to the website and upload individual files or software packages. FOSSology detects license text and copyright information within the uploaded files. Developers should use FOSSology when they want to check what license a piece of open source carries and what its copyright information looks like. FOSSology scans every file in an uploaded open source package, automatically detects license-related text and copyright information in each file, and generates a report from it. For more details on FOSSology&amp;rsquo;s key features, refer to the following page. : https://www.fossology.org/features/</description><content:encoded>&lt;![CDATA[<p>For open source compliance, you can use a source code scanning tool to detect the open source and license information contained within software.</p><p><img src="/docs/tools/1-fossology/fossology1.png" alt="https://www.fossology.org/"/><p><em><center>&lt;<a href="https://www.fossology.org/">https://www.fossology.org/</a> &gt;</center></em></p><p>The Linux Foundation&rsquo;s FOSSology project developed this scanning tool and released it as open source so that anyone can use it freely.</p><h2 id="key-features">Key Features</h2><p>FOSSology is a web-based program that lets users log in to the website and upload individual files or software packages. FOSSology detects license text and copyright information within the uploaded files. Developers should use FOSSology when they want to check what license a piece of open source carries and what its copyright information looks like. FOSSology scans every file in an uploaded open source package, automatically detects license-related text and copyright information in each file, and generates a report from it. For more details on FOSSology&rsquo;s key features, refer to the following page. :<a href="https://www.fossology.org/features/">https://www.fossology.org/features/</a></p><h2 id="installation">Installation</h2><p>To use FOSSology within a company, you need to build a FOSSology server in-house. This requires installing FOSSology on a Linux-based server system. FOSSology can be installed in the following three ways.</p><ol><li>Using Docker</li><li>Using Vagrant and VirtualBox</li><li>Installing via a source build</li></ol><p>This section explains the simplest method, using Docker.</p><p>FOSSology publishes a containerized Docker image through Docker Hub (https://hub.docker.com/). :<a href="https://hub.docker.com/r/fossology/fossology">https://hub.docker.com/r/fossology/fossology</a></p><p>The pre-built Docker image can be run using the following command.</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>$ docker run -p 8081:80 fossology/fossology</span></span></code></pre></div><p>The Docker image can be accessed with the following URL and account information. : http://[IP_OF_DOCKER_HOST]:8081/repo</p><ul><li>Username : fossy</li><li>Passwd : fossy</li></ul><p>For more details on installation, refer to the following page. :<a href="https://github.com/fossology/fossology/blob/master/README.md">https://github.com/fossology/fossology/blob/master/README.md</a></p><h2 id="test-server">Test Server</h2><p>If it is difficult to build a system on which to install FOSSology, you can use the test server provided by the FOSSology Project. The FOSSology project provides an environment for testing. (The test server may go down without notice.)</p><p>Users can access the FOSSology test server with the following account to try out FOSSology&rsquo;s features.</p><div class="alert alert-primary" role="alert">
Test server URL: [https://fossology.osuosl.org/](https://fossology.osuosl.org/)
* Username: fossy
* Password: fossy</div><p><img src="/docs/tools/1-fossology/fossology2.png" alt=""/><h2 id="basic-workflow">Basic Workflow</h2><p>The basic usage procedure for FOSSology is as follows.</p><ul><li>To check the license and copyright information of the open source you want to use, compress its source code into a single file and upload it to FOSSology.</li><li>To do this, select Menu &gt; Upload &gt; From File.</li></ul><p><img src="https://t1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/9399/image/Oywr9jqM09g1SfxfZ-2HERmYA_8" alt=""/><ul><li>Select the file to upload and click the Upload button.</li><li>Once the upload completes, the Job Agent automatically performs the analysis.</li><li>You can check the Status of the analysis in progress at Menu &gt; Jobs &gt; My Recent Jobs.</li></ul><p><img src="https://t1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/9399/image/9IKts-8lH7YK_Dat124-hEw_q4I" alt=""/><ul><li>Once the analysis completes, you can check the results at Menu &gt; Browse.</li></ul><p><img src="https://t1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/9399/image/C62vBvaVNeBLAqrRrx-XKoeuMhg" alt=""/><ul><li>Selecting an individual file lets you see what license-related text FOSSology has detected.</li></ul><p><img src="https://t1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/9399/image/9idwgtBqNj7YAl7Wg0i98QJ5b4w" alt=""/><ul><li>At Menu &gt; Browser &gt; select a file or directory &gt; Copyright/Email/Url/Author, you can see the Copyright/Email/Url/Author information FOSSology detected.</li></ul><p><img src="https://t1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/9399/image/NrjeCqal75rJ1bwGLPPmjhBEn4Q" alt=""/><p>After checking whether these analysis results are valid, users can exclude incorrectly detected items from the analysis results. FOSSology describes this as the Clearing process; for more details, refer to the following page. :<a href="https://www.fossology.org/get-started/basic-workflow/">https://www.fossology.org/get-started/basic-workflow/</a></p><p>Using the method above, you can easily check what license the open source you want to use carries and what its copyright information is.</p>
]]></content:encoded></item></channel></rss>