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
Security Monitoring In-place External Monitoring Monitoring Applicatio Applicatio Applicatio Applicatio n n n n Application Application OS OS The DragonBeam Framework
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
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
DragonBeam Framework Applicatio Applicatio n n Application OS Command/Response Secure Layer Untrusted Layer The DragonBeam Framework
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
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
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
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
Example Use Case SecMan Time SKM SKM SecMan Secure Data Memory The DragonBeam Framework
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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