While the Internet of Things (IoT) is full of promise, there’s one word that summarizes all that people fear about it: security.
We got to hear a bit about that at a session dedicated to the topic at the recent Internet of Things Engineering Summit co-conference at EE Live. Presented by consultant George Neville-Neil, it wasn’t about technology per se; it was about our state of mind.
Most of us believe it’s important to keep intruders out. His main takeaway: assume they will get in. Because, eventually, they will. Building sturdy walls is good and important, but planning for what happens next is also important.
What caught my ear in particular is one of the less-obvious possible consequences of not minding the store properly: a “consent decree.” I’ve heard the term in a generic sense, but it’s not obvious what the implications are if you’ve never had one (which I haven’t, which is why I asked). Apparently, if you’ve been careless with security, a consent decree allows the Federal Trade Commission (FTC) to become your overseer, getting all up in your business and stepping in when they want. Most of all, the documentation required during the term of the decree sounds particularly onerous. So… avoid this.
That aside, the following are my attempt to summarize his supporting recommendations (“attempt” because I was writing furiously to keep up):
- Shrink the “attack surface” (i.e., expose less). Meaning, drivers, daemons, features, debug access, web servers, data loggers, etc.
- Separate out “concerns.” I.e., no processes with root access or super-control; restrict access to data. Nothing gets access to anything irrelevant.
- “Defense in Depth” – rings of security. What happens when the first wall is breached?
- Provide only those features really needed. (OK, marketing will have a fun time with this. You know the drill:
- Marketing: Here are the features we need in the next release.
- Engineering: You can’t have them all; which ones do you really need?
- Marketing: We need them all. We didn’t bother asking for the nice-to-haves.
- Engineering: Well, which of these do you need least?
In other words, marketing probably already thinks they’re getting less than the really-needed features.)
- Be conservative in what data you accept and send.
- Review your code.
- Review other people’s code – especially when incorporating someone else’s code or IP. Do an internet search for the package along with words like “crash” or swear words to find red flags.
- Use “sandboxing” to provide isolation.
- Use automation to test and analyze your code. Oh, and don’t forget to look at the results.
- And, the bottom line, “Plan for Compromise.”
And sleep with one eye open. Because They’re coming, you know…