- Sécurité & Confidentialité
- Sécurité
- Détection
Détection
L'analyse statique d'Ostorlab effectue des vérifications de configuration, l'identification des dépendances tierces, la détection des secrets codés en dur et une analyse de taint (taint analysis), et son analyse dynamique exécute l'application dans un sandbox instrumenté pour suivre ses interactions avec le réseau, le système de fichiers, le trousseau (keychain) et les API. Ostorlab cible les backends du système collectés lors de l'analyse dynamique pour identifier les vulnérabilités côté serveur.
Analyse Statique
L'analyse statique d'Ostorlab utilise plusieurs techniques pour identifier les vulnérabilités :
Vérifications de Configuration
Des vérifications de configuration (Configuration Checks) pour les paramètres non sécurisés. Ces paramètres incluent les paramètres natifs d'Android et d'iOS, comme le mode de débogage et de sauvegarde de l'AndroidManifest.xml, ainsi que les paramètres du framework Cordova, comme la liste blanche (whitelist) ou le mode débogage de Cordova.
Pour une liste complète des vérifications, consultez la section de la base de connaissances.
Dépendances Tierces
L'analyse des dépendances tierces (3rd Party Dependencies) identifie les dépendances de l'application dans les frameworks pris en charge, tels qu'Android natif, les CocoaPods iOS, les plugins Cordova et les DLL Xamarin.
L'analyse des dépendances tierces identifie également les dépendances compilées de manière statique et identifie un large ensemble de bibliothèques comme OpenSSL, Zlib, Libjpeg, Libpng, Xerces...
Les empreintes identifiées sont comparées à la base de données des vulnérabilités connues. La base de données contient à la fois des vulnérabilités signalées publiquement et une liste de vulnérabilités non signalées, identifiées en analysant des dépôts de code source publics.
Secrets Codés en Dur
Le moteur statique recherche les secrets codés en dur (Hardcoded Secrets), comme les clés d'API (API Keys) qui ne devraient pas être déployées dans une application mobile, ainsi que les mots de passe, les jetons, les clés de chiffrement et les vecteurs d'initialisation (IV).
Les secrets identifiés sont testés pour validation et impact en vérifiant les permissions, les rôles et les services accessibles.
Analyse de taint (Taint Analysis)
La technologie statique de base d'Ostorlab est son moteur de taint analysis, qui suit la propagation des données souillées (taints) sur plusieurs chemins d'exécution possibles en tenant compte des informations orientées objet et de typage. Des dizaines de règles utilisent ensuite ces informations de taint pour identifier des vulnérabilités, telles que les injections SQL, les injections de commandes ou l'utilisation de clés codées en dur.

Analyse Dynamique
Ostorlab exécute les applications mobiles dans une sandbox instrumentée pour suivre les interactions avec l'environnement externe, comme le réseau, le système de fichiers, le keychain, l'API, etc.
Le moteur d'instrumentation suit les appels aux API standards pour identifier les arguments non sécurisés, tels que les schémas de chiffrement faibles, les appels RPC non sécurisés, le chargement de code à partir de chemins non fiables ou l'exécution de commandes avec des entrées utilisateur.
L'instrumentation d'Ostorlab collecte le trafic réseau de l'application, y compris le trafic chiffré. Le TLS pinning peut toutefois empêcher l'interception du trafic dans certaines applications ; consultez Prérequis pour l'analyse mobile. Le backend collecté est ensuite réutilisé pour effectuer une analyse du backend.
L'instrumentation dynamique utilise à la fois des techniques d'instrumentation du système, comme Fanotify pour l'accès au système de fichiers, et un moteur d'instrumentation d'exécution non invasif personnalisé, utilisant JDWP et les API de débogage pour Android et iOS.
Comparée aux méthodes invasives comme l'inline hooking qui nécessitent une manipulation personnalisée de la mémoire, cette approche collecte les informations d'exécution via JDWP et les API de débogage, y compris pour les applications iOS développées en Objective C et Swift, et nécessite moins de maintenance lorsqu'une nouvelle version du système modifie l'environnement d'exécution sous-jacent.
Backend
Ostorlab cible les backends collectés pendant l'analyse dynamique pour identifier les vulnérabilités côté serveur. L'analyse est à la fois passive, comme la détection de la présence d'en-têtes HTTP non sécurisés, et active, comme la détection des injections SQL ou des vulnérabilités XXE.
Ostorlab utilise un agent de scan Cross-Site Scripting (XSS) avancé avec des tests dynamiques basés sur Chrome et de puissants payloads polyglottes. Le scanner utilise également des méthodes telles que l'intégration de l'instrumentation de l'objet Proxy JavaScript dans le profilage préliminaire des applications web pour simplifier la détection de vecteurs XSS complexes.
Les tests actifs d'Ostorlab utilisent une approche probabiliste pour identifier les vulnérabilités. Cette approche présente l'avantage d'éviter d'avoir à envoyer un payload complet, ce qui pourrait être bloqué, limité à un OS particulier, impacter la stabilité du backend, ou déclencher des systèmes de détection d'intrusion ou des pare-feu d'application.
De plus, Ostorlab automatise la détection des vulnérabilités critiques, de sévérité élevée et activement exploitables provenant de plateformes réputées comme le CISA KEV, Tsunami de Google et le projet innovant Asteroid d'Ostorlab.
Le moteur d'analyse de backend d'Ostorlab prend en charge un large ensemble de schémas de sérialisation et supporte les injections par sérialisation imbriquée.
Les tests probabilistes, couplés à une limitation de débit sûre (rate-limiting), protègent les systèmes backend contre les défaillances inattendues et les dénis de service indésirables.