Security Hide and Seek
Picture multiple programs running on one computer. Since they share the same memory hardware – they are at risk for a “memory timing side-channel attack.” Delays are inherent when programs try to access a computer’s memory because of shared hardware. These delays are noticeable by a malicious program that can interpret those delays to obtain access to the program’s “secrets.” MIT researchers devised a way to allow memory sharing to continue while providing strong security against side-channel attacks. Their method speeds up programs by 12% over state-of-the-art security schemes.
The work focuses on a contention attack, in which an attacker needs to determine the exact instant when the victim program is going through the memory controller. The attacker is poking at the memory controller to see if it’s busy. The researchers developed a scheme that “shapes” a program’s memory requests into a predefined pattern, independent of when the program needs to use the memory controller. Before a program can access the memory controller and interfere with another program’s memory request, it must go through a “request shaper” that uses a graph structure to process requests and send them to the memory controller on a fixed schedule.
Using a rigid schedule, a program’s request can be delayed until the next time it is permitted to access memory or even send a fake request.
A program can submit a memory request to DAGguise whenever it needs to, and DAGguise will adjust the timing of that request to always ensure security. No matter how long it takes to process a memory request, the attacker can only see when the request is actually sent to the controller, which happens on a fixed schedule.
This graph structure enables the memory controller to be dynamically shared. DAGguise can adapt if there are many programs trying to use memory at once and adjust the fixed schedule accordingly, enabling more efficient use of the shared memory hardware while maintaining security.