02 febrero 2015

Faraday: una herramienta imprescindible en auditorías de seguridad



Fue en Ekoparty 2012, cuando tuve por primera vez el honor de ir a tierras gauchas, a estrenarme en el escenario del mayor Congreso de Seguridad de Latinoamérica, cuando conocí a Francisco Amato, uno de los organizadores de dicho evento. 

Fue el propio Francisco quien me contó, cuando asistí a la edición de Ekoparty 2014, que en Infobyte, la empresa de la que es CEO, estaban desarrollando una herramienta de seguridad, que me pareció muy interesante a la hora de llevar a cabo cualquier auditoría. Se llama Faraday, tiene una versión community, y dos versiones comerciales, la Professional y la Corporate. 

Desarrolada en Python, ya se encuentra en su versión 1.0.7, aunque las versiones publicadas “vuelan”, debido al esfuerzo por dejarla lo más fina y con mayor funcionalidad posible, cuanto antes.

A grandes rasgos, cuando ejecutas Faraday en un sistema operativo Linux, se te abre un IDE con una shell, desde la que puedes ejecutar herramientas típicas de cualquier proceso de auditoría como nmap, nikto o theharvester por ejemplo, que automáticamente son interceptados por Faraday y añaden los flags necesarios para que el resultado del análisis de la herramienta se deje en formato XML, en una ruta dentro del home del usuario que la lanza. 

Según se van lanzando diferentes herramientas, se va viendo el resultado de los hosts identificados, puertos abiertos, etc,… en un frame a la derecha.


Incluso han publicado en las últimas versiones, una opción en la que permite la ejecución en un entorno Linux sin ventanas, es decir, en modo consola:





Además de herramientas interceptables, se puede importar el resultado de otras como Nessus y OpenVAS, copiando el report en XML que se genera por éstas en el Workspace de Faraday, dentro del home de ese usuario y Faraday lo interpretará y añadirá al frame de resultados.

Y luego hay conectores para otras herramientas como Burp, Metasploit o BeEF, que permiten incluir los resultados de estas en el proyecto de auditoría que se esté llevando a cabo.  

La lista de plugins o herramientas que se pueden integrar en Faraday, cada vez es más extensa, como podéis ver aquí: https://github.com/infobyte/faraday/wiki/Plugin-List.

Toda esta información queda almacenada en una base de datos apoyada en CouchDB, por lo que a partir de aquí, permite generarse un informe que aglutina los resultados de todas las herramientas, sirviéndote de muy buena ayuda a la hora de llevar a cabo el informe. 
Igualmente, la herramienta se define como IDE colaborativa, por lo que diferentes auditores pueden ir haciendo diferentes tareas dentro de la auditoría y aunar los resultados en Faraday, de manera que mediante el interfaz web que renderiza la base de datos en CouchDB, se puede ir siguiendo la evolución del proyecto.



Evidentemente, quien piense que, únicamente gracias a Faraday, lanzará todas estas herramientas, importará los resultados en Faraday, le dará al botón imprimir y ya hecha la auditoría de seguridad, está claro que estará profundamente equivocado. Pero sí que es cierto que a la hora de categorizar vulnerabilidades existentes, prioridad e impacto de las mismas, en una auditoría de varios hosts de un mismo proyecto, resulta de gran utilidad. 

A la hora de generar el documento ejecutivo, en el que se suele hacer un resumen con gráficos y estadísticas sobre el estado de los hosts auditados, Faraday nos entregará parte de ese trabajo ya hecho.