Software supply chain failures

소프트웨어 공급망 실패

A compromised dependency, build, or distribution step can carry risk into a product.

···
html
<div class="sd"><div class="sd-head"><strong>SUPPLY CHAIN</strong><span id="state">live check</span></div><div class="sd-stage"><div class="chain"><div class="tile" id="pkg">package</div><div class="tile" id="build">build</div><div class="tile" id="artifact">artifact</div><div class="tile" id="release">release</div></div></div><div class="sd-foot"><span id="caption">checking boundary</span><span>tap to step</span></div></div>
css
.sd{box-sizing:border-box;width:min(94vw,700px);height:min(86vh,318px);padding:clamp(9px,2.3vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);display:flex;flex-direction:column;gap:clamp(6px,1.8vmin,12px);font:600 clamp(12px,2.6vmin,16px)/1.25 var(--font-sans, sans-serif)}.sd *{box-sizing:border-box}.sd-head,.sd-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:1.25em}.sd-head strong{color:var(--accent);letter-spacing:.06em}.sd-head span,.sd-foot{color:var(--muted)}.sd-foot{font-size:clamp(12px,2.4vmin,14px)}.sd-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(6px,2vmin,18px);overflow:hidden}.sd .mono{font-family:ui-monospace,monospace}.sd .tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(5px,1.5vmin,10px);text-align:center}.sd .good{color:var(--accent);border-color:var(--accent)}.sd .bad{color:var(--accent-3);border-color:var(--accent-3)}.sd .arrow{color:var(--muted);font-size:clamp(15px,4vmin,28px)}.sd .active{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent)}.sd .blocked{background:color-mix(in srgb,var(--accent-3) 13%,var(--surface));border-color:var(--accent-3)}.chain{display:flex;gap:clamp(4px,1.6vmin,12px);width:100%;align-items:center}.chain .tile{flex:1;min-width:0;padding:clamp(5px,1.4vmin,10px) 1px;transition:background .2s}.chain .infected{border-color:var(--accent-3);background:color-mix(in srgb,var(--accent-3) 22%,var(--surface));color:var(--accent-3)}
js
let n=0;function advance(){n=(n+1)%4;['pkg','build','artifact','release'].forEach((id,i)=>document.getElementById(id).classList.toggle('infected',i<=n));document.getElementById('state').textContent='stage '+(n+1)+' / 4';document.getElementById('caption').textContent=['compromised dependency','build consumes dependency','artifact contains change','release reaches users'][n]}advance();setInterval(advance,650);
document.querySelector('.sd').addEventListener('pointerdown',advance);

A supply chain failure begins outside the code you wrote: a dependency, build system, or distribution channel is compromised. The contamination can be carried into the released artifact.

The demo shows risk propagating through successive stages. Pin dependencies, verify provenance, isolate builds, and validate artifacts to reduce this path.

When to use

Use this model when reviewing third-party packages, CI configuration, and release pipelines.

Open as page ↗