Crack open many of the appliances that populate network and content delivery stacks and you'll find a lot of processing power — but few CPUs. Instead, you're likely to find a field-programmable gate array (FPGA) providing the single-purpose processing required for the job. FPGAs will be part of Internet of Things (IoT) and infrastructure devices for a long time to come, because they are flexible, quickly redefined, and reasonably priced for the functions they deliver.
FPGAs are similar in some aspects to application-specific integrated circuits (ASICs), application-specific standard parts (ASSPs), and other components designed to perform a specific task with high performance and reliability. FPGAs are often used to deliver specific application functions, like encoding the video stream in a camera or editing deck, providing security functions that begin before applications begin running on an IoT device, or calculating mission-critical parameters for defense applications.
There's a key difference, though, that makes FPGAs both a boon to security professionals and a component that adds to their burden of worry.
That difference is in their ability to be updated. ASICs and most ASSPs contain firmware that is "baked in" at the factory; once programmed, they're frozen in development time. An FPGA, on the other hand, can be reprogrammed each time it's rebooted. An FPGA is a blank slate that can be redefined over and over again. Security professionals should be aware of the unique capabilities and growing catalog of vulnerabilities these blanks slates sitting at the heart of so many of the devices in their midst bring to their orgnizations.
A Fresh Start
In a CPU, the configuration of the chip is established at the chip foundry. Programming governs the movement of bits through the pre-set architecture. In an FPGA, though, the configuration is defined by hardware-definition language (HDL) that's loaded from storage — frequently static random access memory (SRAM) — at device boot time. This means the architecture of the device can be optimized for a particular task — and updated or upgraded as vulnerabilities are discovered or new capabilities are licensed.
The ability to update the FPGA is seen as a positive security step because vulnerabilities can be addressed with new definitions.
FPGAs are growing in popularity among device manufacturers because they fit more easily into an "agile" work process than do ASICs. While ASICs have to be defined in a manufacturing process that can take weeks or months in production quantities, FPGAs are defined by software that can be revised as frequently as releases can be dropped — many times a day during development.
As concerns about security and the ability to be updated have gained priority, FPGAs have become more important in production, as well as development. Analysts at Wiseguyreports.com have predicted that the global FPGA market will grow to $63.05 billion in 2019 and is expected to reach $117.97 billion by 2026.
Weakness in Strength
The boot process is also where security vulnerabilities can enter the process.
Earlier this year, Jatin Kataria, Richard Housley, and Ang Cui of Red Balloon Security discovered the Thrangrycat vulnerabilities in certain Cisco routers. In these vulnerabilities, which won the 2019 Pwnie Award for the most underhyped research, an attacker can interrupt and hijack the "bitstream" — the sequence of HDL that defines the FPGA in the affected routers during boot.
In the case of the Cisco routers, the FPGA was responsible for the Trust Anchor module (TAm) — a piece of the router that is supposed to guard the device against boot-time exploits. If an attacker has gained root access to the device, they can modify the bitstream to disable the TAm and keep it disabled through subsequent reboots of the system.
On the now-unprotected system, a related code-injection vulnerability, discovered by James Chambers, also of Red Balloon Security, would allow the attacker to steal or redirect data at will, since there's no immediately obvious way for a victim to know that the router is working against them.
Vulnerabilities and Opportunities
Many FPGAs can be partitioned among multiple users, just as CPUs can share workloads from many different users and operating systems. Dennis R. E. Gnad, Jonas Krautter, and Mehdi B. Tahoori of the Karlsruhe Institute of Technology (KIT) have demonstrated a side-channel attack in which one user of an FPGA can "spy" on another by monitoring the minute power fluctuations that occur during different operations on the chip.
One difference between the KIT and Thrangrycat vulnerabilities is that Thrangrycat was demonstrated on FPGAs from Xilinx, while the KIT vulnerabilities were not limited to devices from a single vendor. FPGAs are manufactured by a number of vendors, including Intel, Microsemi, Xilinx, Lattice Semiconductor, Cypress Semiconductor, Texas Instruments, and many more.