investigación de los Avances tecnológicos del siglo XXI
Malware en Linux - Barcamp SE - Cali, Colombia 2013
1. 1
Usa Linux decían ...
...En Linux no hay virus decían
Alejandro Hernández
CISSP, GPEN
@nitr0usmx
http://www.brainoverflow.org
http://chatsubo-labs.blogspot.mx
MALWAREEN LINUX
2. Contenido
2
¿Por qué usar Linux (u otros basados en UNIX)?
Tipos de Malware
Similitudes y Diferencias con sistemas Windows
Motivadores para la creación de malware
Técnicas de Infección / Propagación
Demo(s)
Técnicas Anti Detección / Reversing / Debugging
Demo(s)
Técnicas de Detección / Eliminación
Demo(s)
Conclusión
3. ¿Por qué usar Linux (*NIX)?
3
Porque es “GRATIS”
PORQUE NO HAY VIRUS … DECÍAN
Porque es para expertos y hackers
Porque si…
4. ¿Por qué usar Linux (*NIX)?
4
http://www.dedoimedo.com/computers/linux-convert.html
6. ¿Por qué usar Linux (*NIX)?
6
http://www.dedoimedo.com/computers/linux-convert.html
7. Tipos de Malware en
Linux
7
Backdoors
Plataformas de SPAM (Correo no deseado)
Servidores de archivos (FTP, Torrents, etc.)
Botnets
Virus
Bombas de tiempo
Sniffers de información bancaria
Etc.
8. 8
Rootkits
Set de herramientas para esconder rastros de ataque y
mantener accesos futuros
Esconder archivos
Esconder procesos
Esconder conexiones de red
Usuarios escondidos
Y muchas otras capacidades
Tipos de Malware en
Linux
9. Motivadores para la
creación de malware
9
Mayormente financiera
Espionaje
Recientemente cuestiones geopolíticas entran en juego
(Stalking)
12. 12
Formato de archivo ejecutable
Windows: PE (Portable Executable)
Linux: ELF (Executable and Linking Format)
Muchos usuarios de Windows utilizan la cuenta de
Administrador
Permisos de archivos en Linux por default
Menor factor de exposición
Similitudes y
Diferencias con
sistemas Windows
13. Técnicas de Infección
/ Propagación
13
Existen virus / gusanos en diversos lenguajes de
programación como:
Perl
Bash scripts
Python
Etc.
Los más comunes y sofisticados son en el formato
de archivos ELF
14. Técnicas de Infección
/ Propagación
14
Executable and Linking Format
Formato de archivo mayormente utilizado en sistemas
tipo UNIX como Linux, BSD, Solaris, Irix, etc.
15. 15
Muchísimas técnicas de infección de binarios ELF
Mayormente infección en los binarios estáticamente
Ejemplo, inyección de un parásito en el segmento de
datos
.text
.data
.bss
Código malicioso:
x6ax0bx58x99x52
x66x68x2dx46x89
xe1x52x66x68x65
x73x68x74x61x62
x6cx68x6ex2fx69
x70x68x2fx73x62
x69x89xe3x52x51
x53x89xe1xcdx80
Técnicas de Infección
/ Propagación
18. 18
DEMO
INFECCIÓN ESTÁTICA
INYECCIÓN DE UN PARÁSITO EN EL SEGMENTO DE
DATOS
ELF_data_infector.c
http://www.brainoverflow.org/code/ELF_data_infector.c
Técnicas de Infección
/ Propagación
19. 19
En tiempo de ejecución
Uno de los últimos troyanos identificado para Linux con
capacidades de captura de información bancaria de los
formularios de exploradores. “Hand of Thief” Trojan
https://blog.avast.com/2013/08/27/linux-trojan-hand-of-thief-
ungloved/
https://blogs.rsa.com/thieves-reaching-for-linux-hand-of-thief-
trojan-targets-linux-inth3wild/
http://ostatic.com/blog/hand-of-a-thief-linux-malware-goes-for-the-
money
Técnicas de Infección
/ Propagación
20. 20
“Hand of Thief” Trojan
Técnicas de Infección
/ Propagación
21. 21
“Hand of Thief” Trojan
Es importarte mencionar que un usuario no se infecta
“automáticamente” al descargar este troyano (al igual que la
mayoría de malware en Linux)
El autor recomienda…
“Hand of Thief’s developer did not offer a recommended infection
method, other than sending the trojan via email and using some
social engineering to have the user launch the malware on their
machine.”
www.infosecurity-magazine.com/view/34349/hand-of-thief-trojan-has-no-claws/
Técnicas de Infección
/ Propagación
22. 22
Otro de los últimos detectado es
http://www.symantec.com/security_response/writeup.jsp?docid=2013-111815-1359-99
Técnicas de Infección
/ Propagación
23. 23
A diferencia de Windows, el malware en Linux no
se ejecuta y propaga tan fácilmente
Mayormente se requiere de la interacción del usuario
Ingeniería Social
Otros vectores de ataque
Cronjobs
Modificación de archivos de configuración
.bashrc
Etc.
Técnicas de Infección
/ Propagación
24. 24
Propagación a través de vulnerabilidades remotas
Exploits embedidos
Malas configuraciones
FTP / NFS / SMB con permisos de escritura para todos
Contraseñas por default en servicios de red
Técnicas de Infección
/ Propagación
25. 25
Error de capa 8 (PEBKAC)
Técnicas de Infección
/ Propagación
26. Detección
/ Reversing /
Debugging
26
Muchas técnicas conocidas
Detección del entorno
Dejar de funcionar si está corriendo bajo una Máquina Virtual
Detección de ejecución a través de debuggers:
http://xorl.wordpress.com/2009/01/01/quick-anti-debugging-trick-for-gdb/
ptrace(PTRACE_TRACEME, 0, 0, 0)
27. 27
Hasta más avanzadas como las presentadas por
aczid
Linux debugging & anti-debugging
Hack In The Random 2600
Netherlands
September 8, 2012
http://www.hackintherandom2600nldatabox.nl/archive/slides/2012/aczid.pdf
http://www.hackintherandom2600nldatabox.nl/archive/slides/2012/antidebuggin
g.tgz
Detección
/ Reversing /
Debugging
28. 28
DEMOS
APROVECHÁNDOSE DE FALLOS EN
DEBUGGERS PARA “MATARLOS”
http://blog.ioactive.com/2012/12/striking-back-gdb-and-ida-debuggers.html
gdb_elf_shield.c
http://www.exploit-db.com/exploits/23523/
Detección
/ Reversing /
Debugging
30. Técnicas de Detección
/ Eliminación
30
Presencia de elementos extraños y/o no
identificados
Procesos | Archivos | Conexiones | Puertos
nitr0us@linux:~$ netstat -ant | grep LISTEN
Cuentas de usuarios no identificados
‘h4ck3r::0:0::/:/bin/sh’ (/etc/passwd)
Elementos ocultos
Carpetas como “. “ o “.. “ o que inician con “.” no salen
con un listado normal $ls –l
31. 31
Ejecución periódica de herramientas de detección
chkrootkit
rkhunter
otras
Técnicas de Detección
/ Eliminación
33. 33
Ejecución periódica de integridad de archivos
Hashes
MD5
SHA-1
Etc.
Herramientas como
Tripwire ($)
AIDE (Advanced Intrusion Detection Environment)
Técnicas de Detección
/ Eliminación
34. 34
Antivirus
Detectan la existencia de código
malicioso
Heurística
Sandboxes
Sensores de Red
Reverse Engineering
Etc.
Técnicas de Detección
/ Eliminación
35. 35
Y se ve así…
Técnicas de Detección
/ Eliminación
36. 36
Antivirus
Mayormente detección basada en firmas de virus, por ejemplo,
una pequeña lista de malware conocido
http://en.wikipedia.org/wiki/Linux_malware
Técnicas de Detección
/ Eliminación
37. 37
Los engines analizadores no son suficientemente buenos
aún
Research de Tavis Ormandy vs Sophos Antivirus [SOPHAIL]
http://lock.cmpxchg8b.com/sophail.pdf
Técnicas de Detección
/ Eliminación
38. 38
Los engines analizadores no son suficientemente buenos
aún
En Febrero de 2013 analicé el engine de ELFs de ClamAV
En libclamav se encuentra elf.c, que es el engine analizador
Todas las variables son de tipo unsigned
Esto es bueno, sin embargo…
Técnicas de Detección
/ Eliminación
41. Conclusión
41
En Linux, SI hay virus y demás malware
Sus mecanismos de seguridad por default no lo
hacen tan vulnerable contra el malware
El porcentaje de usuarios es mucho menor que
Windows, así que el nivel de exposición también
es menor
Existen tendencias de atacar estaciones Linux de
usuarios finales para obtención de información
financiera y datos personales
El software anti-malware para Linux necesita
mejorar