Detección
Las capacidades de escaneo de Ostorlab utilizan el análisis estático para lograr una alta cobertura de la superficie de ataque y el análisis dinámico para obtener informes sin falsos positivos. Ostorlab examina los backends del sistema recopilados durante el análisis dinámico para identificar vulnerabilidades del lado del servidor.
Análisis Estático
El análisis estático de Ostorlab utiliza múltiples técnicas para identificar vulnerabilidades:
Comprobaciones de Configuración
Comprobaciones de configuración (Configuration Checks) para ajustes no seguros. Estos ajustes incluyen parámetros nativos de Android e iOS, como el modo de depuración y copia de seguridad del AndroidManifest.xml, así como los parámetros del framework Cordova, como la lista blanca (whitelist) o el modo de depuración de Cordova.
Para obtener una lista completa de comprobaciones, consulte la sección de la base de conocimientos.
Dependencias de Terceros
El análisis de dependencias de terceros (3rd Party Dependencies) identifica todas las dependencias de la aplicación de todos los frameworks compatibles, como Android nativo, Cocoapods de iOS, complementos de Cordova, DLL de Xamarin...
Las dependencias de terceros también identifican dependencias compiladas estáticamente y reconocen un amplio conjunto de bibliotecas como OpenSSL, Zlib, Libjpeg, Libpng, Xerces...
Las huellas (fingerprints) identificadas se comparan con la base de datos de vulnerabilidades conocidas. La base de datos contiene tanto vulnerabilidades reportadas públicamente como una lista de vulnerabilidades no reportadas identificadas mediante el análisis de repositorios de código fuente públicos.
Se puede acceder a la base de datos de vulnerabilidades a través del menú VulnDB y se puede utilizar para buscar entradas por fecha, nombre y versión.
Secretos Codificados en Duro
El motor estático busca secretos codificados en duro (Hardcoded Secrets), como claves de API (API Keys) que no deberían implementarse en una aplicación móvil, así como contraseñas, tokens y claves de cifrado y vectores de inicialización (IV).
Los secretos identificados se evalúan para comprobar su validez e impacto comprobando los permisos, roles y servicios accesibles.
Análisis de Taint
La principal tecnología estática de Ostorlab es su motor de taint analysis (análisis de manchas o flujo de información contaminada), que calcula cómo se propagan los datos contaminados a lo largo de varias posibles rutas de ejecución. El motor de taint analysis estático de Ostorlab tiene en cuenta la información orientada a objetos y la información de tipado para ofrecer información de taint rápida, eficiente y casi sin falsos positivos. A continuación, docenas de reglas utilizan la información de taint para identificar vulnerabilidades, como inyecciones SQL, inyecciones de comandos o el uso de claves codificadas en duro.

Análisis Dinámico
Ostorlab ejecuta las aplicaciones móviles en un entorno de sandbox instrumentado para rastrear todas las interacciones con el entorno externo, como la red, el sistema de archivos, el llavero (keychain), la API, etc.
El motor de instrumentación rastrea las llamadas a las API estándar para identificar argumentos inseguros, como esquemas de cifrado débiles, llamadas RPC no seguras, carga de código desde rutas no confiables o ejecución de comandos con entrada del usuario.
La instrumentación de Ostorlab puede acceder al tráfico cifrado y no requiere eludir el SSL pinning. El backend recopilado se reutiliza posteriormente para realizar el análisis del backend.
La instrumentación dinámica utiliza tanto técnicas de instrumentación del sistema, como Fanotify para el acceso al sistema de archivos, como un motor de instrumentación en tiempo de ejecución (runtime) personalizado no invasivo, utilizando JDWP y las API de depuración para Android e iOS.
Este enfoque, en comparación con los métodos invasivos, como el inline hooking que requiere manipulación de memoria personalizada, es muy robusto, ofrece más capacidades para recopilar información en tiempo de ejecución, particularmente para aplicaciones iOS construidas utilizando Objective C y Swift, y no requiere un mantenimiento constante con cada nuevo lanzamiento del sistema que pueda implicar modificaciones en el entorno de ejecución del sistema subyacente.
Backend
Ostorlab se centra en los backends recopilados durante el análisis dinámico para identificar vulnerabilidades del lado del servidor. El análisis es tanto pasivo, como la detección de la presencia de cabeceras HTTP inseguras, como activo, como la detección de inyección SQL o vulnerabilidades XXE.
Ostorlab utiliza un agente de escaneo avanzado de Cross-Site Scripting (XSS) con pruebas dinámicas basadas en Chrome y potentes payloads políglotas. El escáner también utiliza métodos como la integración de instrumentación del objeto Proxy de JavaScript en el perfilado preliminar de las aplicaciones web para simplificar la detección de vectores XSS con matices.
Las pruebas activas de Ostorlab utilizan un enfoque probabilístico para identificar vulnerabilidades. Este enfoque tiene la ventaja de evitar la necesidad de enviar un payload completo que podría ser bloqueado, estar limitado a un sistema operativo en particular, podría afectar la estabilidad del backend o activar sistemas de detección de intrusos o cortafuegos de aplicaciones.
Además, Ostorlab automatiza la detección de vulnerabilidades críticas, de alta gravedad y explotables activamente, procedentes de plataformas de buena reputación como el CISA KEV, el Tsunami de Google y el innovador proyecto Asteroid de Ostorlab.
El motor de análisis de backend de Ostorlab es compatible con un amplio conjunto de esquemas de serialización y admite la inyección de serialización anidada.
Las pruebas probabilísticas junto con una limitación de la tasa de solicitudes (rate-limiting) segura protegen los sistemas backend frente a fallos inesperados y la denegación de servicio no deseada y ofrecen informes garantizados sin falsos positivos.