DAST (analyse dynamique) : comment ça fonctionne ?
analyse dynamique
Ostorlab utilise l'analyse dynamique pour évaluer les applications mobiles et confirmer les vulnérabilités à l'exécution, ce qui réduit fortement les faux positifs.
L'analyse dynamique consiste à exécuter l'application sur un véritable appareil Android ou iOS, à surveiller les interactions de l'application avec les différents composants du système d'exploitation et à détecter les comportements non sécurisés ou potentiellement dangereux.
Les appareils utilisés pour l'analyse dynamique sont de vrais téléphones et tablettes, équipés de différentes versions de système d'exploitation pour différentes architectures.
Lors de la phase d'installation, les applications iOS (.ipa) sont re-signées et instrumentées avant l'installation, tandis que les applications Android sont installées telles quelles, sans aucune modification.
Une fois l'application installée, le moteur d'instrumentation s'y accroche et commence à intercepter une multitude d'appels d'API afin de détecter les comportements vulnérables, notamment les API de cryptographie, le keychain, le réseau, le système de fichiers, SQL, etc.
Un fuzzer d'interface monkey émule des actions aléatoires et cherche à augmenter la couverture de l'application. En parallèle, une autre instance est installée sur un appareil distinct, où un opérateur humain émule des actions complexes qui nécessitent plusieurs étapes ou l'interaction avec des systèmes tiers, comme la validation d'une inscription par e-mail ou la saisie d'un code de validation reçu par SMS. L'objectif est d'augmenter la couverture du code de l'application.
Pendant l'étape d'analyse, les appels au système de fichiers, au réseau et aux API sont collectés, vérifiés de manière passive pour détecter des vulnérabilités, comme l'utilisation d'un schéma de chiffrement faible, puis transmis à d'autres systèmes pour effectuer des tests actifs.

Pendant les tests actifs, tous les points d'entrée des applications sont collectés et fuzzés, notamment les content providers, les broadcast receivers, les gestionnaires d'URI, etc.
Les systèmes backend sont également collectés lors de cette étape et analysés à la recherche de vulnérabilités, notamment l'injection SQL, l'injection de commandes, le XSS, etc.
Une partie des éléments collectés est exportée dans les résultats du scan sous forme d'artefacts, comme le journal réseau et les captures d'écran.

À l'origine, Ostorlab utilisait des appareils jailbreakés et rootés pour réaliser tous ses tests dynamiques. Cela s'est avéré inutile et, dans certains cas, problématique. L'utilisation de moteurs d'instrumentation robustes et rapides permet de collecter toutes les informations nécessaires, mais impose de prendre en charge le hooking des API natives de niveau C, ainsi que des API propres à chaque plateforme, comme JavaScript dans le cas de Cordova et CLI dans le cas de Xamarin.