Amenazas y ataques
El panorama de lo que hay ahí fuera: quién ataca y con qué nombre se le conoce, las familias de software malicioso, los ataques a aplicaciones web, las técnicas de suplantación, la denegación de servicio, cómo se cataloga una vulnerabilidad y con qué herramientas se audita todo ello.
Quién ataca: los perfiles del atacante
La jerga de la seguridad ha acuñado nombres para los distintos perfiles de quien se dedica a esto, unos con intención delictiva y otros no. Es vocabulario que se pregunta tal cual, así que conviene fijar cada etiqueta con una frase.
| Perfil | Qué lo define |
|---|---|
| Hacker | Busca conocimiento y comprende los sistemas a fondo. La intención no es delictiva: encuentra fallos para que se corrijan |
| Cracker | El que emplea ese mismo conocimiento con fines ilícitos, para dañar o para lucrarse |
| Lamer | Alardea de una destreza que no tiene y se limita a usar programas hechos por otros |
| Script kiddie | Aficionado que lanza herramientas de ataque ajenas sin entender qué hacen |
| Newbie | Novato, principiante que está empezando y aprende |
| Copyhacker | Falsifica y descifra la protección del hardware para revenderlo |
| Phreaker | Especialista en las redes de telefonía |
La pareja hacker y cracker es la que más se pregunta, y la respuesta esperada es la que distingue por la INTENCIÓN: el conocimiento es el mismo, lo que cambia es para qué se usa. En la práctica profesional se prefiere hablar de sombrero blanco, gris y negro, o directamente de auditor y de atacante.
Lamer y script kiddie se confunden: el lamer se define por presumir, el script kiddie por usar herramientas ajenas sin comprenderlas.
Para el examen
Sombrero blanco: actúa con autorización
Sombrero negro: sin ella
Sombrero gris: cruza la línea sin ánimo de dañar
Amenaza interna: de las más costosas
Software malicioso
Malware es cualquier programa escrito para hacer daño o para actuar en el equipo sin consentimiento. Las familias se distinguen por dos cosas: cómo se propagan y qué hacen una vez dentro. Son categorías que se solapan en la realidad, porque una misma pieza puede llegar como troyano, instalar un rootkit y acabar cifrando el disco.
| Familia | Rasgo que la define |
|---|---|
| Virus | Necesita un fichero anfitrión al que engancharse y que alguien lo ejecute para reproducirse |
| Gusano | Se propaga solo por la red, sin anfitrión ni intervención del usuario. Su daño típico es agotar recursos y ancho de banda |
| Troyano | Se disfraza de programa legítimo y abre la puerta a la administración remota del equipo |
| Rootkit | Se oculta y se mantiene con los permisos más altos del sistema, escondiendo su propia presencia y la de otros programas |
| Backdoor | Deja un acceso permanente al sistema saltándose la autenticación |
| Spyware | Recopila datos de uso y hábitos del usuario para venderlos |
| Adware | Muestra publicidad no solicitada |
| Rogue | Falso antivirus: hace creer al usuario que su equipo está infectado para que pague por la supuesta solución |
| Keylogger | Registra las pulsaciones del teclado para robar credenciales. Los stealers hacen lo mismo con información ya almacenada |
| Ransomware | Cifra los ficheros de la víctima y pide un rescate a cambio de la clave |
El ransomware es hoy la amenaza que más daño causa a una organización, y la única defensa que funciona de verdad cuando ya ha entrado es tener una copia de seguridad reciente, verificada y fuera del alcance del propio equipo infectado. De ahí que la copia se guarde también fuera de sede o en un soporte que no esté permanentemente conectado.
Aparte del malware propiamente dicho está el hoax, el bulo: un mensaje con una advertencia falsa que se difunde pidiendo que se reenvíe. No lleva código malicioso, y aun así hace daño, porque satura el correo y educa a la gente para creerse cualquier cosa que le llegue por ese canal.
Para el examen
Virus: necesita un fichero anfitrión
Gusano: se propaga solo por la red
Troyano: se disfraza de programa útil
Ransomware: cifra y pide rescate
Ataques a aplicaciones web: inyección SQL y XSS
Los dos ataques clásicos contra una aplicación web comparten la misma causa: la aplicación toma algo que ha escrito el usuario y lo mete donde no debe sin comprobarlo antes. Cambia dónde acaba ese texto y con eso cambia el ataque.
En la inyección SQL, la entrada del usuario acaba dentro de una consulta a la base de datos y el gestor la ejecuta como si fuera parte de la orden. Con ello se pueden leer tablas enteras, saltarse un formulario de acceso o borrar datos.
-- Vulnerable: el texto del alumno se pega tal cual dentro de la consulta
-- Consulta que arma la aplicación:
SELECT id, enunciado FROM preguntas WHERE tema = 'ENTRADA';
-- Si el alumno escribe x' OR '1'='1 la consulta que llega es:
SELECT id, enunciado FROM preguntas WHERE tema = 'x' OR '1'='1';
-- y devuelve el banco de preguntas completo
-- Correcto: consulta parametrizada. La entrada viaja aparte y nunca se
-- interpreta como SQL, sea lo que sea que contenga
SELECT id, enunciado FROM preguntas WHERE tema = ?;En el XSS, cross site scripting, la entrada acaba dentro de la página que se le devuelve a otro usuario, y el navegador de la víctima ejecuta ese código JavaScript como si viniera del sitio legítimo. Con eso se roban sesiones, se falsean formularios o se redirige a la víctima. La defensa es doble: validar y escapar todo lo que se muestre, y declarar una política de seguridad de contenido, la CSP, que le dice al navegador desde qué orígenes puede cargar y ejecutar código, de modo que un script inyectado desde otro sitio quede bloqueado.
Emparentado con los dos está el hijacking o secuestro de sesión: el atacante se hace con el identificador de sesión de una víctima ya autenticada y continúa su sesión sin necesidad de conocer la contraseña. Para probar la existencia de una inyección SQL en una auditoría se usa la herramienta sqlmap, que automatiza la detección y la explotación.
La inyección SQL ataca a la base de datos del servidor; el XSS ataca al navegador de otro usuario. Las dos nacen de no validar la entrada.
Para el examen
Inyección SQL: se evita con consultas parametrizadas
XSS: se evita escapando la salida
Por qué no basta validar en el navegador: el atacante no usa el formulario
Suplantación y engaño
Esta familia de ataques no busca un fallo técnico sino la confianza de la persona o de la máquina. El atacante se hace pasar por alguien conocido y consigue que la víctima le entregue lo que quiere sin forzar nada.
| Ataque | Cómo funciona |
|---|---|
| Phishing | Un mensaje que aparenta venir de una entidad de confianza, normalmente un banco o la propia Administración, y lleva a una web falsa donde la víctima teclea sus credenciales |
| QRishing | La misma técnica pero escondiendo el enlace fraudulento dentro de un código QR, que el usuario no puede leer a simple vista |
| Pharming | Ataque contra el sistema de nombres de dominio: se manipula la resolución para que un dominio legítimo apunte a la dirección IP del atacante. La víctima teclea la dirección correcta y aun así acaba en la web falsa |
| Spoofing | Suplantación de identidad en un elemento técnico: la dirección de origen de un correo, una dirección IP o una dirección física de red |
| Eavesdropping | Escucha pasiva de una comunicación ajena. No modifica nada, solo captura, y por eso es difícil de detectar |
La diferencia entre phishing y pharming es la pregunta segura de este punto. En el phishing el usuario pica en un enlace y por eso acaba en el sitio equivocado; en el pharming el usuario hace todo bien, escribe la dirección buena, y es la resolución de nombres la que está envenenada. Por eso el pharming es más grave y más difícil de percibir.
Contra el eavesdropping la defensa es el cifrado del canal: si la comunicación viaja cifrada, capturarla no sirve de nada. Los mecanismos concretos, tanto los del cifrado del transporte como los que autentican el origen de un correo, se estudian en sus temas respectivos de este mismo bloque.
Para el examen
Phishing: masivo
Spear phishing: dirigido a una persona concreta
Whaling: apunta a la dirección de la organización
Vishing y smishing: por teléfono y por SMS
Denegación de servicio
Un ataque de denegación de servicio, DoS por sus siglas inglesas, no busca robar ni modificar nada: busca que el servicio deje de estar disponible. Es el ataque que golpea directamente la tercera dimensión de la tríada, y por eso se detecta rápido pero se para con dificultad.
Hay dos maneras de conseguirlo. Una es la inundación o flooding: enviar muchísimo más tráfico o muchísimas más peticiones de las que la máquina puede atender, hasta agotar su capacidad. Otra es aprovechar un defecto concreto del software para tumbarlo con poco tráfico, como hace el ataque teardrop, que envía fragmentos IP solapados que el destinatario no sabe recomponer.
- SYN flood: abre miles de conexiones a medias y nunca las completa, agotando la tabla de conexiones pendientes del servidor.
- ICMP flood: satura al destinatario con peticiones de eco.
- Smurf: envía peticiones de eco falsificando la dirección de la víctima como origen, para que todas las respuestas de una red entera caigan sobre ella.
- UDP flood: inunda con datagramas UDP hacia puertos al azar, obligando a la máquina a responder que no hay nadie escuchando.
Cuando el ataque no viene de una máquina sino de muchas a la vez y coordinadas, se llama denegación de servicio distribuida, DDoS. Los equipos que lo lanzan suelen ser ordenadores de terceros infectados y controlados a distancia sin que sus dueños lo sepan, llamados zombis o bots; al conjunto se le llama botnet. La consecuencia práctica es la que importa: contra un DDoS no sirve bloquear una dirección de origen, porque hay decenas de miles, y de ahí que la defensa se contrate en la red y no se monte en el servidor.
El DoS ataca la disponibilidad. Lo que convierte un DoS en DDoS no es la técnica, es el número de orígenes coordinados.
Para el examen
Qué añade la primera D de DDoS: que es distribuido
De dónde viene: de muchos equipos, normalmente una red de máquinas comprometidas
Por eso: no se corta bloqueando una sola dirección
Cómo se cataloga una vulnerabilidad: CVE y CWE
Para que un fabricante, un auditor y un administrador puedan hablar del mismo fallo sin ambigüedad hace falta un identificador común. Esa es la función de los dos catálogos que mantiene la corporación MITRE y que se preguntan enfrentados.
| Catálogo | Qué identifica | Formato |
|---|---|---|
| CVE, Common Vulnerabilities and Exposures | Una vulnerabilidad concreta en un producto concreto y en una versión concreta | CVE seguido del año y de un número de serie |
| CWE, Common Weakness Enumeration | El TIPO de debilidad de programación que está detrás, con independencia del producto | CWE seguido de un número |
La relación entre los dos es de caso particular a categoría. Una inyección SQL descubierta en una versión determinada de un gestor de contenidos es un CVE; el hecho general de construir consultas concatenando entrada sin validar es un CWE. Miles de CVE distintos comparten el mismo CWE.
A un CVE se le asocia además una puntuación de gravedad calculada con el sistema CVSS, que va de 0 a 10 y tiene en cuenta cosas como si el fallo se explota desde la red o hace falta acceso local, si requiere autenticación previa y qué dimensiones compromete. Esa puntuación es la que permite priorizar el parcheo cuando salen cuarenta avisos el mismo día.
Para el examen
CVE: identifica la vulnerabilidad CONCRETA de un producto
CWE: el TIPO de debilidad
CVSS: le pone la puntuación, de 0 a 10
Herramientas de auditoría y equipos ofensivos y defensivos
Las mismas herramientas con las que se ataca sirven para auditar, y esa ambivalencia es la esencia del oficio: para saber si un sistema aguanta hay que intentar tumbarlo en condiciones controladas. Conviene tenerlas agrupadas por lo que hacen, no por su nombre.
| Función | Herramientas |
|---|---|
| Descubrimiento de la red y de puertos abiertos | nmap |
| Detección de vulnerabilidades | Nessus, OpenVAS y, para las específicas de servidores web, Nikto |
| Explotación y pruebas de penetración | Metasploit |
| Captura y análisis del tráfico | tcpdump en línea de órdenes y Wireshark con interfaz gráfica |
| Descifrado de contraseñas por fuerza bruta y diccionario | John the Ripper, Hydra, Ncrack, Medusa y, en Windows, Cain y Abel |
| Búsqueda de dispositivos expuestos en internet | Shodan, que indexa routers, servidores y cámaras accesibles desde fuera |
| Distribución completa de auditoría | Kali Linux, que reúne empaquetadas casi todas las anteriores |
En esa lista suele incluirse también Snort, que es un sistema de detección y prevención de intrusiones en red. No se desarrolla aquí: los IDS y los IPS, junto con los cortafuegos y las redes privadas virtuales, son materia del tema de seguridad en redes de comunicaciones de este mismo bloque.
Cuando ese trabajo se organiza dentro de una empresa, se reparte en equipos con nombre de color. El equipo rojo es el ofensivo: ataca a su propia organización con permiso, para encontrar por dónde se puede entrar. El equipo azul es el defensivo: vigila, detecta, responde e implanta las medidas. Y el equipo morado no es un tercer grupo de gente, sino la práctica de hacer que los otros dos compartan lo que aprenden, para que cada hallazgo del rojo se convierta en una defensa del azul.
Rojo, seguridad ofensiva. Azul, seguridad defensiva. Morado, la comunicación entre ambos.
Para el examen
Nmap: explora puertos
Nessus y OpenVAS: buscan vulnerabilidades
Metasploit: explota
Equipos rojo, azul y morado: ataca, defiende y los coordina