Key takeaways
- Use the six-phase table as a gap-analysis checklist first, not Annex A's full practice list — identify which phase currently has the thinnest security evidence before diving into all 16 domains at once.
Good Practices for Security of IoT — Secure Software Development Lifecycle, published by the European Union Agency for Cybersecurity (ENISA) in November 2019 (ISBN 978-92-9204-316-2, DOI 10.2824/742784), is a free, 132-page report that turns "secure by design" from a slogan into a phase-by-phase checklist for building IoT software. Its executive summary states the goal directly: establishing "secure development guidelines across the IoT ecosystem" is "a fundamental building block for IoT security," and the report "tackles one aspect for achieving security by design" that ENISA's earlier, more horizontal IoT work had flagged as a gap. The report carries ENISA's standard copyright notice — "reproduction is authorised provided the source is acknowledged" — and states it "must be accessible free of charge."
Six SDLC phases, plus a cross-cutting security layer
Section 1 of the report notes that when ENISA's consulted experts were asked how many phases the SDLC comprises, "the vast majority of them considered that the SDLC comprises up to six phases." Section 2 addresses each in turn:
| Phase | Core security focus, per the report |
|---|---|
| Requirements | Identify security requirements alongside business/functional ones from the start; use threat modelling (commonly STRIDE) and quality gateways/bug bars to keep security requirements testable and traceable; consider hardware implications (e.g. a secure-boot requirement implying a need for a hardware security module) |
| Software Design | Translate requirements into architecture using a risk-based approach; refine threat models and run attack-surface analysis; apply the CIA triad plus, for IoT specifically, safety implications from the cyber-physical boundary (sensors/actuators) |
| Development/Implementation | Use trusted security libraries and frameworks, OS/protocol built-in security functions, secure coding guidelines, and checks on external dependencies before and during use |
| Testing and Acceptance | Combine automated and manual testing, static and dynamic analysis, fuzzing and penetration testing; code review catches vulnerabilities (e.g. logic bombs) other techniques miss |
| Deployment and Integration | Secure the production environment and integration of all software elements after successful testing and release approval |
| Maintenance and Disposal | Ongoing incident management, vulnerability assessment and secure remote (over-the-air) update delivery; secure end-of-life disposal with data erasure to prevent leakage of cached sensitive data (health records, Wi-Fi credentials, etc.) |
Section 2.7, "Security in SDLC," layers a cross-cutting discipline on top of all six phases: security maturity assessment (the report names Common Criteria, CMMI, BSIMM, IEC 62443-4-1 and OpenSAMM as reference models), security gates with defined metrics between phases, and continuous documentation management — the report calls documentation "a cross-cutting activity during the SDLC process that is often not considered as essential" despite its role in making a complex IoT build "understandable, traceable, and subject to monitoring and auditing."
Asset and threat taxonomy
Chapter 3 opens with an asset taxonomy (Table 1), grouping what needs protecting into categories including Human Factor (Business Owners/BI analysts, Software Team roles such as Testers/Integrators/Developers/Architects/Designers, Security Team roles such as the CISO/security engineers/penetration testers/incident responders, Operators, End Users, Contractors, and Decision Makers), Software Design assets (business and security requirements, metrics, quality gateways, use cases, specifications, design tools), and Software Development assets (underlying hardware components, firmware, operating systems, compilers and simulation environments). The report is explicit that "the lowest level of the taxonomy is indicative and not exhaustive" — it is a working reference, not a closed list.
Section 3.2 builds a corresponding threat taxonomy, and Section 3.3 grounds both taxonomies in three worked attack scenarios: Insecure Credentials in Embedded Devices, Lack of Flexibility to Secure Communications, and Insecure Software Dependencies in Cloud Services — each walked through to show which assets and SDLC phases a realistic attack chain touches.
16 good-practice domains: People, Processes, Technologies
Section 4.2 explains the methodology behind the report's central deliverable: "extensive desktop research" plus stakeholder interviews produced "a list of 16 domains that provide a comprehensive view of the Secure IoT SDLC landscape," organized into three groups:
| Group | Domains (6, 7 or 3 each) |
|---|---|
| People (3) | Training and Awareness; Roles and Privileges; Security Culture |
| Processes (6) | Third-Party Management; Operations Management; SDLC Methodology; Secure Deployment; Security Design; Internal Policies |
| Technologies (7) | Access Control; Third-Party Software; Secure Communication; Secure Code; Security Reviews; Security of SDLC Infrastructure; Secure Implementation |
Each domain contains individually numbered practices with a short description — for example, under Training and Awareness: PE-01 "define a corporate strategy for specific security training," PE-02 "promote security awareness at all organisation levels," PE-03 assess whether security skills need updating, and PE-04 allocate resources to track emerging security topics. Annex A maps every numbered practice in full detail to the threats and external references it addresses, which is where a team building an actual compliance or audit checklist from this report should start.
Where this report sits relative to other secure-SDLC and IoT standards
ENISA's report is explicitly positioned as one building block among several, not a standalone framework: it names OWASP IoT Top 10, the OWASP Application Security Verification Standard, and the SAFECode Fundamental Practices for Secure Software Development paper among its own supporting references, and Section 2.7 points to IEC 62443-4-1 as one of several maturity models a team can use to benchmark its own secure-development process. A device maker following OWASP's firmware security testing methodology or working toward IEC 62443-4-1 secure-development-lifecycle conformance will recognize most of this report's 16 domains already — ENISA's contribution is organizing them specifically around the IoT asset and threat taxonomy in Chapter 3, rather than introducing a competing scheme. ENISA's 2020 Guidelines for Securing the Internet of Things report, in turn, explicitly builds on this one, extending the same good-practice logic from the software process out to the full physical-and-logical IoT supply chain (semiconductor fabrication, component manufacturing, distribution), and a 2017 ENISA baseline study on IoT security recommendations set the horizontal context both narrower studies refine.
Why this matters for firmware and connected-device teams
No regulation known to us names this specific ENISA report as a required control for any legal duty — treat any claim that following it satisfies a specific regulatory requirement (such as the EU Cyber Resilience Act's secure-development obligations) as to be confirmed against the actual regulatory text, not assumed from this guide. Where the report earns its keep is as a free, structured gap-analysis tool: a team can walk its own six-phase SDLC against the report's 16 domains, see which of the People/Processes/Technologies practices it already has evidence for, and use the gaps to prioritize where a firmware SBOM or dependency review would close the most exposure fastest, since Chapter 3's threat taxonomy consistently ties insecure third-party and legacy dependencies to concrete attack scenarios.
A workable starting point
Use the six-phase table as a gap-analysis checklist first, not Annex A's full practice list — identify which phase currently has the thinnest security evidence before diving into all 16 domains at once. Treat threat modelling as starting in Requirements, not DesignThe report is explicit that threat modelling "starts in the requirements phase with the identification of critical assets and is completed in the software design phase" — teams that defer it to design alone miss the business- and hardware-driven threats requirements analysis is meant to surface. Don't skip Maintenance and Disposal good practicesjust because a product has already shipped — the report flags secure over-the-air update delivery and end-of-life data erasure as ongoing SDLC obligations, not one-time launch tasks. Cross-reference Annex A's standards mapping before building a new checklist from scratch— many of the 16 domains already map to OWASP, SAFECode or IEC 62443-4-1 controls a team may partially satisfy through existing tooling. Pair this report with [ENISA's 2020 supply chain guidelines](/guides/enisa-guidelines-securing-iot-supply-chain/)if third-party hardware or contract manufacturing is involved — this 2019 report's scope stops at the software process; physical supply chain risks (component sourcing, assembly, distribution) are the later report's subject.
SoftWSP's firmware and SBOM review maps a shipped device's actual software composition and known vulnerabilities against the dependency- and update-related gaps this report's SDLC good practices are designed to catch before release: see device & firmware security.
This guide summarises the public ENISA report (© European Union Agency for Cybersecurity (ENISA), 2019; reproduction authorised provided the source is acknowledged); it does not constitute legal or compliance advice.
Sources
- ENISA: Good Practices for Security of IoT — Secure Software Development Lifecycle — publication page
- ENISA: Good Practices for Security of IoT — Secure Software Development Lifecycle, full report PDF (November 2019, ISBN 978-92-9204-316-2, DOI 10.2824/742784)
- ENISA: Baseline Security Recommendations for IoT (2017) — the horizontal study this report builds on
Frequently asked questions
What is ENISA's Good Practices for Security of IoT report?
"Good Practices for Security of IoT — Secure Software Development Lifecycle" is a report published by the European Union Agency for Cybersecurity (ENISA) in November 2019 (ISBN 978-92-9204-316-2, DOI 10.2824/742784), authored by ENISA with an acknowledgements list of over 40 industry and academic contributors (including representatives from ARM, Cisco, Microsoft, Siemens, Kaspersky, OWASP and INCIBE). Per its own executive summary, the study "introduces good practices for IoT security, with a particular focus on software development guidelines for secure IoT products and services throughout their lifetime," targeted mainly at "IoT software developers, integrators and platform and system engineers." It is released under ENISA's standard copyright notice: "Reproduction is authorised provided the source is acknowledged," and the publication itself states it "must be accessible free of charge."
What are the six phases of ENISA's IoT secure SDLC?
Section 1 states that during the study, "the vast majority" of consulted experts considered the SDLC to comprise six phases, which Section 2 then addresses in turn: Requirements, Software Design, Development/Implementation, Testing and Acceptance, Deployment and Integration, and Maintenance and Disposal. Section 2.7, "Security in SDLC," adds a cross-cutting layer on top of all six — security maturity assessment (citing models such as Common Criteria, CMMI, BSIMM, IEC 62443-4-1 and OpenSAMM), security gates and metrics between phases, and ongoing documentation management.
How does the report organize assets and threats?
Chapter 3 provides an asset taxonomy (Table 1) organized into groups such as Human Factor (Business Owners, Software Team roles, Security Team roles, Operators, End Users, Contractors), Software Design assets (requirements, security assessments, design tools) and Software Development assets (underlying hardware/firmware/OS components, guidelines), explicitly noting the taxonomy's lowest level is "indicative and not exhaustive." Section 3.2 then provides a threat taxonomy, and Section 3.3 walks through three worked attack scenarios: Insecure Credentials in Embedded Devices, Lack of Flexibility to Secure Communications, and Insecure Software Dependencies in Cloud Services.
What are the People/Processes/Technologies good practices, and how many are there?
Section 4.2 states that desktop research and stakeholder interviews produced "a list of 16 domains that provide a comprehensive view of the Secure IoT SDLC landscape," grouped into three categories: **People** (3 domains — Training and Awareness, Roles and Privileges, Security Culture), **Processes** (6 domains — Third-Party Management, Operations Management, SDLC Methodology, Secure Deployment, Security Design, Internal Policies), and **Technologies** (7 domains — Access Control, Third-Party Software, Secure Communication, Secure Code, Security Reviews, Security of SDLC Infrastructure, Secure Implementation). Each domain contains individually numbered practices (for example PE-01 through PE-04 under Training and Awareness), with full detail, threat mappings and references collected in Annex A.
How does this relate to ENISA's other IoT security publications?
The report builds on ENISA's 2017 **Baseline Security Recommendations for IoT**, which addressed IoT ecosystem security horizontally; this 2019 study narrows in on the software development process specifically as one building block of that broader security-by-design goal. ENISA's later (November 2020) **[Guidelines for Securing the Internet of Things](/guides/enisa-guidelines-securing-iot-supply-chain/)** report explicitly states it "builds up on" this 2019 SDLC study, extending the lens from the software process to the full physical-and-logical IoT supply chain, including semiconductor fabrication, component manufacturing and distribution stages this 2019 report does not cover.
In this cluster


