Espacio de direcciones público frente a privado
IP pública
192.0.2.10
única en el mundo, enrutable desde cualquier sitio
Rangos privados
no enrutables en internet público
Por qué los rangos de IP privadas nunca deberían resolverse públicamente
La RFC 1918 reservó tres rangos IPv4 (10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16) específicamente para su uso dentro de redes privadas, precisamente porque no hay suficientes direcciones IPv4 públicas para que cada dispositivo de cada red privada tenga una única a nivel global. Estos rangos se reutilizan, de forma simultánea, dentro de millones de redes sin relación en todo el mundo. Tu router doméstico casi con seguridad reparte direcciones 192.168.x.x; el de prácticamente todos los demás también.
Qué significa que un dominio público se resuelva a este rango
Como estas direcciones solo tienen significado dentro de la red local que pregunta, un dominio público que se resuelve a una de ellas es, en el mejor de los casos, un error de configuración y, en el peor, un intento deliberado de lograr que un sistema expuesto al público haga una solicitud a lo que haya en esa dirección dentro de su propia red interna. La internet pública no tiene una idea coherente de a qué se refiere siquiera 10.0.0.5: es una máquina distinta según la red que pregunte.
| Rango | Nombre | Por qué se bloquea |
|---|---|---|
| 10.0.0.0/8 | Privado (RFC 1918) | Se reutiliza dentro de millones de redes sin relación |
| 172.16.0.0/12 | Privado (RFC 1918) | Igual que el anterior |
| 192.168.0.0/16 | Privado (RFC 1918) | Igual que el anterior: el rango habitual de los routers domésticos |
| 127.0.0.0/8 | Loopback | Se refiere a la propia máquina que consulta |
| 169.254.0.0/16 | Link-local | Incluye 169.254.169.254, el punto final de metadatos de la nube |
| 100.64.0.0/10 | Espacio de direcciones compartido (RFC 6598) | NAT de nivel de operador: suele faltar en las listas de bloqueo hechas a mano |
| 0.0.0.0/8 | No especificado | No es un destino enrutable real |
| 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 | Rangos de documentación | Reservados para ejemplos, nunca pensados para estar activos |
- Un dominio público legítimo no tiene ningún motivo para resolverse jamás a una dirección de un rango privado: si ves una, trátala como una señal que merece investigarse, no como un resultado normal.
- IPv6 tiene sus propios rangos equivalentes privados y reservados (las direcciones locales únicas, fc00::/7, y las link-local, fe80::/10) que requieren exactamente el mismo tratamiento.
Filtrar estos rangos en el momento de la resolución, en lugar de confiar en que un dominio de aspecto público siempre se resuelva a una dirección de aspecto público, es la expectativa mínima para cualquier herramienta que resuelva dominios en nombre de un usuario.
El rango que olvidan la mayoría de las listas de bloqueo
100.64.0.0/10 (el «espacio de direcciones compartido», definido por la RFC 6598) no tiene ni de lejos el reconocimiento de 10.0.0.0/8 o 192.168.0.0/16, a pesar de ser igual de no enrutable en la internet pública. Existe específicamente para el NAT de nivel de operador, que permite a un proveedor de internet asignar internamente direcciones a un gran número de conexiones de clientes sin consumir espacio IPv4 público para cada una. Como es más reciente y menos conocido que los rangos clásicos de la RFC 1918, es el que más suele faltar en una lista de bloqueo hecha a mano: exactamente el tipo de hueco que solo sale a la luz cuando alguien apunta deliberadamente un dominio a una dirección de su interior.
«Fallar en cerrado» importa tanto como la propia lista
Una lista de bloqueo solo es tan buena como lo que ocurre cuando una dirección no se puede interpretar en absoluto. Una entrada mal formada, una notación inusual o un valor que no coincide claramente con ningún rango conocido nunca debería tratarse por defecto como «probablemente correcto»: lo seguro es rechazar todo lo que no pueda clasificarse con confianza como público, en lugar de rechazar solo las direcciones que coinciden positivamente con un rango conocido como malo. Esta postura de «fallar en cerrado» es lo que mantiene robusta una lista de bloqueo frente a los rangos que a nadie se le ocurrió añadir todavía, y no solo frente a los bien conocidos que ya figuran en la lista.
¿Necesitas comprobar las direcciones DNS públicas de un dominio? Usa la herramienta Domain IP Lookup.
Herramientas gratuitas sobre este tema
Lecturas relacionadas
El SSRF convierte un servidor en un proxy involuntario
Atacante
fabrica una URL de solicitud
Servidor vulnerable
la obtiene, engañado por SSRF
169.254.169.254
el endpoint de metadatos
Credenciales
devueltas al atacante
Metadatos en la nube: la superficie de ataque oculta
Una única dirección IP de aspecto no enrutable da a las instancias en la nube acceso a credenciales y configuración, y es un objetivo habitual de SSRF.
La misma dirección, cuatro formas distintas de escribirla
Ataques SSRF explicados: cómo se explota el DNS
El SSRF suele empezar con algo tan simple como un nombre de dominio que se engaña a tu servidor para que resuelva y solicite.
El mismo dominio, dos respuestas distintas
Primera solicitud
resuelve a una IP pública
Validación
se supera: parece segura
Vence el TTL
segundos después
Segunda solicitud
resuelve a 127.0.0.1
Qué es el DNS rebinding y por qué debería importarte
Un dominio que resuelve primero a una dirección segura y después a una interna: el DNS rebinding convierte el propio DNS en una superficie de ataque.