Bezpečnost dodavatelského řetězce: od slepé důvěry k principu nulové důvěry

Bezpečnost dodavatelského řetězce: od slepé důvěry k principu nulové důvěry
IT Audit a Bezpečnost – odborný článek redakce Informatika.cz.

Abstrakt: Útok na SolarWinds Orion v roce 2020 zasáhl více než 18 000 organizací, včetně Microsoftu a americké federální správy. Šlo o sofistikovaný útok provedený přes legitimní mechanismus aktualizací důvěryhodného dodavatele. Tato událost zásadně změnila přístup k bezpečnosti dodavatelského řetězce. Moderní podnikové aplikace obsahují průměrně 528 open-source komponent a 70–90 % kódu pochází od třetích stran. Jediná zranitelnost v upstream závislosti tak může postihnout miliony uživatelů. Článek shrnuje aktuální hrozby, představuje rámec SLSA, principy SBOM a praktické kroky pro budování odolnosti dodavatelského řetězce.

1. Úvod: posun od „důvěřuj dodavateli“ k „předpokládej kompromitaci“

Po dvě desetiletí byla bezpečnost dodavatelského řetězce vnímána jako otázka výběru spolehlivých dodavatelů. Předpokládalo se, že podpis důvěryhodné firmy je dostatečnou zárukou. Útoky posledních let tento předpoklad vyvrátily.

Dnešní přístup vychází z principu nulové důvěry: každá komponenta je potenciálně kompromitovaná, dokud není opakovaně ověřena. Cílem není pouze prevence, ale především budování odolných systémů, které ustojí kompromitaci dílčích součástí.

Vývoj přístupu k dodavatelskému řetězci

  • 2004–2010: Slepá důvěra v hlavní dodavatele, manuální kvartální záplatování, žádný přehled o závislostech třetích stran.
  • 2010–2014: První probuzení po průlomech u Adobe a Microsoftu, vznik nástrojů pro skenování závislostí, OWASP Top 10 zahrnuje „komponenty se známými zranitelnostmi“.
  • 2014–2018: Nástup automatizovaných nástrojů (npm audit, GitHub Security Alerts, Dependabot), skenování kontejnerových obrazů.
  • 2018–2020: Pokročilé útoky (event-stream, CCleaner, NotPetya), vznik rámců pro řízení rizik třetích stran.
  • 2020–2024: SolarWinds, povinné SBOM dle Executive Order 14028, masová adopce SLSA.

Aktuální data o hrozbách

  • Průměrná aplikace má 528 závislostí, z toho 20–50 přímých a stovky tranzitivních.
  • Třetí strany tvoří 70–90 % kódu moderních aplikací.
  • Denně přibývá 63 nových zranitelností, měsíčně 400–600 kritických.
  • Průměrná doba odhalení zero-day činí 287 dní; automatizované exploitace přicházejí do 15 minut po zveřejnění.
  • Průměrná škoda z průniku do dodavatelského řetězce dosahuje 4,46 milionu USD.
  • Pouze 23 % organizací má komplexní SBOM, 31 % využívá automatizovanou generaci.

2. Vektory útoku na dodavatelský řetězec

Hlavní kategorie útoků

Injektáž do zdrojového kódu — kompromitace účtu udržovatele knihovny. Příklady: event-stream (npm, 2018), rest-client (Ruby, 2019), ctx (PyPI, 2022). Detekce je obtížná, protože změny vypadají jako legitimní commity. Obrana spočívá v povinné dvoufaktorové autentizaci pro udržovatele, povinných review a automatizovaném skenování v CI/CD.

Kompromitace build systému — útok na úrovni státem sponzorovaných skupin, typický pro SolarWinds, CCleaner, ASUS Live Update. Doba latence dosahuje 6 až 18 měsíců. Útočník získá přístup phishingem, persistuje v build infrastruktuře a injektuje malware do legitimních buildů, které jsou následně podepsány platným certifikátem.

Záměna závislostí (dependency confusion) — útočník publikuje veřejný balíček se stejným názvem jako interní privátní balíček, ale s vyšší verzí. Manažery závislostí pak mohou neúmyslně stáhnout veřejnou variantu.

Typosquatting — registrace balíčků s názvy podobnými populárním (reqeusts místo requests).

Kompromitované přihlašovací údaje — odcizené API klíče publikační infrastruktury.

Indikátory ohrožení

  • Neobvyklá velikost build artefaktů a změny entropie binárních souborů.
  • Neočekávaná síťová spojení během buildu.
  • Drift konfigurace build prostředí oproti deklarovanému stavu.
  • Neautorizované změny build skriptů.

3. SBOM jako základ ochrany

Software Bill of Materials (SBOM) je kompletní soupis komponent obsažených v aplikaci. Bez SBOM nelze efektivně reagovat na nové zranitelnosti — tým neví, kde jsou kompromitované knihovny použity.

Generování SBOM

Doporučené nástroje pro jednotlivé ekosystémy:

  • Node.js / JavaScript: syft, cdxgen, výstup ve formátu SPDX-JSON nebo CycloneDX.
  • Java / Maven: cyclonedx-maven-plugin, kombinace s dependency-check.
  • Python: cyclonedx-bom, doplněno o pip-audit.
  • Kontejnerové obrazy: syft ve spojení s grype, skenování všech vrstev včetně OS balíčků.

SBOM by se měl generovat při každém commitu, aktualizaci závislostí a před vydáním. Standardními formáty jsou SPDX a CycloneDX.

Obohacení SBOM

Generovaný SBOM je třeba doplnit o:

  • Korelaci se zranitelnostmi ze zdrojů NVD, GitHub Security Advisory a OSV.
  • Analýzu licencí s detekcí konfliktů (typicky kompatibilní MIT, Apache-2.0, BSD-3-Clause; rizikové GPL-3.0, AGPL-3.0).
  • Záznam provenance — Git SHA, otisk build prostředí, identita stavitele dle SLSA BuildType.

SBOM je vhodné podepisovat (například pomocí Cosign) a uchovávat v OCI registru. Vyhledávání by mělo být dostupné přes REST API nebo GraphQL pro integraci s nástroji jako Dependency-Track.

4. Rámec SLSA — úrovně bezpečnosti buildu

SLSA (Supply-chain Levels for Software Artifacts) definuje čtyři úrovně postupně rostoucích nároků na bezpečnost dodavatelského řetězce.

Úroveň 1 — dokumentovaný build proces, automatická generace provenance ve formátu SLSA Provenance v1.0, podepisování pomocí Cosign. Realizace 2–4 týdny, 40–60 hodin práce.

Úroveň 2 — hostovaný build na ověřené infrastruktuře (GitHub Actions, Google Cloud Build), izolované provádění v čistém kontejneru, podepsané commity, ochrana hlavní větve. Realizace 6–12 týdnů, 120–200 hodin.

Úroveň 3 — hermetické buildy bez přístupu k síti, reprodukovatelné výstupy, povinný dvojí review, neměnná historie zdrojového kódu. Realizace 4–8 měsíců, 500–1000 hodin.

Úroveň 4 — pravidlo dvou osob pro všechny změny, bit-po-bitu reprodukovatelné buildy, kontinuální skenování zranitelností. Vhodné pro kritickou infrastrukturu a finanční systémy. Realizace 12–18 měsíců, přes 2000 hodin.

Aktuální stav adopce

  • Úroveň 0: 78 % organizací.
  • Úroveň 1: 15 %.
  • Úroveň 2: 5 %.
  • Úroveň 3 a 4: méně než 2 %.

Realistickým cílem pro většinu enterprise prostředí je dosažení úrovně 2 v horizontu dvou let.

Hermetické buildy

Pro úroveň 3 a vyšší je nutné izolovat build od sítě. Všechny závislosti musí být do prostředí předem nahrány, build běží v efemérním kontejneru a výstup se ověřuje opakovaným sestavením v čistém prostředí. Reprodukovatelnost znamená shodu hashů artefaktů z nezávislých buildů.

5. Bezpečnost open-source závislostí

Hodnocení rizika balíčku

Před přijetím externí závislosti je vhodné posoudit:

  • Kvalitu kódu — pokrytí testy, statickou analýzu, bezpečnostní politiky repozitáře.
  • Zdraví projektu — frekvence commitů, doba odpovědi na issue, počet aktivních udržovatelů, kadence vydávání.
  • Historii zranitelností — počet a závažnost CVE, doba reakce na hlášení.
  • Komunitní důvěru — počet závislých projektů, reputace udržovatelů.
  • Riziko opuštění — projekt bez aktivity 12 a více měsíců představuje vysoké riziko.

Prevence záměny závislostí

Organizace by měla:

  1. Registrovat názvy svých interních balíčků také ve veřejných registrech, aby zabránila jejich obsazení.
  2. Konfigurovat manažery závislostí tak, aby preferovaly interní registr před veřejným.
  3. Validovat publikační podpisy a prosazovat pinning verzí pomocí lockfile.

6. Detekce a reakce na incidenty

Indikátory útoku v build pipeline

  • Neočekávaná odchozí síťová spojení z build serverů.
  • Změny v charakteristikách build artefaktů (velikost, entropie).
  • Neautorizované úpravy infrastruktury jako kódu.
  • Přidání nové závislosti bez schválení nebo rollback verze kritické komponenty.
  • Selhání ověření SLSA provenance podpisu.

Plán reakce

Okamžité zadržení (0–4 hodiny): izolace postižených build systémů, pozastavení automatizovaných nasazení, aktivace incidentního týmu, zajištění forenzních dat.

Vyšetřování (4–24 hodin): forenzní analýza artefaktů, analýza síťového provozu, rekonstrukce časové osy, vyhodnocení dopadu na zákazníky.

Obnovení (24–72 hodin): znovuvytvoření čistého build prostředí, ověření a aktualizace závislostí, nasazení posíleného monitoringu, notifikace zákazníků.

7. Budoucnost a doporučení pro implementaci

Trendy

  • Využití AI pro detekci sofistikovaných útoků a behaviorální analýzu build procesů.
  • Architektura nulové důvěry v dodavatelském řetězci — kontinuální ověřování namísto periodických auditů.
  • Kryptografická provenance s podporou hardwarových bezpečnostních modulů a přípravou na postkvantovou kryptografii.
  • Politika jako kód s automatizovaným vynucováním souladu a sdílením politik mezi organizacemi.

Model zralosti

Základní úroveň (3–6 měsíců): SBOM pro všechny aplikace, základní skenování zranitelností, definovaný proces aktualizace závislostí, vstupní hodnocení rizik třetích stran.

Řízená úroveň (6–12 měsíců): shoda se SLSA úrovní 2, automatizované bezpečnostní testování, monitoring dodavatelského řetězce, definované playbooky pro incidenty.

Definovaná úroveň (12–18 měsíců): hermetické buildy SLSA úrovně 3, principy nulové důvěry, kontinuální ověřování souladu, pokročilá detekce hrozeb.

Optimalizovaná úroveň (nad 18 měsíců): SLSA úroveň 4, automatizace s AI, prediktivní řízení rizik, sektorová spolupráce.

Měřitelné dopady

Organizace, které prošly všemi úrovněmi modelu, vykazují zkrácení doby detekce zranitelnosti o 80 %, zkrácení reakce na incident o 65 %, snížení falešně pozitivních nálezů o 70 % a 95% nárůst viditelnosti dodavatelského řetězce. Provozní metriky se zlepšují obdobně: zvýšení frekvence nasazení, snížení míry chybných změn a redukce manuální práce o 70 %.

8. Závěr

Bezpečnost dodavatelského řetězce přestala být kontrolním bodem v compliance auditu a stala se strategickým aktivem. Organizace s vyspělými procesy mohou nasazovat rychleji, inovovat bezpečněji a budovat důvěru zákazníků jako konkurenční výhodu.

Pět zásadních doporučení:

  1. Začít s viditelností — bez SBOM nelze chránit, co není vidět.
  2. Automatizovat důsledně — manuální procesy škálovat nelze.
  3. Předpokládat kompromitaci — navrhovat odolné systémy, ne jen prevenci.
  4. Měřit dopad — bezpečnostní metriky musí mluvit jazykem byznysu.
  5. Spolupracovat napříč ekosystémem — bezpečnost je jen tak silná, jak nejslabší dodavatel.

Praktické další kroky

  1. Posouzení současného stavu vůči modelu zralosti.
  2. Implementace SBOM, počínaje kritickými aplikacemi.
  3. Automatizace správy zranitelností pro zkrácení doby reakce.
  4. Postupné zavádění SLSA, od úrovně 1 výše.
  5. Příprava playbooků pro incidenty specifické pro dodavatelský řetězec.
  6. Doplnění bezpečnostních požadavků do procesu nákupu.
  7. Vzdělávání týmů napříč organizací.

Zdroje

  • SLSA Framework: https://slsa.dev
  • NIST SP 800-161 — Cybersecurity Supply Chain Risk Management
  • CISA Software Bill of Materials: https://cisa.gov/sbom
  • OpenSSF Supply Chain Security: https://openssf.org
  • OWASP Software Component Verification Standard
  • Linux Foundation SPDX specification

Další z tématu IT Audit a Bezpečnost

Zobrazit vše