Analizando extensiones de navegador con Neto Console

lunes, 21 de mayo de 2018

Hace quince días publicábamos la primera versión de Neto, nuestro analizador de extensiones en Github. Publicada bajo licencia libre, en este tiempo hemos trabajado en una serie de funcionalidades que permitan a los analistas una mejor interacción con cada una de las utilidades de la herramienta además de mejorar su configuración. En este post veremos algunas de las novedades que hemos incluido en esta versión entre las que destaca su interfaz interactiva.

Las principales novedades de la versión 0.6
En esta segunda release pública incluimos algunas funcionalidades que consideramos relevantes:
  • La consola de Neto es la principal utilidad incluida en esta versión. Se trata de una pequeña interfaz de comandos que invocamos con neto console y desde la que podremos ejecutar diferentes comandos de análisis de forma interactiva como veremos más adelante en este post.
  • La carpeta de configuración. En esta prerelease también hemos incluido una serie de archivos de configuración que generaremos en la instalación. En sistemas GNU/Linux la carpeta de configuración se creará en /home//.config/ElevenPaths/Neto y será, además del lugar en el que almacenamos los archivos de configuración principales y unos backups, una carpeta de referencia donde almacenar resultados de los análisis. En sistemas Windows esta carpeta se creará en C:/Users//ElevenPaths/Neto.
  • Visualización de características de los análisis realizados en la CLI. De esta manera, el analista podrá comprobar desde la propia línea de comandos las principales características extraídas del en el análisis, como el hash de la extensión, los permisos que utiliza, los scripts que carga en cada pestaña o en background o la valoración que hace Virustotal del archivo entre otras sin necesidad de explorar manualmente el JSON. El JSON se seguirá generando con los datos completos.
La forma más sencilla de instalar la herramienta es con el comando de pip:

pip3 install neto

Los que ya tengamos descargada la versión anterior, tendremos que actualizarla añadiendo --upgrade al comando anterior:

pip3 install neto --upgrade

En sistemas GNU/Linux dicho comando puede ejecutarse o bien con un perfil de administrador, o bien con sudo o, si no somos administradores y no tenemos privilegios, añadiéndole --user para instalarlo solo para el usuario actual.

La consola interactiva
Como comentábamos anteriormente, la principal novedad de esta versión ha sido la adición de la consola interactiva de Neto. Con la interfaz de comandos que hemos incluido hemos querido acercar algunas de las funcionalidades de Neto de forma más cómoda para que sea más fácil la exploración de extensiones. Para lanzarla desde línea de comandos utilizaremos neto console, lo que nos abrirá una interfaz interactiva. 


A partir de ahí, en todo momento podremos apoyarnos en el comando help para ver qué opciones tenemos.


Hasta el momento incluimos 13 comandos diferentes con distintas utilidades que ordenamos a continuación en orden alfabético. Donde ha sido posible, hemos implementado la opción de autocompletar. En cualquier caso, si tenemos dudas sobre el funcionamiento de cualquiera de ellas, podremos usar help comando para ver la ayuda sobre el mismo y ejemplos de cómo utilizarlos:
  • analyse. El comando principal de análisis. Irá seguido de las palabras clave «local» o «remote» en función de si la extensión que vayamos a analizar la tenemos almacenada en local o lo que facilitamos es una dirección URL remota. Si seleccionamos la opción local, podemos autocompletar los nombres de las extensiones contenidas en el working_directory que hayamos definido.


  • delete. Un comando para eliminar los análisis realizados. Se encarga de eliminar los archivos de análisis que no nos sean útiles. Podremos hacer referencia al análisis a realizar por medio de las palabras reservadas ALL o SELECTED así como por el nombre de la extensión. Hay que usarlo con cautela para evitar desastres.
  • deselect. Es el comando inverso a deselect. Desmarcará una extensión marcada como seleccionada si se especifica el nombre de la misma de forma literal. Se puede usar también la palabra reservada «ALL»
  • details. Muestra la información más relevante de la extensión que podremos seleccionar usando las funciones de autocompletar. Se trata de la misma información que veríamos tras realizar el análisis usando el CLI. Si queremos los detalles completos del JSON podremos usar full_details.
  • exit. Cierra la consola.
  • full_details. Muestra el JSON correspondiente a la extensión seleccionada.
  • grep. Un comando de búsqueda literal en los análisis ya almacenados. Nos devolverá los nombres de las extensiones que contengan la cadena de texto literal que hayamos incluido a continuación del nombre. Por defecto, la búsqueda se realizará solamente sobre las extensiones que hayan sido seleccionadas. En caso de que no haya ninguna, se realizará sobre todas.
  • help. El comando de ayuda.
  • list. Con él listaremos los análisis realizados. Podremos utilizar además de las palabras reservadas «ALL» y «SELECTED», el wildcard «*» para indicar extensiones que empiecen por una determinada cadena de texto (e. g.: list ad*).


  • select. Es un comando para seleccionar alguna de las extensiones que hayamos visto anteriormente (por ejemplo, para borrarlas o para buscar sobre ellas).
  • set. Se trata de un comando que utilizaremos para modificar algún valor propio de las opciones de la interfaz, como el directorio de trabajo.
  • show. Este comando lo utilizaremos solamente para mostrar información de la herramienta, como los datos genéricos de la misma (usando show info) o las opciones de la interfaz (usando show info).
  • update. Actualiza el listado de extensiones conocidas. Esto es útil si mientras mantenemos la interfaz abierta tenemos otro proceso por detrás (por ejemplo, el CLI lanzado con neto analyse -e miextension.xpi) que sigue añadiendo extensiones.
A continuación incorporamos un pequeño vídeo demostrativo de cómo funciona la interfaz de consola que incluimos en Neto Console para que nos hagamos a la idea.



Continuará…
Aunque el estado de desarrollo de Neto es claramente un work in progress, desde el Laboratorio de innovación de ElevenPaths sí queremos continuar profundizando en las características de la herramienta. Las próximas semanas hablaremos de cómo desarrollar nuevos plugins de análisis para añadir nuevas características que encontremos en las extensiones y de algunos casos en los que la herramienta nos puede servir de ayuda para analizar de un vistazo las características de una extensión. Mientras tanto, para ir mejorando poco a poco siempre podéis dejarnos vuestras dudas con respecto a cómo funciona como issues en el propio proyecto de Github. Cualquier idea será bien recibida.

Félix Brezo
Innovation and Laboratory Team ElevenPaths

No hay comentarios:

Publicar un comentario