Malware en linux

Preview:

Citation preview

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)?

5

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

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

Recommended