This ENISA study introduces good practices for IoT security, with a particular focus on software
development guidelines for secure IoT products and services throughout their lifetime.
Establishing secure development guidelines across the IoT ecosystem, is a fundamental
building block for IoT security. By providing good practices on how to secure the IoT software
development process, this study tackles one aspect for achieving security by design, a key
recommendation that was highlighted in the ENISA Baseline Security Recommendations study
which focused on the security of the IoT ecosystem from a horizontal point of view.
Software lies at the core of every IoT system and service, enabling their functionality and
providing value added features. The firmware of IoT devices, implementations of IoT
communication protocols and stacks, Operating Systems (OSs) for IoT products, Application
Programming Interfaces (APIs) supporting interoperability and connectivity of different IoT
services, IoT device drivers, backend IoT cloud and virtualization software, as well as software
implementing different IoT service functionalities, are some examples of how software provides
essence to IoT. Due consideration to supply chain issues, including integration of software and
hardware, is given.
Making use of secure Software Development Life Cycle (SDLC) principles is an effective and
proactive means to avoid vulnerabilities in IoT and thus assist in developing software
applications and services in a secure manner. Several security challenges of the IoT can be
addressed by establishing a baseline of secure development guidelines, such as checking for
security vulnerabilities, secure deployment, ensuring continuity of secure development in cases
of integrators, continuous delivery etc.
It is therefore important to analyze the relevant IoT cybersecurity threats and accordingly to set
forward security measures and specific secure development guidelines to avoid common
software vulnerabilities deriving from insecure practices that might be followed throughout the
SDLC (requirements analysis, software design, software development, implementation,
deployment, integration, maintenance and disposal).
The main contributions of the study include:
x Analysis of security concerns in all phases of IoT SDLC and key points to consider.
x Detailed asset and threat taxonomies concerning the IoT secure SDLC.
x Concrete and actionable good practices to enhance the cybersecurity of the IoT SDLC.
x Mapping of ENISA good practices to related existing standards, guidelines and
The study underlines the need to consider end-to-end IoT security, not only focusing on smart
devices, network protocols and communications, but also taking a step back and methodically
integrating cybersecurity by design principles throughout the software development lifecycle
The study is mainly targeted at IoT software developers, integrators and platform and system
engineers and aims to serve as a point of reference for secure IoT development. Security
considerations and guidelines for all phases of software development are provided, starting from
requirements, software design and development/implementation, all the way to testing and
acceptance, integration and deployment, as well as maintenance and disposal.