350 likes | 515 Views
Automatic Discovery of Parasitic Malware. Abhinav Srivastava and Jonathon Giffin School of Computer Science Georgia Institute of Technology. Attack and Remediation. B. Malware. A. Network. App. C. App. Malware. Attack and Remediation. B. Malware. A. Infected machine -- B
E N D
Automatic Discovery of Parasitic Malware Abhinav Srivastava and Jonathon Giffin Schoolof Computer Science Georgia Institute of Technology
Attack and Remediation B Malware A Network App C App Malware Automatic Discovery of Parasitic Malware
Attack and Remediation B Malware A Infected machine -- B Infected machine -- C Network App C App Malware Automatic Discovery of Parasitic Malware
Attack and Remediation B Malware A Infected machine -- B Infected machine -- C Reimage the infected machines Network App C App Malware Automatic Discovery of Parasitic Malware
Attack and Remediation B • Our Goals • Precise attribution of malicious activity • Processes (machine B and C) • Identify true origin of malicious activity • Parasitic behaviors (machine C) Malware A Infected machine -- B Infected machine -- C Reimage the infected machines Network App C App Malware Automatic Discovery of Parasitic Malware
Parasitic Behaviors C DLL App Malware User Kernel Automatic Discovery of Parasitic Malware
Parasitic Behaviors C App DLL User Kernel Malware Automatic Discovery of Parasitic Malware
Challenges • Network can pinpoint infected machines but not processes • Host can observe parasitic behaviors but cannot distinguish between benign and malicious behaviors • For example: Debugger, Google toolbar • Neither approach is perfect Combine network and host information Automatic Discovery of Parasitic Malware
Pyrenee • Goal: Identify parasitic malware • Correlates network and host information • Uses lightweight sensors • Tamper-resistant Automatic Discovery of Parasitic Malware
Pyrenee Architecture Trusted VM (Fedora) Untrusted VM (Windows XP) Network sensor (NIDS) App Network attribution sensor App VMI Correlation engine Firewall User User Kernel Kernel Network attribution sensor Xen Host attributionsensor Automatic Discovery of Parasitic Malware
Pyrenee Architecture Detects malicious traffic Trusted VM (Fedora) Untrusted VM (Windows XP) Network sensor (NIDS) Records end-point process (App) App Network attribution sensor App VMI Correlation engine True origin: Malware Malware Firewall User User Kernel Kernel Network attribution sensor Xen Host attributionsensor Records parasitic behaviors Automatic Discovery of Parasitic Malware
Threat Model • Both user and kernel-level attacks are possible • Our assumptions • Hypervisor & trusted VM are secure • Kernel data structures are at known places • Presence of driver verifier service Automatic Discovery of Parasitic Malware
Network Attribution Sensor (NAS) • Kernel-level component • Identifies separate connections • User-level component • For each connection determines local end-point in untrusted VM Automatic Discovery of Parasitic Malware
Network Object Traversal MODULE_ENTRY MODULE_ENTRY MODULE_ENTRY tcpip.sys Drivers: Linked list iteration TCBTable Pointer SourceIP Source IP Source IP SourcePort Source Port Source Port DestinationIP Destination IP Destination IP Input:Port and IP DestinationPort Destination Port Destination Port ProcessID Process ID Process ID Linked list iteration Output: Process name from EPROCESS PID match EPROCESS EPROCESS EPROCESS Processes: Process ID ProcessID Process ID Name Name Name Linked list iteration Automatic Discovery of Parasitic Malware
Host Attribution Sensor (HAS) • NAS points to the local process end point • HAS identifies true origin of malicious activities • HAS operates from the hypervisor • Divided in two components • User-level parasitism detector • Kernel-level parasitism detector Automatic Discovery of Parasitic Malware
User-level Parasitic Behaviors C DLL App Malware User Kernel Automatic Discovery of Parasitic Malware
User-level Parasitic Behaviors C App DLL Win dlls Malware Windows APIs User Kernel Automatic Discovery of Parasitic Malware
User-level Parasitism Model handle = OpenProcess() handle = CreateProcess() AllocateMemory(handle) WriteMemory(handle) CreateRemoteThread(handle) Code Injection Automatic Discovery of Parasitic Malware
User-level Parasitic Behaviors C App DLL Win dlls Malware Windows APIs User Kernel Automatic Discovery of Parasitic Malware
Kernel-level Parasitic Behaviors C App DLL User Kernel Malware Automatic Discovery of Parasitic Malware
Kernel-level Parasitic Behaviors C App DLL User Kernel Kernel Code Malware Kernel APIs Automatic Discovery of Parasitic Malware
Kernel-level Parasitism Model ZwOpenProcess() KeAttachProcess() ZwAllocateMemory() KeInitializeApc() KeInsertQueueApc() Code Injection Automatic Discovery of Parasitic Malware
Kernel-level Parasitic Behaviors C App DLL User Kernel Kernel Code Malware Kernel APIs Automatic Discovery of Parasitic Malware
Kernel-level Parasitic Behaviors C App DLL User Kernel Kernel Code Malware Page fault Xen Switch address space Automatic Discovery of Parasitic Malware
Kernel-level Parasitic Behaviors C App DLL User Kernel Kernel Code + Trusted drivers Malware Page fault Xen Switch address space Automatic Discovery of Parasitic Malware
Correlation Engine • Finds actual malicious code on the system • Gathers data from all sensors • Uses NAS to find the process • Uses HAS to find parasitic behavior Automatic Discovery of Parasitic Malware
Security Evaluation • Evaluated network- and host-attribution sensors’ effectiveness. • Tested with applications to correctly correlate network connections to processes. • Example: Internet explorer, putty, winscp, and others. • Tested the effectiveness of host-attribution sensor in identifying true origin of parasitic behaviors. Automatic Discovery of Parasitic Malware
Security Evaluation Automatic Discovery of Parasitic Malware
Performance Evaluation CPU Performance Test Automatic Discovery of Parasitic Malware
Performance Evaluation CPU Performance Test Automatic Discovery of Parasitic Malware
Performance Evaluation Memory Performance Test Automatic Discovery of Parasitic Malware
Performance Evaluation Memory Performance Test Automatic Discovery of Parasitic Malware
Performance Evaluation Network Performance Test Automatic Discovery of Parasitic Malware
Conclusions Automatic Discovery of Parasitic Malware
Questions …. or send us email: Abhinav Srivastava Jonathon Giffin abhinav@cc.gatech.edu giffin@cc.gatech.edu Automatic Discovery of Parasitic Malware