Desde su presentación oficial, algunos aficionados al mundo de la seguridad móvil hemos esperado pacientemente que esta herramienta fuese compartida para poner a prueba sus prometidas bondades. Estoy hablando de QARK, una utilidad para la identificación de vulnerabilidades en aplicaciones para Android que puede ser descargada gratuitamente desde el sitio de la aplicación en Github.
Sobre la herramienta…
La aplicación, cuyo nombre deriva de «Quick Android Review Kit», funciona escaneando de manera estática el código de aplicaciones basadas en Java para identificar fallas que puedan dar pie a una explotación futura o a la fuga de información, intentando fusionar comportamientos de Drozer y Metasploit. Por desgracia, solo se asegura su funcionamiento para plataformas Linux y Mac OS.
Entre sus virtudes –explican sus creadores– se encuentran la creación de reportes con los defectos encontrados detallando la severidad de la falla, su explicación y formas de explotación, y la generación automática de POC.
A través de este entorno de trabajo, un tester, auditor, investigador o programador podrá advertir vulnerabilidades en sus aplicaciones, como ser contenido inseguro dentro de componentes del tipo WebView, incorrecta validación de certificados, susceptibilidad al tapjacking, manejo inseguro de URL, mala gestión de intentos, de claves criptográficas o del almacenamiento en bases de datos que posibilite inyecciones SQL.
No obstante, los desarrolladores de QARK desaconsejan la no realización de auditorías manuales sobre el código de la aplicación. Mientras diversifiquemos la naturaleza de las herramientas y procesos que hacen a la evaluación del aplicativo, mayor será la probabilidad de identificar aquellas fallas que permanecen pasivamente en nuestros sistemas.
¡Manos a la obra!
La herramienta es muy fácil de utilizar. A través del parámetro -s (--source), el usuario puede determinar si el escaneo de vulnerabilidades se dará sobre un APK (asignando el valor 1) o una carpeta de código fuente (con el valor 2).
En el primer caso, será necesario además declarar la ruta al APK en concreto con el parámetro -p. En el segundo, se deberá indicar la ruta al archivo manifiesto (-m) y a la carpeta raíz del código (-c).
Otros parámetros opcionales son -e para la generación de un APK exploit, -i para instalar el exploit antes producido en un dispositivo a través de ABD, -d para especificar los mensajes de depuración que se pretende recibir (10=Debug, 20=INFO, 30=Warning, 40=Error) y -r para indicar la ruta donde se espera que se almacenen los reportes generados.
Conocer estos parámetros es criterio suficiente para la correcta utilización de la aplicación; parte del resultado del análisis tras la ejecución de la herramienta se ilustra en la siguiente figura, donde vemos que se brinda además una breve explicación de cada potencial debilidad, característica que la vuelve sumamente útil para ser utilizada por desarrolladores que se inician en la seguridad.
Por su parte, el reporte se genera en formato HTML, permitiendo la exploración rápida de los resultados arrojados según la categoría de análisis a la que pertenece.
En resumen…
QARK permite el análisis rápido de vulnerabilidades, permitiendo identificar brechas comunes en las aplicaciones desde una perspectiva de auditoría de seguridad. Claro que no deja de invalidar la necesidad de un análisis manual del código que pueda revelar fallas más específicas.
Se trata de una herramienta extremadamente sencilla de utilizar, lo que la vuelve especialmente provechosa para desarrolladores de aplicaciones móviles que deseen entender cuáles son los puntos débiles existentes en sus creaciones con el objetivo de producir sistemas más robustos.
Sabemos que esta utilidad evolucionará en un futuro para adquirir nuevas funcionalidades. Solo resta esperar que nuevas versiones sean liberadas. En tanto, para saber más sobre esta aplicación puedes dirigirte a la presentación que la acompaña.