Trusted OSS
AI-Powered Open Source Risk Management
An ISO self-certification kit, and a 5-level model for
governing AI coding
Haksung Jang
Open Source Program Manager, SK Telecom
Ambassador, OpenChain Project
Open Source Summit Korea 2026
August 12, 2026 · Rose
The problem
What changed
Three shifts, and the gap each one opened
The problem
1 of 3
Supply chain attacks keep happening
A backdoor planted in the upstream project, after two years
of earning trust
One library. Hundreds of millions of systems. No malice at
all
Different causes, the same failure — nobody knew which
product had the library inside.
Working out the blast radius took days on its own
The problem
2 of 3
The bar went up. The means did not.
Full application follows on December 11, 2027
Replaces NTIA 2021. Every transitive dependency, not just
the top level. Hashes and licenses required. Scope reaches
AI software and SaaS
The problem is not that suppliers cannot produce an SBOM.
They produce one, and it still falls short.
The problem
3 of 3
AI coding changed three conditions
Intake
The agent installs what it suggests. A human sees the name
after it is in the code .
Review density
Output grows several times over.
Reviewer headcount stays exactly where it was.
Tool calls
An MCP tool description enters the context.
Nobody reads it, and it is not in the repo.
Existing controls assume a human wrote the code and a human
reviewed it.
The map
What we built
Two areas, and the tools that run what they produce
Part 1
Build the program
Policies, processes, artifacts — from nothing to a declaration
Part 1
build the program
1 of 3
What the two standards actually ask for
ISO/IEC 5230 ONLY
license compliance
License obligations
Notices
Contribution policy
SHARED BASE
build it once, it counts for both
Policy · Organization
Process · Training
SBOM
ISO/IEC 18974 ONLY
security assurance
CVE tracking
Response
Records
Part 1
build the program
2 of 3
An agent writes each part of the program
Nine of them, 24 artifacts, run in order. Every one is a
prompt you can read . We will open the policy agent live: steps, then output.
Organization
roles,
RACI , appointment letter
Policy
OSS policy, allowed license list
Process
approval, pre-release check, vulnerability response
SBOM
generation scripts, license report
Vulnerability
CVE report, remediation plan
Training
curriculum, completion tracking
Conformance
gap analysis, declaration draft
Part 2
Govern AI coding
Five kinds of control, and which ones you already have
Part 2
AI coding governance
1 of 10
Five layers, one slide each
What to add, a sample to copy, and where it runs today.
Levels 3, 4 and 5 all run in TRUSCA's own CI. The workflows
sit in one repository you can fork:
ai-coding-best-practice .
Part 2
AI coding governance
2 of 10
Level 1
Policy that lives in one person's head
"Use only MIT-licensed code" typed into the prompt, every time.
There is no file to show you at this level.
Nothing written down is nothing to review, inherit, or
audit.
Part 2
AI coding governance
3 of 10
Level 2
Rules the agent reads before it writes
The agent treats a rule as guidance, never as a gate.
That gap is the whole reason level 3 exists.
Part 2
AI coding governance
4 of 10
Level 3
The gate that does not negotiate
What it stops
Tools
Runs in
Keys and tokens left in the source
Flaws in the code you wrote
CVEs and licenses in what you pulled in
Secrets first. A leaked key cannot be un-leaked, and
rotating it is not the same as never leaking it.
Turn them on one at a time.
cicd-quick
walks the order. Container and IaC scanning join when you run
either, and the
reference repository
has both.
Part 2
AI coding governance
5 of 10
Level 4 · why it exists
Three places level 3 stops
What it flags
Mixed with false positives. A human re-judges each one.
What it misses
Business logic, permission checks, state transitions.
No rule describes them.
What it never sees
Tool descriptions and tool output the agent reads.
They never reach a diff.
What level 4 does about each
Raises precision on what was already flagged.
Searches the area that was never flagged at all.
Guards what the agent calls, not what it writes.
Part 2
AI coding governance
6 of 10
Level 4a
What actually reaches the model
YOUR REPOSITORY
semgrep.sarif, grype.json
8 findings, 5 lines each
model
true positive or false
risk, exploit path
→ PR comment, not a gate
This runs on every pull request in TRUSCA —
ai-review.yml . Advisory only, never a merge gate, and it skips entirely when
no API key is set.
Part 2
AI coding governance
7 of 10
Level 4b
Finding what no rule describes
READ
Endpoint signature
GENERATE
Boundary, malformed
RUN IT
Against the app
WATCH
5xx, malformed, bad state
Business logic and edge-case input handling, the area no rule
describes
This one runs the app. Everything before it only reads.
Which is why it lands on a schedule rather than on every
commit.
Part 2
AI coding governance
8 of 10
Level 4c
An MCP server is supply chain input too
Every server the agent calls is a dependency you did not review.
Agent
npm · postmark-mcp
Mail service
Recipient
hidden BCC
Outside address
1.0.15
clean
1.0.16+
A hidden BCC copied every outgoing mail to an outside
address
A review at adoption would have passed it.
It was clean at the time.
The starting version is the researcher's estimate. Source: Snyk.
Part 2
AI coding governance
9 of 10
Level 4c
Six controls, and how to review
1 to 5 are
Microsoft Incident Response
and the
MCP spec
turned into working rules. 6 is from the case on the previous
slide.
Part 2
AI coding governance
10 of 10
Level 5
What keeps running after the merge
LEVELS 1 TO 4
LEVEL 5
Write · rules · gate
merge
Deploy, then every day after it
Patches raised for you, five ecosystems
SBOM rebuilt and rescanned daily
The deployed app probed, not the source
The scanner scans itself, advisory
A CVE published tomorrow lands in code you merged last year.
Part 3
Run it
Documents do not execute themselves. These tools do
Part 3
running it
1 of 6
Writing the artifacts is not running the program
A policy document does not block a forbidden license
A process document does not record an approval
One SBOM does not track the next CVE
18974 §4.3.2
asks for monitoring after release, a judgement on every finding,
and a record of that judgement.
Including the findings you decide need no action
(§4.3.2.2)
Part 3
running it
2 of 6
TRUSCA — Apache-2.0, self-hosted SCA
The answer to the slide before. Stand it up as it is, no licence to
buy.
cdxgen, more than 30 ecosystems
Trivy database — NVD, OSV, GHSA, EPSS, KEV
VEX import and export, 7 triage states
3-tier license policy, CI gate, generated NOTICE
RBAC, audit log, Compose and Helm
Runs inside your own network. Neither the code nor the SBOM
leaves it.
Part 3
running it
3 of 6
Why this one
SELF-HOSTED
Runs inside your own network
Neither the code nor the SBOM leaves it. Apache-2.0
SIGNALS
EPSS, KEV and VEX, not just CVSS
Exploit probability and known exploitation, in the finding
EVIDENCE
Every judgement is recorded
Seven triage states, RBAC, an audit log the auditor can read
REGULATION
It drafts the documentation
G7 AI elements mapped to the EU AI Act and Korea's AI Act
No licence, no procurement, no data leaving the building.
Part 3
running it
4 of 6
What actually arrives as an SBOM
Missing dependencies are only part of it.
Part 3
running it
5 of 6
One run, three documents
This is what you hand the supplier. No account, no upload — it runs
on their machine.
WHAT YOU POINT IT AT
Source · container image
Binary · firmware
An SBOM · an AI model
BomLens
WHAT COMES OUT
SBOM
Open source notice
Security risk report
Suppliers who cannot hand over source can still hand over an
SBOM.
Part 3
running it
6 of 6
Where the three are headed
One defines the programme, one runs it, one feeds it from outside.
Trusted OSS
defines what the programme must do
trustedoss.github.io/en
INSIDE THE COMPANY
TRUSCA
policy applied, findings tracked, evidence kept — every day
trustedoss.github.io/trusca
SBOM
SUPPLIER SIDE
BomLens
the supplier generates it
sktelecom.github.io/bomlens
Next: the agent asks before it pulls
All three are free and open. Two have a live demo you can
open right now.
Haksung Jang
Open Source Program Manager, SK Telecom
Ambassador, OpenChain Project
Lead, OpenChain Korea Work Group
Thank you