US 12,450,342 B2
Security subsystem for execution verification
Ali Rahbar, Bellevue, WA (US); Nhon Toai Quach, San Jose, CA (US); Samatha Gummalla, Dublin, CA (US); John Charles Wright, Oakland, CA (US); Jonathan Kang, Fremont, CA (US); Utpal Vijaysinh Solanki, Folsom, CA (US); and Gururaj Ananthateerta, Los Altos, CA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jun. 28, 2022, as Appl. No. 17/852,073.
Prior Publication US 2023/0418936 A1, Dec. 28, 2023
Int. Cl. G06F 21/55 (2013.01)
CPC G06F 21/554 (2013.01) [G06F 2221/034 (2013.01)] 18 Claims
OG exemplary drawing
 
1. An integrated circuit device, comprising:
a system interconnect;
a central processing unit (CPU) subsystem coupled to the system interconnect, the CPU subsystem comprising a set of CPU cores configured to execute instructions;
a set of trace blocks configured to extract a set of execution traces from the set of CPU cores, the set of execution traces indicating the instructions that have been executed by the set of CPU cores; and
a security subsystem coupled to the system interconnect, the security subsystem being separate from the CPU subsystem, the security subsystem comprising:
a rules block configured to store a set of rules; and
a set of verification cores configured to receive the set of execution traces from the set of trace blocks via a set of trace buses that extend between the set of trace blocks and the set of verification cores, the set of trace buses being separate from the system interconnect, wherein each of the set of verification cores is configured to:
receive an execution trace of the set of execution traces;
identify a control transfer instruction in the execution trace;
extract an address from the control transfer instruction, wherein the address is a destination address or a return address;
perform a check on the address by:
retrieving a rule of the set of rules from the rules block based on the control transfer instruction, the rule including an acceptable address range; and
determining that the address is not within the acceptable address range; and
generate an alarm signal based on the address not being within the acceptable address range.