Uso de DNS para rastrear la actividad del navegador en una LAN

1

Estoy tratando de crear una pequeña secuencia de comandos de auditoría de red que rastree los nombres de dominio HTTP y HTTPS visitados por determinados hosts utilizando el contenedor de libpcap para Nodejs . En el mejor de los casos, el script podría proporcionar una copia impresa de los nombres de los sitios web que visitó un host, así como una fecha y hora en que se produjo la visita.

Mi idea inicial es hacer una captura estándar en la LAN con un filtro de paquetes para monitorear solo el tráfico del "puerto udp 53", inspeccionar solo las preguntas del DNS y luego guardarlas en un mapa de hash mediante una dirección IP o MAC. Sin embargo, este método dará resultados un tanto nublados, ya que cualquier activo cargado en una página realizará otra solicitud de DNS. Yendo a decir, enlace , en realidad se activan ~ 20 búsquedas de nombre de host. ¿Existe algún método sensato para separar los nombres de host visitados por un navegador de los que se solicitan simplemente por activos? Un método en el que puedo pensar sería emplear algún tipo de temporizador de "rebote" en el que mi secuencia de comandos solo escuche la primera solicitud de pregunta de DNS realizada cada 1000 milisegundos (más o menos), de esa manera al menos podría ignorar la primera ola de activos. Cargado por cualquier página web. ¿Alguna idea sobre si este es un método sólido para rastrear páginas web visitadas (tanto http como https) o sugerencias para mejorarlo?

    
pregunta Brannon 05.03.2015 - 19:11
fuente

2 respuestas

2

Esto no puede funcionar como imaginas.

Por un lado, los navegadores web no son lo único que causa búsquedas de DNS: cualquier cosa (como un cliente de tiempo de red) que necesite convertir nombres de dominio en direcciones IP o viceversa, lo hará.

Por otro lado, no puedes contar con que el navegador realice una búsqueda de DNS cada vez que carga una página. La resolución de DNS debe almacenar en caché los resultados para que, por ejemplo, Amazon no se busque más de una vez por minuto, mientras que visitar el sitio web de mi hogar no debe producir más de una búsqueda por hora. Además, es posible navegar por los sitios web por dirección IP, que no genera ningún tráfico de DNS.

Un tercer problema, y uno que afectará a cualquier sistema de seguimiento, es que una página cargar no equivale a una página vista . Algunos navegadores realizan una "carga predictiva" para precargar la página que creen que es más probable que el usuario visite a continuación, y algunos programas antivirus hacen lo mismo para pre-escanear enlaces en busca de contenido dañino (un antivirus famoso DDoS'd número de sitios con una implementación mal pensada de esto).

Su mejor apuesta es configurar un proxy transparente que registre todo el tráfico que lo atraviesa. Esto le permitirá realizar un seguimiento de la actividad de carga de página para HTTP y las direcciones IP para el tráfico HTTPS.

    
respondido por el Mark 05.03.2015 - 23:13
fuente
1

Quizás, como inicio, use la lista de dominios de Adblock y bloquee algunos de estos dominios que eliminarán parte del tráfico.

    
respondido por el sandyp 05.03.2015 - 20:40
fuente

Lea otras preguntas en las etiquetas