
Analizador de Android en Rust seguro, unificado, potente y extensible
Analizador Rust de Android, Seguro, Unificado, Potente y Extensible
SUPER es una aplicación de línea de comandos que se puede usar en Windows, MacOS X y Linux, que analiza archivos .apk en busca de vulnerabilidades. Lo hace descomprimiendo APKs y aplicando una serie de reglas para detectar dichas vulnerabilidades.
Pero, ¿por qué crear un nuevo analizador? ¿No es suficiente con MobSF, Qark, Androbugs…? Bueno, creemos que no es suficiente. Todos tienen dos problemas principales que queríamos solucionar: Están escritos en Java o Python y no son fácilmente extensibles. No están pensados para ser usados por empresas que trabajan directamente en análisis de Android, y no ponen ese tipo de funcionalidad en primer lugar.
Nuestro enfoque soluciona esos problemas de diferentes maneras: Primero decidimos usar Rust como nuestro lenguaje de programación. El lenguaje desarrollado abiertamente por Mozilla Foundation nos brinda muchas utilidades para trabajar con expresiones regulares, archivos, etc., y, lo más importante, nos permite crear un software seguro que no depende de compiladores JVM ni JIT. Con Rust, los desbordamientos de pila, fallos de segmentación, etc. no son posibles directamente, lo que tiene sentido en una aplicación centrada en la seguridad. Y también nos proporciona suficiente potencia para realizar análisis eficientes, dándonos la opción de automatizarlo en grandes volúmenes. Esto se debe a las abstracciones de costo cero de Rust, que nos brindan una eficiencia solo comparable a C/C++.
Y en segundo lugar, decidimos hacer el software 100% extensible: Todas las reglas están centralizadas en un
archivo rules.json, y cada empresa o evaluador podría crear sus propias reglas para analizar lo que necesite.
También es modular, para que nuevos desarrollos puedan agregar fácilmente nuevas funcionalidades. Finalmente, un sistema
de plantillas para los informes de resultados da a los usuarios la capacidad de personalizar el informe.
También ofrece excelentes herramientas de revisión de código, directamente en el informe HTML, para que cualquiera pueda buscar a través del código generado con resaltado de sintaxis para un análisis de vulnerabilidades aún mejor.
Hemos lanzado algunos binarios en la página de descarga para Windows (8.1+), Linux y MacOS X. Solo tenemos paquetes de 64 bits por ahora. Si necesita usar SUPER en un sistema de 32 bits, necesitará compilar SUPER desde el código fuente. Para ello, necesitará instalar Rust con rustup.rs.
Nota: Requiere Java 1.7+ para ejecutarse.
SUPER es muy fácil de usar. Simplemente descargue el archivo .apk deseado en la carpeta downloads (cree esa carpeta si es necesario) y use el nombre como argumento al ejecutar el programa. Después de la ejecución, aparecerá un informe detallado en la carpeta results con ese nombre de aplicación. Hay algunas opciones de uso disponibles:
USO:
super [BANDERAS] [OPCIONES] <paquete>
BANDERAS:
--bench Muestra benchmarks del análisis
--force Si desea forzar al auditor a hacer todo desde el principio
-h, --help Muestra información de ayuda
--html Genera los resultados en formato HTML
--json Genera los resultados en formato JSON
--open Abre el informe en un navegador una vez completado
-q, --quiet Si desea un auditor zen que no muestre nada en stdout
-a, --test-all Prueba todos los archivos .apk en el directorio downloads
-V, --version Muestra información de la versión
-v, --verbose Si desea que el auditor hable más de lo necesario
OPCIONES:
--dex2jar <dex2jar> Dónde almacenar los archivos jar
--dist <dist> Carpeta donde se extraerán los archivos de distribución
--downloads <downloads> Carpeta donde se almacenan las descargas
--jd-cmd <jd-cmd> Ruta al archivo jd-cmd
--min-criticality <min_criticality> Establece una criticidad mínima para analizar (Critical, High, Medium, Low)
--results <results> Carpeta donde almacenar los resultados
--rules <rules> Ruta a un archivo de reglas JSON
--template <template> Ruta a un archivo de plantilla de resultados
-t, --threads <threads> Número de hilos a usar, por defecto usará un hilo por núcleo lógico de CPU
ARGUMENTOS:
<package> La cadena del paquete de la aplicación a probar
Todo el mundo está invitado a contribuir a SUPER. Consulte las Directrices de Contribución de SUPER para obtener instrucciones sobre cómo proceder.
Este programa es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal como fue publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.