Security questions have dogged the Internet of Things (IoT) since before the name was invented. Everyone from vendors to enterprise users to consumers is concerned that their fancy new IoT devices and systems could be compromised. The problem is actually worse than that, as vulnerable IoT devices can be hacked and harnessed into giant botnets that threaten even properly secured networks.
But what exactly are the biggest problems and vulnerabilities to avoid when building, deploying, or managing IoT systems? And, more to the point, what can we do to mitigate these issues?
That’s where OWASP—the Open Web Application Security Project—comes in. In its own words, “The OWASP Internet of Things Project is designed to help manufacturers, developers, and consumers better understand the security issues associated with the Internet of Things, and to enable users in any context to make better security decisions when building, deploying, or assessing IoT technologies.”
OWASP's top 10 IoT vulnerabilities
To that end, on Christmas Day, OWASP released its top 10 IoT vulnerabilities for 2018, complete with an infographic (see below). Let’s take a look at the list, with some commentary:
1. Weak, guessable, or hardcoded passwords
“Use of easily brute-forced, publicly available, or unchangeable credentials, including backdoors in firmware or client software that grants unauthorized access to deployed systems.”
Frankly, this issue is so obvious that I can hardly believe it’s still something we have to think about. I don’t care how cheap or innocuous an IoT device or application may be, there’s never an excuse for this kind of laziness.
2. Insecure network services
“Unneeded or insecure network services running on the device itself, especially those exposed to the internet, that compromise the confidentiality, integrity/authenticity, or availability of information or allow unauthorized remote control.”
This makes sense, but it’s a bit more of a gray area, as it’s not always clear whether those network services are “unneeded or insecure.”
3. Insecure ecosystem interfaces
“Insecure web, backend API, cloud, or mobile interfaces in the ecosystem outside of the device that allows compromise of the device or its related components. Common issues include a lack of authentication/authorization, lacking or weak encryption, and a lack of input and output filtering.”
Again, it’s not always obvious whether the interfaces are actually allowing compromise, but authentication, encryption, and filtering are always good ideas.
4. Lack of secure update mechanisms
“Lack of ability to securely update the device. This includes lack of firmware validation on device, lack of secure delivery (un-encrypted in transit), lack of anti-rollback mechanisms, and lack of notifications of security changes due to updates.”
This is an ongoing issue for IoT applications, as many vendors and enterprises don’t bother to think through the future of their devices and implementations. In addition, it’s not always a technology issue. In some cases, the physical location of IoT devices makes updating—and repair/replacement—a significant challenge.
5. Use of insecure or outdated components
“Use of deprecated or insecure software components/libraries that could allow the device to be compromised. This includes insecure customization of operating system platforms, and the use of third-party software or hardware components from a compromised supply chain.”
Come on, folks, there’s no excuse for this kind of problem. Stop being cheap and do things right.
6. Insufficient privacy protection
“User’s personal information stored on the device or in the ecosystem that is used insecurely, improperly, or without permission."
Obviously, personal information needs to be dealt with appropriately. But the key here is “permission.” Almost nothing you do with someone’s personal info is OK unless you have their permission.
7. Insecure data transfer and storage
“Lack of encryption or access control of sensitive data anywhere within the ecosystem, including at rest, in transit, or during processing.”
While many IoT vendors pay attention to secure storage, making sure data remains secure during transfer is too often ignored.
8. Lack of device management
“Lack of security support on devices deployed in production, including asset management, update management, secure decommissioning, systems monitoring, and response capabilities.”
IoT devices may be small, inexpensive, and deployed in large numbers, but that doesn’t mean you don’t have to manage them. In fact, it makes managing them more important than ever. Even if that’s not always easy, cheap, or convenient.
9. Insecure default settings
“Devices or systems shipped with insecure default settings or lack the ability to make the system more secure by restricting operators from modifying configurations.”
Sheesh. Another problem that shouldn’t be happening in 2019. Everyone knows this is an issue, and they know how to avoid it. So, let’s just make it happen… every time.
10. Lack of physical hardening
“Lack of physical hardening measures, allowing potential attackers to gain sensitive information that can help in a future remote attack or take local control of the device.”
The IoT is made up of “things.” This shouldn’t be a surprise; it’s right there in the name. It’s important to remember the physical nature of the IoT and take steps to secure the actual devices involved.
Going forward, the OWASP community plans to update this list every two years to changes in the industry and to expand into other aspects of IoT, such as embedded security and Industrial Control Systems and Supervisory Control and Data Acquisition systems (ICS/ SCADA). There are also plans to add examples for each item and map them to other OWASP projects, such as the Application Security Verification Standard (ASVS), as well as outside projects.
Most importantly, perhaps, OWASP is considering adding reference architectures to go beyond telling folks what not to do, but also how do what they need to do more securely.