Proč jsou bezpečnostní standardy ve vývoji vestavěných systémů klíčové
Vestavěná zařízení dnes řídí automobily, zdravotnické přístroje, průmyslové linky, chytré elektroměry i domácí IoT. Selhání nebo kompromitace takových systémů může ohrozit lidské zdraví, kontinuitu provozu i důvěrnost dat. Bezpečnostní standardy poskytují společný jazyk, ověřené postupy a měřitelné požadavky, které umožňují navrhovat, testovat a provozovat vestavěná zařízení systematicky a s možností auditu. Tento článek shrnuje klíčové rámce, metody a konkrétní techniky, které by měl znát každý vývojář firmwaru a systémový architekt.
Terminologie: bezpečnost (safety) vs. zabezpečení (security)
- Safety – ochrana před neúmyslným poškozením způsobeným chybou systému (např. zkratem, poruchou senzoru nebo softwarovou chybou vedoucí k nebezpečnému stavu).
- Security – ochrana před úmyslným útokem (např. podvržením firmwaru, manipulací s komunikací nebo exfiltrací dat).
Oblasti se prolínají: opatření v oblasti zabezpečení (security) chrání také bezpečnost provozu (safety). Moderní standardy proto vyžadují jejich společné řízení a „společné inženýrství“.
Přehled klíčových standardů podle domén
- Průmysl a automatizace: IEC 62443 (zabezpečení průmyslových řídicích systémů), ISO/IEC 27001 (ISMS) a 27002 (kontrolní opatření).
- Automobilový průmysl: ISO 26262 (funkční bezpečnost), ISO/SAE 21434 (kybernetická bezpečnost vozidel), AUTOSAR (Classic/Adaptive) a pokyny MISRA C/C++.
- Letecká technika: DO-178C (software) a DO-254 (hardware), s důrazem na důkazní artefakty a pokrytí testy (MC/DC).
- Zdravotnictví: IEC 62304 (životní cyklus softwaru ve zdravotnických prostředcích), ISO 14971 (řízení rizik), IEC 60601-1 (elektrická bezpečnost).
- IoT a spotřební elektronika: ETSI EN 303 645 (základní požadavky pro IoT), NISTIR 8259x (profil zabezpečení IoT), doporučení OWASP IoT Top 10.
- Obecná funkční bezpečnost: IEC 61508 (základní norma pro bezpečnost), na kterou navazují oborové standardy.
- Kryptografie a moduly: FIPS 140-3 (validace kryptografických modulů), ISO/IEC 19790, SP 800-56/57 (správa klíčů).
- Dodavatelský řetězec a software: SLSA (úrovně integrity dodavatelského řetězce), SBOM (SPDX/CycloneDX), ISO/IEC 5230 (OpenChain).
Integrované řízení rizik: od hrozeb k požadavkům
- Klasifikace aktiv a rozhraní: MCU/SoC, senzory, bootloader, komunikace (UART, CAN, Ethernet), kanál pro aktualizace, cloud.
- Modelování hrozeb: STRIDE (podvržení identity, manipulace, popření, zpřístupnění informací, DoS, eskalace oprávnění) pro technické hrozby; LINDDUN pro rizika v oblasti soukromí.
- Bezpečnostní analýzy: TARA (Threat Analysis and Risk Assessment), FMEA/FMEDA, HAZOP, útočné stromy.
- Odvození požadavků: bezpečnostní cíle → systémové požadavky → hardwarové/softwarové požadavky → testy a ověřování.
Životní cyklus bezpečného vývoje (SDL) pro vestavěné systémy
Standardy jako IEC 62443-4-1 nebo ISO/SAE 21434 vyžadují formální životní cyklus. V praxi jde o následující:
- Plánování: bezpečnostní plán, rozdělení odpovědností, klasifikace softwarových komponent (kritičnost).
- Architektura: oddělení důvěryhodných oblastí (TrustZone/MPU), princip nejmenších privilegií, jasně vymezená TCB (Trusted Computing Base).
- Implementace: pravidla bezpečného programování (MISRA, AUTOSAR C++14, CERT C/C++), povinné revize kódu, statická/dynamická analýza.
- Verifikace: jednotkové testy, integrační testy na HIL, fuzzing protokolů, penetrační testy, měření pokrytí.
- Uvedení do provozu: bezpečná výroba, párování klíčů, testy na výrobní lince, kontrola šarží a evidence sériových čísel.
- Provoz a údržba: bezpečné OTA aktualizace, monitorování telemetrie, proces reakce na zranitelnosti (PSIRT), politika EOL.
- Artefakty a sledovatelnost: požadavky ↔ rizika ↔ implementace ↔ testy ↔ vydání (auditní stopa).
Architektonické principy: obrana do hloubky a zmenšování TCB
- Oddělení: oddělení řídicí části (safety) a komunikační části (konektivita), fyzicky nebo alespoň logicky (MMU/MPU, TrustZone, hypervizor).
- Princip nejmenších privilegií: ovladač nemá vyšší oprávnění, než je nezbytné; úlohy RTOS mají pouze nezbytná oprávnění (oprávnění, přístupy založené na schopnostech).
- Minimalismus: odstraňte nepoužívané knihovny, rozhraní a ladicí porty; ve výrobních zařízeních vypněte JTAG/SWD (nebo použijte bezpečné ladění s autentizací).
- Bezpečná konfigurace od návrhu: firewall s výchozím zákazem, povinné šifrování, explicitní seznam povolených protokolů a portů.
Řetězec důvěry: secure boot, měření a podepisování
- Kořen důvěry (RoT): klíče uložené v OTP/eFuse/PUF, HSM/SE nebo v chráněné oblasti SoC.
- Secure Boot: bootloader ověřuje podpis firmwaru (RSA/ECC/Ed25519) a jeho integritu (SHA-2/3); nepodepsané obrazy se nespustí.
- Měřené spouštění: ukládání hashů firmwaru pro atestaci (TPM/Device Identity Composition Engine/certifikáty DTLS).
- Ochrana proti opakování a verzování: monotónní čítač, ochrana proti návratu k předchozí verzi, sloty A/B pro bezpečné OTA.
Bezpečné OTA aktualizace a správa verzí
- Podpis od konce ke konci: výrobní pipeline podepisuje sestavení; zařízení před instalací ověřuje jeho podpis.
- Bezpečný přenos: TLS 1.3/DTLS 1.3 s ověřením serveru a případně také klientskými certifikáty.
- Transakční aktualizace: duální banky (A/B), atomický přechod a automatický návrat k předchozí verzi při selhání.
- Zásady: postupné nasazování, vydávání v jednotlivých vlnách, možnost okamžitého nouzového vypnutí při kritické zranitelnosti.
Standardy pro kód: MISRA, AUTOSAR C++14, CERT a bezpečné C
Vestavěné systémy využívající jazyky C/C++ těží z pravidel pro tvorbu kódu, která snižují pravděpodobnost chyb a zneužitelných konstrukcí.
- MISRA C/C++: omezují nejednoznačné a nebezpečné konstrukce; vyžadují přesné typování a determinismus.
- AUTOSAR C++14: zaměřuje se na moderní C++ v automobilovém průmyslu s ohledem na bezpečnost a testovatelnost.
- CERT C/C++: prevence zranitelností (přetečení, UAF, závody, nesprávná správa paměti), pravidla pro rozhraní a chybové stavy.
Součástí je povinná statická analýza (např. kontrola pravidel MISRA), analýza taint vstupů a „brána“ v CI, která blokuje sestavení porušující kritická pravidla.
Hardwarové bezpečnostní prvky a izolace
- MPU/MMU a domény: mapujte paměť podle principu nezbytného přístupu. Omezte spouštění kódu z RAM, oddělte oblasti RX a RW.
- TrustZone-M / TrustZone-A: oddělení zabezpečeného a nezabezpečeného světa s řízením přechodů prostřednictvím bran SG.
- TPM/SE/HSM: bezpečná identita zařízení, uchovávání klíčů, kryptografické operace mimo hlavní procesor.
- Fyzická ochrana: detekce neoprávněné manipulace, ochrana proti glitchingu, DPA/SPA (útoky postranními kanály), stínění a zalití epoxidem podle míry rizika.
Komunikační protokoly a kryptografie v praxi
- TLS/DTLS 1.3: moderní křivky (X25519, P-256), AEAD (AES-GCM, ChaCha20-Poly1305), důsledné ověřování certifikátů, pinning tam, kde dává smysl.
- Protokoly IoT: MQTT přes TLS, CoAP přes DTLS, OPC UA s integrovaným bezpečnostním modelem, zabezpečený CAN (CAN-FD s autentizací na aplikační vrstvě).
- Správa klíčů: rotace, expirace, zásady síly klíčů, bezpečné úložiště, ochrana před extrakcí klíčů.
- Náhodná čísla: TRNG/DRBG validovaný podle NIST SP 800-90A/B/C, zdravotní testy entropie.
Dodavatelský řetězec, SBOM a integrita sestavení
- SBOM: vytvářejte pro každé vydání ve formátu SPDX nebo CycloneDX; udržujte mapování CVE → komponenty → dotčená zařízení.
- SLSA: podepisujte původ sestavení (provenance), izolujte běhy CI, používejte reprodukovatelná sestavení a hermetické závislosti.
- OpenChain: procesy pro používání softwaru s otevřeným zdrojovým kódem (licence, zranitelnosti, strategie aktualizací).
Testování a ověřování zabezpečení
- Statická analýza: pravidla MISRA/AUTOSAR/CERT, detekce přetečení celého čísla, dereferencování nulového ukazatele, datových závodů.
- Fuzzing: protokoly (BLE, brána CAN, zásobník TCP/IP), mutační a generativní přístup; sanitizéry v emulaci.
- Penetrační testy: black-box/grey-box/white-box, testy odolnosti proti glitchingu, vkládání poruch a analýza postranních kanálů podle míry kritičnosti.
- Ověřování časových parametrů: WCET, latence ISR, determinismus v RTOS, testy scénářů poklesu napětí a vypnutí a opětovného zapnutí napájení.
- Pokrytí: příkazů/větví a v bezpečnostně kritických doménách MC/DC; sledovatelnost testů k požadavkům.
Zabezpečení RTOS a plánování úloh
- Izolace vláken: využití oblastí MPU na úrovni úloh; kontrola přístupu k periferiím prostřednictvím systémových volání.
- Ochrany běhového prostředí: ochranné hodnoty zásobníku (stack canaries), W^X, watchdog, ASLR tam, kde je podporováno (na MCU často s omezeními).
- Bezpečné IPC: fronty se značkami integrity, ověřování identity komunikujících úloh.
Provozní zabezpečení: protokolování, telemetrie a reakce na incidenty
- Bezpečné protokoly: neobsahují tajné klíče, minimalizují osobní údaje (PII); jejich integrita je kryptograficky chráněna.
- Detekce anomálií: limity chyb, selhání navázání spojení, neobvyklá latence; při podezření přechod do místního „bezpečného režimu“.
- Proces PSIRT: příjem hlášení, hodnocení CVSS, náprava, servisní bulletiny, koordinované zveřejňování informací.
Ochrana soukromí a regulace
Zařízení pracující s osobními údaji musí dodržovat zásady ochrany soukromí již od návrhu: minimalizaci sběru, pseudonymizaci/anonimizaci, dobu uchovávání dat a práva subjektů údajů (GDPR). Soulad dokládejte pomocí DPIA, mapujte datové toky a uplatňujte ISO/IEC 27701 pro PIMS.
Bezpečná výroba a personalizace zařízení
- Zavádění klíčů: zabezpečená výrobní linka, HSM, oddělení rolí; jedinečné identity zařízení (certifikáty X.509, klíče ECDSA).
- Testování a kalibrace: bez úniku tajných údajů, ladicí rozhraní je chráněno a po výrobě uzamčeno.
- Evidence a dohledatelnost: spárování SBOM/verze firmwaru se sériovým číslem, auditovatelné záznamy.
Metriky vyspělosti a připravenost na audit
- Model vyspělosti: definujte úrovně (ad hoc → řízené → měřené → optimalizované) podle procesů SDL, testování a reakce na zranitelnosti.
- KPI: MTTR při řešení zranitelností, podíl pokrytí pravidel MISRA/CERT, procento komponent s aktuálními závislostmi, počet zjištěných chyb na KLOC.
- Interní audity: pravidelné kontroly shody artefaktů (plány, rizika, testy, SBOM, podpisy sestavení) a připravenosti na certifikace.
Kontrolní seznam pro projekt vestavěného systému
- Vybrány relevantní standardy (IEC 62443, ISO/SAE 21434 atd.) a definován rozsah shody.
- Provedena analýza hrozeb (STRIDE/TARA) a jejich mapování na požadavky.
- Navržena architektura s izolací, minimálními oprávněními a definovaným TCB.
- Zaveden SDL: pravidla pro kód (MISRA/AUTOSAR/CERT), povinné revize a statická analýza.
- Implementován secure boot, správa klíčů a bezpečné OTA (A/B, ochrana proti návratu k předchozí verzi).
- Vytvořen SBOM, zaveden SLSA a podepisování sestavení.
- Testy: fuzzing, penetrační testy, WCET, pokrytí, HIL; doloženy výsledky.
- Provozní zabezpečení: protokolování, telemetrie, PSIRT, politika EOL.
- Soulad s požadavky na ochranu soukromí (GDPR, ISO/IEC 27701) a s oborovými předpisy.
- Příprava na audit: úplná sledovatelnost požadavků a důkazních artefaktů.
Závěr
Bezpečnostní standardy ve vývoji vestavěných systémů nejsou překážkou kreativity, ale násobitelem kvality. Přinášejí jednotný rámec pro řízení rizik, zvyšují odolnost vůči útokům i chybám a zjednodušují audit i certifikaci. Klíčová je důslednost: začít analýzou hrozeb, promítnout požadavky do architektury a kódu, ověřit je testy a udržovat zabezpečení po celou dobu životního cyklu zařízení.
