SlideShare a Scribd company logo
hello rootKitty
  a lightweight invariance-enforcing framework

           Francesco Gadaleta - Nick Nikiforakis
DISTRINET Research Group Katholieke Universiteit Leuven - Belgium
hello rootKitty
  a lightweight invariance-enforcing framework

           Francesco Gadaleta - Nick Nikiforakis
DISTRINET Research Group Katholieke Universiteit Leuven - Belgium
OVERVIEW
rootkit          Operating System framework
critical kernel objects malware detection code
                     virus Analysis
integrity invariance attack
module   virtualization malicious
repairing memory corruption approach
profiling hardware-based countermeasure
evaluation
๏ process hiding

๏ botnet                            ๏ stealing private
                                       data


                ROOTKIT
 ๏ subverting kernels
                                     ๏ spamming

                   ๏ bank fraud
ROOTKIT

User-mode
              ls, ps, PATH, etc...
              limited to user’s privileges




Kernel-mode
              device drivers, access to kern. memory, etc...
              limited to kernel’s privileges (=unlimited)
FACTof rootkits will never be solved
the problem
FACT
FACT
“I’d rather tackle world peace than the rootkit
problem, it is that hard to solve”
ATTACKER MODEL
Loading rootkit as LKM

Loading by overwriting memory
directly (eg. /dev/mem, /dev/kmem)

Executing arbitrary code via kernel vulnerability

GOAL: Compromission of hardcoded, static,
dynamic kernel objects
VIRTUALIZATION
	

   Events trapped by the hypervisor

      case EXIT_REASON_MOV_CR
	

   case EXIT_REASON_CPUID
	

   case EXIT_REASON_IO_INSTRUCTION
	

   case EXIT_REASON_RDMSR
	

   case EXIT_REASON_WRMSR                                         Guest kernel
	

   case EXIT_REASON_EXCEPTION_OR_NMI
	

   case EXIT_REASON_EXTERNAL_INT
	

   case EXIT_REASON_INTERRUPT_WINDOW
	

   case EXIT_REASON_INVLPG
	

   case EXIT_REASON_VMCALL: /* for debugging */
	

   case EXIT_REASON_INIT_SIGNAL
	

   case EXIT_REASON_STARTUP_IPI
	

   case EXIT_REASON_HLT                                  VMExit                  VMEntry
	

   case EXIT_REASON_TASK_SWITCH
	

   case EXIT_REASON_XSETBV

                                        guest memory space
                                        hypervisor memory space
                                                                     Hypervisor
ASSUMPTION

Rootkits modify kernel data structures


Observing critical kernel objects is a good
detection strategy


Virtualization still not massively exploited in
desktop environments (QubesOS)
APPROACH
            Phase 1: collecting addresses of data structures to
            protect

                                                            phy
                                                                  s ad
                                                          0xC            dr
                                                              1  234
                                                         0xC         567          size
                                                             3214
                                                       0xC        567            128         flag
                                                           421                                    s
                                                               456              128      111
                                                      0xC          A                         111
                                                          521                                    11
                                                              456                      111
                                                                 C             64          111
                                                                                               11
                                                                                     111
                                                                              4          111
                                                                                             11
                           guest kernel                                             111
                                                                                        111
                                                                                            11


                                           trusted
                                           module
guest memory space
hypervisor memory space
                           hypervisor
APPROACH
       Phase 2: check integrity within the hypervisor
       mem. space




                           guest kernel


guest memory space
hypervisor memory space
                           hypervisor     phys addr    size   hash
                                          0xC1234567   128    abcd
                                          0xC3214567   128    abde
                                          0xC421456A   64     1234
                                          0xC521456C    4     4321
APPROACH
      Phase 3: repair compromised objects (if original content
      provided)




                           guest kernel


guest memory space
hypervisor memory space
                           hypervisor     phys addr    size   hash
                                          0xC1234567   128    abcd
                                          0xC3214567   128    abde
                                          0xC421456A   64     1234
                                          0xC521456C    4     4321
IMPLEMENTATION
Exploit the MOV_CR event :-|                            App 1            App 2          App 3


                                                         (1)
When the guest kernel changes a      <mov CR3, cr3_app2>
                                                                        scheduler
control register it is doing                                             Guest
something “interesting” such as                                          kernel

task switching :-)
                                                                (2)
                                     guest memory space
                                     hypervisor memory space
Room for improvement: we can                                            hypervisor
                                                                                                (3)
map all the objects to a common                                       host_virt_space
area in the hypervisor’s space and
                                                                                           phys addr    size   hash
                                                                                           0xC1234567   128    abcd


compute the checksum once                                                                  0xC3214567
                                                                                           0xC421456A
                                                                                                        128
                                                                                                        64
                                                                                                               abde
                                                                                                               1234
                                                                                           0xC521456C    4     4321
IMPLEMENTATION
Lists of objects to protect might be
HUGE
=> let’s relax the problem                                   phys addr   size   hash


                                       <mov CR3, cr3_app1>

                                       <mov CR3, cr3_app2>

                                       <mov CR3, cr3_app3>
SOLUTION:                              <mov CR3, cr3_app4>
on MOV_CR event the hypervisor
checks a subset of objects
                          $$
EVALUATION

BitVisor 1.1 and Linux Kernel 2.6

Total: 15000 kernel objects 128-bit sized

Rate:   100 objects/MOV_CR*

Corruption of pointers in the guest system call table
PERFORMANCE
LMBENCH (microbenchmarks)
Processes     open/close   sign. handl.   fork exec
              +0.6%        +2.5%          +41% +35%




Local comm.    TCP File reread Mmap reread Bcopy Mem.read Mem. write
bandwidths     +2.2% 0%        -0.9%       -0.32% -0.12%  0.12%
PERFORMANCE
APACHEBENCH 100K requests, 50 concurrently on local lighttpd server
(macrobenchmarks)
Time                     +1.50%
Req. per second          +1.52%
Time per request         +1.54%
Time per conc. req       +1.4%
Transfer rate            +1.52%



DETECTION TIME
(time the hypervisor needs to check a compromised object in the worst case)
Depends on the guest load, about 6 sec wall-clock time
LIMITATIONS

Protects invariants

Attacks to variant data structures are still possible
DISCUSSION

Kernel developers support system

Fine-grained protection

Lightweight contermeasure

Guarantees target-monitor isolation
DEMO.
CONCLUSION

helloRootkitty mitigates the problem of kernel malware

Negligible overhead

Attack surface might be considerably reduced

Easy integration with other protection mechanisms
(Daikon, Gibraltar)
THANKS.

More Related Content

PPTX
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
PDF
Master Homeland Security 2014 Lisi
PDF
Icl gnss helsinki-2014_lisi_v02
PDF
SECURITY IN LARGE, STRATEGIC AND COMPLEX SYSTEMS
PPT
PDF
Analysis of a Modified RC4
PDF
1508.07756v1
PDF
BuBBle: a Javascript engine level countermeasure against heap-spraying attacks
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
Master Homeland Security 2014 Lisi
Icl gnss helsinki-2014_lisi_v02
SECURITY IN LARGE, STRATEGIC AND COMPLEX SYSTEMS
Analysis of a Modified RC4
1508.07756v1
BuBBle: a Javascript engine level countermeasure against heap-spraying attacks

Viewers also liked (20)

PDF
"It's all about Time" - Presentation at the National Instruments Aerospace & ...
PDF
Malicious File for Exploiting Forensic Software
PDF
Sogei2014 lisi v01
PDF
Iwscff delft 2015_akhtyamov_golkar_lisi
PDF
Security_in_Satellite_Systems_Lisi_2015
PDF
"Giving the bad guys no sleep"
PDF
20th kabandconference 2014_lisi_v03
PPT
Turning client-side-to-server-side-ruxcon-2011-laurent
PDF
Origine ed evoluzione_del_project_management
PDF
CeBIT SCALE 11 pitch
PDF
Cnes workshop mw_filters_2015_angeletti_lisi_v01
PDF
Satellites and Timing - Space Expo, Milan, 2015
PDF
Bitcoin hardware wallets security
PDF
Master navigation torino_2013
PDF
Federated Systems of Pico-Satellites for Future Space-Based Service Infrastru...
PPT
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
PDF
A tale about chained vulnerabilities in Firefox
PDF
openioc_scan - IOC scanner for memory forensics
PDF
Możliwości złośliwego oprogramowania na platformy mobilne
PDF
GNSS Jamming Detection, Localization and Mitigation
"It's all about Time" - Presentation at the National Instruments Aerospace & ...
Malicious File for Exploiting Forensic Software
Sogei2014 lisi v01
Iwscff delft 2015_akhtyamov_golkar_lisi
Security_in_Satellite_Systems_Lisi_2015
"Giving the bad guys no sleep"
20th kabandconference 2014_lisi_v03
Turning client-side-to-server-side-ruxcon-2011-laurent
Origine ed evoluzione_del_project_management
CeBIT SCALE 11 pitch
Cnes workshop mw_filters_2015_angeletti_lisi_v01
Satellites and Timing - Space Expo, Milan, 2015
Bitcoin hardware wallets security
Master navigation torino_2013
Federated Systems of Pico-Satellites for Future Space-Based Service Infrastru...
Hardware Software Partitioning Of Advanced Encryption Standard To Counter Dif...
A tale about chained vulnerabilities in Firefox
openioc_scan - IOC scanner for memory forensics
Możliwości złośliwego oprogramowania na platformy mobilne
GNSS Jamming Detection, Localization and Mitigation
Ad

Similar to Hello rootKitty: A lightweight invariance-enforcing framework (20)

PDF
Hyperforce: Hypervisor-enForced Execution of Security-Critical Code
PDF
Meltdown & Spectre attacks
PPTX
Advanced Windows Debugging
PDF
Poc2015 os x_kernel_is_as_strong_as_its_weakest_part_liang_shuaitian
PPTX
Beneath the Linux Interrupt handling
PDF
Secure Containers with EPT Isolation
PDF
Drilling Deep Into Exadata Performance
PDF
Failure Of DEP And ASLR
PDF
XPDDS17: uniprof: Transparent Unikernel Performance Profiling and Debugging -...
PDF
Breaking paravirtualized devices
ODP
Stealthy, Hypervisor-based Malware Analysis
PDF
Porting Xen Paravirtualization to MIPS Architecture
PDF
Windows内核技术介绍
PDF
Workshop: XenClient Serve & Manage your road warriors with local virtual desktop
PDF
Valgrind
PDF
XS Boston 2008 Paravirt Ops in Linux IA64
PDF
[Blackhat EU'14] Attacking the Linux PRNG on Android and Embedded Devices
PPTX
XenTT: Deterministic Systems Analysis in Xen
PPTX
Metasploit & Windows Kernel Exploitation
PDF
The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...
Hyperforce: Hypervisor-enForced Execution of Security-Critical Code
Meltdown & Spectre attacks
Advanced Windows Debugging
Poc2015 os x_kernel_is_as_strong_as_its_weakest_part_liang_shuaitian
Beneath the Linux Interrupt handling
Secure Containers with EPT Isolation
Drilling Deep Into Exadata Performance
Failure Of DEP And ASLR
XPDDS17: uniprof: Transparent Unikernel Performance Profiling and Debugging -...
Breaking paravirtualized devices
Stealthy, Hypervisor-based Malware Analysis
Porting Xen Paravirtualization to MIPS Architecture
Windows内核技术介绍
Workshop: XenClient Serve & Manage your road warriors with local virtual desktop
Valgrind
XS Boston 2008 Paravirt Ops in Linux IA64
[Blackhat EU'14] Attacking the Linux PRNG on Android and Embedded Devices
XenTT: Deterministic Systems Analysis in Xen
Metasploit & Windows Kernel Exploitation
The Foundations of Multi-DC Kafka (Jakub Korab, Solutions Architect, Confluen...
Ad

Recently uploaded (20)

PDF
Mushroom cultivation and it's methods.pdf
PDF
August Patch Tuesday
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPT
Teaching material agriculture food technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Spectroscopy.pptx food analysis technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Mushroom cultivation and it's methods.pdf
August Patch Tuesday
Univ-Connecticut-ChatGPT-Presentaion.pdf
Teaching material agriculture food technology
Programs and apps: productivity, graphics, security and other tools
NewMind AI Weekly Chronicles - August'25-Week II
Spectroscopy.pptx food analysis technology
Empathic Computing: Creating Shared Understanding
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Heart disease approach using modified random forest and particle swarm optimi...
Mobile App Security Testing_ A Comprehensive Guide.pdf
1. Introduction to Computer Programming.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Accuracy of neural networks in brain wave diagnosis of schizophrenia
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx

Hello rootKitty: A lightweight invariance-enforcing framework

  • 1. hello rootKitty a lightweight invariance-enforcing framework Francesco Gadaleta - Nick Nikiforakis DISTRINET Research Group Katholieke Universiteit Leuven - Belgium
  • 2. hello rootKitty a lightweight invariance-enforcing framework Francesco Gadaleta - Nick Nikiforakis DISTRINET Research Group Katholieke Universiteit Leuven - Belgium
  • 3. OVERVIEW rootkit Operating System framework critical kernel objects malware detection code virus Analysis integrity invariance attack module virtualization malicious repairing memory corruption approach profiling hardware-based countermeasure evaluation
  • 4. ๏ process hiding ๏ botnet ๏ stealing private data ROOTKIT ๏ subverting kernels ๏ spamming ๏ bank fraud
  • 5. ROOTKIT User-mode ls, ps, PATH, etc... limited to user’s privileges Kernel-mode device drivers, access to kern. memory, etc... limited to kernel’s privileges (=unlimited)
  • 6. FACTof rootkits will never be solved the problem
  • 8. FACT “I’d rather tackle world peace than the rootkit problem, it is that hard to solve”
  • 9. ATTACKER MODEL Loading rootkit as LKM Loading by overwriting memory directly (eg. /dev/mem, /dev/kmem) Executing arbitrary code via kernel vulnerability GOAL: Compromission of hardcoded, static, dynamic kernel objects
  • 10. VIRTUALIZATION Events trapped by the hypervisor case EXIT_REASON_MOV_CR case EXIT_REASON_CPUID case EXIT_REASON_IO_INSTRUCTION case EXIT_REASON_RDMSR case EXIT_REASON_WRMSR Guest kernel case EXIT_REASON_EXCEPTION_OR_NMI case EXIT_REASON_EXTERNAL_INT case EXIT_REASON_INTERRUPT_WINDOW case EXIT_REASON_INVLPG case EXIT_REASON_VMCALL: /* for debugging */ case EXIT_REASON_INIT_SIGNAL case EXIT_REASON_STARTUP_IPI case EXIT_REASON_HLT VMExit VMEntry case EXIT_REASON_TASK_SWITCH case EXIT_REASON_XSETBV guest memory space hypervisor memory space Hypervisor
  • 11. ASSUMPTION Rootkits modify kernel data structures Observing critical kernel objects is a good detection strategy Virtualization still not massively exploited in desktop environments (QubesOS)
  • 12. APPROACH Phase 1: collecting addresses of data structures to protect phy s ad 0xC dr 1 234 0xC 567 size 3214 0xC 567 128 flag 421 s 456 128 111 0xC A 111 521 11 456 111 C 64 111 11 111 4 111 11 guest kernel 111 111 11 trusted module guest memory space hypervisor memory space hypervisor
  • 13. APPROACH Phase 2: check integrity within the hypervisor mem. space guest kernel guest memory space hypervisor memory space hypervisor phys addr size hash 0xC1234567 128 abcd 0xC3214567 128 abde 0xC421456A 64 1234 0xC521456C 4 4321
  • 14. APPROACH Phase 3: repair compromised objects (if original content provided) guest kernel guest memory space hypervisor memory space hypervisor phys addr size hash 0xC1234567 128 abcd 0xC3214567 128 abde 0xC421456A 64 1234 0xC521456C 4 4321
  • 15. IMPLEMENTATION Exploit the MOV_CR event :-| App 1 App 2 App 3 (1) When the guest kernel changes a <mov CR3, cr3_app2> scheduler control register it is doing Guest something “interesting” such as kernel task switching :-) (2) guest memory space hypervisor memory space Room for improvement: we can hypervisor (3) map all the objects to a common host_virt_space area in the hypervisor’s space and phys addr size hash 0xC1234567 128 abcd compute the checksum once 0xC3214567 0xC421456A 128 64 abde 1234 0xC521456C 4 4321
  • 16. IMPLEMENTATION Lists of objects to protect might be HUGE => let’s relax the problem phys addr size hash <mov CR3, cr3_app1> <mov CR3, cr3_app2> <mov CR3, cr3_app3> SOLUTION: <mov CR3, cr3_app4> on MOV_CR event the hypervisor checks a subset of objects $$
  • 17. EVALUATION BitVisor 1.1 and Linux Kernel 2.6 Total: 15000 kernel objects 128-bit sized Rate: 100 objects/MOV_CR* Corruption of pointers in the guest system call table
  • 18. PERFORMANCE LMBENCH (microbenchmarks) Processes open/close sign. handl. fork exec +0.6% +2.5% +41% +35% Local comm. TCP File reread Mmap reread Bcopy Mem.read Mem. write bandwidths +2.2% 0% -0.9% -0.32% -0.12% 0.12%
  • 19. PERFORMANCE APACHEBENCH 100K requests, 50 concurrently on local lighttpd server (macrobenchmarks) Time +1.50% Req. per second +1.52% Time per request +1.54% Time per conc. req +1.4% Transfer rate +1.52% DETECTION TIME (time the hypervisor needs to check a compromised object in the worst case) Depends on the guest load, about 6 sec wall-clock time
  • 20. LIMITATIONS Protects invariants Attacks to variant data structures are still possible
  • 21. DISCUSSION Kernel developers support system Fine-grained protection Lightweight contermeasure Guarantees target-monitor isolation
  • 22. DEMO.
  • 23. CONCLUSION helloRootkitty mitigates the problem of kernel malware Negligible overhead Attack surface might be considerably reduced Easy integration with other protection mechanisms (Daikon, Gibraltar)