viernes, 17 de mayo de 2013

IP NODOS 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
 
FUENTE :SDB

No hay comentarios: