Saltar a contenido

Detección

El análisis estático de Ostorlab realiza comprobaciones de configuración, identificación de dependencias de terceros, detección de secretos codificados en duro y taint analysis, y su análisis dinámico ejecuta la aplicación en un sandbox instrumentado para rastrear sus interacciones con la red, el sistema de archivos, el llavero (keychain) y las API. 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 las dependencias de la aplicación en los frameworks compatibles, como Android nativo, CocoaPods de iOS, complementos de Cordova y 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.

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 rastrea cómo se propagan los datos contaminados a lo largo de varias posibles rutas de ejecución teniendo en cuenta la información orientada a objetos y de tipado. A continuación, docenas de reglas utilizan esa información de taint para identificar vulnerabilidades, como inyecciones SQL, inyecciones de comandos o el uso de claves codificadas en duro.

architecture

Análisis Dinámico

Ostorlab ejecuta las aplicaciones móviles en un entorno de sandbox instrumentado para rastrear 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 recopila el tráfico de red de la aplicación, incluido el tráfico cifrado. El TLS pinning aún puede impedir la interceptación del tráfico en algunas aplicaciones; consulte Requisitos previos del análisis móvil. 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.

En comparación con los métodos invasivos, como el inline hooking que requiere manipulación de memoria personalizada, este enfoque recopila información en tiempo de ejecución a través de JDWP y las API de depuración, incluso para aplicaciones iOS construidas utilizando Objective C y Swift, y requiere menos mantenimiento cuando un nuevo lanzamiento del sistema modifica 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.