Séminaire de recherche

Identifier et surveiller les campagnes d’hameçonnage par l’analyse et la ‘dé-obfuscation’ de codes malveillants

Un séminaire du professeur Ettore Merlo, présenté par l’IMC2

Résumé:

L’hameçonnage est un problème d’actualité en constante croissance. Les attaquants («phishers») déploient généralement du code source sur un site Web hôte pour inciter un utilisateur à fournir certaines informations personnelles intéressantes pour les attaquants (identité, numéro de carte de crédit, etc.).

Dans cet exposé, nous présentons les techniques et les résultats expérimentaux obtenus à partir de l’analyse du code source appartenant à des trousses d’hameçonnage collectées lors d’attaques. Les résultats montrent que jusqu’à 90% des trousses analysées partagent 90% ou plus de leur code avec au moins une autre trousse de la base de données. Une généalogie plausible de l’évolution des trousses d’hameçonnage peut être obtenue en se basant sur la similarité de code source.

L’obfuscation et la génération de code dynamique sont souvent utilisés par les auteurs de codes malveillants pour tenter d’échapper à la détection. Dans cet exposé, nous présentons aussi des méthodes pour analyser les structures et les mécanismes d’obfuscation afin d’identifier et révéler le code maveillant caché.

Nous présentons aussi les résultats expérimentaux de réduction du risque basé sur l’analyse temporelle de la similarité entre trousses d’hameçonnage. Cette analyse temporelle peut réduire l’exposition aux risques liés à de nouveaux schémas d’hameçonnage et peut également identifier et surveiller l’évolution des campagnes d’hameçonnage.

Description détaillée:

Dans cet exposé, nous présentons les techniques et les résultats expérimentaux obtenus à partir de l’analyse du code source appartenant à des trousses d’hameçonnage qui ont été collectées lors d’attaques et récupérées par les équipes d’analyse forensique. Les trousses d’hameçonnage constituent d’ensembles de fichiers prêts à être déployés et peuvent être simplement copiés sur un serveur Web et utilisés presque tels quels.

Les résultats expérimentaux rapportés montrent que jusqu’à 90% des trousses analysées partagent 90% ou plus de leur code source avec au moins une autre trousse de la base de données. Dans 90% des cas, les différences sont de faibles longueurs et inférieures à environ 1000 mots de programmation, tels que des identificateurs, des constantes, des chaînes de caractères ou d’autres valeurs.

Une généalogie plausible des modifications et de l’évolution des trousses d’hameçonnage peut être obtenue en identifiant et en reliant ensemble les trousses présentant le plus haut degré de similitude. Les généalogies plausibles reconstituées de trousses d’hameçonnage montrent que les trousses sont souvent des copies identiques ou presque identiques avec des modifications à faible coût.

L’obfuscation et la génération de code dynamique sont souvent utilisés par les auteurs de codes malveillants pour tenter d’échapper à la détection. Au moment de l’exécution, le code source est décodé afin de produire et d’exécuter le code malveillant caché. Dans cet exposé, nous présentons également une méthode d’analyse du code malveillant en présence d’obfuscation et d’exécution dynamique de code.

Lorsque la création dynamique de code est présente, l’analyse du code devient excessivement difficile à réaliser sans exécuter le code source. Par conséquent, notre méthode utilise l’analyse statique et l’interprétation dynamique du code pour décoder les fragments obfusqués et révéler leur programmation cachée. Nous avons identifié plusieurs méthodes d’obfuscation qui sont une indication de malveillance et peuvent donc nous aider à détecter les codes sources malveillants.

Les techniques d’obfuscation peuvent être très complexes. Cependant, les efforts investis par les attaquants dans l’obfuscation et les structures qu’ils ont conçues et réutilisées au cours des attaques peuvent servir en elles-mêmes de signatures distinctives du concepteur d’une attaque.

Dans cet exposé, nous présentons aussi une méthode pour analyser les structures et les mécanismes d’obfuscation afin d’identifier les signatures distinctives des concepteurs de logiciels malveillants.

Des expériences ont été réalisées sur deux vastes ensembles de données comprenant plus de 30000 trousses d’hameçonnage, écrites en PHP, JavaScript et HTML, totalisant plusieurs centaines de millions de lignes de code (MLOC). Dans les de données expérimentales, nous avons identifié environ 18000 instances de code généré dynamiquement, donnant lieu à 569 signatures uniques d’obfuscation.

Un avantage remarquable de notre méthode par rapport aux approches courantes est qu’elle peut extraire une signature partielle utile, même si le processus de désobfuscation reste incomplet. Les autres méthodes s’appuient fortement sur l’extraction du code caché, ce qui les rend inutiles en cas d’échec de la désobfuscation.

Les outils de défense basés sur la similarité des trousses d’hameçonnage peuvent anticiper des nouvelles attaques inconnues et ils sont plus robustes en ce qui concerne les changements et les variations effectués pour tenter d’éviter la détection du code malveillant.

Dans cet exposé, nous présentons aussi les résultats expérimentaux sur la réduction du risque basé sur l’analyse temporelle de la similarité entre trousses d’hameçonnage, ensemble de signatures d’obfuscation et fragments obfusqués.

Cette analyse temporelle basée sur la similarité peut aussi réduire l’exposition aux risques liés à de nouveaux schémas d’hameçonnage et peut également identifier et surveiller l’évolution des campagnes d’hameçonnage, des signatures d’obfuscation et des stratégies de déploiement des fragments obfusqués.