Aller au contenu

Détection

Les capacités de scan d'Ostorlab utilisent l'analyse statique pour une couverture élevée de la surface d'attaque et l'analyse dynamique pour des rapports sans faux positifs. 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 toutes les dépendances de l'application de tous les frameworks pris en charge, tels que les applications Android natives, les Cocoapods iOS, les plugins Cordova, 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.

La base de données des vulnérabilités est accessible via le menu VulnDB et peut être utilisée pour rechercher des entrées par date, nom et version.

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 Teinte (Taint Analysis)

La technologie statique de base d'Ostorlab est son moteur de taint analysis, qui calcule comment les données souillées (taints) se propagent sur plusieurs chemins d'exécution possibles. Le moteur de taint analysis statique d'Ostorlab prend en compte les informations orientées objet et les informations de typage pour fournir des informations de taint rapides, efficaces et quasiment exemptes de faux positifs. Des dizaines de règles utilisent ensuite les 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.

architecture

Analyse Dynamique

Ostorlab exécute les applications mobiles dans une sandbox instrumentée pour suivre toutes 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 peut accéder au trafic chiffré et ne nécessite pas de contourner le SSL pinning. 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.

Cette approche, comparée aux méthodes invasives comme l'inline hooking qui nécessitent une manipulation personnalisée de la mémoire, est très robuste, offre davantage de capacités pour collecter des informations d'exécution (particulièrement pour les applications iOS développées en Objective C et Swift), et ne nécessite pas de maintenance constante à chaque nouvelle version du système qui pourrait apporter des modifications à l'environnement d'exécution sous-jacent du système.

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, tout en offrant des rapports garantis sans faux positifs.