Name |
Exploiting Incorrect Chaining or Granularity of Hardware Debug Components |
|
Likelyhood of attack |
Typical severity |
Low |
Medium |
|
Summary |
An adversary exploits incorrect chaining or granularity of hardware debug components in order to gain unauthorized access to debug functionality on a chip. This happens when authorization is not checked on a per function basis and is assumed for a chain or group of debug functionality. |
Prerequisites |
Hardware device has an exposed debug interface |
Execution Flow |
Step |
Phase |
Description |
Techniques |
1 |
Explore |
[Find and scan debug interface] The adversary must first find and scan a debug interface to determine what they are authorized to use and what devices are chained to that interface. |
- Use a JTAGulator on a JTAG interface to determine the correct pin configuration, baud rate, and number of devices in the chain
|
2 |
Experiment |
[Connect to debug interface] The adversary next connects a device to the JTAG interface using the properties found in the explore phase so that they can send commands. The adversary sends some test commands to make sure the connection is working. |
- Connect a device such as a BusPirate or UM232H to the JTAG interface and connect using pin layout found from the JTAGulator
|
3 |
Exploit |
[Move along debug chain] Once the adversary has connected to the main TAP, or JTAG interface, they will move along the TAP chain to see what debug interfaces might be available on that chain. |
- Run a command such as “scan_chain” to see what TAPs are available in the chain.
|
|
Solutions | Implement: Ensure that debug components are properly chained, and their granularity is maintained at different authorization levels Perform Post-silicon validation tests at various authorization levels to ensure that debug components are only accessible to authorized users |
Related Weaknesses |
CWE ID
|
Description
|
CWE-1296 |
Incorrect Chaining or Granularity of Debug Components |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-180 |
An attacker exploits a weakness in the configuration of access controls and is able to bypass the intended protection that these measures guard against and thereby obtain unauthorized access to the system or network. Sensitive functionality should always be protected with access controls. However configuring all but the most trivial access control systems can be very complicated and there are many opportunities for mistakes. If an attacker can learn of incorrectly configured access security settings, they may be able to exploit this in an attack. |
|