D3FEND 技术详情

D3-CFI

D3-CFI

Control Flow Integrity

定义

Enforcing legal control flow transfers during application process execution.

父技术
子技术
关联构件
CallStack
Call Stack

In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or machine stack, and is often shortened to just "the stack". Although maintenance of the call stack is important for the proper functioning of most software, the details are normally hidden and automatic in high-level programming languages. Many computer instruction sets provide special instructions for manipulating stacks.

ControlFlowGraph
Control Flow Graph

A control flow graph is a representation of all possible control flow transfers within a program, typically computed at compile-time or link-time, including calls, jumps, and returns. The control flow graph can be used to compute a control flow policy that permits only the expected control flow transfers during process execution via control flow integrity mechanisms.

ControlFlowPolicy
Control Flow Policy

A control flow policy is a subset of the possible control flow transfers computed from a program's control flow graph. It defines only the expected and allowed control flow transfers and is enforced by control flow integrity.

MemoryAddress
Memory Address

In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware.

ShadowStack
Shadow Stack

A shadow stack is a mechanism for protecting a procedure's stored return address, such as from a stack buffer overflow. The shadow stack itself is a second, separate stack that "shadows" the program call stack. In the function prologue, a function stores its return address to both the call stack and the shadow stack. In the function epilogue, a function loads the return address from both the call stack and the shadow stack, and then compares them. If the two records of the return address differ, then an attack is detected.

语义关系
出向enforcesControl Flow Policy
出向kb referenceReference - Control Enforcement Technology (CET) - Intel Corporation
出向kb referenceReference - Clang/LLVM - Control Flow Integrity (CFI)
出向kb referenceReference - Control Flow Guard (CFG) - Microsoft
出向monitorsCall Stack
出向monitorsShadow Stack
出向validatesControl Flow Graph
出向validatesMemory Address