Analyseur statique open source de Mariana Trench sur Facebook

Facebook a introduit un nouvel analyseur statique open source, Mariana Trench, visant à identifier les vulnérabilités des applications Android et des programmes Java. Il est possible d'analyser des projets sans codes sources, pour lesquels seul le bytecode de la machine virtuelle Dalvik est disponible. Un autre avantage est sa vitesse d'exécution très élevée (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 arrivée. Le code du projet est écrit en C++ et est distribué sous licence MIT.

L'analyseur a été développé dans le cadre d'un projet visant à automatiser le processus de révision des textes sources des applications mobiles pour Facebook, Instagram et Whatsapp. 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'optimiseur de bytecode Redex a été utilisé pour analyser le bytecode, et la bibliothèque SPARTA a été utilisée pour interpréter visuellement et étudier les résultats de l'analyse statique.

Les vulnérabilités potentielles et les problèmes de confidentialité sont identifiés en analysant les flux de données pendant l'exécution de l'application afin d'identifier les situations dans lesquelles des données externes brutes sont traitées dans des constructions dangereuses, telles que des requêtes SQL, des opérations sur des fichiers et des appels qui déclenchent des programmes externes.

Le travail de l'analyseur se résume à identifier les sources de données et les appels dangereux dans lesquels les données source ne doivent pas être utilisées - l'analyseur suit le passage des données à travers la chaîne d'appels de fonction et connecte les données source aux endroits potentiellement dangereux du code. . Par exemple, les données reçues via un appel à Intent.getData sont considérées comme nécessitant un suivi de la source, et les appels à Log.w et Runtime.exec sont considérés comme des utilisations dangereuses.

Analyseur statique open source de Mariana Trench sur Facebook


Source: opennet.ru

Ajouter un commentaire