Explicit Integrity Check Value Initialization for Memory Safety
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory safety and security techniques are limited in mitigating intra-object overflows, uninitialized use vulnerabilities, and use-after-free vulnerabilities, particularly in complex hierarchies of objects, and fail to provide granular integrity checking.
Innovation Solution
The implementation of explicit integrity check value (ICV) initialization methods, including instructions like InvICV, InitICV, StoreIgnoreIntegrity, LoadIgnoreIntegrity, and MemCopyWithTripwires, which set and manage ICVs to detect and prevent unauthorized memory access and uninitialized data usage, incorporating cryptographic integrity checking and tripwires to secure memory operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing memory safety techniques are used, then basic memory protection is provided, but intra-object overflows, uninitialized use vulnerabilities, and use-after-free vulnerabilities cannot be effectively mitigated
Solution Approach 1:
The patent divides memory into granules with individual integrity check values (ICVs), allowing fine-grained tracking of each memory region's initialization state and ownership. This segmentation enables detection of intra-object overflows by monitoring ICV transitions at specific granule boundaries, and detection of use-after-free by tracking ownership transfers between allocations.
Solution Approach 2:
The patent initializes ICVs to indicate uninitialized state before memory allocation or use. This preliminary action establishes a known baseline state that triggers vulnerability detection when accessed prematurely (uninitialized use) or when the ICV pattern doesn't match expected initialization sequences.
2Measurement precision
If granular integrity checking is implemented, then vulnerability detection capability is improved, but system complexity increases
Solution Approach 1:
The patent combines multiple safety functions (integrity checking, initialization detection, use-after-free detection, intra-object overflow detection) into a unified ICV framework. A single ICV structure encodes multiple states and triggers, eliminating the need for separate mechanisms for each vulnerability type and reducing overall system complexity despite high measurement precision.
Solution Approach 2:
The ICV mechanism serves multiple purposes simultaneously: it tracks initialization state, detects overflows, prevents use-after-free, and enables cryptographic verification. This multi-functionality achieves comprehensive vulnerability coverage without proportionally increasing complexity, as the same hardware structures handle all these tasks.
3Reliability
If cryptographic integrity checking is performed on all memory operations, then security is improved, but processing speed decreases
Solution Approach 1:
The patent applies cryptographic ICV verification selectively based on vulnerability risk rather than uniformly to all memory operations. The system triggers full cryptographic checking only when ICV patterns indicate potential vulnerabilities (uninitialized use, use-after-free, intra-object overflow), while allowing faster paths for routine authenticated accesses, thus balancing security and performance.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques for explicit integrity check value initialization are described. In an embodiment, an apparatus includes an instruction decoder to decode a single instruction to set an integrity check value ICV corresponding to a destination location in a memory; and execution circuitry coupled to the instruction decoder, the execution circuitry to perform one or more operations corresponding to the single instruction, including storing data indicated by the single instruction into the destination location, and storing the ICV in the memory.