17 mayo 2013

Detectando IPs TOR en ficheros access_log

Cuando hablamos de TOR, es bastante frecuente encontrarse con la pregunta de ¿Y cómo detecto si una IP proviene de TOR? Normalmente asociada a conexiones web.

En realidad, saber si una IP proviene de un nodo TOR es relativamente sencillo y no requiere magia de ningún tipo.

El propio proyecto TOR te explica como hacerlo y ofrece un montón de ejemplos para hacerlo desde múltiples lenguajes de programación (Python, PHP, Perl ...)

Por si no fuera poco, la lista de nodos TOR es pública y se puede consultar desde esta URL.

Pensando desde un punto de vista forense, tal vez sí echo a faltar herramientas que permitan analizar el contenido de un fichero de logs Apache e indique cuales de esos accesos provienen desde una red TOR.

Como no he encontrado nada que me haya convencido, decidí hacer mi propia implementación.

Cuando me puse a ello, tenía dos opciones posibles: O bien me iba a las consultas DNS (como en los ejemplos antes mencionados) o lo hacía de una forma un poco diferente.

Creo que es poco óptimo el ir IP por IP del fichero de log y lanzar una consulta DNS, así que pensé que era mejor descargar la lista completa de nodos TOR, parsearla para obtener la IP y comparar con lo que iba encontrando.

El resultado es este:



Para ejecutarlo, tan solo toma como parámetro el fichero de log a analizar.

$ python parsetor.py access_log

Cabe señalar un matiz: Si en el momento en el que se realiza el análisis el nodo TOR no se encuentra activo, no aparecerá, así que cuanto más frescos sean los datos, más oportunidades hay de tener un resultado más fiable

10 comments :

Pedro Sánchez dijo...

Cojonudo!!, muy buena herramienta. La incluyo en mi caja de herramientas. Un abrazo

Blog Tecnico dijo...

en esta web dan un listado de nodos de tor y segun comentan se actualiza cada 30 minutos https://www.dan.me.uk/tornodes ideal para crear listados actualizados.

Hector oyarzo dijo...

Gran aporte, lo probare de inmediato en una PBX que tengo.

car dijo...

Siempre he tenido una duda con la red TOR, ¿Realmente es tan anónima como quieren hacernos creer? o sin embargo tiene sus vulnerabilidades como todo sistema. Tengo entendido que tu/yo mismo podemos crear un servidor desde nuestra propia casa con relativamente pocos recursos por el cual pasarían datos de la red TOR, si eso es asi ¿Quien impediría a esa persona espiar las comunicaciones que por allí pasen?, creo que me explico ¿verdad?.Bueno supongo que los datos viajaran encriptados y un Man in the Middle no seria posible "supongo" pero aun asi mi pregunta sigue en el aire. ¿Es realmente segura la red TOR?, saludos.

ffranz dijo...

Buena entrada! ;-)

Sencillo y eficaz... No he podido resistirme a
modificarlo para que muestre los datos en un .kml para verlo a
Google Maps: http://pastebin.com/h5TtXLKm

Yago Jesus dijo...

Muchas gracias ! Con tu permiso, voy a hacer un update del post para añadirlo (si me das el OK, claro ...)

Yago Jesus dijo...

Nada es seguro al 100% :)

Yago Jesus dijo...

Muchas gracias !!

Yago Jesus dijo...

toooooooodo un honor Pedro !!

Fabian dijo...

Y asi una simple forma de hacerlo en bash http://pastebin.com/WJ59YGnX