Microsoft made news recently at the annual Black Hat conference in Las Vegas, generating a lot of buzz about its discovery of a malicious Russian hacker group using common Internet of Things (IoT) devices to carry out widespread attacks on corporate networks.
Microsoft says hackers compromised several kinds of Internet-connected devices — including a voice-over-IP phone, a Wi-Fi office printer, and a video decoder — to gain access into enterprise networks. The attacks, according to Microsoft, were carried out by a group called Strontium — also known as Fancy Bear or APT28 — which has links to GRU, Russia’s military intelligence agency.
There will be more than 14 billion IoT devices in use in homes and businesses by 2020, according to Gartner. Given Microsoft’s news, now is the time to review security risks in firmware, the specific class of software that provides the low-level control for the hardware of an IoT device. Widely recognized as a pressing cybersecurity issue, firmware is a commonly unprotected attack surface that hackers use to get a foothold in a network. An unsecured IoT device is essentially an unlocked front door, which means that once attackers take over an IoT device, they can move laterally into a corporate network.
Hackers actively exploit weaknesses in IoT security not to attack the devices themselves, but as a jumping off point for all kinds of malicious behavior, which could include distributed denial-of-service attacks, malware distribution, spamming and phishing, click fraud, and credit card theft, among others. So, before a device breach leads to revenue loss, a lawsuit, damage to your company’s reputation, or worse, it is important to be aware of the eight most common firmware vulnerabilities to make sure you haven’t left the front door open to your network.
1. Unauthenticated access: One of the most common vulnerabilities in firmware, unauthenticated access allows threat actors to gain access to an IoT device, which makes it easy to exploit device data and any controls provided by it.
2. Weak authentication: Threat actors can easily gain access to devices when the firmware has a weak authentication mechanism. These mechanisms can range from single-factor and password-based authentication to systems based on weak cryptographic algorithms that can be broken into with brute-force attacks.
3. Hidden backdoors: When it comes to firmware, hidden backdoors are a favorite hacker exploit Backdoors are intentional vulnerabilities that are planted into an embedded device to provide remote access to anyone with the “secret” authentication information. Although backdoors are potentially helpful for customer support, when they’re discovered by malicious actors, they can have severe consequences. And hackers are great at finding them.
4. Password hashes: The firmware in most devices contains hard-coded passwords that users are unable to change or default passwords that users rarely change. Both result in devices that are relatively easy to exploit. In 2016, the Mirai botnet, which infected more than 2.5 million IoT devices around the world, leveraged default passwords in IoT devices to execute a DDoS attack that took down Netflix, Amazon, and The New York Times, among others.
5. Encryption keys: When stored in a format that can be easily hacked, like variations of the Data Encryption Standard (DES), first introduced in the 1970s, encryption keys can present a huge problem for IoT security. Even though DES has been proven to be inadequate, it’s still in use today. Hackers can exploit encryption keys to eavesdrop on communication, gain access to the device, or even create rogue devices that can perform malicious acts.
6. Buffer overflows: When coding firmware, problems can arise if the programmer uses insecure string-handling functions, which can lead to buffer overflows. Attackers spend a lot of time looking at the code within a device’s software, trying to figure out how to cause erratic application behavior or crashes that can open a path to a security breach. Buffer overflows can allow hackers to remotely access devices and can be weaponized to create denial-of-service and code-injection attacks.
7. Open source code: Open source platforms and libraries enable the rapid development of sophisticated IoT products. However, because IoT devices frequently use third-party, open source components, which typically have unknown or undocumented sources, firmware is regularly left as an unprotected attack surface that is irresistible to hackers. Often, simply updating to the latest version of an open source platform will address this problem, yet many devices are released containing known vulnerabilities.
8. Debugging services: Debugging information in beta versions of IoT devices equips developers with internal systems knowledge of a device. Unfortunately, debugging systems are often left in production devices, giving hackers access to the same inside knowledge of a device.
As companies quickly bring new IoT products to market, and enterprises move just as quickly to capitalize on the many benefits of IoT deployment, the prioritization of speed does not necessarily need to trump concerns about security.
The good news is that the most common IoT exploits outlined above are avoidable and can be remedied without any additional cost to the manufacturer. A good initial set of best practices when it comes to IoT security includes:
1. Upgrade the firmware on your IoT devices and change the default passwords.
2. Compile an inventory of IoT devices on your network so you have a complete picture of your risk exposure.
3. Contact the manufacturers of the IoT devices deployed on your network and ask if they’ve accounted for the common vulnerabilities outlined above. If not, demand that they implement secure coding practices in their firmware and IoT devices.
Terry Dunlap is the Co-Founder and Chief Strategy Officer of ReFirm Labs, a provider of proactive IoT and firmware security solutions that empower both government agencies and Fortune 500 companies. A former teen hacker, Dunlap worked as a global network vulnerability … View Full Bio