Combine herramientas en las pruebas de seguridad para apps móviles
Las pruebas de seguridad para apps móviles examinan diferentes aspectos, por lo que se deben combinar herramientas estáticas, dinámicas y/o forenses.
¿Qué tipo de herramientas de pruebas de seguridad necesitaremos a medida que construimos versiones móviles de nuestras aplicaciones web?
Las aplicaciones móviles pueden tener modelos de amenazas complejos, por lo que las pruebas de seguridad deben examinar una serie de diferentes aspectos de estos sistemas. Hay tres tipos principales de herramientas de pruebas de seguridad que revisar para las pruebas de seguridad de aplicaciones móviles: estáticas, dinámicas y forenses. Los programas integrales de pruebas deben utilizar una combinación de estas herramientas proporcionadas por distribuidores y terceros.
Estático
Las herramientas de pruebas estáticas miran la aplicación mientras está en reposo, ya sea el código fuente o el binario de la aplicación. Esto puede ser bueno para la identificación de ciertos tipos de vulnerabilidades en la forma en que el código se ejecutará en el dispositivo, por lo general asociadas con el flujo de datos y el manejo del búfer. Algunas herramientas y servicios de análisis de seguridad estática comerciales tienen la capacidad de probar el código de la aplicación móvil. Es importante trabajar con el proveedor para obtener una clara comprensión de exactamente qué tipos de vulnerabilidades se puede y no se puede identificar, porque la mayoría de las herramientas de análisis de seguridad estática fueron optimizadas originalmente para probar aplicaciones basadas en web.
Las herramientas disponibles gratuitamente para el análisis estático de las aplicaciones móviles incluyen Clang Static Analyzer, que es una herramienta de análisis estático para C, C++ y programas de Objective-C. Puede utilizar el soporte de Objective-C para examinar si tiene ciertos errores de calidad y seguridad en las aplicaciones basadas en iOS, y se pueden ejecutar tanto desde la línea de comandos, como desde el interior del entorno de desarrollo XCode de Apple. Además, el comando "otool" provisto por XCode puede se utilizado para extraer información de los binarios de aplicaciones de iOS que pueden ser utilizados para soportar el análisis de seguridad.
En los entornos de Android, existen herramientas que extraen tanto código ensamblador DEX, como recuperan el código fuente de Java de las aplicaciones de Android. Ejemplos de estas herramientas incluyen DeDexer, que genera código ensamblador DEX desde un binario de aplicación DEX de Android, y dex2jar, que convierte los archivos binarios de aplicaciones DEX a archivos estándar JAR de Java. Luego se puede utilizar lasherramientas de análisis estándar de Java, tales como FindBugs, para analizar estos JAR. Además, el bytecode de Java puede ser convertido nuevamente en código fuente de Java con descompiladores Java, como JD-GUI. Esto prepara el escenario para el análisis de seguridad manual de una aplicación Android.
Usted encontrará una serie de scripts que automatizan muchas tareas de preparación de las pruebas de seguridad estáticas para iOS y Android en www.smartphonesdumbapps.com y el repositorio asociado de Google Code.
Dinámico
Las herramientas de pruebas dinámicas permiten a los analistas de seguridad observar el comportamiento de los sistemas en funcionamiento con el fin de identificar posibles problemas. Las herramientas de análisis dinámico más comunes utilizadas en las pruebas de seguridad de aplicaciones móviles son proxies que permiten a los analistas de seguridad observar –y potencialmente cambiar– las comunicaciones entre los clientes de aplicaciones móviles y los servicios web de soporte. Un ejemplo de una herramienta proxy de este tipo es el OWASP Zed Attack Proxy. Con las herramientas de proxy, los analistas de seguridad pueden hacer una ingeniería inversa de los protocolos de comunicación y crear mensajes potencialmente maliciosos que nunca serían enviados por clientes móviles legítimos. Esto permite a los mensajes atacar a los recursos del lado del servidor que son un componente crítico de cualquier sistema no trivial de aplicaciones móviles.
Forense
Las herramientas forenses permiten a los analistas de seguridad examinar los artefactos que son dejados de lado por una aplicación después de que se ha ejecutado. Las cosas comunes que pueden buscar los analistas incluyen las contraseñas codificadas fuertemente u otras credenciales almacenadas en los archivos de configuración, los datos sensibles almacenados en bases de datos de aplicaciones, y los datos inesperados almacenados en las memorias caché de componentes del navegador web. Los analistas también pueden utilizar herramientas forenses para examinar cómo se almacenan los componentes de las aplicaciones móviles en el dispositivo para determinar si se ha utilizado correctamente las instalaciones disponibles de control de acceso del sistema operativo.
Se puede explorar los sistemas de archivos del dispositivo móvil utilizando herramientas tales como el Android Debug Bridge que viene con el kit de desarrollo de Android, o herramientas de terceros como el Explorador de archivos del iPad, el cual, a pesar de su nombre, debería funcionar para todos los dispositivos iOS y no solo en las iPads.
El motor de base de datos SQLite está disponible de forma nativa tanto en sistemas iOS como Android, y es una forma común para que los desarrolladores de aplicaciones almacenen datos en un entorno familiar de base de datos relacional. Utilidades como el SQLite Database Browser pueden utilizarse para examinar los archivos de base de datos SQLite, una vez que se han recuperado de un sistema objetivo.