iot-security-checklist-v1.1.0
iot-security-checklist-v1.1.0
December 2022
v1.1.0
Changelog
v1.1.0
- Q10: Add key generation offline, in production, as a measure against low randomness.
- Deleted Q27, which was similar to Q23.
- Fixes typo.
1
Driven by trends such as Industry 4.0 and digital twins, new technology paradigms are
appearing in most industry domains, such as decentralized architectures, interconnected
wireless devices across layers, edge-to-cloud communication and general-purpose
components from a variety of vendors. This shift of paradigm introduces new attack surfaces
for attackers to explore and poses a serious risk, especially in the context of critical
infrastructure.
Research has shown countless of times vulnerabilities found in IoT devices are often easily
exploitable even by inexperienced attackers while sometimes having a huge impact. This
document aims at helping manufacturers and integrators to tackle those low hanging fruits. It
can also be used by companies to quickly evaluate a product’s security features or to establish
procurements.
This checklist is also part of the wider project “Security Checklists” which aims at providing
checklists that help dealing with security in different domains. The objective is not to provide
exhaustive checklists, but rather to highlight the most common issues in a particular domain.
They can for instance be used as a ground for discussion about security in a project, and we
thus advise on doing so from the beginning.
This document is a deliverable of the Ragnarok project at SINTEF which focuses on (I)IoT
security.
2
Checklist
The IoT Security checklist is a questionnaire-like document to be used for a self or guided
assessment of an IoT device. The objective is to raise awareness on specific weaknesses. It
aims to be domain agnostic. The questions come from both our experience working with IoT
devices and guidelines such as the “Baseline Security Recommendations for Internet of Things
in the context of critical information infrastructures” from ENISA.
Following the example of the OWASP Application Security Verification Standard, three levels
are defined:
■ Level 1: Level 1 is the bare minimum security IoT devices should strive for. Complying with
this level should counter attackers who are using simple and low effort techniques to identify
easy-to-find and easy-to-exploit vulnerabilities. In the case the IoT device is processing
sensitive data or critical for operation, you probably don’t want to stop at this level.
■ Level 2: Level 2 aims to defend against the most common risks associated with IoT devices
today. It is appropriate for devices processing healthcare data or other sensitive assets.
Threats to level 2 are typically skilled and motivated attackers focusing on specific tools and
techniques that are effective to discover and exploit weaknesses within application. Aiming at
this level should be enough for most devices.
■ Level 3: Level 3 is typically reserved for devices requiring a significant level of security
verification, such as in the military, health and safety or critical infrastructure domains. If you
think your device must comply with level 3, then this checklist won’t be enough in itself (it can
provide a good start though) and you probably want to also look at IoT certification schemes
such as Common Criteria, FIPS-140 or PSA Certified.
Hardware
3
tamper proofing mechanisms1 can however discourage or slow down certain attackers.
Tamper proofing should not rely on network connectivity.
■ Q4. Is the device designed to make it difficult to access pins and electrical traces?
An attacker can easily probe a microcontroller’s pins if they are exposed (through TSOP chip
package for instance). Prefer BGA package when possible and avoid exposing electrical traces
on the PCB.
Software
1 See Practical Secure Hardware Design for Embedded Systems, by Joe Grand, for more information.
4
■ Q10. How is the cryptographic material generated?
It is important that the cryptographic material is generated in such a way it cannot be guessed
by an attacker. In practice, it means using a TRNG or a PRNG2 with proper seed. An example
of what not to do would be for instance to generate the device’s key simply by hashing the
device’s ID. In practice, to avoid not having enough randomness on the device, device-specific
keys can be generated offline, during production.
■ Q11. Are you using a secure cipher suite (strong encryption algorithms and strong keys)?
An attacker could take advantage of a weak mode of operation to misuse the system (if for
instance AES ECB is used, one could gain information, or try to perform replay attacks).
■ Q14. Does the firmware contain any sensitive data (e.g. Hardcoded credentials)?
If it is the case, an attacker who gets his hand on a firmware file can retrieve the credentials
and potentially compromise the ecosystem at scale.
■ Q15. Are there any mechanisms to prevent against weak, null, or blank credentials?
Such weak credentials allow an attacker to easily gain access to a device and/or service.
■ Q16. Do you have mechanisms to isolate privileged code, processes, and data from
portions of the firmware that do not need to access them?
This prevents an attacker who can inject unauthorized code into a running “process” to access
sections of the firmware that contain sensitive data (such as cryptographic material).
Communication
5
microcontroller and a modem) requires very little knowledge and equipment, it is thus
important to ensure that no sensitive information can be accessed/tampered with there.
■ Q18. Is the technology/protocol used for wireless communications secure in your use
case?
Some protocols might have a secure configuration, but it might impossible to reach such a
configuration in your use case: for instance, while Bluetooth can be secure, if there is no way
to establish a secure key exchange during pairing (using a pin for instance), there will be a risk
of Man in the Middle attack (MitM).
Infrastructure
■ Q22. If you have an OTA firmware update mechanism, is the update server secure?
An insecure update server could result in device compromission at scale (an attacker
uploading its own modified firmware for instance).
6
■ Q25. Is the backend infrastructure prepared to handle data flooding?
An attacker who compromised one or more devices could start sending data to the backend
at a much higher rate than expected. If the data is accepted by the backend, depending on
the configurations, this could lead to data loss or extra costs (when using databases from a
third-party cloud provider for instance). Having DDoS protection and load balancer is
important to prevent this as well.
Generic considerations
■ Q28. Have you considered the operational consequences of one device being
compromised? What about N devices?
While a single device being compromised might not have a big operational impact, a few
devices could start to have an operational impact depending on the use case.
■ Q29. Are you collecting and storing only the minimum data required?
In the case of a device collecting data, it is important to minimize the data collected and
retained (especially in the case of personal data).
Additional resources
https://www.enisa.europa.eu/publications/hardware-threat-landscape
https://www.enisa.europa.eu/publications/baseline-security-recommendations-for-iot
https://github.com/OWASP/ASVS
7
Technology for a better society