Ciberseguridad: Vulnerabilidades, Ataques y Estrategias de Protección

Precauciones para Dificultar Ataques Informáticos

Para dificultar la fase de ataque a un potencial atacante, se deben adoptar las siguientes precauciones básicas:

  • Implantar planes de concienciación y comunicación sobre la importancia de la seguridad.
  • Definir y mantener actualizadas políticas de seguridad adecuadas al entorno de operación de la organización.
  • Limitar la información de público acceso y destruir la que quede obsoleta o fuera de uso.
  • Utilizar mecanismos adecuados de autenticación y control de acceso.

Formas de Anonimato en Ataques Hacker

Las formas más habituales de conseguir el anonimato para perpetrar un ataque hacker son:

  • Anonimato físico: Se protege la identidad del atacante accediendo desde lugares públicos, como un cibercafé.
  • Anonimato bouncer: Se toma el control de una máquina y se utiliza como «puerta» de entrada para la conexión, apareciendo esta máquina como el origen de los ataques.
  • Anonimato proxy: Una máquina intermediaria con NAT oculta el origen de las comunicaciones, mostrando a la víctima la dirección del proxy en lugar de la del atacante.

ARP Poisoning: Envenenamiento de la Traducción ARP

El ARP poisoning es una técnica que se basa en la manipulación del protocolo ARP (que es dinámico) para que el atacante pueda envenenar la traducción utilizada por la víctima, reemplazándola por una falsa. Se utiliza comúnmente para suplantar identidades en la capa de enlace (ARP Spoofing).

Ataques MITM (Man-in-the-Middle)

Un ataque MITM se realiza interceptando y/o modificando las comunicaciones entre dos equipos. Estos equipos deben estar en el mismo segmento de red que el atacante, o entre un equipo y su puerta de enlace. Se envían tramas ARP Reply periódicamente para mantener el envenenamiento, y es crucial realizar correctamente los reenvíos para evitar levantar sospechas.

Secuestro de Sesión TCP (TCP Hijacking)

El secuestro de una sesión TCP ya establecida se realiza mediante TCP Hijacking. Una vez que el usuario se ha autenticado, el atacante se adueña de la sesión y actúa como si fuera el usuario legítimo. TCP no proporciona mecanismos para verificar la identidad real de los extremos de la comunicación; solo se confía en el par dirección MAC – dirección IP.

  1. Monitorizar el tráfico TCP entre los equipos que mantendrán la sesión a secuestrar.
  2. Esperar a que negocien el inicio de sesión y el tamaño de la ventana.
  3. Una vez establecida la sesión, utilizar los números de secuencia interceptados.
  4. Mediante spoofing/MITM a la víctima, el atacante envía datos al otro extremo con el número de secuencia y ACK correspondientes.
  5. La sesión queda secuestrada y la víctima pierde la capacidad de comunicarse con el otro extremo.

Secuestro a Ciegas

Sí, es posible realizar este secuestro «a ciegas», sin espiar los números de secuencia. Sin embargo, es mucho más complicado, ya que se basa en la predicción de los números de secuencia, que, si se han inicializado aleatoriamente, no es sencillo.

Envenenamiento y Suplantación a Nivel de Aplicación

Ejemplos de envenenamiento y suplantación a nivel de aplicación incluyen DNS spoofing y Server spoofing. Estos ataques se construyen sobre un ataque MITM. La idea principal es interceptar la consulta de la víctima a su servidor DNS para resolver un nombre de dominio. El atacante devuelve una traducción falsa (nombre de dominio – dirección IP), dirigiendo a la víctima a un servidor controlado por él.

Vulnerabilidades de IPv6 vs. IPv4

En IPv6 desaparecen protocolos como ARP (y sus ataques asociados), pero aparecen otros como SLAAC (Stateless Address Autoconfiguration). IPv6 implementa IPSec de forma nativa, asegurando las comunicaciones del protocolo. IPv6 tiene más cabeceras, lo que puede incrementar el tiempo en ataques de fuerza bruta. También presenta capacidades de envío automático de paquetes.

Nota: Es importante investigar los ataques específicos de IPv6 relacionados con la configuración de vecinos (Neighbor Discovery) y las opciones de transición entre IPv4 e IPv6 (tunneling, dual stack, traducción).

Diferencias entre CVE y CWE

  • CVE (Common Vulnerabilities and Exposures): Lista de vulnerabilidades específicas. Por ejemplo, CVE declara que un sistema tiene una vulnerabilidad causada por SQL Injection.
  • CWE (Common Weakness Enumeration): Lista de debilidades o tipos de errores. CWE cataloga clases de errores, como SQL Injection.

Vulnerabilidades Explotadas por Desbordamiento (Overflow)

Los ataques por desbordamiento aprovechan vulnerabilidades del software que permiten ejecutar código en el sistema vulnerable con los mismos permisos que la aplicación afectada. Esto ocurre cuando no se comprueba el tamaño de los parámetros que se pasan a una función o procedimiento en tiempo de ejecución. Dos tipos principales son:

  • Buffer Overflow
  • Heap Overflow

Ataque Buffer Overflow Clásico

Se basa en una función que no comprueba el tamaño de los parámetros. Al escribir en la función, se llena el buffer y se produce una sobreescritura. Esto permite eliminar datos anteriores y escribir nuevos caracteres, incluyendo la dirección de retorno. El objetivo del atacante es que esta dirección apunte al propio buffer, donde se ha insertado código malicioso (generalmente en ensamblador).

Shellcode

Se utiliza el término «shellcode» para referirse al código que el atacante introduce en el buffer porque, debido a las limitaciones de tamaño (el tamaño del buffer suele ser desconocido), el código más común es el que abre una shell (consola), permitiendo al atacante ejecutar comandos en el sistema.

Vulnerabilidades Explotadas por Inyección de Código

Los ataques por inyección de código aprovechan vulnerabilidades en aplicaciones que no comprueban los parámetros introducidos por los usuarios.

Ataque SQL Injection Clásico

Se aprovecha de la información proporcionada por los mensajes de error por defecto, permitiendo conocer el motor y la versión de la base de datos. Esto permite saltarse el proceso de login, averiguar contraseñas o información de la base de datos, agregar, eliminar o editar registros, y leer o descargar archivos.

SQL Injection a Ciegas (Blind SQL Injection)

Si el desarrollador filtra las respuestas para evitar la revelación de información, se pueden seguir inyectando sentencias. La diferencia es que el atacante debe inferir si la consulta es correcta o no basándose en el comportamiento de la aplicación. Se realizan preguntas del tipo «¿Es la primera letra del primer campo de la tabla una A?».

Ataques de Tipo Forgery (Falsificación)

Un ataque de tipo forgery (falsificación) consiste en crear, imitar o adaptar un entorno, aplicación o servicio real con el propósito de engañar al cliente con intenciones maliciosas. Un ejemplo común es el ataque XSS (Cross-Site Scripting).

XSS (Cross-Site Scripting)

XSS consiste en inyectar código JavaScript (u otro lenguaje de scripting similar) en páginas web vistas por el usuario. Esto permite extraer información, secuestrar sesiones de usuario o comprometer el navegador.

Tipos de XSS:

  • Local: Una página web utiliza código JavaScript para acceder a un parámetro de la URL y pegarlo directamente en el HTML sin comprobarlo. La página web está almacenada en local.
  • No almacenado (Reflejado): Similar al local, pero para una web no almacenada localmente.
  • Almacenado (Persistente): El código malicioso se inserta en el HTML y queda almacenado en el servidor web, siendo servido a todos los usuarios que acceden a él. Es el más potente.

XSRF (Cross-Site Request Forgery)

En un ataque XSRF, el atacante hace que la víctima ejecute código malicioso con un objetivo específico: acceder a otra web o aplicación en la que el usuario ya esté autenticado. Como la autenticación ya se ha realizado (gestionada por cookies), este acceso se autoriza. Puede realizarse mediante ataques XSS de tipo 1 y 2.

Clickjacking

El objetivo del clickjacking es conseguir que un usuario haga clic en un enlace (y realice una acción) sin que lo sepa, o creyendo que lo hace en otro enlace con otro fin. El atacante disfraza el enlace no deseado, haciéndolo atractivo para la víctima. Se basa en la técnica del Iframe (cargar una web dentro de otra con opacidad 0). La ventaja es que se dispone del token válido si la página requiere inicio de sesión.

IPSec (Internet Protocol Security)

IPSec es un conjunto de mecanismos de seguridad que se pueden implementar o utilizar junto a IPv4 (opcional) o IPv6 (obligatorio). Funciona mediante la autenticación mutua de los dos equipos antes del intercambio de datos, estableciendo una asociación de seguridad (SA) entre ambos, y cifrando los datos intercambiados (usualmente con DES, 3DES o AES).

IPSec: Modo Transporte vs. Modo Túnel

  • Modo Transporte: Los extremos finales de la comunicación (origen y destino) se encargan del procesamiento de la información.
  • Modo Túnel: La seguridad es proporcionada por un único nodo central a uno o varios sistemas (incluso a una red de área local completa).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.