Mariana Trench, l'analyseur de code statique open source de Facebook

Facebook dévoilé il y a quelques jours, il a sorti l'analyseur statique open source, Mariana Trench, qui est destiné à identifier les vulnérabilités dans les applications Android et les programmes Java.

Dans le la possibilité d'analyser des projets sans codes sources est fournie, pour lequel seul le bytecode de la machine virtuelle Dalvik est disponible. Un autre avantage est la très grande vitesse d'exécution (l'analyse de plusieurs millions de lignes de code prend environ 10 secondes), qui permet d'utiliser Mariana Trench pour vérifier toutes les modifications proposées au fur et à mesure de leur introduction.

L'analyseur a été développé dans le cadre d'un projet d'automatisation du processus de revue de code source d'applications mobiles de Facebook, Instagram et Whatsapp.

Nous partageons des informations sur Mariana Trench (MT), un outil que nous utilisons pour détecter et prévenir les erreurs de sécurité et de confidentialité dans les applications Android et Java. Dans le cadre de nos efforts pour aider à faire évoluer la sécurité grâce à l'automatisation des bâtiments, nous avons récemment ouvert MT pour soutenir les ingénieurs en sécurité sur Facebook et dans l'ensemble du secteur.

Cet article est le troisième de notre série de plongées approfondies dans les outils d'analyse statiques et dynamiques auxquels nous avons confiance. MT est le dernier système, après Zoncolan et Pysa, conçu respectivement pour le code Hack et Python.

Au premier semestre 2021, la moitié de toutes les vulnérabilités des applications mobiles Facebook ont ​​été identifiées à l'aide d'outils d'analyse automatisés. Le code de Mariana Trench est étroitement lié à d'autres projets Facebook, par exemple, l'opération d'optimisation de bytecode Redex est utilisée pour analyser le bytecode et la bibliothèque SPARTA est utilisée pour l'interprétation visuelle et l'étude des résultats d'analyse statique.

Les vulnérabilités potentielles et les problèmes de sécurité sont identifiés en analysant les flux de données lors de l'exécution de l'application, qui permet d'identifier les situations dans lequel les données externes brutes sont traitées dans des constructions dangereuses, telles que des requêtes SQL, des opérations de fichier et des appels qui conduisent au lancement de programmes externes.

La TA est conçue pour pouvoir analyser de grandes bases de codes mobiles et signaler les problèmes potentiels dans les demandes d'extraction avant qu'elles ne soient mises en production. Il a été créé à la suite d'une étroite collaboration entre la sécurité de Facebook et les ingénieurs logiciels, qui forment la TA à examiner le code et à analyser la façon dont les données le traversent. L'analyse des flux de données est utile car de nombreux problèmes de sécurité et de confidentialité peuvent être modélisés comme des données circulant là où elles ne devraient pas.

Le travail de l'analyseur se réduit à déterminer les sources de données et les appels dangereux, où les données d'origine ne doivent pas être utilisées : l'analyseur surveille le passage des données à travers la chaîne d'appels de fonction et connecte les données initiales avec des endroits potentiellement dangereux dans le code.

Étant donné qu'en MT, un flux de données peut être décrit par :

  • Source : un point d'origine. Il peut s'agir d'une chaîne contrôlée par l'utilisateur entrant dans l'application via `Intent.getData`.
  • Évier : une destination. Sur Android, cela peut être un appel à `Log.w` ou `Runtime.exec`. Par exemple, les données d'un appel à Intent.getData sont considérées comme une source à surveiller, et les appels à Log.w et Runtime.exec sont considérés comme des utilisations dangereuses.

Une grande base de code peut contenir de nombreux types différents de sources et de récepteurs correspondants. Nous pouvons dire à MT de nous montrer des flux spécifiques en définissant des règles.

Une règle pourrait spécifier, par exemple, que nous voulons trouver des redirections d'intention (problèmes qui permettent aux attaquants d'intercepter des données sensibles) en définissant une règle qui nous montre toutes les traces des sources "contrôlées par l'utilisateur" vers un puits de "redirections d'intentions".

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier le détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.