Malware

Anuncio
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
Descargar