Todas las herramientas de rastreo se basan en el siguiente principio: envían paquetes con una vida corta, y esperan a que los paquetes ICMP informen sobre la muerte de estos paquetes. Un paquete IP tiene un campo llamado "TTL" (como "Time To Live") que se decrementa en cada salto; cuando llega a 0, el paquete muere y se supone que el enrutador en el que sucede esto devuelve un mensaje de ICMP "Time Exceeded" . Ese mensaje ICMP contiene la dirección IP de dicho enrutador, lo que lo revela.
Ninguna de las herramientas a las que se vincula puede hacer nada si algún firewall bloquea los paquetes ICMP de "Tiempo excedido". Sin embargo, el bloqueo de dichos paquetes tiende a interrumpir el acceso a Internet (debido a que los hosts cambian de forma adaptativa el TTL en los paquetes que envían para hacer frente a rutas de red largas y necesitan este ICMP para este proceso), por lo que, en general, el " Time Exceeded "Los paquetes ICMP no están bloqueados.
Lo que a menudo se bloquea , sin embargo, es el tipo de paquetes de corta duración que envía traceroute
. Estos son los paquetes con el TTL artificialmente bajo. Si son bloqueados por un firewall, nunca llegan a morir "de edad avanzada", y por lo tanto no hay ICMP excedido en el tiempo. Para el procesamiento TTL y el ICMP de "Tiempo excedido", el tipo de paquete no importa; Esto ocurre a nivel de IP. Pero los firewalls también miran el contenido del paquete. El objetivo es engañar a los firewalls para que permitan que el paquete de corta duración fluya (y luego muera).
Plain traceroute
usa paquetes UDP, o paquetes ICMP "Echo", ambos tipos son bloqueados rutinariamente por (sobre) administradores de sistemas. tcptraceroute
usa un paquete TCP "SYN", es decir, el tipo de paquete que se produciría como primer paso en el TCP "apretón de manos de tres vías". Ese tipo de paquete generalmente no está bloqueado por el firewall, al menos mientras el puerto de destino esté "permitido". tcptraceroute
no completará ningún protocolo TCP; solo se basa en las ideas de que los firewalls no disparan los paquetes SYN a la vista.
intrace
va un paso más allá, ya que espera una conexión TCP existente (lo hace inspeccionando todos los paquetes, à la tcpdump
). Cuando ve una conexión y el usuario presiona ENTER, intrace
enviará paquetes de corta duración que aparecen como parte de la conexión observada. intrace
puede hacer eso porque ha visto los paquetes, y así conoce las direcciones IP, los puertos y los números de secuencia. Todos los cortafuegos relevantes dejarán pasar estos paquetes, ya que (obviamente) permiten que la conexión TCP observada continúe. Los paquetes de corta duración se ajustan para que no interrumpan la conexión TCP (es decir, son paquetes "ACK" simples sin datos por sí mismos, por lo que el sistema operativo de destino simplemente los ignorará).
Editar: Observo que no contesté parte de la pregunta. Aquí va: no hay riesgo. No hay nada que mitigar.
traceroute
revela las direcciones IP de los enrutadores involucrados en los paquetes de enrutamiento. Las direcciones IP no deben ser secretas y son fáciles de obtener para los atacantes a través de diversos medios (el escaneo masivo viene a la mente, pero también busca bolsas de basura para las copias impresas de los mapas de la red). Actividad más limpia de lo que solía ser). Sin embargo, un mito relativamente extendido es que mantener sus direcciones en secreto de alguna manera garantiza la seguridad. En consecuencia, muchos administradores de sistemas consideran que traceroute
es una infracción grave, que se debe solucionar y bloquear tan pronto como sea posible. En la práctica, sin embargo, todo esto es una tontería. Si revelar algunas direcciones IP internas es un problema importante, esto significa que su red está condenada.
Preocuparse por el secreto de las direcciones IP es como desencadenar un plan de respuesta a incidentes mayores porque un extraño aprendió el menú en la cafetería de la compañía. Es desproporcionado. Por supuesto, tener un conocimiento preciso y extenso de la infraestructura de la red solo puede ayudar a los atacantes; Pero no en cantidades realmente significativas. Mantener las direcciones IP en secreto no vale la pena romper la conectividad mediante un filtrado excesivo (por ejemplo, el bloqueo de la "fragmentación requerida" ICMP es mortal para cualquier cliente detrás de un enlace ADSL + PPPoE).