seclabel enhancing risc v platform security with labelled
play

SecLabel: Enhancing RISC-V Platform Security with Labelled - PowerPoint PPT Presentation

SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture Zhenyu Ning 1,2 , Yinqian Zhang 3 , and Fengwei Zhang 2 1 Wayne State University, 2 Southern University of Science and Technology, 3 The Ohio State University Outline


  1. SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture Zhenyu Ning 1,2 , Yinqian Zhang 3 , and Fengwei Zhang 2 1 Wayne State University, 2 Southern University of Science and Technology, 3 The Ohio State University

  2. Outline Introduction • Pointer Integrity • Memory Boundary Protection • Dynamic Taint Analysis • Implementation • Conclusion • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 2

  3. Outline Introduction • Pointer Integrity • Memory Boundary Protection • Dynamic Taint Analysis • Implementation • Conclusion • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 3

  4. Introduction • The RISC-V architecture is well-known for its open nature. Open Source, No License fee • Open to new design and extension • • Open to challenge. Security problems in x86 and ARM architecture remains on RISC-V platforms. • E.g., pointer integrity, memory boundary protection, and dynamic taint • analysis. SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 4

  5. Introduction Any effective defense on RISC-V? SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 5

  6. Outline Introduction • Pointer Integrity • Memory Boundary Protection • Dynamic Taint Analysis • Implementation • Conclusion • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 6

  7. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 0 x1 = addr1 else x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 7

  8. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 0 x1 = addr1 x1 = addr1 else x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 8

  9. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 0 x1 = addr1 x1 = addr3 Code-pointer else Attack x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 9

  10. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 0 x1 = addr1 else x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 10

  11. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 2 x1 = addr1 else x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 11

  12. Pointer Integrity • To ensure that the pointer is not corrupted. Code-pointer Integrity and Data-pointer Integrity. • if *x0 = 0 then *x0 = 2 x1 = addr1 x1 = addr2 Data-pointer else Attack x1 = addr2 jmp to x1 SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 12

  13. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … Params Return Addr Frame Pointer Local Var a Local Var b Local Var c Stack Pointer … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 13

  14. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … Params Return Addr Frame Pointer Local Var a Local Var b Local Var c Stack Pointer … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 14

  15. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … … Params Params Return Addr Return Addr Buffer Overflow Frame Pointer Frame Pointer Attack Local Var a Local Var a Local Var b Local Var b Local Var c Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 15

  16. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … … Params Params Return Addr Return Addr Buffer Overflow Frame Pointer Frame Pointer Attack Local Var a Local Var a Local Var b Random data Local Var c Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 16

  17. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … … Params Params Return Addr Return Addr Buffer Overflow Frame Pointer Frame Pointer Attack Local Var a Random data Local Var b Random data Local Var c Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 17

  18. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … … Params Params Return Addr Return Addr Buffer Overflow Frame Pointer Random data Attack Local Var a Random data Local Var b Random data Local Var c Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 18

  19. Pointer Integrity: Buffer Overflow Start of the attack: In most cases, a buffer overflow vulnerability. • … … Params Params Return Addr Modified Addr Buffer Overflow Frame Pointer Random data Attack Local Var a Random data Local Var b Random data Local Var c Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 19

  20. Pointer Integrity: Canary Stack Canary [1] : The most widely used defense to buffer overflow attack. • … … Params Params Return Addr Modified Addr Buffer Overflow Frame Pointer Random data Attack Canary Random data Local Var a Random data Local Var b Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 20

  21. Pointer Integrity: Canary Stack Canary [1] : The most widely used defense to buffer overflow attack. • … … Params Params Return Addr Modified Addr Buffer Overflow Frame Pointer Random data Attack Canary is changed Canary Random data by overflow Local Var a Random data Local Var b Stack Pointer Random data Stack Pointer … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 21

  22. Pointer Integrity: Canary Stack Canary [1] : The most widely used defense to buffer overflow attack. • Weakness: • Easy to bypass [2] • Not efficient to defend against data-pointer attack • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 22

  23. Pointer Integrity: PAC Pointer Authentication Code [3] is introduced in 64-bit ARMv8.3 architecture. • 0 63 A pointer in 64-bit system Is it really necessary to use a 64-bit address? SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 23

  24. Pointer Integrity: PAC Is it really necessary to use a 64-bit address? 2 64 bit = 16384 PB = 16.8 millions TB = 17.2 billions GB • Summit : 10 PB memory • Sunway TaihuLight : 1.32 PB memory • Linux : Up to 128 TB virtual memory • Windows : Up to 16 TB virtual memory • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 24

  25. Pointer Integrity: PAC Pointer Authentication Code [3] is introduced in 64-bit ARMv8.3 architecture. • 0 63 A pointer in 64-bit system SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 25

  26. Pointer Integrity: PAC Pointer Authentication Code [3] is introduced in 64-bit ARMv8.3 architecture. • 63 54 48 47 0 PAC Virtual Address Pointer Value + 64-bit Context Value + 128-bit Secret Key => PAC • Up to 48 bits for virtual address, and at least 7 bits for PAC • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 26

  27. Pointer Integrity: PAC PAC is good, but the deployment is painful. • The mechanism is released with ARMv8.3 architecture since 2016. • ARM does not release any processor with ARMv8.3 till now. • The only processors with PAC support are Apple A12 and A13. • Closed ecosystem. • No available to system developers. • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 27

  28. Pointer Integrity: RISC-V RISC-V based PAC • A group of new hardware instructions • Forge PAC, examine PAC, strip PAC • New registers for storing the 128-bit secret key • Secret keys for data pointers and code pointers • Hardware-based crypto engine • Generate PAC from pointer and 64-bit context value • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 28

  29. Outline Introduction • Pointer Integrity • Memory Boundary Protection • Dynamic Taint Analysis • Implementation • Conclusion • SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 29

  30. Memory Boundary Protection • To ensure the memory access won’t go out of its expected boundary. … … a[0] a[0] a a a[1] a[1] int a[10]; … a[8] = 1 … a[8] a[8] a[8] a[9] a[9] … … SecLabel: Enhancing RISC-V Platform Security with Labelled Architecture 30

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