Key Security Challenges IoT Is Facing

The Internet of Things (IoT) has the power to transform our lives, make us more productive at work, and keep us happier and safer at home.  However, it’s also developing at such a rate that it threatens to outstrip our ability to adequately secure it. A piece of software hasn’t been written yet that didn’t contain mistakes – after all, we’re only human. But with non-IoT security experts designing and building connected systems the risks grow ever greater. So what can be done?

In my last blog I highlighted the potentially disastrous consequences that could result from several serious, publicly disclosed vulnerabilities in IoT systems. All of these cases share commonalities that we can use to explore some of the key security challenges facing our industry.

1)     Proprietary software evil

All of the IoT security flaws previously referenced were discovered thanks in part to reverse engineering of proprietary software. Hackers Charlie Miller and Chris Valasek did this to expose vulnerabilities in the Uconnect 8.4AN/RA4 system running in a 2014 Jeep, allowing them to remotely control its steering and brakes. Runa Sandvik and her husband Michael Auger did it to hack a smart rifle, enabling them to potentially fire it at a target of their choosing. Billy Rios reverse engineered Internet-connected Hospira drug infusion pumps, enabling him to find flaws that allowed for the possible tampering of dosage volumes.

What do these cases tell us? If security researchers can do this, then the bad guys, in theory, can too. In the past too many programmers have relied on ‘security by obscurity,’ hoping that their ‘secret’ proprietary systems would be beyond the reach of most hackers. This simply won’t do today. Firmware binary code is usually available online if you know where to look. If it is not, hardware debugging tools such as the JTAG can be used to extract a copy of the software from the device itself. And interactive disassemblers like IDA can generate assembly language source code from machine-executable code. In combination with other tools and techniques it is becoming easier than ever to reverse engineer a binary image, work out what it does, then determine where its vulnerabilities are and how to exploit them.Read more