Symposium sur la sécurité des technologies de l'information et des communications

Conférence francophone sur le thème de la sécurité de l'information.
Elle a eu lieu à Rennes du 2 au 4 juin 2021.

BOA : analyse du flot de données pour la construction du graphe de flot de contrôle des codes obfusquésSylvain Cecchetto


Date : 03 June 2021 à 11:00 — 15 min.

L'augmentation des cyberattaques dans le monde fait de l'analyse des codes malveillants un domaine de recherche prioritaire. Ces logiciels utilisent diverses méthodes de protection, encore appelées obfuscations, visant à contourner les antivirus et à ralentir le travail d'analyse. Dans ce contexte, la plate-forme d'analyse de binaires BOA (Basic bOck Analysis) apporte une solution à la construction du Graphe de Flot de Contrôle (GFC) d'un code binaire obfusqué. Cette plateforme effectue une analyse statique d'un code binaire protégé. Pour cela, nous avons défini une sémantique s'appuyant sur l'outil BINSEC à laquelle nous avons ajouté des continuations. Ces dernières permettent d'une part de contrôler les auto-modifications, et d'autre part de simuler le système d'exploitation pour traiter les appels et interruptions système. L'analyse statique est faite en exécutant symboliquement le code binaire et en calculant les valeurs des états du système à l'aide de solveur SMT. Ainsi, nous effectuons une analyse du flot de données afin de construire le GFC en calculant les adresses de transfert. Enfin, la gestion des boucles est réalisée en transformant un GFC en un automate à pile. BOA est capable de calculer les adresses des sauts dynamiques, de détecter les prédicats opaques, de calculer les adresses de retour sur une pile même si elles ont été falsifiées, de gérer les falsifications des gestionnaires d’interruption, reconstruire à la volée les tables d'importation, et pour finir, de gérer les auto-modifications. Nous avons validé la correction de BOA en utilisant l'obfuscateur de code Tigress. Ensuite, nous avons testé BOA sur 35 packers connus et nous avons montré que dans 30 cas, BOA était capable de reconstruire complètement ou partiellement le binaire initialement masqué. Pour finir, nous avons détecté les prédicats opaques protégeant XTunnel, un malware utilisé lors des élections américaines de 2016, et nous avons partiellement dépacké un échantillon du cheval de Troie Emotet, qui, le 14/10/2020 n'était détecté que par 7 antivirus sur les 63 que propose VirusTotal. Ce travail contribue au développement des outils d’analyse statique des codes malveillants. Contrairement aux analyses dynamiques, cette solution permet une analyse sans exécution du binaire, ce qui offre un double avantage : d’une part une approche statique est plus facile à déployer, et d’autre part le code malveillant n’étant pas exécuté, il ne peut pas prévenir son auteur.

Mots clés : Logiciel malveillant, Obfuscation, Flot de données, Exécution symbolique, Graphe de flot de contrôle.