Utiliser l'IDE : Recherche et Analyse
L'objectif de l'IDE est de faciliter l'évaluation manuelle et d'offrir la possibilité d'écrire des contrôles personnalisés en plus de toutes les analyses effectuées par Ostorlab, de l'analyse de teinte (taint analysis), des traces d'appels dynamiques, du trafic intercepté et des requêtes API scannées.
Accéder à l'IDE
Pour accéder à l'IDE, allez sur la page de votre scan et cliquez sur « analysis ».

Navigation
Les sections de l'IDE sont listées sur la gauche :

- Files : APK et IPA sont les formats de fichiers de package pour les applications mobiles Android et iOS, respectivement. Ces fichiers contiennent toutes les ressources et le code nécessaires pour installer et exécuter l'application sur un appareil mobile. L'option « Files » peut vous aider à inspecter le contenu du fichier APK ou IPA. Vous verrez une liste de fichiers et de répertoires qui composent l'application. Ces fichiers peuvent inclure le code de l'application, des ressources telles que des images et des sons, des fichiers de configuration et d'autres actifs utilisés par l'application.
- HTTP Folders : L'ensemble du trafic réseau collecté, trié et organisé par endpoint.
- Static : La navigation de l'analyse statique est conçue pour aider les ingénieurs à identifier les problèmes potentiels dans leur code. Cela peut impliquer la lecture du code, l'examen des types de variables et des fonctions, et la recherche d'erreurs de codage courantes telles que les déréférencements de pointeurs nuls, les fuites de mémoire ou les dépassements de tampon.
- Dynamic : La section dynamique montre les traces d'appels de l'application collectées pendant l'analyse dynamique. L'analyse dynamique prend en charge Java, C, Flutter et Swift.
- Call Coverage : Call Coverage (Couverture d'appels) est le flux d'interface utilisateur (UI flow) de l'application mobile qui vous montre la séquence des écrans ou des pages par lesquels les robots Ostorlab passent lors de l'utilisation de l'application. Il simule la façon dont l'utilisateur interagit avec l'interface utilisateur de l'application pour atteindre ses objectifs. Un flux d'interface utilisateur typique pour une application mobile peut inclure les étapes suivantes : page de destination, navigation, pages de contenu, authentification, boîtes de dialogue et modals.
- Traffic : L'ensemble du trafic réseau collecté listé sous forme de requêtes.
- API : L'API est le trafic réseau généré par l'application lorsque les robots Ostorlab interagissent avec l'application. Cela peut vous aider à vérifier les messages de requête/réponse HTTP qui incluent les payloads JSON, les méthodes HTTP, la version du protocole HTTP, le statut et l'URI de la ressource demandée.
- Search : Vous pouvez utiliser la section search pour rechercher un mot-clé spécifique dans tous les fichiers de l'application.
- Logs : Dans la section « Logs », vous pouvez consulter les journaux de l'appareil générés pendant le processus de scan dynamique.
- Pcap : Tous les fichiers
Pcapenregistrés listés pour le téléchargement. - Agent Logs : Tous les journaux des agents pendant le scan, avec des filtres par gravité, clé d'agent et recherche (spécifique aux agents personnalisés).
- Vulnerabilities : L'option Vulnerabilities vous redirige vers la liste des vulnérabilités détectées par l'analyse statique et dynamique.
Fichiers
Cette section vous permet d'inspecter le contenu des fichiers APK et IPA :
Vous verrez une liste de fichiers et de répertoires qui composent l'application. Ces fichiers peuvent inclure le code de l'application, des ressources telles que des images et des sons, des fichiers de configuration et d'autres actifs utilisés par l'application.

L'IDE prend en charge :
- la coloration syntaxique pour la plupart des langages de programmation :

- l'extraction de Plist binaires :

Dossiers HTTP
La section HTTP Folders liste l'ensemble du trafic réseau collecté et organisé par endpoint :

Statique
La section d'analyse statique est conçue pour aider les ingénieurs à identifier les problèmes potentiels dans leur code. Cela peut impliquer la lecture du code, l'examen des types de variables et des fonctions, et la recherche d'erreurs de codage courantes telles que les déréférencements de pointeurs nuls, les fuites de mémoire ou les dépassements de tampon.
- Génération contextuelle de traces d'appels

Vous pouvez utiliser la recherche pour rechercher une seule ou plusieurs méthodes.

Vous pouvez utiliser l'onglet filtre pour lister toutes les méthodes dans un tableau, puis sélectionner une ou plusieurs méthodes pour mettre en évidence leurs connexions dans la carte.
La fonction de recherche dans l'analyse statique prend en charge plusieurs mots-clés qui peuvent être enchaînés. Par exemple, pour rechercher toutes les méthodes contenant le mot « mem ». Vous pouvez taper search deux-points mem.
La liste des mots-clés pris en charge est :
search: recherche arbitraire dans tous les attributs de la méthode ou de la fonction.path: chemin avec le fichier APK ou IPA.package: nom du package si applicable.class: nom de la classe si applicable.method: nom de la méthode.function: nom de la fonction.signature: signature de la méthode ou de la fonction.sink: catégorie de sink (puits), prend en charge*comme joker.source: catégorie de source, prend en charge*comme joker.privacySource: catégorie de source de confidentialité, prend en charge*comme joker.input: catégorie d'entrée, prend en charge*comme joker.sanitizer: catégorie d'assainisseur (sanitizer), prend en charge*comme joker.persistRead: catégorie de lecture persistante, prend en charge*comme joker.persistWrite: catégorie d'écriture persistante, prend en charge*comme joker.deprecated: la fonction ou la méthode est obsolète dans la dernière API.
Le taggage des fonctions aide à identifier les points sensibles en matière de sécurité. Un cas d'utilisation simple consiste à trouver toutes les méthodes pouvant entraîner une injection SQL, à utiliser la fonction de trace d'appels pour voir où la méthode est utilisée et si un attaquant contrôle potentiellement l'entrée :
Le taggage fait la différence entre :
- Sink : plus d'une douzaine de catégories de sinks. Les sinks sont des fonctions ou des méthodes qui peuvent conduire à des vulnérabilités, comme execSQL qui peut conduire à une injection SQL si l'utilisateur contrôle l'entrée.
- Source : Les fonctions et méthodes source renvoient des entrées non fiables qui pourraient provenir du réseau, de l'IPC, du système de fichiers (stockage externe)...
- Privacy Source : Les fonctions et méthodes de source de confidentialité (privacy source) renvoient des entrées sensibles, comme la localisation de l'utilisateur, les SMS, les points d'accès Wi-Fi, qui peuvent affecter la confidentialité de l'utilisateur.
- Input : Les méthodes d'entrée (input) sont généralement des méthodes surchargeables qui servent de callbacks et dont les paramètres ne sont pas fiables et peuvent être manipulés par un attaquant. Un exemple typique concerne les méthodes query, update, insert, delete, etc., des content providers.
- Sanitizer : Les fonctions et méthodes sanitizer (assainisseurs) sont utilisées pour nettoyer les entrées non fiables pour une utilisation particulière de l'API.
- Persist Read and Write : Persist read et write sont utiles pour trouver des vulnérabilités d'injection de second ordre. Les opérations de lecture et d'écriture sont séparées.
- Deprecated : fonctions et méthodes simplement obsolètes.
Dynamique
La section Dynamic Analysis montre les traces d'appels de l'application collectées pendant l'analyse dynamique.
L'analyse dynamique prend en charge Java, C, Flutter et Swift.

Vous pouvez cliquer sur n'importe quelle trace de pile (stack trace) pour voir ses frames.
Vous pouvez filtrer les traces d'appels par : nom de classe, fonction, package, chemin, valeur et type.

Couverture des appels
La section Call Coverage (Couverture d'appels) montre le flux d'interface utilisateur (UI flow) de l'application mobile qui vous montre la séquence des écrans ou des pages par lesquels les robots Ostorlab passent lors de l'utilisation de l'application.
Il simule la façon dont l'utilisateur interagit avec l'interface utilisateur de l'application pour atteindre ses objectifs.
Un flux d'interface utilisateur typique pour une application mobile peut inclure les étapes suivantes :
page de destination, navigation, pages de contenu, authentification, boîtes de dialogue et modals.

Trafic
La section Traffic liste tout le trafic collecté tout au long du scan dynamique.

API
La section API montre le trafic réseau généré par l'application lorsque les robots Ostorlab interagissent avec l'application.
Cela peut vous aider à vérifier les messages de requête/réponse HTTP qui incluent les payloads JSON, les méthodes HTTP, la version du protocole HTTP, le statut et l'URI de la ressource demandée.

Recherche
Vous pouvez utiliser la section de recherche (search) pour rechercher un mot-clé spécifique dans tous les fichiers de l'application.

Journaux
Dans la section « Logs », vous pouvez consulter les journaux de l'appareil générés pendant le processus de scan dynamique.

Pcap
La section Pcap fournit le trafic réseau collecté sous forme de fichiers pcap à télécharger pour un examen plus approfondi.

Journaux de l'agent
La section des journaux d'agents (agent logs) permet d'accéder aux journaux de tout agent personnalisé que vous auriez pu implémenter.

Vulnérabilités
L'option Vulnerabilities vous redirige vers la liste des vulnérabilités détectées par l'analyse statique et dynamique.
Chaque résultat comporte : le nom, la description, la recommandation, les références, les détails techniques.
