IP Library Granted Patent US 12,462,017
Granted Patent B2
US 12,462,017 · App. 17/553,215 · Granted Nov 4, 2025

Processor arrangement for monitoring control-flow integrity

Inventor: Alexander Weiss (Kiefersfelden, DE)
Assignee: ACCEMIC TECHNOLOGIES GMBH
G06F21/54G06F9/3806G06F13/1673G06F21/554G06F21/79
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,462,017
App. No.
17/553,215
Granted
Nov 4, 2025
Kind
B2
Abstract

A processor arrangement, comprising a processor under observation, hereinafter PUO, having a processing unit, which is configured to execute an application program code stored in a memory and to provide application output data via an output interface; an observation unit that is connected to the processing unit and configured to monitor execution of the application program code by the processing unit and to provide execution information indicative of an execution pattern associated with the execution of the application program code by the PUO; a cybersecurity-monitoring engine for observing the PUO, which is inaccessible by the PUO and comprises an observation input interface for receiving the execution information and an execution-monitoring unit, which is configured to perform a comparison between the received execution information and pre-generated execution pattern information and to detect an execution anomaly in the retrieved execution information, and to provide a monitoring output signal indicative of the detected execution anomaly; a controllable latency-output-buffer unit, which is also inaccessible by the PUO and comprises a buffer memory and which receives at least a part of the output data of the PUO and the monitoring output signal, and which is configured to temporarily store the received output data in the buffer memory for a pre-determined latency time span, output the temporarily stored output data from the buffer memory at the end of the latency-time span, if no monitoring output signal indicative of the detected execution anomaly has been received, and to block at least a part of the output from the buffer memory as soon as the monitoring output signal indicative of the detected execution anomaly has been received.

Claims (72)

1 . A processor arrangement, comprising:

a processor under observation (PUO), comprising:

processing circuitry configured to execute an application program code stored in a processor memory and to provide application output data via an output interface and, in executing the application program code, to execute or not execute instructions in accordance with an execution pattern depending on the executed application program code; and

observation circuitry that is connected to the processing circuitry and configured to monitor execution of the application program code by the processing circuitry and to provide execution information indicative of the execution pattern associated with the execution of the application program code by the PUO;

cybersecurity-monitoring circuitry for observing the PUO, which is physically separated from the PUO, and inaccessible by the PUO when executing the application program code, the cybersecurity-monitoring circuitry comprising:

an observation input interface for receiving the execution information;

a memory configured to store pre-generated execution pattern information indicative of an expected execution pattern associated with an uncompromised version of the application program code executed by the PUO; and

execution-monitoring circuitry, which is configured to:

perform a comparison between the received execution information and the pre-generated execution pattern information,

detect, using a predetermined execution-anomaly criterion defining at least one undesired deviation of the received execution information from the pre-generated execution pattern information, an execution anomaly in the received execution information, and

provide a monitoring output signal indicative of the detected execution anomaly; and

a controllable latency-output-buffer, which is also physically separated from the PUO, and inaccessible by the PUO when executing the application program code, and comprises a buffer memory and which receives at least a part of the application output data of the PUO and the monitoring output signal, and which is configured to:

temporarily store the received application output data in the buffer memory for a pre-determined latency time span;

output the temporarily stored application output data from the buffer memory at the end of the latency-time span, if no monitoring output signal indicative of the detected execution anomaly has been received during the latency time span; and

to block at least a part of the output from the buffer memory as soon as the monitoring output signal indicative of the detected execution anomaly has been received.

2 . The processor arrangement according to claim 1 , wherein the observation circuitry of the PUO is configured to generate and provide, via a trace interface, a trace-data stream, which comprises the execution information, and

wherein the cybersecurity-monitoring circuitry further comprises:

a trace communication input interface for receiving the trace-data stream; and

trace-data-processing circuitry configured to retrieve the execution information from the received trace-data stream.

3 . The processor arrangement according to claim 2 , wherein

the trace-data stream comprises the execution information in the form of compressed trace data, and

the trace-data processing circuitry comprises control-flow-reconstruction circuitry that is configured to decompress the trace data.

4 . The processor arrangement according to claim 2 , wherein

the trace-data-processing circuitry is configured to identify, using the retrieved execution information, a respective jump-out instruction address of those branches associated with executing a call instruction and a respective jump-in instruction address of those branches associated with executing a return instruction, and

the execution-monitoring circuitry additionally comprises a call-stack memory and is configured to:

store return-instruction-address information indicative of that instruction address immediately following, in an order of execution of the application program code, the identified jump-out instruction address in the call-stack memory;

perform a comparison between the identified jump-in instruction address and the instruction address indicated by the return-instruction-address information,

wherein the predetermined execution-anomaly criterion defines a deviation of the identified jump-in instruction address from the instruction address indicated by the return-instruction-address information as a further execution anomaly; and

provide, upon detecting the further execution anomaly, the monitoring-output signal indicative of the detected further execution anomaly.

5 . The processor arrangement according to claim 1 , wherein the latency time span is a fixed value.

6 . The processor arrangement according to claim 1 , wherein the execution-monitoring circuitry is additionally configured to output a buffer-synchronization signal upon completing the comparison to indicate the end of the latency-time span, and

the latency-output-buffer receives the buffer-synchronization signal and is configured to output the temporarily stored application output data from the buffer memory upon receiving the buffer-synchronization signal, if no monitoring output signal indicative of the detected execution anomaly has been received before receiving the buffer-synchronization signal.

7 . The processor arrangement according to claim 1 , wherein

the execution information is indicative of a jump-in instruction address of at least one given executed branch instruction,

the pre-generated execution pattern information is indicative of at least one permitted jump-in instruction address, and

the predetermined execution-anomaly criterion defines an executed branch instruction of the retrieved execution information whose jump-in instruction address is not among the permitted jump-in instruction addresses as the undesired deviation.

8 . The processor arrangement according to claim 1 , wherein

the execution information indicates an association of an observed jump-out instruction address to an observed jump-in instruction address for at least one branch instruction executed by the PUO during execution of the application program code,

the pre-generated execution pattern information stored in the memory comprises at least one association of an expected jump-out instruction address to an expected jump-in instruction address, and

the execution-anomaly criterion defines an executed branch instruction to be the undesired deviation if the association of the observed jump-out instruction address to the observed jump-in instruction address of the execution information is not comprised within the pre-generated execution pattern information.

9 . The processor arrangement according to claim 1 , wherein

the execution information comprises a synchronization information element that is indicative of an instruction address associated to an instruction executed by the PUO during the execution of the application program code,

the pre-generated execution pattern information is indicative of at least one permitted instruction address range, and

the predetermined execution-anomaly criterion defines as the undesired deviation that the instruction address of the executed instruction is outside the at least one permitted instruction address range.

10 . The processor arrangement according to claim 1 , wherein

the execution information is indicative of a jump-in instruction address or a jump-out instruction address of at least one given executed branch instruction,

the pre-generated execution pattern information comprises at least one range of jump-out instruction addresses or at least one range of jump-in instruction addresses, and

the predetermined execution-anomaly criterion defines an executed branch instruction of the retrieved execution information whose jump-out instruction address does not fall within the at least one range of jump-out instruction addresses or whose jump-in instruction address does not fall within the at least one range of jump-in instruction addresses the undesired deviation.

11 . The processor arrangement according to claim 1 , wherein

the execution information is indicative of an order in which instructions of the application program code were executed by the PUO,

the pre-generated execution pattern information is indicative of an expected order in which instructions are expected to be executed by the PUO, and

the predetermined execution-anomaly criterion defines as the undesired deviation a deviation of the order indicated by the execution information from the expected order.

12 . The processor arrangement according to claim 1 , wherein

the execution information is indicative of a number of consecutive executions of at least one branch instruction by the PUO,

the pre-generated execution pattern information comprises an upper limit of the number of consecutive executions of a given branch instruction by the PUO,

the execution-monitoring circuitry is configured to determine from the received execution information a current count of the consecutive executions of the given branch instruction, and to compare the current count with the upper limit, and

the predetermined execution-anomaly criterion defines as the undesired deviation an exceeding of the upper limit by the number of consecutive executions of the given branch instruction.

13 . The processor arrangement according to claim 1 , wherein

the pre-generated execution pattern information comprises an upper limit of the number of consecutively executed branch instructions by the PUO,

the execution-monitoring circuitry is configured to determine from the received execution information a current count of consecutively executed branch instructions, and to compare the current count with the upper limit, and

the predetermined execution-anomaly criterion defines as the undesired deviation an exceeding of the upper limit by the number of consecutively executed branch instructions.

14 . The processor arrangement according to claim 1 , wherein

the execution information is indicative of a number of repetitive executions of at least one branch instruction by the PUO,

the pre-generated execution pattern information comprises an upper limit of the number of repetitive executions of a given branch instruction by the PUO and a counter-reset instruction address for the given branch instruction, the counter-reset instruction address being associated with a predetermined further branch instruction that is reached by the PUO after reaching the given branch instruction,

the execution-monitoring circuitry is configured to determine from the received execution information a current count of the repetitive executions of the given branch instruction, to compare the current count with the upper limit, and to reset the current count immediately after the counter-reset instruction has been reached by the PUO, and

the predetermined execution-anomaly criterion defines as the undesired deviation an exceeding of the upper limit by the current count of repetitive executions of the given branch instruction.

15 . The processor arrangement according to claim 1 , further comprising secure-update circuitry, comprising:

an interface to receive an update file comprising updated pre-generated execution pattern information generated by a trusted update provider; and

an update information memory storing update validation information,

wherein the secure-update circuitry is configured to:

verify that the received update file stems from the trusted update provider using the update validation information; and

only replace the pre-generated execution pattern information with the updated pre-generated execution pattern information, if the verification indicates that the update file stems from the trusted source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2022
From: WEISS, ALEXANDER
To: ACCEMIC TECHNOLOGIES GMBH
Reel/Frame 059192/0735 →
Priority Claims (1)
EP 20214995 · Dec 17, 2020 · regional
Continuity (1)
Related Publication 20220198000A1 · Jun 23, 2022
References Cited (50)
US 8151349B1 · Yee · 2012 [cited by examiner]
US 11372969B1 · Sundahl · 2022 [cited by examiner]
US 11436327B1 · Vashisht · 2022 [cited by examiner]
US 11783026B2 · Hershman · 2023 [cited by examiner]
US 20050240745A1 · Iyer · 2005 [cited by examiner]
US 20130298117A1 · Reynolds · 2013 [cited by examiner]
US 20140237595A1 · Sridhara · 2014 [cited by examiner]
US 20150347133A1 · Gschwind · 2015 [cited by examiner]
US 20160196428A1 · Momot · 2016 [cited by examiner]
US 20160217016A1 · Raman · 2016 [cited by examiner]
US 20170286111A1 · Pereira · 2017 [cited by examiner]
US 20180260562A1 · Chen · 2018 [cited by examiner]
US 20180373896A1 · Branco · 2018 [cited by examiner]
US 20190005231A1 · Peleg · 2019 [cited by examiner]
US 20190303270A1 · Hoermann · 2019 [cited by examiner]
US 20200159888A1 · Ghose · 2020 [cited by examiner]
US 20200272548A1 · Carrington · 2020 [cited by examiner]
US 20200320196A1 · Bi · 2020 [cited by examiner]
US 20210073381A1 · Prvulovic · 2021 [cited by examiner]
US 20210263779A1 · Haghighat · 2021 [cited by examiner]
US 20210365554A1 · Sakalis · 2021 [cited by examiner]
US 20220019657A1 · Sethumadhavan · 2022 [cited by examiner]
US 20220027467A1 · Favor · 2022 [cited by examiner]
US 20220067143A1 · Favor · 2022 [cited by examiner]
US 20220067154A1 · Favor · 2022 [cited by examiner]
US 20220067155A1 · Favor · 2022 [cited by examiner]
US 20220067156A1 · Favor · 2022 [cited by examiner]
US 20220107784A1 · Favor · 2022 [cited by examiner]
US 20220108013A1 · Favor · 2022 [cited by examiner]
US 20230020547A1 · Katkoori · 2023 [cited by examiner]
US 20230092245A1 · Saroiu · 2023 [cited by examiner]
EP 2873983 · 2015 [cited by applicant]
EP 3792767 · 2021 [cited by applicant]
EP 3792770 · 2021 [cited by applicant]
De Clercq, R. and Verbauwhede, I., 2017. A survey of hardware-based control flow integrity (CFI). arXiv preprint arXiv:1706.07257. (Year: 2107). [cited by examiner]
Lee, Y., Lee, J., Heo, I., Hwang, D. and Paek, Y., 2017. Using CoreSight PTM to integrate CRA monitoring IPs in an ARM-based SoC. ACM Transactions on Design Automation of Electronic Systems (TODAES), 22(3), pp. 1-25. (Y… [cited by examiner]
De Clercq, R. and Verbauwhede, I., 2017. A survey of hardware-based control flow integrity (CFI). arXiv preprint arXiv: 1706.07257 (Year: 2017). [cited by examiner]
Chen et al. “HeNet: A Deep Learning Approach on Intel® Processor Trace for Effective Exploit Detection,” arxiv.org, Jan. 2018, 7 pages. [cited by applicant]
Chevalier et al. “Co-processor-based Behavior Monitoring: Application to the Detection of Attacks Against the System Management Mode,” arxiv.org, Mar. 2018, 13 pages. [cited by applicant]
Clercq et al. “SOFIA: Software and Control Flow Integrity Architecture,” 2016 Design, Automation & Test in Europe Conference & Exhibition, 2016, pp. 1172-1177. [cited by applicant]
De Clercq Ruan et al. “A survey of Hardware-based Control Flow Integrity (CFI),” arxiv.org, Jul. 2017, 27 pages [retrieved online from: arxiv.org/ftp/arxiv/papers/1706/1706.07257.pdf]. [cited by applicant]
Gu et al. “PT-CFI: Transparent Backward-Edge Control Flow Violation Detection Using Intel Processor Trace,” CODASPY'17, Mar. 2017, pp. 173-184. [cited by applicant]
Lee et al. “The New Real-time Debug Interface for Efficient Code Reuse Attack Detection,” IEEE, ISOCC 2015, 2015, pp. 93-94. [cited by applicant]
Lee Yongje et al. “Using CoreSight PTM to Integrate CRA Monitoring Ips in an ARM-Based SoC,” ACM Transactions on Design Automation of Electronic Systems, Apr. 2017, vol. 22, No. 3, Article 52, 25 pages. [cited by applicant]
Liu et al. “Transparent and Efficient CFI Enforcement with Intel Processor Trace,” 2017 IEEE International Symposium on High Performance Computer Architecture, 2017, pp. 529-540. [cited by applicant]
Moon et al. “Architectural Supports to Protect OS Kernels from Code-Injection Attacks,” HASP 2016, Jun. 2016, 8 pages. [cited by applicant]
Niu et al. “Modular Control-Flow Integrity,” PLDI'14, Jun. 2014, pp. 577-587. [cited by applicant]
Yuan et al. “Hardware-Assisted Fine-Grained Code-Reuse Attack Detection,” RAID 2015, Nov. 2015, LNCS 9404, pp. 66-85. [cited by applicant]
Zhang et al. “Practical Control Flow Integrity & Randomization for Binary Executables,” 2013 IEEE Symposium on Security and Privacy, 2013, pp. 559-573. [cited by applicant]
Extended Search Report for European Patent Application No. 20214995.1, dated May 17, 2021, 12 pages. [cited by applicant]