Hoppa till huvudinnehåll

Dokumentation, användarinformation och SBOM

Vad CRA förväntar sig att se

CRA blir tre konkreta "dokumentationsoutput":

  1. Teknisk dokumentation (technical file)
    Krävs av Artikel 31 och specificeras i Bilaga VII. Det är det strukturerade evidenspaketet för conformity assessment och market surveillance.
  2. Användarriktad säkerhetsinformation och instruktioner
    Krävs av Bilaga II. Det operatörer/kunder behöver för att använda produkten säkert (inkl. uppdateringsinstruktioner och supportperiod).
  3. Software Bill of Materials (SBOM)
    Krävs av Bilaga I, del II(1) och refereras igen i Bilaga VII(8) (tillgänglig för myndigheter på begäran).

Nyckelpunkten: CRA handlar inte bara om "var säker"; det är "var säker och kunna bevisa det med konsekvent, versionerad evidens".


1) Teknisk dokumentation (technical file)

1.1 Juridiska ankare du måste mappa mot ditt evidenspaket

  • Artikel 31(1) kräver att technical documentation anger medlen som säkerställer att PDE uppfyller de väsentliga cybersäkerhetskraven (bilaga I).
  • Artikel 31(2) kräver att technical documentation hålls uppdaterad.
  • Artikel 13(13) kräver att technical documentation och EU declaration of conformity hålls tillgängliga för marknadskontroll i minst 10 år efter marknadsföring, eller under supportperioden – det som är längst.
  • Bilaga VII ger minimikraven på innehåll.

Vad detta betyder för inbyggda team: behandla technical file som ett versionerat, reproducerbart "release-evidence-paket" knutet till varje levererad firmware/hårdvaruvariant.


1.2 Minimiinnehåll i technical file (Bilaga VII) – översatt för inbyggt

Nedan mappas Bilaga VII till vanliga leverabler för inbyggt (MCU/SoC + RTOS + bootloader + ev. cloud/app).

(1) Allmän produktbeskrivning

  • Avsett syfte och driftsmiljö (konsument / industri / säkerhetsnära begränsningar).
  • Mjukvaruversioner som påverkar compliance (t.ex. MCUboot-version, Zephyr-baseline, kryptobibliotek, radiostack-versioner).
  • Hårdvarufoton/markeringar/intern layout (för kort/moduler: etiketter, revisions-ID, nyckelgränssnitt; inkludera minst det en granskare behöver för att identifiera enheten).
  • Hänvisning till användarinformation och instruktioner (Bilaga II).

(2) Processer för design, utveckling, produktion + sårbarhetshantering

  • Arkitekturbeskrivning med komponentgränser och trust boundaries:
    • Boot chain (ROM → 1st stage → MCUboot → app)
    • Secure/non-secure-värld (TrustZone-M / TrustZone-A om finns)
    • Nyckellagring + livscykelstatus (OTP/fuses/secure element/PUF/"sealed" flash)
    • Remote data processing (om produkten är beroende av det för funktioner)
  • Specifikation av sårbarhetshantering:
    • intake-kanal, triage, fix-workflow, release, advisory-publicering
    • hänvisning till policy för coordinated disclosure (var den publiceras)
    • säker distribution av uppdateringar (hur du hindrar skadliga uppdateringar)

(3) Kontroll av design- och utvecklingsändringar

  • Change-control-process för:
    • säkerhetsrelevanta konfigändringar
    • kryptoförändringar (algoritmer, nyckelstorlekar, trust anchors)
    • ändringar i uppdateringspipeline (signeringsnycklar, metadataformat, update endpoints)
  • Evidens: spårbara ändringsposter (tickets/PR:er) länkade till releaser.

(4) Riskbedömning och riskmitigering

  • Riskbedömning som täcker:
    • tillgångar (hemligheter, säkerhetsfunktioner, tillgänglighet, IP)
    • angripare (remote, lokal, insider, supply-chain)
    • attackytor (nätverk, debug, uppdateringsväg, fysiska portar, flyttbart media)
  • Länka varje risk till mitigeringar och till bilaga I-krav.

(5) Harmoniserade standarder / common specifications som används (om några)

  • Lista standarder du påstår konformitet med och omfattning:
    • t.ex. ETSI EN 303 645 för konsument-IoT-baseline
    • IEC 62443-4-2 för tekniska säkerhetskrav (komponentnivå)
    • NIST SSDF för SDL-struktur (processevidens)
  • Om du inte tillämpar en standard, dokumentera alternativ och motivering.

(6) Testrapporter och resultat

För inbyggt inkluderar säkerhetsrelevant test typiskt:

  • negativa tester för secure boot (fel signatur, rollback-försök, korrupt header)
  • robusthetstester för uppdatering (strömavbrott under swap, avbruten nedladdning)
  • protokollfuzzning på parsers/state machines (host-harness + HIL-smoke)
  • statisk analys för kritiska moduler (parsers, auth, kryptoanvändning)
  • sammanfattning av penetrationstest (efter exponering/klass)

(7) EU declaration of conformity

  • Lagrats med technical file, länkat till produkt-ID och mjukvaruversioner.

(8) SBOM tillgänglig för marknadskontroll

  • SBOM förberedd och tillhandahålls på motiverad begäran (Bilaga VII(8)).

1.3 Spårbar evidensmodell (gör revision enkelt)

Huvudjobbet är att få varje påstående att spåra till en build och en enhetsvariant.

Praktiskt tips: ha en evidence-index.yaml per release med exakta sökvägar + hashar för varje evidenspost.

Exempel (minimal):

release_id: "prodX-1.2.0+build.458"
hardware_variants:
- sku: "GW-MCXN-RevB"
hw_rev: "B"
secure_boot: "mcuboot-rsa3072"
artifacts:
firmware_image:
file: "artifacts/gw-mcxn/app_signed.bin"
sha256: "..."
sbom:
file: "sbom/gw-mcxn-1.2.0.cdx.json"
sha256: "..."
test_report:
file: "tests/security/update-powercut-report.md"
sha256: "..."

2) Användarriktad säkerhetsinformation (Bilaga II)

Bilaga II är inte marknadsföring; det är operativ säkerhetsvägledning.

Minst bör instruktionerna täcka (Bilaga II):

  • produkt- och tillverkaridentitet och kontaktuppgifter,
  • kontaktpunkt för sårbarhetsrapportering (och var den publiceras),
  • avsett syfte samt grundläggande funktioner och säkerhetsegenskaper,
  • säker installation/konfiguration/drift,
  • hur man tar emot/verifierar/installerar säkerhetsuppdateringar,
  • supportperiod för säkerhetsuppdateringar,
  • viktiga begränsningar/antaganden för att förbli säker.

Inbyggda förväntningar (vad som ser bra ut):

  • Uppdaterings-UX är tydligt: "hur triggar jag en uppdatering?", "hur ser jag status?", "vad händer vid fel?", "hur återställer jag?"
  • Säkerhetsställning är tydlig: vilka tjänster exponeras, vilka är avstängda, default credential-policy (helst: inga), debug-läge i produktion.
  • Scope-gräns tydlig: vad som ligger inom produktens ansvar vs extern infrastruktur (gateways, mobilappar, molnendpoints).

3) SBOM under CRA (vad det är och inte är)

3.1 Vad CRA uttryckligen kräver

Bilaga I, del II(1): tillverkaren ska ta fram en SBOM som täcker minst toppnivåberoenden, i ett vanligt maskinläsbart format.
Bilaga VII(8): SBOM ingår i technical documentation och ska tillhandahållas myndigheter på motiverad begäran.

Bilaga II(9) lägger till: om du väljer att göra SBOM tillgänglig för användare ska du ange var den finns.

Viktigt: CRA kräver inte "publicera hela SBOM öppet". Det kräver att du har en, håller den konsekvent och kan lämna den till myndigheter.


3.2 SBOM-scope för inbyggt (vad som bör ingå)

För firmwareprodukter bör en "audit-proof" SBOM typiskt innehålla:

  • Boot chain-komponenter
    • ROM-antaganden (dokumenterade, ingen mjukvarukomponent)
    • 1st stage-bootloader (om tillämpligt)
    • MCUboot + konfiguration (signaturschema, rollback-policy)
  • RTOS och middleware
    • Zephyr/FreeRTOS-version + modulhashar
    • nätverksstackar (TCP/IP, TLS/DTLS, CoAP/MQTT, BLE)
    • kryptobibliotek (mbedTLS, TinyCrypt, PSA crypto, vendor HAL crypto)
  • Applikationskomponenter
    • protokollparsers, managementgränssnitt (mcumgr/DFU), device management-agent
  • Build-verktyg som påverkar binären
    • kompilator/toolchain-version, länk-skript, code generators (där relevant)

Tumregel: om en komponent kan introducera en sårbarhet i den levererade binären (eller i uppdateringspipen som producerar den) hör den hemma i SBOM eller i en tydligt länkad "build BOM".


3.3 SBOM-genereringspipeline (rekommenderad)

Best practice för varianter: generera en SBOM per build-target (SKU / SoC / feature set), eftersom inbyggda varianter ofta kompilerar in/ut olika stackar (BLE, Wi-Fi, cellular, secure element-drivrutiner osv.).


3.4 Om VEX (nyttigt, men inte CRA-nyckelord)

CRA kräver sårbarhetshantering och SBOM; den kräver inte ett specifikt "VEX"-format.
I praktiken är dock en VEX-liknande förklaring det renaste sättet att ange varför en CVE gäller eller inte för just din build.

Om du använder VEX, håll den strikt:

  • identifiera komponent + version
  • ange affected / not affected / under investigation
  • förklara villkoret (feature ej byggd, kodväg oåtkomlig, patchad downstream etc.)
  • länka till exakt build/SBOM-ID

Minimal, revisionsklar "documentation pack" (inbyggt-vänlig)

En struktur som mappar snyggt till Bilaga VII och klarar varianter:

  1. 00-index/
    • evidence-index.yaml (release-ID, hashar, varianter)
  2. 01-product-description/
    • SKU:er, hårdvarurevisioner, avsett bruk, stödda miljöer
  3. 02-architecture-and-threat-model/
    • kontextdiagram, trust boundaries, boot chain, dataflöden
  4. 03-risk-and-requirements/
    • riskbedömning, bilaga I-mapping, lista över säkerhetskrav
  5. 04-sdl-and-testing/
    • SDL-beskrivning, planer och resultat för säkerhetstester, fuzz-notes
  6. 05-production-provisioning-updates/
    • provisioningprocedur, nyckelhantering, uppdateringsdistribution och recovery
  7. 06-sbom-and-vuln-handling/
    • SBOM:ar, process för sårbarhetsintag, advisory-mallar
  8. 07-user-facing-info/
    • säkerhetsguide för användare/admin, uppdateringsinstruktioner, supportperiod

Vanliga problem (och hur man undviker dem)

Använd som "pre-audit sanity check".

  1. "Vilken exakt sak är produkten?"
    Inbyggt är ofta enhet + app + gateway + moln. Utan definierad gräns blir dokumentationen inkonsekvent.
  2. Firmwarevarianter exploderar evidensmängden.
    Olika radio/crypto/secure element → olika SBOM:ar och tester. Planera variantmodell tidigt.
  3. SBOM finns men kan inte bevisas matcha levererad binär.
    Lös med immutable artifact storage + evidence-index + reproducible build-krav.
  4. Uppdateringsinstruktioner är vaga.
    Bilaga II kräver tydliga steg och fel/återställningsbeteende, inte bara "stödjer OTA".
  5. Nyckelhantering är "stamkunskap".
    Provisioning och signering är kärnan för compliance; dokumentera vem som får signera, var nycklar lever och hur rotation/revokation sker.
  6. Säkerhetstest-evidens är inte kopplad till release.
    "Vi fuzzade en gång" är inte evidens. Knyt resultat till release-ID och lagra rapporter immutabelt.
  7. Supportperioden är inte konkret.
    Om supportperiod är oklar faller de operativa kraven. Sätt den i produktmaterial och device-metadata där möjligt.

Referenser (primära källor)

[1]: Regulation (EU) 2024/2847 (Cyber Resilience Act), EUR-Lex (konsoliderad text) - Artiklarna 13 och 31; Bilagor I, II, VII: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R2847

Dela den här sidan

Dela på LinkedIn