2026-05-04·14 min read·

ENISA Secure by Design Playbook 2026: 22 Principles Mapped to CRA Annex I for EU Developers

Post #830 in the sota.io EU Compliance Series

The Cyber Resilience Act (CRA) takes full effect in stages through 2026 and 2027. Products with digital elements placed on the EU market must satisfy the essential cybersecurity requirements in CRA Annex I. ENISA — the EU's cybersecurity agency — has published Secure by Design guidance that translates those requirements into actionable engineering principles.

The result is a set of 22 principles that map directly onto CRA Annex I Part I (essential product requirements) and Part II (vulnerability handling requirements). For EU software teams, understanding this mapping is the difference between a compliance programme built on guesswork and one built on a repeatable engineering framework.

This guide walks through all 22 principles, their CRA Annex I mapping, what each means concretely for your codebase, and where EU-native infrastructure removes obligations that US-hosted deployments cannot satisfy.

Why Secure by Design Matters for CRA

CRA Annex I Part I, paragraph 1 opens with the obligation that products "shall be designed, developed and produced in such a way as to ensure an appropriate level of cybersecurity based on the risks." This is not a checklist tick — it is a process requirement. You must be able to demonstrate that security was built in from the design phase, not bolted on after.

ENISA's Secure by Design framework provides the documented process that satisfies this obligation. National market surveillance authorities auditing CRA compliance will look for evidence of design-phase security decisions. ENISA's 22 principles are the vocabulary of that evidence.


Part I: Product Essential Requirements — Design Principles 1–13

CRA Annex I Part I lists the essential cybersecurity properties that all products with digital elements must demonstrate. The following principles map to specific Annex I Part I requirements.

Principle 1 — Minimise Attack Surface

CRA Annex I Part I mapping: Requirement to "not be placed on the market with known exploitable vulnerabilities" and to "have a minimal attack surface."

Every interface, port, protocol, library, and service that your product exposes is potential attack surface. Attack surface minimisation means systematically eliminating exposure that is not necessary for the product's function. Unused ports closed. Unused API endpoints removed or disabled by default. Third-party dependencies audited and pruned. Internal services not externally exposed.

For EU SaaS products: if your product runs on a shared US-hosted platform, the attack surface includes the platform provider's control plane — and any US legal process served on that provider can reach your deployment. EU-native infrastructure with dedicated isolation (no shared tenant control planes) reduces this structural attack surface.

Practical implementation:

Principle 2 — Establish Secure Defaults

CRA Annex I Part I mapping: Requirement to be "delivered with a secure default configuration, including the possibility to reset the product to its original state."

Secure defaults mean that a developer who deploys your product without reading the security documentation arrives at a secure state. Authentication enabled. Unnecessary features disabled. Verbose error messages suppressed. Admin interfaces accessible only from designated networks.

CRA enforcement will scrutinise default configurations. An auditor who can access an admin panel without credentials in a default deployment will trigger a finding regardless of what the security documentation says about disabling it.

Practical implementation:

Principle 3 — Apply Least Privilege

CRA Annex I Part I mapping: Requirement that products "protect the confidentiality, integrity and availability of data" and "restrict access control."

Every component, service, and user in your system should operate with the minimum permissions required to perform its function. Database service accounts with read-only access to the tables they query. Lambda functions with IAM policies scoped to the specific S3 bucket they write. Service-to-service calls authenticated and authorised to the specific operations required.

Overprivileged services are the primary reason that single-component compromises escalate to full data breaches. CRA Annex I requires that you limit the blast radius of incidents — and least privilege is the engineering mechanism for doing so.

Practical implementation:

Principle 4 — Apply Defence in Depth

CRA Annex I Part I mapping: Requirement to "limit the impact on other services or devices" and protect availability.

No single security control is sufficient. Defence in depth requires layered controls such that the failure or bypass of any single layer does not result in a breach. Network controls (firewall rules, VPC isolation), application controls (input validation, authentication), data controls (encryption, access logs), and operational controls (alerting, response playbooks) must all be present and independent.

Practical implementation:

Principle 5 — Fail Securely

CRA Annex I Part I mapping: Requirement to "protect the availability and integrity of data" and prevent unintended data exposure.

When your product encounters an error condition — network timeout, unexpected input, hardware failure, dependency unavailability — it must fail in a state that does not expose sensitive data, grant unintended access, or corrupt data. A failed authentication attempt should return a generic error, not a stack trace. A failed database transaction should roll back completely, not persist partial state.

Practical implementation:

Principle 6 — Protect Data at Rest and in Transit

CRA Annex I Part I mapping: Requirement to "protect the confidentiality of data, for instance by encrypting relevant data at rest and in transit."

All sensitive data must be encrypted at rest with keys managed outside the data store. All data in transit must use current TLS versions (TLS 1.2 minimum, TLS 1.3 preferred) with valid certificates from trusted CAs. This is stated explicitly in CRA Annex I and leaves no room for interpretation.

For EU developers using US-hosted infrastructure: encryption at rest does not protect against compelled disclosure under the US CLOUD Act. The encryption keys are managed by or accessible to the US-jurisdiction provider. Genuine confidentiality protection requires infrastructure where the key management system itself is outside US legal reach.

Practical implementation:

Principle 7 — Minimise and Control Third-Party Dependencies

CRA Annex I Part I mapping: Requirement that products be delivered "without known exploitable vulnerabilities," covering the entire supply chain.

Every third-party dependency is a potential vulnerability source. CRA Annex I requires that you address vulnerabilities — including those inherited from dependencies — through security updates distributed without delay. Dependency management is therefore not optional maintenance: it is a CRA essential requirement.

Practical implementation:

Principle 8 — Implement Strong Authentication

CRA Annex I Part I mapping: Requirement to "protect against unauthorized access" through access control.

Authentication is the gateway to access control. CRA Annex I requires that products restrict access to authorised users and services. Weak authentication — default credentials, weak password policies, no MFA for admin access — directly violates this requirement.

Practical implementation:

Principle 9 — Implement Access Control

CRA Annex I Part I mapping: Requirement to "limit the blast radius" of security incidents and restrict access to what is necessary.

Authentication establishes identity. Access control determines what authenticated identities may do. Both are required. Role-based access control (RBAC) or attribute-based access control (ABAC) must be implemented consistently across all interfaces — not only the user-facing frontend but also API endpoints, administrative interfaces, and internal service calls.

Practical implementation:

Principle 10 — Protect Against Injection Attacks

CRA Annex I Part I mapping: Requirement that products be protected against "common vulnerabilities" as referenced in CRA recitals and ENISA guidance.

SQL injection, command injection, LDAP injection, and cross-site scripting (XSS) remain the most common categories of exploitable vulnerability in web-facing software. CRA Annex I requires that products not be placed on the market with known exploitable vulnerabilities — and these vulnerability classes are well-known, well-documented, and have known mitigations.

Practical implementation:

Principle 11 — Implement Secure Logging and Monitoring

CRA Annex I Part I mapping: Requirement to "record and/or monitor relevant internal activity, including access to or modification of data, services or functions."

CRA Annex I explicitly requires audit logging capability. Logs must capture who accessed what data, when, and what operations were performed. This overlaps with GDPR Art.30 records of processing activity and Art.32 security measures, but CRA adds the specific product-level requirement that the logging capability be built into the product, not just implemented in operations.

Practical implementation:

Principle 12 — Implement Secure Error Handling

CRA Annex I Part I mapping: Intersects with the prohibition on "known exploitable vulnerabilities" — verbose error messages are themselves exploitable information.

Error messages visible to end users must not expose stack traces, database schemas, internal service addresses, or other information that assists attackers. Error messages in logs must capture enough context for debugging without embedding PII, credentials, or secrets.

Practical implementation:

Principle 13 — Protect Availability

CRA Annex I Part I mapping: Requirement to "protect the availability and integrity of data and services."

Availability protection includes rate limiting to prevent abuse, graceful degradation under load, and resilient architecture that prevents single component failure from cascading to full service unavailability. For products where availability is safety-critical (medical devices, industrial control systems), additional requirements apply — but for SaaS products, the baseline CRA requirement is that availability protection mechanisms exist.

Practical implementation:


Part II: Vulnerability Handling Requirements — Principles 14–22

CRA Annex I Part II governs how products handle vulnerabilities once discovered. These are distinct from the product design requirements in Part I.

Principle 14 — Identify and Document Vulnerabilities

CRA Annex I Part II mapping: Requirement to "identify and document vulnerabilities and components contained in the product, including by drawing up a software bill of materials."

SBOM generation is now a legal requirement under CRA for products placed on the EU market. The SBOM must be in a machine-readable format (CycloneDX JSON or SPDX RDFXML are the ENISA-recommended formats). It must document all components — including open source libraries — at a granularity sufficient to identify affected components when a vulnerability is disclosed.

Practical implementation:

Principle 15 — Address Vulnerabilities Without Delay

CRA Annex I Part II mapping: Requirement to "address and remediate vulnerabilities without undue delay."

CRA does not define a specific SLA for vulnerability remediation, but "without undue delay" is interpreted by ENISA guidance as:

You must be able to document that you learned of each vulnerability and the timeline from discovery to remediation or documented risk acceptance.

Practical implementation:

Principle 16 — Provide Security Updates

CRA Annex I Part II mapping: Requirement to "make security updates available to users and ensure they can be installed by users."

Security updates must be distributed to users without delay after the vulnerability is addressed. For SaaS products where updates are applied server-side, this is straightforward — but your deployment process must ensure updates are applied to user-facing production systems, not just released to a package registry.

Practical implementation:

Principle 17 — Implement Coordinated Vulnerability Disclosure

CRA Annex I Part II mapping: Requirement to "put in place and enforce a policy on coordinated vulnerability disclosure."

CRA requires a coordinated vulnerability disclosure (CVD) policy — meaning that when someone reports a vulnerability in your product, you have a defined process for receiving, triaging, fixing, and disclosing it. The CVD policy must be publicly accessible.

ENISA's guidance points to ISO/IEC 29147 as the reference standard for CVD policy structure.

Practical implementation:

Principle 18 — Report Actively Exploited Vulnerabilities to ENISA

CRA Annex I Part II mapping: Requirement to "report to ENISA any actively exploited vulnerability contained in the product."

This is one of the more operationally demanding CRA requirements. Within 24 hours of discovering that a vulnerability in your product is being actively exploited in the wild, you must notify ENISA via the Single Reporting Platform. Within 72 hours, you must submit an early warning. Within 14 days, a final report.

For most SaaS products, this obligation will be rare — but the process must exist before you need it.

Practical implementation:

Principle 19 — Provide a Vulnerability Contact Point

CRA Annex I Part II mapping: Requirement to "provide a single point of contact for the reporting of vulnerabilities."

Users, researchers, and authorities must be able to reach you to report vulnerabilities. This contact point must be publicly accessible and maintained for the entire supported lifetime of the product.

Practical implementation:

Principle 20 — Maintain Secure Update Mechanisms

CRA Annex I Part II mapping: Requirement to "ensure that security updates are distributed in a timely manner and, where technically feasible, automatically."

The update mechanism itself must be secure. Software updates delivered over insecure channels, with unsigned packages, or without integrity verification create a supply chain attack vector. CRA requires that the mechanism for distributing security updates is protected against tampering.

Practical implementation:

Principle 21 — Maintain Software Bill of Materials

CRA Annex I Part II mapping: Explicit requirement to draw up and maintain a software bill of materials.

The SBOM obligation under CRA Part II is separate from the inventory discipline described in Principle 14. CRA requires that the SBOM be available to market surveillance authorities on request. For enterprise SaaS products, customers may also contractually require SBOM access as part of their own supply chain due diligence.

Practical implementation:

Principle 22 — Disclose End-of-Life Security Status

CRA Annex I Part II mapping: Requirement to "provide security support for products placed on the EU market, including information on end-of-life."

When a product or product version reaches end of life, users must be notified of: when security support ends, what the migration path is, and what risks they accept by continuing to use an unsupported version. Silently abandoning product versions that remain in production violates CRA Part II.

Practical implementation:


CRA Annex I: Quick Reference Mapping Table

PrincipleCRA Annex I LocationRisk if Absent
1. Minimise attack surfacePart I, §1(a)Exploitable interfaces increase breach probability
2. Secure defaultsPart I, §1(b)Misconfigured deployments create enforcement liability
3. Least privilegePart I, §1(c)Overprivileged services amplify breach impact
4. Defence in depthPart I, §1(f)Single control bypass = complete compromise
5. Fail securelyPart I, §1(e)Error states expose data or grant access
6. Encrypt data at rest and transitPart I, §1(d)Direct CRA violation; also GDPR Art.32
7. Control third-party dependenciesPart I, §1(a) + Part II, §1(a)Supply chain vulnerabilities = known exploitable
8. Strong authenticationPart I, §1(c)Unauthorised access; direct CRA violation
9. Access controlPart I, §1(c)+(f)Blast radius amplification
10. Injection protectionPart I, §1(a)Known exploitable vulnerability class
11. Logging and monitoringPart I, §1(g)Explicit Annex I requirement; CRA Art.13
12. Secure error handlingPart I, §1(a)Information leakage assists attackers
13. Availability protectionPart I, §1(e)CRA requires availability as essential requirement
14. Document vulnerabilitiesPart II, §1(a)SBOM absence = direct Part II violation
15. Address vulnerabilities without delayPart II, §1(b)Core vulnerability handling obligation
16. Provide security updatesPart II, §1(c)Direct Part II violation
17. Coordinated disclosure policyPart II, §1(d)CRA Art.14 explicit requirement
18. Report to ENISAPart II, §1(e)24-hour notification obligation when exploited
19. Vulnerability contact pointPart II, §1(f)Direct Part II violation
20. Secure update mechanismPart II, §1(g)Supply chain integrity requirement
21. Software bill of materialsPart II, §1(a)Market surveillance authority must have access
22. End-of-life disclosurePart II, §1(h)Users must be notified before support ends

Where EU-Native Infrastructure Reduces Your CRA Obligation

Several of the 22 principles create obligations that are structurally harder to satisfy on US-hosted infrastructure:

Principle 6 (encryption): Encryption at rest using keys managed by a US-jurisdiction provider does not protect against compelled disclosure under the US CLOUD Act. Genuine key isolation requires infrastructure where neither the provider nor US authorities can access your encryption keys without EU legal process. EU-native providers with EU-jurisdiction key management satisfy this; US hyperscalers operating EU regions do not.

Principle 1 (attack surface): Shared control planes, shared tenant infrastructure, and US-operated global services all expand the attack surface beyond your direct control. Dedicated EU-native infrastructure with isolated control planes removes this structural exposure.

Principle 18 (ENISA reporting): If you are running on US infrastructure and discover active exploitation of your product, you have two concurrent notification obligations: ENISA (within 24 hours under CRA) and potentially your US-jurisdiction infrastructure provider's incident response process. These processes may conflict in timing and disclosure requirements.

EU-native hosting removes the jurisdictional conflict and allows you to document a clean line between your product's infrastructure and any US-law access obligations.


Getting Started: A Prioritised CRA Annex I Implementation Order

If you are starting a CRA compliance programme today, ENISA's guidance suggests this prioritisation based on enforcement risk and implementation effort:

Phase 1 (Month 1–2): Foundation

Phase 2 (Month 3–4): Engineering Controls

Phase 3 (Month 5–6): Vulnerability Operations

CRA's phased enforcement means market surveillance activities intensify through 2027. Products placed on the EU market from August 2025 are already subject to CRA obligations for manufacturers. Starting the 22-principle programme now gives EU SaaS teams a 12–18 month runway before active enforcement pressure.


sota.io deploys on EU-only infrastructure with no US parent company — ensuring that your hosting environment itself does not introduce CRA-incompatible jurisdictional exposure. Explore EU-native deployment →

EU-Native Hosting

Ready to move to EU-sovereign infrastructure?

sota.io is a German-hosted PaaS — no CLOUD Act exposure, no US jurisdiction, full GDPR compliance by design. Deploy your first app in minutes.