Gå til indhold
atlas

Softwareforsyningskæde

Alt og alle, der indgår i at lave den software, man kører, fra eksterne kodedele til de værktøjer, der bygger og leverer den.

Kladde - dette opslag er endnu ikke gennemgået.

Læs hele artiklen →

Formelt

Kæden af personer, kodedele fra andre, byggeværktøjer, pipelines og leveringsveje, som software skrives, sættes sammen og overdrages til brugerne igennem; et angreb på ét led kan nå alle længere nede i kæden.

Forklaret enkelt

Som fødevarekæden fra mark til bord; hvis én leverandørs mel er forgiftet, rammes alle bagerier, der har købt det, og alle deres kunder, uanset hvor rent deres eget køkken er.

I praksis

Angribere bryder ind i byggesystemet hos en leverandør, hvis sagsbehandlingssystem bruges af mange danske kommuner, og gemmer malware i en almindelig opdatering, som kommunerne installerer, fordi den kommer fra en betroet kilde.

Hvorfor det betyder noget

Det meste software består i høj grad af dele skrevet af andre, så én svag leverandør kan åbne døre ind til mange organisationer på én gang; derfor kræver NIS2 og Cyberrobusthedsforordningen, at organisationer og softwareproducenter styrer denne risiko.

Teknisk uddybning

Det grundlæggende problem blev formuleret af Ken Thompson i hans Turing Award-foredrag "Reflections on Trusting Trust" fra 1984: en kompromitteret compiler kan indsætte en bagdør i alle programmer, den bygger, også i nye kopier af sig selv, så gennemsyn af kildekoden alene kan ikke skabe tillid. Moderne rammeværker deler kæden op i kilde, bygning, afhængigheder og distribution og spørger for hvert artefakt, hvem der lavede det, ud fra hvilket input, på hvilken platform, og om noget blev ændret undervejs. SLSA modellerer trusler i hvert led og definerer et Build-spor (L1: provenance findes; L2: signeret provenance fra en hostet byggeplatform; L3: hærdede, isolerede builds) og fra v1.2 også et Source-spor. in-toto leverer attestationsformatet - signerede udsagn, der binder et artefakts digest til et prædikat som SLSA-provenance, en SBOM eller testresultater - og Sigstore leverer nøgleløs signering og en transparenslog til disse udsagn. The Update Framework (TUF) håndterer distributionsleddet med rolleadskillelse, tærskelsignaturer og metadata med udløbstid, der modstår nøglekompromittering samt rollback- og freeze-angreb.

Angrebsmetoderne følger leddene. Kilde: stjålne legitimationsoplysninger hos vedligeholdere eller ondsindede commits (ua-parser-js, 2021). Social manipulation af vedligeholdere: npm-pakken event-stream (2018) blev overdraget til en ny vedligeholder, der tilføjede en afhængighed rettet mod en kryptovaluta-tegnebog; bagdøren i xz Utils (CVE-2024-3094) var gemt i binære testfiler i repositoryet og blev aktiveret af et byggescript, der kun fandtes i udgivelsens tarballs, så den ondsindede kode blev sprøjtet ind i liblzma under bygningen og nåede sshd på distributioner, der linkede den via libsystemd. Bygning: SolarWinds' SUNBURST (2020) blev indsat af malware på byggeserveren under kompileringen, mens kilde-repositoryet forblev rent. Afhængigheder: typosquatting og dependency confusion misbruger pakkehåndteringens opløsningsregler. Distribution: kompromitterede opdateringsservere eller signeringsnøgler, som da NotPetya i 2017 spredtes via opdateringer af M.E.Doc.

Forsvaret er kumulativt, ikke et enten-eller. Reproducerbare builds lader uafhængige parter genbygge og sammenligne digests og afslører manipulation under bygning; hermetiske, flygtige byggemiljøer og kortlivede legitimationsoplysninger begrænser, hvad et kompromitteret job kan gøre; gennemgang ved to personer og beskyttede grene håndterer trusler mod kilden; låste, hash-verificerede afhængigheder med SCA og SBOM'er håndterer afhængighedslaget; signering og verifikation af provenance ved udrulning lukker distributionsleddet. OpenSSF Scorecard giver heuristiske risikosignaler for open source-projekter, selvom ingen af disse signaler med sikkerhed ville have fanget xz-angrebet.

Til styring dækker NIST SP 800-161r1 (2022) risikostyring i cyberforsyningskæden for indkøbere, mens NIST SP 800-218 (SSDF) og SP 800-204D dækker producenter. I EU kræver NIS2-direktivets artikel 21, stk. 2, litra d, at omfattede enheder håndterer sikkerheden i forsyningskæden, herunder de direkte leverandørers sikkerhedspraksis, og Cyberrobusthedsforordningen kræver, at producenter af produkter med digitale elementer udviser rettidig omhu over for tredjepartskomponenter; indberetningspligterne har gældt siden 11. september 2026, og forordningen finder fuldt anvendelse fra 11. december 2027.

Relationer

Krævet af
NIS2-direktivet
Bruges sammen med
Leverandørstyring

Kilder og videre læsning

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.