Memory or Other Object Reuse
Controlling memory reuse and object reuse prevents leftover data exposure and reduces the risk of unauthorized access or tampering.
2 slides · 2 min read · Domain 8
All architectures use memory to process information and data. Memory management involves sections of memory allocated to one process for a while, then de-allocated, then reallocated to other processes. This can include random-access memory (RAM), cache, or simply hard drive space. Operating systems (OSs) allocate memory in sets of contiguous addresses, and these sets are generally known as memory resources or just resources.
The problem from a security perspective is that since residual information may remain when a section of memory is reassigned to a new process after a previous process is finished with it, that information remaining on that object may be read and used (or misused) by the next process that gets to read from those memory locations. This is often referred to as a memory leak since it allows possibly sensitive content to leak (an unauthorized transfer) from one process to another. Memory leaks can be exploited or leveraged to create or facilitate covert storage channels (CSCs). This applies to all resources that allow data to be stored or written to them: main memory, file storage, hardware buffers in device or systems controllers. These vulnerabilities exist in both physical and virtual systems.
Other examples of storage that may be vulnerable to this type of problem are the paging or swap file on the system's disk storage volume. This page swap space is frequently left unprotected during operations and may contain an enormous amount of sensitive information, making it a perfect example of a CSC.
Data remanence controls provide strategies and tactics for limiting, if not eliminating, the security risks posed by CSCs.
Starting at the hardware and firmware levels, and working up through the OSs and applications architecture, all systems elements should ensure that the content of any memory resources under their control or management are randomized, zeroed, or otherwise overwritten before that resource is allocated to a different process to use.
