the dragonbeam framework hardware protected security
play

The DragonBeam Framework: Hardware-Protected Security Modules for - PowerPoint PPT Presentation

The DragonBeam Framework: Hardware-Protected Security Modules for In-Place Intrusion Detection Man-Ki Yoon, Mihai Christodorescu, Lui Sha, Sibin Mohan University of Illinois at Urbana-Champaign Qualcomm Research Silicon Valley June 6, 2016


  1. The DragonBeam Framework: Hardware-Protected Security Modules for In-Place Intrusion Detection Man-Ki Yoon, Mihai Christodorescu, Lui Sha, Sibin Mohan University of Illinois at Urbana-Champaign Qualcomm Research Silicon Valley June 6, 2016

  2. Security Monitoring In-place External Monitoring Monitoring Applicatio Applicatio Applicatio Applicatio n n n n Application Application OS OS The DragonBeam Framework

  3. Security Monitoring In-place External Monitoring Monitoring Applicatio Applicatio Applicatio Applicatio n n n n Application Application OS OS Unsafety of the monitor The DragonBeam Framework

  4. Security Monitoring In-place External Monitoring Monitoring Applicatio Applicatio Applicatio Applicatio n n n n Application Application OS OS Semantic gap Unsafety of the monitor The DragonBeam Framework

  5. DragonBeam Framework Applicatio Applicatio n n Application OS Command/Response Secure Layer Untrusted Layer The DragonBeam Framework

  6. DragonBeam Framework Monitored Core Secure Core Applicatio Applicatio n n Application Secure SecMan Memory OS SKM Command/Response Secure Layer Untrusted Layer The DragonBeam Framework

  7. DragonBeam Framework Monitored Core Secure Core Applicatio Applicatio n n Application Secure SecMan Memory OS SKM Command/Response Secure Layer Untrusted Layer Secure Kernel Module - Performs security monitoring operations - Expands the observability - Protected by Secure Core The DragonBeam Framework

  8. DragonBeam Framework Monitored Core Secure Core Applicatio Applicatio n n Application Secure SecMan Memory OS SKM Command/Response Secure Layer Untrusted Layer Secure Kernel Module Manager - Commands SKM to perform security operations - Analyzes monitored information - Guarantees the integrity and the liveness of SKM The DragonBeam Framework

  9. DragonBeam Framework Monitored Core Secure Core Applicatio Applicatio n n Application Secure SecMan Memory OS SKM Command/Response Secure Layer Untrusted Layer Secure Memory - Secure communication channel between SKM and SecMan - Only accessible by SKM or Secure Core - Also hosts SecMan code/data The DragonBeam Framework

  10. Example Use Case SecMan Time SKM SKM SecMan Secure Data Memory The DragonBeam Framework

  11. Example Use Case SecMan Sends Command Time SKM SKM SecMan check_syscall_table () { send_cmd(CMD_SYSCALL_TABLE); settimer(TIMEOUT); } Secure Data Memory The DragonBeam Framework

  12. Example Use Case SecMan Sends Command Time SKM SKM SecMan check_syscall_table () { 1 send_cmd(CMD_SYSCALL_TABLE); settimer(TIMEOUT); } Secure Data Memory The DragonBeam Framework

  13. Example Use Case SecMan Sends Command Time SKM SKM SecMan skm_ISR () { check_syscall_table () { save sp; 1 send_cmd(CMD_SYSCALL_TABLE); move sp to secure stack; switch (*CMD) { settimer(TIMEOUT); … } 2 case CMD_SYSCALL_TABLE: send_syscall_table(); break; … } restore sp; } Secure Data Memory The DragonBeam Framework

  14. Example Use Case SecMan Sends Command Time Collects Information SKM SKM SecMan skm_ISR () { check_syscall_table () { save sp; 1 send_cmd(CMD_SYSCALL_TABLE); move sp to secure stack; switch (*CMD) { settimer(TIMEOUT); … } 2 case CMD_SYSCALL_TABLE: send_syscall_table(); break; … } 3 restore sp; } Secure Data Memory send_syscall_table () { get cur_syscall_table; for each entry i write cur_syscall_table[i]; response_ready(); } The DragonBeam Framework

  15. Example Use Case SecMan Sends Command Time Collects Information SKM SKM SecMan skm_ISR () { check_syscall_table () { save sp; 1 send_cmd(CMD_SYSCALL_TABLE); move sp to secure stack; switch (*CMD) { settimer(TIMEOUT); … } 2 case CMD_SYSCALL_TABLE: send_syscall_table(); break; … } 3 restore sp; } 4 Secure Data Memory send_syscall_table () { get cur_syscall_table; for each entry i write cur_syscall_table[i]; response_ready(); } The DragonBeam Framework

  16. Example Use Case SecMan Sends Command Analyzes Data Time Collects Information SKM SKM SecMan skm_ISR () { check_syscall_table () { save sp; 1 send_cmd(CMD_SYSCALL_TABLE); move sp to secure stack; switch (*CMD) { settimer(TIMEOUT); … } 2 case CMD_SYSCALL_TABLE: send_syscall_table(); break; … recv_syscall_table () { } 3 5 cleartimer(TIMEOUT); restore sp; } retrieve current syscall table; for each entry i 4 if (cur.table[i]!=org.table[i]) Secure Data Memory send_syscall_table () { Raise alert! get cur_syscall_table; } for each entry i write cur_syscall_table[i]; response_ready(); } The DragonBeam Framework

  17. Challenges Monitored Core Secure Core Applicatio Applicatio n n Application Secure SecMan Memory OS SKM Command/Response • SKM identification • Secure memory access control • SKM integrity and liveness guarantee The DragonBeam Framework

  18. SKM Registration SKM .text • Requested by SKM, verified by SecMan Base address • Calculates a hash of SKM’s code • Directly from physical frames SKM Size Page SecMan SKM Size SKM Loading Virtual Address Space Registration request Page table Information Page Table Hierarchy Physical Address Space The DragonBeam Framework

  19. SKM Registration SKM .text • Requested by SKM, verified by SecMan Base address • Calculates a hash of SKM’s code • Directly from physical frames SKM Size Page SecMan SKM Size SKM Loading Virtual Address Space Registration request Find phys. frames of Page table SKM .text Information Page Table Hierarchy SKM .text Physical Frames Physical Address Space The DragonBeam Framework

  20. SKM Registration SKM .text • Requested by SKM, verified by SecMan Base address • Calculates a hash of SKM’s code • Directly from physical frames SKM Size Page SecMan SKM Size SKM Loading Virtual Address Space Registration request Find phys. frames of Page table SKM .text Information Page Table Hierarchy Calculate the hash SKM .text of SKM .text Physical Frames Match Not Begin Halt and operations alarm Physical Address Space The DragonBeam Framework

  21. Secure Memory Access Control • Who initiated memory transaction? • Use the current program counter and page mapping information Secure Memory RAM Array Registered .text info Program Within Counter Monitored SKM .text? Core Page Table Same with the Base registered one? Address Registered Page Malicious SKM Table info Module The DragonBeam Framework

  22. Secure Memory Access Control • What if attacker modifies SKM’s page mapping? Physical Address Space Page Table Hierarchy Virtual Address Space SKM .text Physical Base Frames PC Size PC The DragonBeam Framework

  23. Secure Memory Access Control • What if attacker modifies SKM’s page mapping? Physical Address Space Page Table Hierarchy Virtual Address Space SKM .text Physical Base Frames PC Size PC Page Table Hierarchy PC Altered Malicious Module’s Physical Frames The DragonBeam Framework

  24. Secure Memory Access Control • What if attacker modifies SKM’s page mapping? • Solution : Regularly translate virt-to-phys address and verifies SKM .text hash Physical Address Space Page Table Hierarchy Virtual Address Space SKM .text Physical Base Frames PC Size PC Page Table Hierarchy PC Altered Malicious Module’s Physical Frames The DragonBeam Framework

  25. Heartbeat and Hashing • Heartbeat • Checks if SKM is alive • Only SKM can respond Timeout SecMan Requests for HB Receives HB Sends HB SKM Time The DragonBeam Framework

  26. Heartbeat and Hashing • Heartbeat • Checks if SKM is alive • Only SKM can respond Timeout SecMan Requests for HB Receives HB Sends HB SKM Time • SKM .text hashing • Checks if SKM’s code and page mapping have not been altered The DragonBeam Framework

  27. Random Check Intervals • To prevent TOCTTOU (Time Of Check To Time Of Use) attacks • Attacker cannot guess the pattern of checks SKM SKM SKM SKM SecMan HB HB HS HB HS HB HS OP OP OP OP SKM SKM SKM HB HB OP OP Time SKM Operation Heartbeat Hashing SKM HB HS (Request/Send/Receive) SKM .text OP (Send/Response/Analysis) The DragonBeam Framework

  28. Implementation • Leon3 processor on Xilinx ZC702 FPGA Leon3 Core 1 Leon3 Core 2 • SPARC V8, soft-core (Monitored Core) (Secure Core) AHBRAM • 83.3 MHz Secure Memory • 256 MB Instruction Instruction Secure Pipeline Pipeline SecMan PC PC Data/Stack Controller Unused MMU MMU CTP CTP Base Access Size Control CTP AMBA AHB BUS AHB2AXI AHB2APB Bridge Bridge Multiprocessor SKM Main Interrupt Memory Linux Controller IRQ IRQ The DragonBeam Framework

  29. Implementation • Leon3 processor on Xilinx Leon3 on-chip SRAM (128KB) ZC702 FPGA Leon3 Core 1 Leon3 Core 2 • SPARC V8, soft-core (Monitored Core) (Secure Core) AHBRAM • 83.3 MHz Secure Memory • 256 MB Instruction Instruction Secure Pipeline Pipeline SecMan PC PC Data/Stack Controller Unused MMU MMU CTP CTP Base Access Size Control CTP AMBA AHB BUS AHB2AXI AHB2APB Bridge Bridge Multiprocessor SKM Main Interrupt Memory Linux Controller IRQ IRQ The DragonBeam Framework

Recommend


More recommend