Analyzing binary programs and obfuscation with graph-based representations and machine learning
Analyse de programmes binaires et d'obfuscation par des représentations de graphes et apprentissage automatique
Résumé
Protecting sensitive program content is a critical concern in both legitimate and malicious contexts, with obfuscation being one of the most widely used techniques. By transforming the binary code of compiled programs, obfuscation hinders and delays reverse engineering, forcing attackers to follow specific analytical steps to bypass such protections. This thesispresents several contributions, all grounded in advanced graph representation learning, covering different stages of the obfuscation analysis process. First, we address obfuscation detection and characterization as binary and multi-class classification problems, comparing graph formats, baseline and advanced deep learning models, and enriched feature sets, while assessing the impact of data distribution and compiler optimizations. Our results show that advanced Graph Neural Networks models outperform baselines when provided with features capturing fine-grained code semantics, though performance remains sensitive to optimization levels and dataset partitioning. Second, we conduct an extensive study of binary diffing and similarity, from the standard unobfuscated case, through an ablation study of QBinDiff and a comparison of existing tools, to obfuscated scenarios where attackers aim to extract knowledge from an obfuscated program, without full deobfuscation. Results highlight QBinDiff's advantages for fine-grained diffing and reveal that most intra-procedural and data-flow obfuscations offer limited protection compared to the stronger, yet rarely used, inter-procedural obfuscations. Finally, we explore direct deobfuscation by integrating reinforcement learning and graph representation learning. We model the task as a white-box symbolic compression problem, representing obfuscated functions in a novelgraph format, combining data and control flow, and simplifying them iteratively through graph edit operations guided by a Graph Neural Networks-based agent. Preliminary results on Mixed Boolean Arithmetic obfuscation demonstrate partial but promising success, opening avenues for further research.
La protection du contenu sensible d'un programme constitue un enjeu majeur, tant dans des contextes légitimes que malveillants, l'obfuscation étant l'une des techniques les plus couramment employées à cette fin. En transformant le code binaire de programmes compilés, l'obfuscation complique et retarde les opérations de rétro-ingénierie, contraignant ainsi les attaquants à suivre une série d'étapes analytiques spécifiques pour contourner ces protections. Cette thèse présente plusieurs contributions, toutes fondées sur des méthodes avancées d'apprentissage de représentations de graphes, et couvrant différentes étapes du processus d'analyse d'obfuscation. Dans un premier temps, nous abordons la détection et la caractérisation de l'obfuscation sous forme de problèmes de classification binaire et multi-classes, en comparant divers formats de graphes, des modèles d'apprentissage de référence, ainsi que des ensembles de caractéristiques, tout en évaluant l'impact de la distribution des données et des optimisations du compilateur. Nos résultats montrent que les modèles avancés de réseaux de neurones de graphes surpassent les approches de référence lorsqu'ils sont alimentés par des caractéristiques capturant finement la sémantique du code binaire, bien que leurs performances demeurent sensibles au niveau d'optimisation et aux stratégies de partitionnement des données. Dans un second temps, nous menons une étude approfondie du diffing binaire et des techniques de similarité, en partant d'un contexte standard etnon obfusqué, au travers d'une analyse d'ablation de QBinDiff et d'une comparaison approfondie des techniques existantes, jusqu'à des scénarios obfusqués, dans lesquels un attaquant cherche à extraire des informations du programme protégé, sans procéder à une désobfuscation complète. Les résultats mettent en évidence les avantages de QBinDiff qui permet un diffing plus fin et montrent que la plupart des obfuscations intra-procédurales et de données offrent une protection limitée, contrairement aux obfuscations inter-procédurales, plus robustes mais rarement mises en œuvre dans les outils open source. Enfin, nous explorons la désobfuscation directe, en combinant l'apprentissage par renforcement et l'apprentissage de représentations de graphes. Nous modélisons cette tâche comme un problème de compression symbolique, où une fonction obfusquée est représentée dans un format de graphe innovant, combinant les flôts de contrôle et de data, puis simplifiée de manière itérative via des opérations d'édition de graphe, guidées par un agent basé surdes réseaux de neurones de graphes. Les premiers résultats obtenus sur les expressions mixtes arithmético-booléennes montrent un succès partiel mais prometteur, ouvrant des perspectives intéressantes pour de futurs travaux.
| Origine | Version validée par le jury (STAR) |
|---|---|
| Licence |
