Modelo TCP/IP y el handshake
Las capas de red, la encapsulación, las direcciones y puertos, y el handshake TCP, con lo que cada nivel implica para la seguridad en AWS.
Cuando lees un log de red, una regla de un security group o una alerta de GuardDuty, estás mirando distintas capas del mismo viaje: el que hace un mensaje desde una aplicación hasta el cable y vuelta. Si entiendes ese viaje —qué añade cada capa y en qué orden— esos logs dejan de ser ruido. El modelo TCP/IPModelo TCP/IPModelo de red en capas (enlace, Internet, transporte, aplicación) sobre el que funciona Internet; cada capa añade su cabecera al encapsular los datos. es el mapa de ese viaje, y casi toda la seguridad de red consiste en decidir qué dejas pasar en cada etapa.
Dos modelos, el mismo viaje#
Hay dos formas de nombrar las capas. El modelo OSI tiene siete y se usa como vocabulario de referencia: cuando alguien dice “esto es un ataque de capa 7” o “un balanceador de capa 4”, habla de OSI. El modelo TCP/IP tiene cuatro y es el que realmente implementa Internet. Se corresponden así:
| TCP/IP | OSI | Ejemplos | Unidad de datos |
|---|---|---|---|
| Aplicación | 5-7 (sesión, presentación, aplicación) | HTTP, DNS, TLS | mensaje / datos |
| Transporte | 4 | TCP, UDP | segmento (TCP) / datagrama (UDP) |
| Internet | 3 | IP, ICMP | paquete |
| Enlace | 1-2 (físico, enlace) | Ethernet, Wi-Fi, ARP | trama |
No necesitas memorizar las siete capas de OSI, pero sí dos números: L3 (Internet, donde mandan las direcciones IP) y L4 (transporte, donde mandan los puertos). Con esos dos entiendes la mayoría de los controles de red de AWS.
Encapsulación: cada capa envuelve a la de arriba#
Al enviar, cada capa toma los datos de la capa superior y les añade su propia cabecera —como meter una carta en sobres cada vez más grandes—. Al recibir, cada capa abre su sobre y pasa el contenido hacia arriba. Esto es la encapsulación y la desencapsulación, y es literalmente lo que ves en Wireshark cuando despliegas un paquete.
Paso 1 de 7Dos pilas
Cliente y servidor hablan por las mismas cuatro capas. Lo que una capa escribe en el emisor, solo lo lee la misma capa en el receptor.
La clave de seguridad es que cada capa solo entiende su propia cabecera. Un security group lee puertos e IPs (L3/L4) pero no sabe nada del contenido HTTP; un WAF lee la petición HTTP (L7) pero no reescribe rutas. Por eso necesitas controles en varias capas: ninguno lo ve todo.
Direcciones y puertos: cómo se dirige el tráfico#
Dos piezas dirigen cada paquete:
- La dirección IP (L3) identifica una interfaz de red en Internet. IPv4 son 32 bits (
10.0.3.15); IPv6 son 128 bits. Las IP privadas (10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) no son enrutables en Internet: por eso las subredes privadas salen por NAT. - El puertoPuertoNúmero de 16 bits que identifica un servicio o proceso dentro de una máquina; junto con la IP forma el socket que dirige el tráfico de transporte (TCP/UDP). (L4) identifica el proceso dentro de la máquina. Los well-known (0-1023) son servicios estándar: 443 (HTTPS), 53 (DNS), 22 (SSH).
La combinación IP:puerto es un socket, y la 5-tupla (IP y puerto de origen, IP y puerto de destino, protocolo) identifica de forma única una conexión. Esa 5-tupla es exactamente lo que registran los VPC Flow Logs y lo que evalúa un security group.
El handshake TCP de 3 vías#
TCP es fiable y orientado a conexión: antes de enviar datos, las dos partes se sincronizan con tres mensajes.
- SYN: el cliente envía un segmento con el flag
SYNy un número de secuencia inicial. “Quiero hablar, empiezo por x”. - SYN-ACK: el servidor responde con
SYN+ACK, confirma el del cliente y propone el suyo. “De acuerdo, confirmo x+1, yo empiezo por y”. - ACK: el cliente confirma con
ACK. “Confirmo y+1”. La conexión está establecida (ESTABLISHED).
El cierre es simétrico y usa FIN/ACK en ambos sentidos (o un RST abrupto para cortar). Conocer estos flags importa para leer capturas y Flow Logs: en los Flow Logs el campo tcp-flags codifica SYN como 2 y SYN-ACK como 18, y un aluvión de SYN sin completar el handshake es la firma de un escaneo o de un SYN flood.
UDP: rápido y sin ceremonias#
No todo necesita fiabilidad. UDP no tiene handshake ni confirmaciones: envías datagramas y esperas lo mejor. Se usa donde la latencia importa más que perder algún paquete: DNS (consultas pequeñas), QUIC/HTTP3, streaming, telemetría. La contrapartida de seguridad es doble: al no haber handshake, es trivial falsificar la IP de origen (spoofing), lo que hace a UDP el protagonista de los ataques de amplificación (DNS, NTP); y como no hay estado de conexión, filtrarlo requiere reglas distintas.
Por qué esto decide tu arquitectura en AWS#
Aquí es donde las capas se vuelven dinero y riesgo. Dos controles de red de AWS parecen lo mismo y no lo son:
Vulnerable
Seguro
# Se adjunta a la ENI (instancia, tarea, endpoint).# Reglas solo de ALLOW. Es STATEFUL:# si permites la conexión de salida, la respuesta# vuelve automáticamente, sin regla de entrada.
Entrada: 443/tcp desde el ALBSalida: todo permitido# La respuesta a una petición entrante al 443# se permite aunque "salida" no la mencione.# Se adjunta a la SUBRED. Reglas ALLOW y DENY,# evaluadas por orden de número. Es STATELESS:# debes permitir EXPLÍCITAMENTE ambos sentidos,# incluidos los puertos efímeros de respuesta.
Entrada: 100 ALLOW 443/tcp desde 0.0.0.0/0Salida: 100 ALLOW 1024-65535/tcp hacia 0.0.0.0/0# Si olvidas los puertos efímeros de salida,# la conexión entra pero la respuesta no sale.La diferencia stateful vs stateless es la causa número uno de reglas de red rotas. El security group recuerda la conexión (guarda estado de la 5-tupla) y deja volver la respuesta; la NACL no recuerda nada y evalúa cada paquete de forma aislada, así que tienes que abrir el rango de puertos efímeros (normalmente 1024-65535) para el tráfico de vuelta.
Tu turno
Dibuja la 5-tupla de una conexión de tu stack
Elige una conexión real de un sistema que gestiones (cliente → balanceador, servicio → base de datos, función → API externa) y complétala. Si no sabes algún puerto, búscalo: forma parte del ejercicio.
- Rellena origen y destino:
IP_origen:puerto_origen → IP_destino:puerto_destinosobre TCP o UDP. - ¿Qué capa controla cada salto? ¿Hay un control L4 (security group/NACL) y uno L7 (WAF/proxy)?
- Si usas NACL además de security groups, ¿están abiertos los puertos efímeros de salida para las respuestas?
Conexión: ...5-tupla: 10.0.1.20:50314 → 10.0.3.15:443 / TCPControl L4: security group sg-api (entrada 443 desde sg-alb)Control L7: WAF en el ALBReto
Un security group permite la salida al puerto 443 pero no tiene ninguna regla de entrada para ese puerto. Tu instancia hace una petición HTTPS a una API externa. ¿Llega la respuesta?
▸Mostrar solución
Sí. El security group es stateful: al permitir la conexión saliente, recuerda la 5-tupla y deja volver automáticamente la respuesta, aunque no exista regla de entrada que la mencione. Con una NACL (sin estado) tendrías que haber permitido explícitamente el rango de puertos efímeros de entrada.
Reto
¿Por qué es más fácil falsificar la IP de origen en UDP que en TCP?
▸Mostrar solución
Porque TCP exige completar el handshake de 3 vías: para mantener una conexión necesitas recibir el
SYN-ACK del servidor, y ese llega a la IP que pusiste como origen. Si la falsificaste, no lo
recibes y no puedes continuar. UDP no tiene handshake ni estado, así que un atacante pone
cualquier IP de origen y el servidor responde a esa IP: la base de los ataques de amplificación.
En resumen#
- TCP/IP tiene cuatro capas; quédate con L3 (IP, direcciones) y L4 (TCP/UDP, puertos): explican casi todos los controles de red.
- La encapsulación envuelve los datos con una cabecera por capa; cada control solo ve su capa, por eso defiendes en varias.
- La 5-tupla identifica una conexión y es lo que registran los Flow Logs y evalúan los security groups.
- El handshake de 3 vías (SYN, SYN-ACK, ACK) abre la conexión TCP; sus flags delatan escaneos y floods. UDP no tiene handshake: rápido, pero fácil de falsificar.
- En AWS, los security groups son stateful a nivel L4 (la respuesta vuelve sola) y las NACL son stateless (abre ambos sentidos, incluidos los puertos efímeros).