I was recently invited to give a presentation on security for Internet of Things networking at infocomm 16. While I discussed the topic and scope with the organizers, I didn’t have a good catchy title prepared, so the organizers took it upon themselves to submit one for me: “Hacker-Proof IoT”. Easy, right? While I would love to be able to give a talk that delivers on this promise, reality dictates otherwise. I had to be ready for unrealistic audience expectations.
Dated Security Protocols
The original idea behind the IoT—and the internet itself—was to connect things together with few restrictions. The IoT uses a lot of the same internet protocols, many dating back to the 1980s, developed when security wasn’t a large consideration. Although security now gets substantially more attention, building a secure network is still a challenge.
When doing security analysis or risk assessment, you want to ask yourself, “What could possibly go wrong?” Things going wrong fall into two classes:
- Unauthorized access to information
- Unauthorized manipulation of things
While the latter is often considered more severe, it is important to appreciate that the former can be used as a step stool to reach the latter. With regards to either, you need to consider that if there is authorized means of accessing or manipulating your things, there is at least the theoretical possibility of unauthorized access and manipulation.
When analyzing or designing for security, there are a few things we can do to make us feel safe:
- Building a physically separate or dedicated network or VLAN
- Installing firewall and NAT equipment
- Implementing access control on individual devices
Feeling safe and being safe are not one and the same, so I’m going to address each of these approaches.
It seems obvious that if a network is isolated it should be more secure. If there is no path from a potential attacker to the network of interest, there is no opportunity for attack. The catch is that engineers often overlook potential paths. Remote access is a compelling function of the IoT, so it is tempting, and even necessary, to connect a network of things to the internet or other larger network. Maintenance scenarios, including remote diagnostics and firmware updates, often require at least temporary remote connections into the network. For many applications it is impossible or impractical to build an all-wired network, and the importance of wireless networking is increasing. In most cases, it is impossible to physically isolate a network with a wireless component. Even if you have all this covered—and the Department of Defense, for instance, believes they do—it has been shown through academic exercises and real embarrassments that there are, for the determined, still paths into and out of presumed isolated networks.
Most internet users and network operators rely on firewall technology (allowing outgoing, but not incoming access) to protect themselves from the forces of evil on the internet at large. If you assume internet communications can be classified by direction, that model feels secure. In reality, almost all network communication is bidirectional. To retrieve a webpage, you must first send a request to the web server before it sends the page content. When you send an email, the recipient must send you an acknowledgement that the message was received. So, no, a firewall cannot block all messages originating from insecure side of the wall. “Firewall” is a blanket term describing an array of security algorithms. Most firewalls control how and what communications can be initiated. More sophisticated firewalls examine the data passing through them and block communications that appears to be malicious. Firewalls do not create an isolated network.
Having failed to secure a network through isolation or firewall, the focus for security shifts to the devices themselves. This approach is most compatible with the end-to-end principle but is also the most burdensome in terms of configuration and testing—and it’s most likely to get in the way of getting fun and productive stuff done on your network. Security features are available in many devices but are often disabled by default. Users, and we have to include network administrators as users in most cases, are lazy and will not change default configurations if deemed unnecessary. Device access control is often based on passwords, but passwords are only secure if you use a different, long, and cumbersome password for each device. In other words, passwords are only secure if they’re impractical. In addition to a strong password, a secure device must have no security bugs in implementation and no alternate means of access (i.e. backdoor). You assume and hope manufacturers are not including backdoors in their systems right up to that point where you misplace a critical password and need to ask the manufacturer for the recovery procedure. Could an attacker also use this password recovery backdoor? Are there other doors they’ve not told you about?
Far from delivering a recipe for “Hacker-Proof IoT”, this post has hopefully given you a better appreciation for the challenges of securing a network. You probably feel your network is less secure and less securable than you thought going in. You’re disappointed that there’s no hacker-proof recipe and you’re not happy about all the setup you have to do and the difficult passwords you need to use. Sorry about that.