Este documento presenta una introducción a los rootkits y sus tendencias a lo largo de los años, incluyendo técnicas como modificar binarios del sistema, inyección de código en el kernel y en ejecución, y eludir detección. También describe herramientas como Unhide y UnhideNX para detectar rootkits ocultando procesos o archivos mediante la comparación de datos de diferentes fuentes. Además, propone contramedidas como preload, kernel.yama.ptrace_scope, y PydeAPI para auditar la integridad del sistema y detectar in
2. Who are you ??
• Profesional seguridad informática
• Editor Security By Default
• Herramientas: Unhide, Anti Ransom, RadioGraphy, Patriot,
etc etc etc
• Actualmente en eGarante
• Twitter: @YJesus
3. Who are you ??
• Profesional seguridad informática +10 years
• Contributing to
• x64dbg
• Rootkit Unhooker
• DbgChild
• More: https://github.com/David-Reguera-Garcia-Dreg
• Twitter: @fr33project
4. Rootkits
• Malware de servicio
• NO es el fin, ES el medio
• Múltiples técnicas + Múltiples vectores
• En constante evolución
• No solo Linux !!
• Conservar los privilegios
10. Tendencias Año 2010 ...
• Inject on the fly
• Limpio y con capacidad de evadir sospechas
• Proceso malicioso parasita a proceso del sistema
• Injectso
• Ptrace()
• Detección compleja
13. Unhide
• Basada en 'Cross view'
• ... O lo que es lo mismo: comparar datos de distintas
fuentes
• /bin/ps ¿Qué ves?
• /bin/netstat ¿Qué ves?
• ¿Se ve lo mismo si buscamos de otra forma?
• A veces sí, a veces no
28. UnhideNX
• GID Bruteforce (MAGIC GIDs…):
• Ficheros: chown + readdir
• Procesos: procfs dont Support xattr
29. UnhideNX
• Process GID Bruteforce:
• setgid jail detection
• setgid + readdir /proc
• setgid + stat /proc
30. UnhideNX
• API high level vs API low level:
• x86: readdir /proc VS eax=0x8d(getdents) + int 0x80
• x64: readdir /proc VS rax=0x4e(getdents) + syscall
31. UnhideNX
• Algunos problemas encontrados con bruteforce de GIDs:
• Bruteforce readdir /proc: lento
• El proceso crashea debido a bugs en el código del rootkit
• setgid jail no implementado en todos los rootkits
37. Contramedidas
Preload
• Integrity Measurement Architecture
• IMA appraisal
• En el kernel 'By Default'
• ¿Alguien lo está usando? :(
• https://sourceforge.net/p/linux-ima/wiki/Home/#ima-
appraisal
38. Contramedidas
Injection
• kernel.yama.ptrace_scope = 3
• ### These rules watch for code injection by the ptrace
facility.
-a always,exit -F arch=b32 -S ptrace -k tracing
-a always,exit -F arch=b64 -S ptrace -k tracing
-a always,exit -F arch=b32 -S ptrace -F a0=0x4 -k code_injection
-a always,exit -F arch=b64 -S ptrace -F a0=0x4 -k code_injection
-a always,exit -F arch=b32 -S ptrace -F a0=0x5 -k data_injection
-a always,exit -F arch=b64 -S ptrace -F a0=0x5 -k data_injection
-a always,exit -F arch=b32 -S ptrace -F a0=0x6 -k register_injection
-a always,exit -F arch=b64 -S ptrace -F a0=0x6 -k register_injection
40. Conclusiones ...
• Rookits (Userland, Kernelmode, Stealth, BIOS, UEFI ...)
• Crypto helps !
• Mejor heurística VS firmas
• Aprovechar 'sus' fallos de diseño
• No quieres anti-anti-anti-anti -anti ... ? Guarda un AS en tu
manga
• Live siempre más complejo que offline