Uso del DNS per tracciare l'attività del browser su una LAN

1

Sto cercando di creare un piccolo script di controllo di rete che tenga traccia dei nomi di dominio HTTP e HTTPS visitati da alcuni host utilizzando il wrapper libpcap per Nodejs . Al suo meglio, la sceneggiatura sarebbe in grado di fornire una stampa dei nomi dei siti web visitati da un ospite nonché un timestamp del momento in cui è avvenuta la visita.

Il mio pensiero iniziale è di effettuare un'acquisizione standard sulla LAN con un filtro dei pacchetti per monitorare solo il traffico "udp port 53", ispezionare solo le domande DNS e quindi salvarle su un hashmap tramite indirizzo IP o MAC. Tuttavia questo metodo fornirà risultati un po 'torbidi, in quanto qualsiasi risorsa caricata su una pagina effettuerà un'altra richiesta DNS. Dicendo, link , in realtà attiva ~ 20 ricerche nel nome host. Esiste qualche metodo sensato per separare i nomi degli host visitati da un browser da quelli richiesti semplicemente per le risorse? Un metodo che posso pensare sarebbe quello di impiegare una sorta di timer "debounce" in cui il mio script ascolta solo la prima richiesta di domande DNS fatta ogni 1000 millisecondi (dare o prendere), in questo modo potrei almeno ignorare la prima ondata di risorse caricato da qualsiasi pagina web. Qualche idea su se questo è un metodo valido per il tracciamento delle pagine web visitate (sia http e https) che suggerimenti per migliorarle?

    
posta Brannon 05.03.2015 - 19:11
fonte

2 risposte

2

Questo non può funzionare come previsto.

Per prima cosa, i browser Web non sono l'unica cosa che causa ricerche DNS: qualsiasi cosa (come un client di rete) che debba convertire i nomi di dominio in indirizzi IP o viceversa lo farà.

Per un altro, non puoi contare sul browser che esegue una ricerca DNS ogni volta che carica una pagina. Il resolver DNS dovrebbe memorizzare i risultati in cache in modo che, ad esempio, Amazon non venga consultato più di una volta al minuto, mentre la visita al sito Web di casa non dovrebbe produrre più di una ricerca all'ora. Inoltre, è possibile esplorare i siti Web in base all'indirizzo IP, che non genera alcun traffico DNS.

Un terzo problema, e uno che disturberà qualsiasi sistema di tracciamento, è che una pagina carica non corrisponde a una vista . Alcuni browser eseguono il "caricamento predittivo" per precaricare la pagina che pensano che l'utente sia più probabile visitare successivamente, e alcuni programmi anti-virus fanno la stessa cosa per pre-scansionare i collegamenti per contenuti dannosi (un antivirus famoso DDoS'd a numero di siti con un'implementazione poco studiata di questo).

La soluzione migliore è impostare un proxy trasparente che registri tutto il traffico che lo attraversa. Ciò ti consente di monitorare l'attività di caricamento della pagina per HTTP e gli indirizzi IP per il traffico HTTPS.

    
risposta data 05.03.2015 - 23:13
fonte
1

Forse, come inizio, usa l'elenco dei domini di Adblock e blocca alcuni di questi domini che riducono parte del traffico.

    
risposta data 05.03.2015 - 20:40
fonte

Leggi altre domande sui tag