Understanding Spectre and Meltdown Security Flaws

Slide Note
Embed
Share

Recent security vulnerabilities named Spectre and Meltdown have surfaced in the realm of computer architecture and hardware implementation. These flaws allow attackers to access sensitive data through covert channels utilizing speculative execution mechanisms. The vulnerabilities exploit the performance optimization features of processors, enabling attackers to bypass security measures and extract confidential information. Through techniques like mis-speculation, cache-based attacks, and speculative control flow influence, adversaries can compromise system integrity and breach data privacy. It's crucial for organizations to implement patches and updates to mitigate the risks associated with these vulnerabilities.


Uploaded on Oct 09, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Spectre and Meltdown: Recent Security Flaws Adam Belay, Srini Devadas, and Joel Emer

  2. Context Performance and Security Isolation and Integrity

  3. Attack Schema Domain of Victim Attacker Transmitter Receiver Access Channel Secret Secret 1. Create a channel 2. Create the transmitter 3. Launch the transmitter 4. Access the secret

  4. Control Speculation Non-Sequential Instruction Execution Sequential Instruction Execution I: Compute I: Control Flow Correct direction Mis-speculated direction I+1: Compute J: Compute K: Compute I+2: Compute J+1: Compute K+1: Compute I+3: Compute J+2: Compute K+2: Compute Transmitter Code

  5. Building a Transmitter Domain of Victim Attacker Transmitter Receiver Access Channel Secret Secret Pre-existing (RSA example) Written by attacker (Meltdown) Synthesized out of existing victim code by attacker (Spectre style)

  6. Meltdown and Spectre Attack Examples

  7. Attack: Mis-speculation exfiltrates secrets through cache Transmitter Receiver Cache Secret Covert Channel Speculative Execution Side Channel Normal Execution

  8. Meltdown Problem: Attacker can influence speculative control flow Bug: Speculative execution not subject to page permission checks Attack: User code can read kernel data (secret) Three steps: 1. Setup: flush the cache 2. Transmit: force speculation that depends on secret 3. Receive: measure cache timings

  9. Meltdown example Setup: clflush(timing_ptr[guess]); Transmit: timing_ptr[*kernel_addr]; Page Fault May still read *kernel_addr (speculatively) Receive: mfence(); s = rdtsc(); *timing_ptr[guess]; e = rdtscp(); if (e - s < CACHE_MISS_THRESHOLD) printf( guess was right!\n );

  10. Spectre Problem: Attacker can influence speculative control flow (same as before) Attack: Exfiltrate secrets within a process address space (e.g. a web browser). Can also be used to attack the kernel. Could use attacker provided code (JIT) or could co- opt existing program code Same three steps! Different setup and transmitters.

  11. Spectre examples Transmit - Bounds Check Bypass: if (x < array1_size) array2[array1[x] * 256];

  12. Spectre examples Transmit - Bounds Check Bypass: if (x < array1_size) array2[array1[x] * 256]; Transmit - Branch Target Injector: fnptr_t foo = choose_function(); foo(bar);

Related