nemesis studying microarchitectural timing leaks in
play

Nemesis: Studying Microarchitectural Timing Leaks in Rudimentary CPU - PowerPoint PPT Presentation

Nemesis: Studying Microarchitectural Timing Leaks in Rudimentary CPU Interrupt Logic Jo Van Bulck Frank Piessens Raoul Strackx imec-DistriNet, KU Leuven ACM CCS, October 2018 Microarchitectural side-channels and where to find them CPU cache


  1. Nemesis: Studying Microarchitectural Timing Leaks in Rudimentary CPU Interrupt Logic Jo Van Bulck Frank Piessens Raoul Strackx imec-DistriNet, KU Leuven ACM CCS, October 2018

  2. Microarchitectural side-channels and where to find them CPU cache Branch prediction Address translation 1 / 14

  3. Microarchitectural side-channels and where to find them CPU cache Branch prediction Address translation 1 / 14

  4. Microarchitectural side-channels and where to find them Intel response [Int18] This is not a bug or a flaw . . . [side-channels] can’t be eliminated 1 / 14

  5. Microarchitectural side-channels and where to find them Intel response [Int18] This is not a bug or a flaw . . . [side-channels] can’t be eliminated ⇒ Systematically study microarchitectural leakage 1 / 14

  6. Nemesis: Studying rudimentary CPU interrupt logic Overview ⇒ Interrupts leak instruction execution times ⇒ Determine control flow in enclave programs 2 / 14

  7. Nemesis: Studying rudimentary CPU interrupt logic Overview ⇒ Interrupts leak instruction execution times ⇒ Determine control flow in enclave programs Research contributions ⇒ (First) remote µ -arch attack on embedded CPUs ⇒ Understanding CPU pipeline leakage (˜Meltdown) 2 / 14

  8. Back to basics: Fetch decode execute Fetch instruction Decode Execute 3 / 14

  9. Back to basics: Fetch decode execute Fetch instruction Decode Execute Interrupt 3 / 14

  10. Back to basics: Fetch decode execute Interrupts delayed till instruction retirement Fetch instruction Decode Execute Interrupt 3 / 14

  11. Wait a cycle: Interrupt latency as a side-channel CLK CMD NOP IRQ logic ISR IRQ CMD ADD IRQ logic ISR IRQ 4 / 14

  12. Wait a cycle: Interrupt latency as a side-channel CLK CMD NOP IRQ logic ISR IRQ CMD ADD IRQ logic ISR IRQ 4 / 14

  13. Enclaved execution adversary model App App Enclave app OS kernel Hypervisor TPM CPU Mem HDD Trusted Untrusted Intel SGX promise: hardware-level isolation and attestation 5 / 14

  14. Enclaved execution adversary model App App Enclave app OS kernel Hypervisor TPM CPU Mem HDD Trusted Untrusted Untrusted OS → new class of powerful side-channels 5 / 14

  15. Sancus: Open source trusted computing for the IoT Embedded enclaved execution: ISA extensions for isolation & attestation Save + clear CPU state on enclave interrupt Noorman et al. “Sancus 2.0: A Low-Cost Security Architecture for IoT devices”, TOPS 2017 [NVBM + 17] https://github.com/sancus-pma and https://distrinet.cs.kuleuven.be/software/sancus/ 6 / 14

  16. Sancus: Open source trusted computing for the IoT Embedded enclaved execution: ISA extensions for isolation & attestation Save + clear CPU state on enclave interrupt Extremely low-end processor (openMSP430): Area: ≤ 2 kLUTs Deterministic execution: no pipeline/cache/MMU/. . . No known microarchitectural side-channels (!) Noorman et al. “Sancus 2.0: A Low-Cost Security Architecture for IoT devices”, TOPS 2017 [NVBM + 17] https://github.com/sancus-pma and https://distrinet.cs.kuleuven.be/software/sancus/ 6 / 14

  17. Secure input-output with Sancus enclaves Driver enclave: Exclusive access to memory-mapped I/O device Van Bulck et al. “VulCAN: Vehicular component authentication and software isolation”, ACSAC 2017 [VBMP17] 7 / 14

  18. Secure input-output with Sancus enclaves Driver enclave: 16-bit vector indicates which keys are down PIN code enclave 0100000000000000 traverse bits 7 / 14

  19. Secure input-output with Sancus enclaves Attacker: Interrupt conditional control flow to infer secret PIN PIN code enclave 0100000000000000 traverse bits IRQ Key 'B' was pressed! 7 / 14

  20. Sancus IRQ timing attack: Inferring key strokes 4 IRQ latency 1 Instruction (interrupt number) Enclave x-ray: Start-to-end trace enclaved execution 8 / 14

  21. Sancus IRQ timing attack: Inferring key strokes 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IRQ latency 1 Instruction (interrupt number) Enclave x-ray: Keymap bit traversal (ground truth) 8 / 14

  22. Sancus IRQ timing attack: Inferring key strokes 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IRQ latency 1 4 0 (no press) 1 (key pressed) 0 (no press) IRQ latency (cycles) 3 2 1 Instruction (interrupt number) 8 / 14

  23. Interrupting and resuming Intel SGX enclaves Challenge: x86 execution time prediction (timer) � 9 / 14

  24. Interrupting and resuming Intel SGX enclaves SGX-Step: user space APIC timer + IRQ handling � SGX-Step user space Van Bulck et al. “SGX-Step: A practical attack framework for precise enclave execution control”, SysTEX 2017 [VBPS17] https://github.com/jovanbulck/sgx-step 9 / 14

  25. Microbenchmarks: Measuring x86 instruction latencies Latency distribution: 10,000 samples from benchmark enclave add lfence fscale rdrand Frequency nop IRQ latency (cycles) 10 / 14

  26. Microbenchmarks: Measuring x86 instruction latencies Timing leak: reconstruct instruction latency class add lfence fscale rdrand Frequency nop IRQ latency (cycles) 10 / 14

  27. Microbenchmarks: Measuring x86 cache misses Timing leak: reconstruct micro-architectural cache state load cache hit Frequency load cache miss IRQ latency (cycles) 11 / 14

  28. Microbenchmarks: Measuring x86 cache misses Timing leak: many more → see paper! load cache hit Frequency load cache miss IRQ latency (cycles) 11 / 14

  29. Single-stepping SGX enclaves in practice Enclave x-ray: Start-to-end trace enclaved execution IRQ latency (cycles) Instruction (interrupt number) 12 / 14

  30. Single-stepping SGX enclaves in practice Enclave x-ray: Spotting high-latency instructions rdrand (generate stack canary on enclave entry) IRQ latency (cycles) Instruction (interrupt number) 12 / 14

  31. Single-stepping SGX enclaves in practice Enclave x-ray: Zooming in on bsearch function IRQ latency (cycles) Instruction (interrupt number) 12 / 14

  32. De-anonymizing enclave lookups Binary search: Find 40 in { 20, 30, 40, 50, 80, 90, 100 } 13 / 14

  33. De-anonymizing enclave lookups Adversary: Infer secret lookup in known array left right hit 13 / 14

  34. De-anonymizing enclave lookups Goal: Infer lookup → reconstruct bsearch control flow 7950 IRQ latency (cycles) 7800 Interrupt (instruction number) 13 / 14

  35. De-anonymizing enclave lookups Goal: Infer lookup → reconstruct bsearch control flow Hit Left Right 7950 IRQ latency (cycles) 7800 Interrupt (instruction number) 13 / 14

  36. De-anonymizing enclave lookups ⇒ Sample instruction latencies in secret-dependent path HLLL LLHL HHHH 7950 IRQ latency (cycles) 7800 Interrupt (instruction number) 13 / 14

  37. Conclusions Nemesis contributions ⇒ Understanding CPU interrupt leakage ⇒ (First) embedded + high-end µ -arch channel 14 / 14

  38. Conclusions Nemesis contributions ⇒ Understanding CPU interrupt leakage ⇒ (First) embedded + high-end µ -arch channel https://github.com/jovanbulck/nemesis 14 / 14

  39. References I Intel Corporation. Resources and response to side channel variants 1, 2, 3. intel.com/content/www/us/en/architecture-and-technology/side-channel-variants-1-2-3.html , 2018. S. Lee, M.-W. Shih, P. Gera, T. Kim, H. Kim, and M. Peinado. Inferring fine-grained control flow inside SGX enclaves with branch shadowing. In Proceedings of the 26th USENIX Security Symposium . USENIX Association, 2017. J. Noorman, J. T. M¨ uhlberg, and F. Piessens. Authentic execution of distributed event-driven applications with a small TCB. In 13th International Workshop on Security and Trust Management (STM’17) , vol. 10547 of LNCS , pp. 55–71, Heidelberg, 2017. Springer. J. Noorman, J. Van Bulck, J. T. M¨ uhlberg, F. Piessens, P. Maene, B. Preneel, I. Verbauwhede, J. G¨ otzfried, T. M¨ uller, and F. Freiling. Sancus 2.0: A low-cost security architecture for IoT devices. ACM Transactions on Privacy and Security (TOPS) , 2017. J. Van Bulck, J. T. M¨ uhlberg, and F. Piessens. VulCAN: Efficient component authentication and software isolation for automotive control networks. In Proceedings of the 33th Annual Computer Security Applications Conference (ACSAC’17) . ACM, 2017. J. Van Bulck, J. Noorman, J. T. M¨ uhlberg, and F. Piessens. Towards availability and real-time guarantees for protected module architectures. In Companion Proceedings of the 15th International Conference on Modularity (MASS’16) , pp. 146–151. ACM, 2016. J. Van Bulck, F. Piessens, and R. Strackx. SGX-Step: A practical attack framework for precise enclave execution control. In Proceedings of the 2nd Workshop on System Software for Trusted Execution , SysTEX’17, pp. 4:1–4:6. ACM, 2017. 15 / 14

  40. Appendix: Interrupting and resuming SGX enclaves 16 / 14

  41. Appendix: Sancus keypad application scenario MSP430 core while (poll_keypad()) INTERRUPT Timer_A SM_secure function poll_keypad : key_state = read_key_state() for i=0 to 15 do if key_state & (0x1<<i) then SM_driver MMIO secret_pin.add(keymap[i]) (asm) end if end for 17 / 14

  42. Appendix: Measuring x86 data dependencies Division: execution time ≈ dividend significant bits 18 / 14

  43. Appendix: Measuring x86 page table walks TLB miss: flush unprotected page table entries 19 / 14

  44. Appendix: Measuring x86 cache misses 20 / 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend