protean general purpose guard pgpg
play

Protean General Purpose Guard (PGPG): Detecting and Mitigating - PowerPoint PPT Presentation

Protean General Purpose Guard (PGPG): Detecting and Mitigating Cache-based Microarchitectural Attacks Using Protean Code Jeremy Erickson Akshitha Sriraman Sai Gouravajhala jericks@umich.edu akshitha@umich.edu sairohit@umich.edu EECS 583:


  1. Protean General Purpose Guard (PGPG): Detecting and Mitigating Cache-based Microarchitectural Attacks Using Protean Code Jeremy Erickson Akshitha Sriraman Sai Gouravajhala jericks@umich.edu akshitha@umich.edu sairohit@umich.edu EECS 583: Advanced Compilers

  2. Background Flush+Reload Attack [Yarom14] GnuPG + Microbenchmark ● ● ○ Spy repeatedly loads an instruction in ○ For a given bit of the secret exponent, shared memory to infer secret key in code branches help spy determine if GnuPG process bit is a ‘0’ or a ‘1’ Time the load and flush ○ Microbenchmark is proxy for GnuPG ○ ○ Timing differences are distinguishable encryption routine Safe Vulnerable Time Reload Time Flush

  3. Main Contributions First to develop a system that leverages dynamic compilation to overcome the ● security-performance gap Extend the use of Protean code to make modifications to program semantics, ● such as including a dynamic defense Develop and evaluate an end-to-end implementation : Detection and Mitigation ● Reimplement the Flush+Reload attack to test the attack detection and defense ● mechanism

  4. PGPG System Overview

  5. Demo Probe & Flush+Reload & Interpret.py ● Probe & Flush+Reload & PGPG & Interpret.py ●

  6. Evaluation Attack detection: ● Execution time model: ● Average execution times: ● 19.7% speedup!

  7. PGPG - NOW OPEN SOURCE! https://github.com/akshithasriraman/EECS583-Project.git Download your copy today.

  8. Backup Slides

  9. Execution Times

  10. GnuPG Code Vs. Microbenchmark (Vulnerable) Conditional Multiply Square Reduce Reduce *GnuPG is licensed GPLv3

  11. GnuPG Code Vs. Microbenchmark (Safe) Conditional Changed New Conditional *GnuPG is licensed GPLv3

  12. Self-Evaluation Akshitha Sriraman Sai Gouravajhala Jeremy Erickson * Hardware event counter code * Defender (Protean) code * Reimplementation of the * Attack detection algorithm * GnuPG Microbenchmark Flush+Reload attack * GnuPG Microbenchmark * Paper writing * Defender (Protean) code * Paper writing * Slide production * GnuPG Microbenchmark * Slide production * Paper writing * Slide production These bullets are a rough outline of what each group member produced, but all group members participated in regular project discussion (several times per week) and helped develop workarounds to problems and original, failed approaches (not listed).

Recommend


More recommend