Malware Departamento de Sistemas Telemáticos y Computación (GSyC) http://gsyc.urjc.es Abril de 2013 GSyC - 2013 Malware 1
c 2013 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike 3.0 GSyC - 2013 Malware 2
Malware Malware Características del malware Malware: Malicious software Software malitencionado, hostil, intrusivo, molesto. No confundir con software defectuoso Atendiendo principalmente a su forma de propagación, se habla de: virus, gusanos, troyanos, spyware, adware deshonesto En el lenguaje no especializado se suele usar la palabra virus para nombrar genéricamente a todo el malware Independientemente de su forma de propagación, el software malicioso puede realizar diferente actividad dañina. Esta actividad la realiza una parte de cada aplicación maliciosa, la carga (payload) GSyC - 2013 Malware 3
Malware Características del malware Virus, gusanos y troyanos pueden llevar prácticamente cualquier carga El spyware suele llevar una carga que realiza acciones similares El adware suele llevar una carga que realiza acciones similares Entre la carga más habitual del malware: Puertas traseras, rootkits, inclusión en Botnets, keyloggers y fraudulent dialers Otras actividades delictivas realizadas en redes de ordenadores, realizadas fundamentalmente mediante ingeniería social: Spamming y phising GSyC - 2013 Malware 4
Motivación Malware Características del malware Las aplicaciones maliciosas se desarrollan por diferente motivación Diversión, prueba de una idea, vandalismo, sabotaje, beneficio económico, extorsión, o incluso, antiguamente, ser bienintencionados Se conocen casos de malware probablemente escrito por desarrolladores de antivirus y por desarrolladores de aplicaciones comerciales (para desincentivar el uso de aplicaciones obtenidas ilegalmente) GSyC - 2013 Malware 5
Malware Características del malware El malware puede tener objetivos Muy específicos. P.e. Sabotaje de gaseoducto en Siberia en 1982 Gusano Stuxnet en 2010 Muy amplios P.e. Botnet BredoLab, año 2010 GSyC - 2013 Malware 6
Malware El virus Stuxnet y derivados (1) Características del malware Año 2010. Virus Stuxnet. La infección empieza con un pendrive que infecta el sistema empleando un certificado falso. Si encuentra el STEP-7 de Siemens, se conecta a la red y se actualiza. Mediante vulnerabilidades zero day, se replica por toda la red. Si encuentra una centrifugadora de enriquecimiento de uranio iraní la manipula hasta destruirla Año 2011. El gusano Duqu aprovecha una vulnerabilidad en MS Word para apropiarse de un sistema y buscar todo tipo de información relativa a sistemas de control industrial como los empleados por el gobierno de Irán GSyC - 2013 Malware 7
Malware El virus Stuxnet y derivados (2) Características del malware Año 2012. Se descubre el virus Flame. Opera en oriente próximo. La infección comienza mediante una actualización de Windows, con un certificado auténtico. Se propaga desde pendrives hasta las LAN. Espía toda la actividad del equipo infectado. Busca información sensible, la resume y la envía a un servidor. Entre otras cosas permitiría comunicarse con su maestro mediante rifles bluetooth Stuxnet, Duqu y Flame tienen una complejidad extraordinaria. Están hechos por el mismo equipo, muy probablemente dependiente de los gobiernos de Estados Unidos e Israel GSyC - 2013 Malware 8
Tipos de ataque Tipos de ataque Ataques pasivos Escuchar o monitorizar transmisiones, analizar tráfico Ataques activos Enmascaramiento Retransmisión Qué tiene de malo retransmitir? Para evitar estos ataques se pueden usar marcas de tiempo y sistemas reto-respuesta Modificación Denegación de servicio, denial-of-service attack, DoS attack GSyC - 2013 Malware 9
Virus informático Tipos de ataque Tipos de malware Programa malicioso que es capaz de copiarse a sí mismo en otro fichero. Para transmitirse a otro ordenador, es necesario que el usuario copie el fichero, mediante la red o mediante un dispositivo de almacenamiento Como todo el malware, puede llevar diversa carga Virus no residente Virus residente GSyC - 2013 Malware 10
Tipos de ataque Tipos de malware Un virus puede infectar Binarios Scripts o similares (p.e. autorun.inf) Sectores de arranque de discos, disquetes, pendrives... Documentos con macros: procesadores de texto, hojas de cálculo Ficheros de configuración de páginas web, escrito por clientes web Cualquier otro fichero, aprovechando vulnerabilidades de desbordamiento de búfer o condiciones de carrera GSyC - 2013 Malware 11
Gusano Tipos de ataque Tipos de malware Gusano informático, iworm Programa malicioso capaz de replicarse a través de la red, usando esta activamente No necesita la intervención del usuario para su replicación No necesita vincularse a ningún programa o fichero. Suele detectarse por un aumento de consumo de recursos GSyC - 2013 Malware 12
Troyano Tipos de ataque Tipos de malware Malware incluido en un programa, que realiza alguna tarea legítima, pero adicionalmente incluye una carga maliciosa. No se propaga por sí mismo Puede llevar prácticamente cualquier carga, tal vez lo más frecuente en la actualidad es la instalación de una puerta trasera para que la víctima forme parte de una botnet El usuario puede obtenerlos de redes p2p, sitios web poco fiables, por correo, mensajería instantánea,etc GSyC - 2013 Malware 13
Spyware Tipos de ataque Tipos de malware Tipo de malware que no se propaga por sí mismo y viene incluido en una aplicación útil para el usuario (parecido en esto a un troyano) La carga siempre es similar: captura información del usuario (páginas web visitadas, aplicaciones empleadas, correos de contactos) y la transmite a un servidor. Hecho por empresa no oculta. Supuestamente notifica al usuario de su actividad, en los EULA (End user license agreement), de legalidad variable. Herramienta de marketing: si no eres el cliente, eres el producto GSyC - 2013 Malware 14
Tipos de ataque Tipos de malware En ocasiones se usa la palabra spyware para nombrar una cosa distinta: Carga abiertamente delictiva incluida en un virus, gusano o troyano, que roba información muy sensible del usuario: números de tarjeta de crédito, contraseñas, cuentas bancarias, etc GSyC - 2013 Malware 15
Adware deshonesto Tipos de ataque Tipos de malware El adware (advertising-supported software), en sí mismo, es perfectamente legítimo Pero puede llegar a ser malware, p.e. secuestrando el navegador (browser hijacking): alterando página de inicio, marcadores, mostrando ventanas emergentes, etc Beneficio económico directo para el atacante Normalmente prohibido por los términos del anunciante o plataforma de publicidad (Google AdWords, Yahoo! Search Marketing, etc) GSyC - 2013 Malware 16
Carga Tipos de ataque Carga del malware La carga del software malicioso puede realizar diferentes actividades perniciosas Destruir ficheros, corromper el sistema de ficheros Vandalizar páginas web (defacement) Capturar información sensible del usuario Convertir el ordenador en un zombi La carga puede estar preparada para ejecutarse no de forma inmediata, sino cuando se cumpla determinada condición o cuando transcurra cierto tiempo (típicamente meses). A esto se le denomina bomba lógica o bomba de tiempo GSyC - 2013 Malware 17
Zombis Tipos de ataque Carga del malware Un zombi es un ordenador que ejecuta tareas maliciosas indicadas por el atacante, sin consentimiento ni conocimiento del legítimo propietario Estas pueden ser: Realizar otros ataques (ocultando la identidad del atacante) Enviar spam Almacenar warez Realizar DOS o DDOS [distributed] denial of service attack En ocasiones el DDoS no proviene de un ataque intencionado: efecto slashdot, VIPDoS, similitud con dirección popular (p.e. utube.com), clientes NTP mal configurados (D-Link, Netgear) En ocasiones el DDOS se realiza con el consentimento del propietario del equipo (como el ataque a Visa y Paypal en 2010 en represalia a su poĺıtica contra WikiLeaks) GSyC - 2013 Malware 18
Backdoor Tipos de ataque Carga del malware Método para evitar los procedimientos de autenticación ordinarios Puede instalarse en una aplicación, en hardware, en un compilador... Casi imposible en software libre En ocasiones lo instala el creador del sistema como un huevo de pascua, pero luego es explotado por un atacante Simétrico: cualquiera puede explotarlo Asimétrico: solo el creador del backdoor puede utilizarlo GSyC - 2013 Malware 19
Rootkit Tipos de ataque Carga del malware Originalmente, conjunto de herramientas para que un atacante humano consiguiera y mantuviera privilegios de root en una máquina Unix Técnicas clásicas: basadas en SUID, vulnerabilidad del PATH o incluso alias Actualmente se le da un significado más amplio: software que permite el acceso privilegiado al sistema, ocultandose activamente P.e. modificando el comportamiento de ls y ps (o sus equivalentes) Incluso puede luchar activamente contra la eliminación Un rootkit inactivo equivale a un virus, gusano o troyano Primeros rootkit: Un atacante consigue privilegios de root en un sistema, instala un rootkit que deja una puerta trasera, y además la oculta GSyC - 2013 Malware 20
Tipos de ataque Carga del malware Caso peculiar y muy famoso: Escándalo del rootkit XCP de Sony BMG (año 2005) En ocasiones es el propio usuario quien instala un rootkit para: Evitar protecciones anti-copia Evitar el control de licencias de software Evitar ser detectados haciendo trampa en juegos online Mecanismos anti-robo GSyC - 2013 Malware 21
Botnet Tipos de ataque Carga del malware Red de ordenadores zombi. Conjunto de equipos que, sin autorización de su propietario, realizan actividades maliciosas Controlados por un bot herder aka bot master La forma típica de dar las órdenes es mediante un bot de irc Es frecuente que el bot master alquile su red a terceros GSyC - 2013 Malware 22
Keyloggers Tipos de ataque Carga del malware Mecanismo por el que se capturan las pulsaciones sobre el teclado Pueden colocarse En el SO: núcleo, drivers de teclado Formularios web Captura de telnet o similar Firmware Dispositivos físicos en el teclado GSyC - 2013 Malware 23
Tipos de ataque Carga del malware También pueden funcionar mediante Captura óptica Criptoanálisis acústico Captura de radiación electromagnética (de un teclado cableado) Pueden incluir funcionalidad adicional Captura de pantalla Captura de webcam o micrófono GSyC - 2013 Malware 24
Fraudulent dialer Tipos de ataque Carga del malware Sin el consentimiento del usuario, hace una llamada telefónica A números de pago Para formar botnet o similar En ocasiones, pueden tener el consentimiento del usuario, a quien engañan En desuso cuando aparece la banda ancha GSyC - 2013 Malware 25
Algunas técnicas de ataque Algunas técnicas empleadas en los ataques Los ataques descritos en todo este tema pueden emplear infinidad de técnicas distintas A título ilustrativo veremos algunos ejemplos: Manipulación de enlaces, ataques basados en SUID, ataques por variables inseguras como PATH, IP spoofing, ARP spoofing, DNS spoofing, mail spoofing, file-sharing network spoofing y desbordamiento de buffer GSyC - 2013 Malware 26
Algunas técnicas de ataque Manipulación de enlaces Manipulación de enlaces Un enlace en HTML está compuesto de: URL: Uniform resource locator Página que abrirá el navegador cuando el usuario haga clic p.e: http://www.urjc.es Texto del enlace p.e. Página web de la URJC El uso típico es este: <a href="http://www.urjc.es">página web de la URJC</a> Pero un atacante podría usarlo así <a href="http://www.soymuymalo.com">http://www.urjc.es</a> Cualquier navegador moderno advertirá al usuario de que este enlace es peligroso, pero hay técnicas similares, más avanzadas GSyC - 2013 Malware 27
Algunas técnicas de ataque Manipulación de enlaces Otro engaño <a href="http://www.urjc.es.jx4237.tk">página de la URJC</a> Otro engaño: Idiomas como el árabe o el hebreo se escriben de derecha a izquierda. Para soportar esto, Unicode incluye el código RTL (right to left). Un atacante puede aprovecharlo para ocultar la verdadera extensión de un fichero. Así, el fichero con el nombre Presupuesto[U+202E]slx.cmd el usuario lo ve como Presupuestodmc.xls GSyC - 2013 Malware 28
Algunas técnicas de ataque Ataques basados en SUID Ataques basados en SUID Una manera tradicional de instalar un rootkit en Unix está basada en la activación del SUID Sea un fichero perteneciente a un usuario -rwxr-xr-x 1 koji koji 50 2009-03-24 12:06 holamundo Si lo ejecuta un usuario distinto invitado@mazinger:~$./holamundo El proceso pertenece al usuario que lo ejecuta, no al dueño del fichero koji@mazinger:~$ ps -ef grep holamundo invitado 2307 2260 22 12:16 pts/0 00:00:00 holamundo koji 2309 2291 0 12:16 pts/1 00:00:00 grep holamundo Este comportamiento es el normal y es lo deseable habitualmente GSyC - 2013 Malware 29
Algunas técnicas de ataque Ataques basados en SUID Pero en ocasiones deseamos que el proceso se ejecute con los permisos del dueño del ejecutable, no del usuario que lo invoca Esto se consigue activando el bit SUID (set user id) chmod u+s fichero chmod u-s fichero En un listado detallado aparece una s en lugar de la x del dueño (o una S si no había x) El bit SUID permite que ciertos usuarios modifiquen un fichero, pero no de cualquier manera sino a través de cierto ejecutable -rwsr-xr-x 1 root root 29104 2008-12-08 10:14 /usr/bin/passwd -rw-r--r-- 1 root root 1495 2009-03-23 19:56 /etc/passwd GSyC - 2013 Malware 30
Algunas técnicas de ataque Ataques basados en SUID El bit SUID también puede ser un problema de seguridad. Una shell con el SUID activo, es un rootkit En el caso de los scripts, lo que se ejecuta no es el fichero con el script, sino el intérprete Un intérprete con bit SUID es muy peligroso, normalmente la activación del SUID en un script no tiene efecto Para buscar ficheros con SUID activo: find / -perm +4000 El bit SGID es análogo, cambia el GID chmod g+s fichero GSyC - 2013 Malware 31
Algunas técnicas de ataque Ataques por PATH inseguro Ataques por PATH inseguro Un usuario principiante ejecuta koji@mazinger:~/pruebas$ ls -l total 4 -rw-r--r-- 1 koji koji 27 2009-10-07 19:02 holamundo Intenta invocar el mandato holamundo escribiendo koji@mazinger:~/pruebas$ holamundo pero obtiene bash: holamundo: orden no encontrada GSyC - 2013 Malware 32
Algunas técnicas de ataque Ataques por PATH inseguro Problema 1 El fichero no tenía permisos de ejecución Problema 1: Solución koji@mazinger:~/pruebas$ chmod ugo+x holamundo Problema resuelto? koji@mazinger:~/pruebas$ ls -l total 4 -rwxr-xr-x 1 koji koji 27 2009-10-07 19:02 holamundo No ha bastado. El usuario vuelve a ejecutar koji@mazinger:~/pruebas$ holamundo pero vuelve a obtener bash: holamundo: orden no encontrada GSyC - 2013 Malware 33
Algunas técnicas de ataque Ataques por PATH inseguro Problema 2 Aunque el fichero está en el directorio actual (directorio punto), la shell no lo buscará alĺı, sino donde indique la variable de entorno PATH, que contiene una lista de directorios, separados por el carácter dos puntos koji@mazinger:~/pruebas$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Lo buscará en /usr/local/sbin Si no lo encuentra, lo buscará en /usr/local/bin Si sigue sin encontrarlo, lo buscará en /usr/local/sbin etc Pero no lo buscará en el directorio punto GSyC - 2013 Malware 34
Algunas técnicas de ataque Ataques por PATH inseguro Problema 2: Solución 1 (recomendada) Invocar el mandato indicando expĺıcitamente que el fichero está en el directorio punto koji@mazinger:~/pruebas$./holamundo hola mundo! Problema 2: Solución 2 Indicar el trayecto absoluto del mandato koji@mazinger:~/pruebas$ /home/koji/pruebas/holamundo hola mundo! GSyC - 2013 Malware 35
Algunas técnicas de ataque Ataques por PATH inseguro Problema 2: Solución 3 Modificamos la variable de entorno PATH para añadir al final el directorio punto Como queremos que el cambio sea permanente, debemos modificar la variable en un fichero de configuración, por ejemplo ~/.bashrc export PATH=$PATH:. El cambio no se produce de inmediato, sino cuando se ejecute de nuevo ~/.bashrc Al invocarlo expĺıcitamente koji@mazinger:~/pruebas$ source ~/.bashrc Al abrir una nueva terminal GSyC - 2013 Malware 36
Algunas técnicas de ataque Ataques por PATH inseguro Problema 2: Solución 4 Muy peligrosa! Modificamos la variable de entorno PATH para añadir al principio el directorio punto export PATH=.:$PATH Supongamos que un atacante escribe un script con el nombre ls y el contenido #!/bin/bash rm -rf $HOME Al escribir la orden ls en un directorio que contenga este fichero, se ejecutaría este script, y no /bin/ls GSyC - 2013 Malware 37
IP spoofing Algunas técnicas de ataque Spoofing spoof: literalmente parodia, burla, broma. En este contexto, suplantación IP spoofing: El atacante falsifica la dirección IP que consta como origen de un datagrama El paquete no podrá recibir respuesta, pero no es relevante, suele usarse para enmascarar el origen de un ataque DOS Hay telescopios de internet que realizan backscatter analysis (mirar el tráfico devuelvo por la víctima), o monitorización de la actividad de gusanos, capturando tráfico dirigido a rangos de direcciones inexistentes GSyC - 2013 Malware 38
ARP Spoofing Algunas técnicas de ataque Spoofing El atacante responde a una solicitud de ARP, mintiendo. Aunque haya respuestas legítimas, la víctima suela quedarse con las falsas porque el atacante es más insistente (respuestas gratuitas) Hay motivos legítimos para ARP Spoofing: registro de un cliente por motivos de facturación o servicio redundante transparente GSyC - 2013 Malware 39
Algunas técnicas de ataque Pharming/DNS Spoofing Pharming/DNS Spoofing Ataque contra un servidor de DNS, un nombre de dominio se resuelve en una dirección IP falsa 1 El atacante consigue alterar el ficheros hosts de los clientes %SystemRoot%\system32\drivers\etc\hosts (MS Windows) /etc/hosts (Linux) /private/etc/hosts (MacOS) El atacante modifica El firmware del router inalámbrico doméstico que sirve DNS Cualquier otro servidor de DNS (DNS cache poisoning) 1 Existe cierta controversia por los matices entre pharming y DNS spoofing, aqui los consideraremos sinónimos GSyC - 2013 Malware 40
Algunas técnicas de ataque Otros tipos de Spoofing Pharming/DNS Spoofing Mail spoofing Falsificación del remite de un correo. Trivial, puesto que no hay ninguna protección. Si bien, en la actualidad Un servidor de SMTP serio no hará esto Un servidor de SMTP de otro tipo pocas veces superará los filtros anti-spam File-sharing network spoofing Falsificación de servidores en redes p2p GSyC - 2013 Malware 41
Algunas técnicas de ataque Desbordamiento de buffer Desbordamiento de buffer Un programa escribe datos en un buffer pero, por error, sigue escribiendo mas allá del ĺımite, sobreescribiendo posiciones de memoria contiguas. Caso típico: char *strcpy(char *dest, const char *src); Solamente es posible en algunos lenguajes de programación Puede pasar cualquier cosa: si se escribe fuera de la zona de memoria protegida por el SSOO, se produce excepción y fin del programa O peor: las arquitecturas más habituales no tienen separación entre memoria para datos y para programa, con lo que el atacante podrá escribir sobre la pila los valores adecuados para que el contador de programa salte donde le interese, inyectando así cualquier código En un programa con privilegios especiales, p.e. SUID, el riesgo aumenta GSyC - 2013 Malware 42
Algunas técnicas de ataque Desbordamiento de buffer El programador tiene que ser muy cuidadoso Comprobar siempre que el tamaño de la zona de destino sea suficiente Tener en cuenta que puede recibir una cadena incorrectamente terminada n=sizeof(buf); strncpy(buf, str, n); if (n > 0) buf[n - 1]= \0 ; etc GSyC - 2013 Malware 43
Algunas técnicas de ataque Medidas contra el malware Medidas contra el malware Mantener las actualizaciones de seguridad al día Esto no sirve para los zero-day attacks Formación de los usuarios No ejecución de programas de fuente dudosa Precaución con pendrives y similares, especialmente en el arranque Uso de cortafuegos Uso de software antivirus (actualizado) Uso de IDS (Intrusion Detection System) Las plataformas de uso mayoritario suelen presentar mayor riesgo GSyC - 2013 Malware 44
Honeypots Algunas técnicas de ataque Medidas contra el malware Un honeypot (señuelo) es un ordenador conectado a la red como trampa para estudiar el comportamiento de los atacantes Honeypot para producción, en el interior de un sistema real Honeypot de investigación, para conocer nuevas técnicas GSyC - 2013 Malware 45
Antivirus Algunas técnicas de ataque Antivirus Antivirus: Software que detecta e inutiliza malware, al que puede reconocer por Su firma Su comportamiento El malware aprovecha vulnerabilidades. Es poco probable que el malware comprometa un sistema Con todas las actualizaciones al dia Con un cortafuegos bien configurado Donde el usuario solamente ejecuta software de origen fiable Un antivirus ofrece una protección adicional Puede evitar propagación aunque no haya contagio Puede proteger contra algunos zero-day attacks (o no) GSyC - 2013 Malware 46
Algunas técnicas de ataque Inconvenientes de los antivirus Antivirus Los antivirus no están exentos de inconvenientes: Penalización del rendimiento Falsos positivos Falsa sensación de seguridad Poĺıtica de precios de renovación poco clara GSyC - 2013 Malware 47