Seguridad en redes de ordenadores: 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 Caracterı́sticas del malware 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 Malware Caracterı́sticas del malware Motivación 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 Caracterı́sticas del malware El virus Stuxnet y derivados (1) 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 Caracterı́sticas del malware El virus Stuxnet y derivados (2) 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 Tipos de ataque Tipos de malware Virus informático 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 Tipos de ataque Tipos de malware Gusano 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 Tipos de ataque Tipos de malware Troyano 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 Tipos de ataque Tipos de malware Spyware 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 Tipos de ataque Tipos de malware Adware deshonesto 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 Tipos de ataque Carga del malware Carga 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 Tipos de ataque Carga del malware Zombis 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 polı́tica contra WikiLeaks) GSyC - 2013 Malware 18 Tipos de ataque Carga del malware Backdoor 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 Tipos de ataque Carga del malware Rootkit 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 Tipos de ataque Carga del malware Botnet 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 Tipos de ataque Carga del malware Keyloggers 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 Tipos de ataque Carga del malware Fraudulent dialer 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á allı́, 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 explı́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 explı́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 Algunas técnicas de ataque Spoofing IP 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 Algunas técnicas de ataque Spoofing ARP 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 Pharming/DNS Spoofing Otros tipos de 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 lı́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 Algunas técnicas de ataque Medidas contra el malware Honeypots 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 Algunas técnicas de ataque Antivirus 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 Antivirus Inconvenientes de los antivirus Los antivirus no están exentos de inconvenientes: Penalización del rendimiento Falsos positivos Falsa sensación de seguridad Polı́tica de precios de renovación poco clara GSyC - 2013 Malware 47