Introduction aux méthodologies d'analyse de logiciels malveillants JSSI 2014 Florian Guilbert 17/11/2014 1
Présentation Florian GUILBERT Analyste CERT & SOC Florian.Guilbert@intrinsec.com @flgy @Intrinsec_Secu SOC : Centre opérationnel de sécurité Prévention et détection d incidents CERT : Réponse sur incidents Intrinsec recrute 17/11/2014 2
Introduction De septembre à décembre 2013, le malware CryptoLocker a fait gagner environ $30 000 000 à ses auteurs 17/11/2014 3
Différentes catégories Différents objectifs Extorsion d argent : Cryptolocker, Cryptowall, Vol d information bancaire : Zeus, Carberp, Espionnage : DarkHotel, El Machete, Sabotage : Stuxnet Autres actions malveillantes nécessitant la mise en place de réseaux de machines infectées (Botnets) : Click fraud Minage de BitCoin Déni de service Envoi de spam 17/11/2014 4
Différentes catégories Différentes façons de procéder / techniques Ransomware : chiffrement des fichiers utilisateurs Bankers : Ajout de code malveillant dans les navigateurs Lecture de la mémoire à la recherche de numéro de cartes Espions : vol d information quelque que soit sa forme Différentes formes : Exécutables : PE (Windows), ELF (Linux) Documents : PDF, Word, Excel, Powerpoint Web : Flash, JavaScript, VBScript 17/11/2014 5
Fonctionnement similaire Phase de déploiement / d infection Campagne de Phishing Pièces-jointe et liens piégés Spear-Phishing / Social Engineering Ciblant spécifiquement un ou plusieurs employés Intrusion physique / Clef USB dans le parking Employé malveillant Via d autres logiciels malveillants Phase «métier» 17/11/2014 6
Fonctionnement similaire Communication ou exfiltration vers l extérieur Vers un serveur contrôlé par les attaquants (C&C) Centralisée (en direct) Décentralisée (Peer-To-Peer) Vers les attaquants via des moyens détournés Webmail Pastebin Twitter Machine de l attaquant Nœud attaquant Noeuds Bots C&C Feuilles 17/11/2014 7
Méthodologies d analyses Étude des composants statiques Structure du fichier Contenu du fichier (chaine de caractères, etc.) Étude comportementale Lancement du logiciel malveillant dans un environnement restreint et maitrisé («Lab», Sandbox) Analyse du code Statiquement (désobfuscation, désassembleur, etc.) Dynamiquement, dans un debugger 17/11/2014 8
Sans analyse de code 17/11/2014 9
Analyse statique Recherche de chaine de caractères 17/11/2014 10
Analyse statique Recherche de chaine de caractères 81.95.152.178 sysinfo.php download.php execute.php icmp_flood http_flood 17/11/2014 11
Analyse statique Recherche de chaine de caractères Même si ce n est pas apparent Peut permettre d identifier les logiciels malveillants obfusqués (packés) 17/11/2014 12
Analyse statique Fonctions importées Utilisation de fonctions sensibles Énumération de processus : CreateToolHelp32Snapshot Process32Next Exécution de fichiers WinExec Manipulation de processus ReadProcessMemory 17/11/2014 13
Analyse statique Fonctions importées Utilisation de fonctions sensibles Date de compilation et informations du fabricant 17/11/2014 14
Analyse statique Fonctions importées Utilisation de fonctions sensibles Date de compilation et informations du fabricant Comparaison d empreintes 17/11/2014 15
Analyse comportementale Lab Utilisation de systèmes «réversibles» machines physiques avec systèmes de réinstallation machines virtuelles avec système de snapshots Reposant sur un réseau isolé Pour ne pas infecter tout le réseau Utilisation d outils de surveillance dans le lab : réseau : wireshark, «faux» DNS système : regshot, capturebat, process monitor processus : process explorer, api monitor 17/11/2014 16
Analyse comportementale - cas pratique Malware trouvé sur un Honeypot document.pdf.exe (exécutable Windows) Pas de contexte particulier L analyse des propriétés statiques ne donne aucun indice pertinent 17/11/2014 17
Analyse comportementale - cas pratique 17/11/2014 18
Analyse comportementale - cas pratique Le malware effectue une requête HTTP 17/11/2014 19
Analyse comportementale - cas pratique Création de deux fichiers 17/11/2014 20
Analyse comportementale - cas pratique Malheureusement le fichier de configuration est chiffré 17/11/2014 21
Analyse comportementale - cas pratique On peut intercepter les appels à la fonction CryptDecrypt 17/11/2014 22
Analyse comportementale - cas pratique Fichier de configuration déchiffré : 17/11/2014 23
Analyse comportementale - cas pratique Fichier de configuration déchiffré : Utilisation de le clef «2A» pour déchiffrer la requête HTTP : 17/11/2014 24
Analyse comportementale - cas pratique Résumé : Persistance via une copie du malware dans le dossier «startup» wsus_update.exe Utilise un fichier de configuration dans le répertoire «Temp» Tente de dialoguer avec «jssi.insa-rouen.fr» avec l user-agent «WSUS update» Envoi des informations et reçoit des commandes Prochaines étapes : Mettre en place un serveur HTTP pour envoyer des commandes Analyser le code du malware Analyser la mémoire du système post-infection 17/11/2014 25
Capitalisation des IOC IOC : indicateurs de compromission Ensemble d éléments permettant de catégoriser et classifier un logiciel malveillant 17/11/2014 26
Capitalisation des IOC Permet aux équipes de sécurité de désinfecter un parc informatique Partage des IOC auprès de la communauté Création de règle IDS / Pare-feu Cependant : Attention au contexte! 17/11/2014 27
Conclusion Méthode «rapide» pour évaluer la dangerosité d un malware Méthode non exhaustive et non fiable à 100% On ne peut/doit pas faire confiance aux malware! On est généralement obligé d en venir à une analyse du code pour confirmer le comportement du malware Si celui-ci fonctionne dans un cas précis ou sur une architecture précise 17/11/2014 28
Conclusion Merci pour votre attention Questions? 17/11/2014 29