Průvodce · DevSecOps a CRA

DEVSECOPS A SECURE SDLC

Co je DevSecOps, které kontroly patří do vývoje a proč Cyber Resilience Act vyžaduje procesy, ne dokumenty. SCA, SAST, DAST, SBOM a brány v CI/CD.

Co najdete na této stránce
  1. Co je DevSecOps a proč ho CRA vyžaduje, aniž by ho jmenoval
  2. Shift-left: proč se bezpečnost řeší v návrhu, ne před vydáním
  3. Kategorie nástrojů a co která reálně umí
  4. Falešně pozitivní nálezy: hlavní důvod, proč zavedení umře
  5. SBOM prakticky: formáty, okamžik generování a vazba na VEX
  6. Brány v CI/CD: co blokovat a co jen hlásit
  7. Řízení zranitelností po vydání: KEV, EPSS a hlášení podle CRA
  8. Secure SDLC jako rámec: kde se to potkává s normami
  9. Jak s tím umíme pomoct

Co je DevSecOps a proč ho CRA vyžaduje, aniž by ho jmenoval

DevSecOps není nástroj ani role. Je to způsob organizace práce, ve kterém jsou bezpečnostní kontroly součástí téhož dodávkového procesu jako build a nasazení: spouštějí se automaticky, běží při každé změně a jejich výsledek má vlastníka, který s ním něco udělá. Proti tomu stojí model, na který je většina firem zvyklá — bezpečnost jako jednorázová brána před vydáním, obvykle v podobě penetračního testu a zprávy, kterou vývoj dostane týden před termínem.

V textu aktu o kybernetické odolnosti (Cyber Resilience Act, CRA), tedy nařízení (EU) 2024/2847, slovo DevSecOps nenajdete. Nařízení je technologicky neutrální a nepředepisuje ani jeden konkrétní nástroj. Co ale předepisuje, jsou činnosti, které se musí opakovat, a to je přesně ta část, kterou jednorázová kontrola před vydáním neumí pokrýt.

Nejvýraznější je to u posouzení kybernetických bezpečnostních rizik. Podle čl. 13 odst. 2 ho výrobce provádí a jeho výsledek zohledňuje ve fázi plánování, návrhu, vývoje, výroby, dodání a údržby produktu; podle čl. 13 odst. 3 se dokumentuje a aktualizuje po celou dobu podpory. Dokument napsaný týden před kontrolou tohle nedoloží — musí být poznat, že vznikal průběžně.

Podobně je na tom celá příloha I část II. Neukládá vlastnosti produktu, ale procesy výrobce. A procesy se nedají doložit šablonou.

Je tu ještě jeden požadavek, který se čte jako drobnost a přitom předpokládá funkční proces: produkt se dodává na trh bez známých zneužitelných zranitelností (příloha I část I bod 2 písm. a). Takové tvrzení o svém produktu můžete udělat jen tehdy, když víte, z čeho se skládá, a když to pravidelně kontrolujete proti aktuálním datům. Přehled zbylých požadavků přílohy I je v průvodci nařízením.

Shift-left: proč se bezpečnost řeší v návrhu, ne před vydáním

Shift-left znamená posunout bezpečnostní rozhodnutí co nejblíž k okamžiku, kdy vznikají — do požadavků, návrhu a psaní kódu. Důvod je prozaický: čím později se chyba najde, tím víc věcí je na ní postavených. Oprava v návrhu je změna diagramu. Oprava po vydání je změna kódu, regresní testy, nová verze, upozornění pro zákazníky a jejich vlastní plán nasazení.

Konkrétní násobky, které kolují po prezentacích — desetkrát dráž ve fázi testů, stokrát dráž v provozu — pocházejí ze studií, které jsou staré a metodicky sporné, a my je tu opakovat nebudeme. Směr je nesporný, číslo ne. Pro rozhodování stačí směr.

Podstatnější je, že řada požadavků nařízení jsou vlastnosti návrhu, ne nálezy skeneru. Bezpečná výchozí konfigurace, minimalizace zpracovávaných dat, omezení prostoru k útoku, možnost bezpečně smazat a přenést data — to jsou rozhodnutí o architektuře (příloha I část I bod 2 písm. b, g, j, m). Skener najde SQL injection. Nenajde, že se produkt dodává se stejným výchozím administrátorským heslem pro všechny instalace, protože po technické stránce je to funkční záměr.

Shift-left se přitom občas vykládá jako „všechno se otestuje u vývojáře“. To je nedorozumění. Část kontrol se posunout nedá, protože potřebují běžící aplikaci nebo skutečné prostředí — dynamické testování, testy konfigurace, penetrační test. Shift-left mění pořadí a četnost, ne rozsah.

V praxi je nejlevnější zásah do návrhu ten, který proběhne dřív, než tým začne psát. My proto threat model děláme jako workshop nad skutečnou architekturou produktu, ne jako dokument sepsaný zpětně — jeho výstup se pak dá použít jako podklad pro posouzení rizik podle čl. 13.

Kategorie nástrojů a co která reálně umí

Zkratek je hodně a marketingové materiály je používají volně. Níže jsou u každé kategorie tři věci: co najde, co nenajde a kdy se hodí. Poslední položka v seznamu — threat modeling — není nástroj, ale disciplína, a je tu schválně: bez ní zbytek seznamu jen produkuje nálezy bez souvislosti.

Struktura odpovídá tomu, jak kategorie člení OWASP DevSecOps Guideline, který je dobrým výchozím bodem, pokud si chcete udělat vlastní představu.

Žádná z kategorií nepokrývá jinou. SCA nezná váš kód, SAST nezná běh, DAST nezná strukturu a threat model nenajde překlep. Zavádět je proto má smysl postupně a v pořadí podle toho, co u vašeho produktu nejvíc bolí — pořadí, které nám vychází z projektů, je v časové ose na konci stránky.

Falešně pozitivní nálezy: hlavní důvod, proč zavedení umře

Tohle je část, kterou dodavatelé nástrojů nezmiňují rádi, a přitom o ní rozhoduje úspěch celého zavedení. Typický scénář vypadá takhle: firma koupí platformu, zapne v ní všechno, první sken nad zavedenou kódovou základnou vrátí stovky až tisíce nálezů, tým se do nich pustí, po dvou týdnech zjistí, že většina z nich v jeho kontextu není zneužitelná, a přestane je číst. Od té chvíle je bezpečnostní kontrola v pipeline jen zdroj šumu a první skutečný nález v něm zapadne.

Falešně pozitivní nález přitom nemusí být chyba nástroje. Často je to správný nález bez kontextu — zranitelnost v knihovně, jejíž postižená funkce se ve vašem produktu nikdy nezavolá; slabý generátor náhodných čísel použitý na něco, co není bezpečnostně citlivé; chybějící hlavička na koncovém bodu, který není veřejný. Nástroj nemá jak vědět, že to tak je. Vy ano — a to rozhodnutí je potřeba někam zapsat, aby se nemuselo dělat znovu při každém běhu.

Druhá polovina pravdy: existují i falešně negativní nálezy. Čistá pipeline není důkaz, že produkt je bezpečný — je to důkaz, že daná sada kontrol nic nenašla. Kdo tenhle rozdíl nepojmenuje nahlas, dřív nebo později postaví rozhodování o vydání na zeleném zaškrtnutí.

Prakticky to znamená, že první měsíce po zapnutí nástroje nejsou o hledání zranitelností, ale o ladění. Když se tahle fáze přeskočí, tým se naučí kontroly ignorovat a vrátit se k důvěře v ně trvá mnohem déle než původní zavedení.

SBOM prakticky: formáty, okamžik generování a vazba na VEX

Softwarový kusovník je formální záznam komponent v softwarových prvcích produktu a jejich vztahů v dodavatelském řetězci (čl. 3 bod 39). Nařízení po něm chce dvě věci: aby byl v běžně používaném strojově čitelném formátu a aby obsahoval alespoň nejdůležitější závislosti produktu (příloha I část II bod 1). Konkrétní formát nepředepisuje; prvky a formát může upřesnit Komise prováděcím aktem (čl. 13 odst. 24), což se k 8. 8. 2026 nestalo.

V praxi jsou formáty dva. CycloneDX vznikl v OWASP, aktuální specifikace je verze 1.7 z 21. října 2025 a je standardizovaná jako ECMA-424 (2. vydání, prosinec 2025). SPDX spravuje Linux Foundation, aktuální je verze 3.0.1 z prosince 2024; jako ISO/IEC 5962:2021 je zatím uznaná starší verze 2.2.1 a revize na řadu 3.0 je v ISO ve stavu návrhu. Oba formáty požadavek přílohy I splňují a mezi sebou se dají převádět, byť ne bezeztrátově.

Důležitější než volba formátu je okamžik generování. Kusovník má vzniknout při buildu, z toho, co se do artefaktu skutečně dostalo, a má se ukládat vedle artefaktu a s jeho verzí. Kusovník sestavený dodatečně skenem repozitáře je něco jiného: nezachytí, co přidal build, co se vyřešilo z lock souboru a co je uvnitř základního obrazu kontejneru.

A pak je tu otázka, co s ním. Sám o sobě je kusovník inventura, která zastarává v okamžiku, kdy vyjde nová zranitelnost. Užitečný je teprve tehdy, když se průběžně porovnává proti aktuálním datům o zranitelnostech — z toho vzniká odpověď na otázku „týká se nás to?“ v hodinách místo dnů. Kusovník bez tohohle napojení je soubor, ne proces.

Pozor na záměnu, která se u kusovníku objevuje často: SBOM není splnění povinnosti řešit zranitelnosti. Je to vstup do ní. Povinnost neprodleně řešit a odstraňovat zranitelnosti stojí v příloze I části II bodě 2 samostatně a kusovník ji nenahrazuje — rozdíl mezi oběma režimy rozebírá sekce průvodce o SBOM a řízení zranitelností.

Brány v CI/CD: co blokovat a co jen hlásit

Brána je místo v pipeline, kde se běh zastaví, protože kontrola našla něco, co dál nesmí. Rozhodnutí, co bude bránou a co jen hlášením, je z celého zavedení to nejvíc politické a rozhoduje o tom, jestli si tým kontroly osvojí, nebo je začne obcházet.

Tvrdá brána na všechno hned od začátku má předvídatelný konec. Vývojáři mají termín, brána stojí mezi nimi a nasazením, a tak se najde cesta kolem: přepínač, který kontrolu přeskočí, štítek „výjimka“, který se přestane odebírat, nebo přesun kontroly do úlohy, u které je selhání povolené. Formálně kontrola pořád běží, fakticky už nic nehlídá — a to je horší výchozí stav než žádná kontrola, protože o něm nikdo neví.

Použitelné pravidlo je jednoduché: blokovat tam, kde je podíl falešně pozitivních nálezů nízký a následek propuštění vysoký. Všechno ostatní nejdřív hlásit, změřit a teprve pak případně utáhnout. A brána nemusí být jedna — jinak se rozhoduje u pull requestu, jinak u sloučení do hlavní větve a jinak u vydání, protože jen u vydání musí platit, že produkt jde na trh bez známých zneužitelných zranitelností (příloha I část I bod 2 písm. a).

Samotná pipeline je přitom aktivum, které patří do rozsahu ochrany. Prostředí, ve kterém se staví a podepisují artefakty rozesílané zákazníkům, je typický cíl útoku na dodavatelský řetězec — a jeho kompromitace je přesně ten případ závažného incidentu s dopadem na bezpečnost produktu, který se od 11. 9. 2026 hlásí podle čl. 14 odst. 3 (podrobně v průvodci).

Řízení zranitelností po vydání: KEV, EPSS a hlášení podle CRA

Vydáním produktu práce nekončí, u CRA naopak začíná ta část, která má nejdelší dobu trvání — doba podpory je nejméně pět let a vydané bezpečnostní aktualizace musí zůstat dostupné nejméně deset let od svého vydání (čl. 13 odst. 8 a 9). Po celou tu dobu musí fungovat smyčka: sledovat, vyhodnotit, opravit, distribuovat, informovat.

Nejtěžší rozhodnutí v téhle smyčce je, jestli je zranitelnost aktivně zneužívaná. Definice nařízení je přísnější, než jak se ten pojem používá běžně: jde o zranitelnost, u níž existují spolehlivé důkazy, že ji škodlivý aktér v systému zneužil bez svolení vlastníka systému (čl. 3 bod 42). Není to totéž co zneužitelná. Existence funkčního proof of concept ohlašovací povinnost sama o sobě nespouští.

Dva veřejné zdroje se pro tohle rozhodování používají a je užitečné vědět, co který z nich znamená. Katalog KEV americké agentury CISA obsahuje zranitelnosti s přiděleným CVE, u kterých existuje důkaz o aktivním zneužívání a je znám postup nápravy. Je to silný externí signál, ale ze své povahy zpožděný, neúplný a orientovaný na americké prostředí — nepřítomnost v KEV není důkazem, že se zranitelnost nezneužívá.

EPSS od organizace FIRST je něco úplně jiného: statistický model, který denně odhaduje pravděpodobnost, že bude zveřejněná zranitelnost v následujících 30 dnech zneužita ve volné přírodě. Aktuální je model verze 4 z března 2025. EPSS je predikce, ne pozorování — je výborný na řazení fronty oprav a nepoužitelný jako spouštěč 24hodinové lhůty podle čl. 14. Ten spouští znalost skutečnosti, ne pravděpodobnost.

V praxi je prvním důkazem obvykle něco vašeho: telemetrie z produktu, hlášení od zákazníka, nález z reakce na incident nebo zpráva, která dorazí na kontaktní adresu pro hlášení zranitelností podle přílohy I části II bodu 6. Právě proto ta adresa nemá být jen řádkem na webu.

Hlášení podle čl. 14 je od 11. září 2026 provozní povinnost s lhůtami 24 hodin, 72 hodin a 14 dnů, u incidentů jeden měsíc. Co přesně se do které zprávy píše, komu se podává a od čeho se která lhůta počítá, rozebírá sekce průvodce o hlášení. Poprvé si tenhle proces nemá tým zkoušet naostro.

Secure SDLC jako rámec: kde se to potkává s normami

DevSecOps je provozní polovina věci — co běží, kdy a s jakým výsledkem. Secure SDLC je ta druhá polovina: rámec, který říká, jaké činnosti v životním cyklu vůbec existují, kdo je vlastní a jak se pozná, že jsou dělané dobře. Bez rámce vznikne sbírka nástrojů, kterou nejde nikomu doložit; bez provozu vznikne dokumentace, která neodpovídá realitě.

Rámců je několik a nejsou konkurenční — každý řeší jinou otázku. Níže jsou čtyři nejpoužívanější v evropském a průmyslovém kontextu, stručně a s tím, k čemu se hodí.

Jedna věc ale platí pro všechny a je dobré ji vědět předem: ani jeden z těchto rámců nezakládá presumpci shody s CRA. Ta vzniká výhradně použitím harmonizované normy, jejíž odkaz je zveřejněný v Úředním věstníku (čl. 27 odst. 1), a k 8. 8. 2026 taková norma pro CRA neexistuje. Certifikát je dobrý základ a doklad o zavedených procesech, ne náhrada posouzení shody.

Praktické doporučení: rámec si nevybírejte podle toho, který je „správný“, ale podle toho, komu co budete dokládat. Průmyslovému zákazníkovi 62443-4-1, americkému odběrateli SSDF, dozoru podle CRA vlastní posouzení rizik a technickou dokumentaci. Souvislosti mezi normami a regulací rozebírá průvodce standardy, vazbu certifikátů na CRA pak FAQ ke CRA.

Jak s tím umíme pomoct

Předchozí sekce popisují, co se dělá. Tahle popisuje, co z toho děláme s klienty a v jakém formátu. Nabídku máme rozdělenou na samostatné části schválně — většina firem nepotřebuje všechno, potřebuje dva nebo tři chybějící díly.

Pracujeme s tím, co už máte. Pokud v pipeline běží nástroj, který dává smysl, ladíme ho místo výměny. S výrobci nemáme žádné partnerství ani provizní model, takže doporučujeme neutrálně podle vašeho prostředí a nemáme důvod vás k žádnému nástroji tlačit; licenci umíme dodat i prodat, ale není to náš cílový segment — nevylučujeme to, jen na tom nestavíme. Stejně tak nenahrazujeme vývojový tým — kontroly a procesy nakonec musí provozovat ti, kdo produkt vyvíjejí, jinak to po našem odchodu vydrží jeden kvartál.

Formáty spolupráce jsou dva: ohraničené posouzení s výstupem a termínem, nebo dlouhodobá spolupráce s pravidelnou kapacitou, když chcete zavádění vést postupně a s někým po ruce. Co která varianta obnáší, popisuje stránka Security Assessment; rozsah a cenu domlouváme podle toho, kolik produktů a týmů to má pokrýt.

Pořadí zavádění, které se nám osvědčuje

Tohle není požadavek nařízení ani norma. Je to náš odhad z projektů — orientačně produktový tým 5 až 15 lidí s jedním hlavním produktem a existující CI. Doby jsou hrubé, kroky se překrývají a pořadí se mění podle toho, co už máte hotové. Smysl seznamu je jiný: ukázat, že se to zavádí po částech, a co po čem má následovat.

1. krok · 1–2 týdny
Inventura. Co vlastně vydáváte, v jakých verzích, z čeho se to skládá, kde se to staví a kdo to podepisuje. Bez tohohle nemá smysl pouštět první skener — nálezy nebudou mít k čemu patřit.
2. krok · 1 týden
Secrets scanning a rotace nálezů. Kontrola do pre-commit hooku i na server, projití historie, rotace všeho, co se najde. Rychlé, levné a s nízkým podílem falešně pozitivních — dobrý první krok i proto, že tým hned vidí smysl.
3. krok · 2–4 týdny
SCA a generování SBOM při buildu, zatím jen v režimu hlášení. Vznikne baseline a první realistická představa o objemu nálezů. Tady se také rozhodne o formátu kusovníku a o tom, kde se bude ukládat.
4. krok · 2–3 týdny
Threat model hlavního produktu. Přijde záměrně až po inventuře — bez ní se dělá nad představou, ne nad skutečností. Jeho výstup určí, co má v dalších krocích vůbec smysl testovat, a je použitelný jako podklad pro posouzení rizik podle čl. 13.
5. krok · 4–8 týdnů
Statická analýza nad diffem v pull requestu, ladění pravidel, potlačení baseline. Nejdelší a nejcitlivější krok celé řady: tady se rozhoduje, jestli tým kontroly přijme, nebo se je naučí přeskakovat.
6. krok · 2–4 týdny
Skenování kontejnerových obrazů a IaC, podepisování artefaktů a kontrola integrity závislostí. Zároveň první tvrdé brány — na tajné údaje a na nepodepsaný artefakt, tedy tam, kde je šum minimální.
7. krok · 4–6 týdnů
Proces řízení zranitelností po vydání. Triage a lhůty, kontaktní adresa a politika koordinovaného zveřejňování, VEX, napojení kusovníku na data o zranitelnostech, sledování aktivního zneužívání. Odtud se odvíjí schopnost hlásit podle čl. 14.
8. krok · 2–3 týdny
Dynamické testování proti stagingu v nočním běhu, u API s popisem rozhraní kvůli pokrytí. Penetrační test jako nezávislá kontrola toho, co pipeline nechytá — ne jako její náhrada.
Průběžně
Utahování bran a nácvik hlášení. Tvrdé brány se zapínají po jedné kategorii a vždy až poté, co daná kontrola týdny běžela v režimu hlášení. Hlášení podle čl. 14 se zkouší nanečisto, ne poprvé při reálné události.

Oficiální zdroje

Odborná tvrzení o povinnostech a termínech na téhle stránce vycházejí z následujících zdrojů, stav k 8. 8. 2026. Znění předpisů stránka nenahrazuje.

Nařízení (EU) 2024/2847 (akt o kybernetické odolnosti) ↗ Závazné české znění. Posouzení rizik a povinnosti výrobce v čl. 13, hlášení v čl. 14, definice aktivně zneužívané zranitelnosti v čl. 3 bodě 42, vlastnosti produktu v příloze I části I, procesy řešení zranitelností v příloze I části II, technická dokumentace v příloze VII. OWASP DevSecOps Guideline ↗ Otevřený materiál OWASP k zapojení bezpečnostních kontrol do pipeline. Zdroj členění kategorií nástrojů použitého v této stránce: secrets scanning, SAST, SCA, IAST, DAST, skenování IaC a infrastruktury, kontrola shody. OWASP SAMM (Software Assurance Maturity Model) ↗ Model zralosti bezpečného vývoje. Pět obchodních funkcí (Governance, Design, Implementation, Verification, Operations), patnáct praktik a tři úrovně zralosti. Zdroj tvrzení o struktuře modelu. NIST SSDF — Secure Software Development Framework ↗ Projektová stránka NIST. Aktuální publikovaná verze je SSDF 1.1 v dokumentu SP 800-218 z února 2022, se skupinami praktik PO, PS, PW a RV. NIST SP 800-218r1 — návrh SSDF 1.2 ↗ První veřejný návrh revize zveřejněný 17. 12. 2025, připomínkové řízení skončilo 30. 1. 2026. Zdroj tvrzení, že verze 1.2 k 8. 8. 2026 není finální. CycloneDX — specifikace kusovníku ↗ Formát vzniklý v OWASP. Aktuální specifikace verze 1.7 vydaná 21. 10. 2025, standardizovaná jako ECMA-424 (2. vydání, 10. 12. 2025). Zdroj údajů o verzích formátu. SPDX — specifikace ↗ Formát Linux Foundation. Aktuální je řada 3.0, poslední vydání 3.0.1 z prosince 2024. Jako ISO/IEC 5962:2021 je uznaná verze 2.2.1, revize na řadu 3.0 je v ISO ve stavu návrhu mezinárodní normy. CISA — minimální požadavky na VEX ↗ Minimální náležitosti dokumentu VEX a přehled nosných formátů: CSAF, CycloneDX a OpenVEX. Zdroj tvrzení o stavech a odůvodněních používaných ve VEX. CISA — katalog KEV (Known Exploited Vulnerabilities) ↗ Seznam zranitelností s doloženým aktivním zneužíváním. Kritéria zařazení: přidělené CVE, důkaz o aktivním zneužívání a jasný postup nápravy. Katalog je americký a ze své povahy neúplný. FIRST — EPSS (Exploit Prediction Scoring System) ↗ Model odhadující pravděpodobnost, že bude zveřejněná zranitelnost zneužita ve volné přírodě v následujících 30 dnech. Skóre 0 až 1 s percentilem, aktualizace denně, aktuální model verze 4 z března 2025.
Obsah platný k 8. 8. 2026

Konzultace k bezpečnému vývoji

Než začnete vybírat nástroje,
vyplatí se vědět,
co vám vlastně chybí.

Úvodní konzultace nad vaším vývojem a pipeline: co dnes běží, co z požadavků CRA to pokrývá a v jakém pořadí zavádět zbytek. Výstupem je seznam kroků s odhadem pracnosti. Napište nám, co vyvíjíte a kde jste narazili.