L'intrusion de malwares dans le système d’informations d'une entreprise peut paralyser son activité, causer la fuite d'informations, ou même conduire à la perte de sommes importantes.
Il est donc important de connaître le fonctionnement de ces applications malfaisantes afin de les identifier, les analyser et mettre en place les contremesures nécessaires.
Cette formation d'obtenir une vision panoramique de l'analyse de malware et de pouvoir mettre en pratique ces connaissances en situation réelle.
Plus précisément, dan cette deuxième partie, nous allons pouvoir appréhender l’analyse dynamique de Malwares pour une meilleur compréhension de ces derniers.
Nous verrons aussi comment automatiser toutes nos tâches d’analyse via une Sandbox pour une efficience maximal et, pour terminer, nous allons découvrir l’analyse de Malwares et ses spécifiés sur des systèmes Linux et sous Android avec deux use cases avancés.
3. Une formation
Plan de la formation
Introduction
1. Maîtriser l'analyse dynamique de
Malwares
2. Démystifier la notion d'analyse via
Sandbox
3. Maîtriser l'analyse de Malware Linux
4. Maîtriser l'analyse de Malwares sous
Android
Conclusion
4. Une formation
Connaissances requises
Bonnes connaissances en systèmes
d'exploitation et réseau
Bonnes connaissances en cybersécurité
Optionnel : Connaitre le C, Python et ASM
5.
6. Une formation
Public concerné
Equipes opérationnelles SOC
Equipes de réponse d’incident
Pentesteurs
Auditeurs techniques, Analystes de sécurité
RSSI
Toute personne intéressée par l’analyse de malware
7. AVERTISSEMENT
Le formateur n’est pas responsable de la mauvaise
utilisation du contenu de cette formation
L’utilisation des outils, use cases et des malwares doit
être réalisée uniquement au sein d’un environnement
virtuelle
8. AVERTISSEMENT
Cette Formation a pour but de vous initier à l’analyse
de malware
NE JAMAIS ANALYSER un MALWARE dans un
Environnement de PROD
11. Une formation
Ce qu’on a couvert en 1/2
Les notions de base
Initiation aux techniques utilisées
dans les malwares
L’analyse statique
Approche initiale
Bien maîtriser cette partie est une
nécessité
12. Une formation
Ce qu’on va couvrir
L’analyse dynamique
L’analyse hybride
Reverse engineering
Analyse de Malwares Mobiles
Analyse de Malwares IoT/Embedded
Analyse Malware iOS/MacOSx
15. Une formation
Introduction
Lorsqu'un malware est exécuté, il peut
interagir avec un système de
différentes manières et effectuer
différentes activités.
Par exemple il peut générer un
processus enfant, supprimer des
fichiers, créer des clés de registre…
21. Monitoring système et réseau
Surveillance des processus : implique la surveillance de l'activité du
processus et l'examen des propriétés résultantes lors de l'exécution du
malware
Surveillance du système de fichiers : inclut la surveillance de l'activité du
système de fichiers en temps réel pendant l'exécution du malware
Surveillance du registre : implique la surveillance des clés de registre
accédées / modifiées et des données de registre qui sont lues / écrites par le
malware
Surveillance du réseau : implique la surveillance du trafic vers et depuis le
système pendant l'exécution du malware
25. Une formation
Introduction
Pour comprendre le chargement PE et la création de
processus, nous devons couvrir une terminologie de
base, telle que processus, thread, Thread Environment
Block (TEB), Process Environment Block (PEB), et
autres…
A savoir que l’architecture Windows est beaucoup
plus complexe que celle de Linux
Heureusement pour nous, MSDN est là !
29. Les structures TIB, TEB, et PEB
Bloc d'informations sur les threads (TIB) : contient des informations sur
le thread, y compris la liste des fonctions utilisées pour la gestion des
erreurs et bien plus encore
Bloc d'environnement de thread (TEB) : contient plus d'informations sur
le thread, y compris son ID et bien plus encore
Process Environment Block (PEB) : inclut des informations sur le
processus, telles que le nom du processus, l'ID de processus (PID), les
modules chargés (tous les fichiers PE chargés dans la mémoire, y compris le
programme lui-même et ses DLL), et bien plus encore
L'adresse de TEB est conservée dans le registre de segment FS
31. Processus de chargement étape par
étape
Démarrage du
programme
Création des
structures de données
de processus
Initialiser la
mémoire
virtuelle
Chargement du
fichier PE
32. Chargement du fichier PE étape par
étape
Analyser les
en-têtes
•ImageBase
•NoOfSections
•SizeOfImage
Table de
section
d'analyse
Mappage
du fichier
en
mémoire
Gérer les
bibliothèq
ues tierces
Faire face à la
relocalisation
Lancez
l'exécution
36. Une formation
Plan
Analyser les Dynamic-Link Library
(DLL)
Pourquoi les attaquants utilisent des
DLL ?
Lab : Analyser les DLL
37. Analyser les Dynamic-Link Library (DLL)
Une bibliothèque de liens dynamiques (DLL) est un module qui contient des
fonctions qui peuvent être utilisées par un autre programme (tel qu'un
exécutable ou une DLL)
Un exécutable peut utiliser les fonctions implémentées dans une DLL en
l'important depuis la DLL
Le système d'exploitation Windows contient de nombreuses DLL qui
exportent diverses fonctions appelées interfaces de programmation
d'application (API). Les fonctions contenues dans ces DLL sont utilisées par les
processus pour interagir avec le système de fichiers, le processus, le registre,
le réseau et l'interface utilisateur graphique (GUI)
41. Le débogage de services
Bien que le chargement d'exécutables et de DLL individuels pour le débogage
soit généralement une tâche assez simple, les choses deviennent un peu plus
compliquées lorsque nous parlons du débogage des services Windows.
Les services sont contrôlés par le Gestionnaire de contrôle des services (SCM)
implémenté dans %SystemRoot%System32services.exe.
Tous les services ont la clé de registre HKLMSYSTEMCurrentControlSet
services<nom_du_service> correspondante.
42. Le débogage de services
Il existe plusieurs façons d'attacher des services immédiatement après leur
démarrage :
• Création d'une clé de registre dédiée
• Utilisation de GFlags
• Activation du Child Debugging
• Patcher le EntryPoint
43. Le débogage de services
Le problème commun avec les services de débogage est le délai d'attente.
Par défaut, le service est killé après environ 30 secondes s'il n'a pas signalé
qu'il a été exécuté avec succès, ce qui peut compliquer le processus de
débogage.
Afin d'étendre cet intervalle de temps, il est nécessaire de créer ou de mettre à
jour la valeur DWORD ServicesPipeTimeout dans la clé de registre
HKLM SYSTEMCurrentControlSetControl avec le nouveau délai
d'expiration en millisecondes et redémarrer la machine.
48. Compétences requises pour l’analyse manuelle
DESASSEMBLAGE
DECOMPILATION
ASSEMBLEUR, C/C++, IDA
PRO, HOPPER,
OLLYDBG,ETC.
SYSTEMES
D’EXPLOITATION
FONCTIONNEMENT BAS
NIVEAU, APPELS SYSTÈMES,
GESTION MÉMOIRE,
SYSTÈMESDE FICHIERS,
REGISTRE,APIWINDOWS,ETC.
RESEAU
CONNAISSANCES
DES PROTOCOLES
STANDARDS, FUZZING
DE PROTOCOLES,
CONCEPTS TCP/IP,ETC.
CRYPTOGRAPHIE
CONNAISSANCES DES
ALGOS STANDARDS ET
EXOTIQUES, DE LEURS
IMPLÉMENTATIONS ETC.
PACKERS
OBFUSCATION
DÉTECTION DE
PACKER,
UNPACKING,
DÉSOBFUSCATION,
ETC.
ETC…
(ANTI-
)DEBBUGING,
(ANTI-)FORENSIC,
HONEYPOTTING,
SANDBOXING,
ETC.
49. La notion de Sandbox
Les systèmes automatisés d'analyse de logiciels malveillants (ou bacs à sable
Sandboxes) sont l'une des dernières armes de l'arsenal des fournisseurs de sécurité
Ces systèmes exécutent un programme malveillant inconnu dans un
environnement instrumenté (isolé) et surveillent leur exécution
Bien que les systèmes de sandbox d'analyse de logiciels malveillants soient utilisés
dans le cadre du processus d'analyse manuelle depuis un certain temps, ils sont
de plus en plus utilisés au cœur des processus de détection automatisés
L'avantage de l'approche est clair: « il est possible d'identifier des logiciels
malveillants non détectés (0-days), car l'activité observée dans le bac à sable est
utilisée comme base de détection (IoCs) »
52. Une formation
Plan
Fonctionnement des Sandbox
Architecture des Sandbox
La notion d’analyse automatisée
Flux d’exécution
Produits Sandbox Open Source vs
propriétaires
55. EXÉCUTABLESWINDOWS
FICHIERSDLL
DOCUMENTS PDF
DOCUMENTS MICROSOFT
OFFICE
URLS ET FICHIERS
HTML
SCRIPTS
PHP,VBS
FICHIERS CPL,ZIP,JAR ET
PRESQUE N’IMPORTE
QUOI D’AUTRE…
RAPPORTS SOUS
DIFFÉRENTS FORMATS
TRACES DESAPPELS
WIN32
FICHIERS CRÉÉS,
MODIFIÉS,EFFACÉS,
TÉLÉCHARGÉS
DUMP DU PROCESS ANALYSÉ
TRACES RÉSEAU AU
FORMAT PCAP
CAPTURES D’ÉCRAN
DURANT L’EXÉCUTION
DUMP MÉMOIRE COMPLET
DE LA MACHINE,RÉSULTATS
VIRUSTOTAL,ETC…
ANALYSE
AUTOMATISÉE
La notion d’analyse automatisée
Sandbox
61. Une formation
Introduction à Cuckoo
Cuckoo Sandbox est un système
d'analyse de logiciels malveillants
automatisé avancé, extrêmement
modulaire et 100% open source avec
des possibilités d'application infinies
62. Une formation
Capacités de Cuckoo
Analyser de nombreux fichiers
malveillants différents (exécutables,
documents bureautiques, fichiers pdf,
e-mails, etc.)
Ainsi que des sites Web malveillants
sous des environnements virtualisés
Windows, Linux, macOS et Android
63. Une formation
Avantages de Cuckoo
En raison de la nature open source de
Cuckoo et de sa conception
modulaire étendue, il est possible de
personnaliser n'importe quel aspect de
l'environnement d'analyse, du
traitement des résultats d'analyse et de
la phase de génération de rapports.
64. Une formation
Avantages de Cuckoo
Cuckoo vous fournit toutes les
exigences pour intégrer facilement
la sandbox dans votre framework et
backend existant de la manière que
vous voulez, avec le format que vous
voulez, et tout cela sans conditions de
licence
65. Architecture de Cuckoo
Cuckoo main
server
Cuckoo web
server
Cuckoo web service
(REST)
Internet
Sinkhole / Simu.
Windows
Agent.py
Applications
tierces
Etendre
Cuckoo:
Maltego
El Jefe
Etc...
Utilisateur
VM
Intégrer Cuckoo dans
l’infrastructure:
CuckooMX
El Jefe
SOC
CERT,
CSIRT
Etc...
72. Une formation
Prérequis (Guest)
Software :
Windows 7, UAC désactivé
Logiciels tiers (Office, Adobe reader, navigateurs, etc.)
Désactivation du firewall
Désactivation des mises à jour automatiques
Python 2.7 + PIL for Python
Cuckoo agent.py (agent.pyw)
Paramétrer le réseau
Activer le login automatique
SNAPSHOT!
74. Fichiers de configuration
1. cuckoo.conf : Configuration générale et options d’analyse
2. auxiliary.conf : Configuration des modules auxiliaires (ex: capture réseau)
3. <machinery>.conf : Configuration de la virtualisation
4. memory.conf : Configuration de l’analyse mémoire (Volatility framework)
5. processing.conf : Activation / désactivation des étapes d’analyse
6. reporting.conf : Configuration du reporting
75. La capture réseau
Les fichiers créés /
droppés
Le dump mémoire
Le reporting
Les captures
d’écran
76. Remarques
Un environnement isolé n’est que rarement sûr à 100% :
• Cuckoo Sandbox (Evasion) : http://cuckoosandbox.org/2014-
10-07- cuckoo-sandbox-111.html
• Oracle VirtualBox : CVE-2014-4261, CVE-2014-4228, CVE-2014-
2489,
etc…
• Instructions CPU non virtualisables, offloading (interface réseau)
77. Lors de l’attribution de l’accès internet au malware, attention aux
infections sur le LAN :
• Solution (partielle) : Simulation de services réseau (ex : InetSim)
Un environnement sandboxé et/ou virtualisé peut être détecté par
certains malwares :
• Test : Pafish https://github.com/a0rtega/pafish
• Solution (partielle) : Zer0m0n ou Markedoe + tweak(s)
manuel(s)…
Remarques
90. Une formation
Retweaking de la vm
Désinstallation des VirtualBox guest tools
Nettoyage du registre (références à
VirtualBox)
Nettoyage des fichiers résiduels (références
à VirtualBox)
Modifications des drivers
Then Nouvelle analyse!
106. Une formation
Cuckoo, où et quand?
Peut être utilisé de manière :
Préventive
Réactive
Post-Mortem
Threat Intelligence
107. Une formation
Cuckoo, où et quand?
Peut être utilisé par :
Equipe de sécurité
SOC, intégration INFRA
CERT/CSIRT
Equipe forensique
Prestataires externes
Autres…
109. A retenir
Ne demande pas des connaissances aussi pointues que pour l’analyse manuelle
La qualité de l’analyse dépend fortement de la capacité d’interprétation des résultats
L’environnement Cuckoo + VM peut être détectable par certains malwares
La globalité du code du malware ne sera très probablement pas totalement exécuté
Comporte toujours un risque (débordement du sandboxing, LAN, etc.)…
Très bonne documentation
Communauté très active autour du produit
Automatisable et intégrable au sein d’une architecture
110. Malwr
Version en ligne gratuite de Cuckoo Sandbox
Parfait pour des tests de malwares «communs»
Attention à la confidentialité!!!
Pas de possibilité de récupérer les dumps mémoire et réseau
Cuckoo Android Extension
Support de l’émulateur Android ARM pour exécuter des APK’s et des URL
Aller plus loin…
111. Community.py
Utilitaire pour télécharger et installer les modules développés par la
communauté
El Jefe
Intégration avec l’outil El Jefe (détection, réponse et traçage des menaces)
Aller plus loin…
113. Une formation
Introduction
De nombreux analystes de malware
passent la plupart de leur temps à
analyser des logiciels malveillants 32
bits pour Windows, et même l'idée
d'analyser quelque chose au-delà de
cela peut être intimidante au début
114. Une formation
Introduction
Cependant, comme nous le verrons
dans ce chapitre, les idées derrière les
formats de fichiers et le comportement
des logiciels malveillants ont tellement
de similitudes
115. Une formation
Objectifs
À la fin de ce chapitre, vous saurez comment
commencer à analyser des échantillons non seulement
pour l'architecture x86 mais également pour diverses
plates-formes RISC qui sont largement utilisées dans le
domaine de l’Internet des objets (IoT)
118. Introduction
De nombreuses personnes pensent que l’ELF est le format des fichiers
exécutables uniquement et il est natif du monde Unix depuis le début
La vérité est qu'il a été accepté comme format binaire par défaut pour les
systèmes Unix et Unix il y a seulement environ 20 ans, en 1999
Un autre point intéressant est qu'il est également utilisé dans les
bibliothèques partagées, les vidages de mémoire et les modules objet
En conséquence, les extensions de fichiers courantes pour les fichiers ELF
comprennent .so, .ko, .o, .mod et d'autres
Une des extensions de fichier les plus courantes pour les fichiers ELF est en
fait ... aucune
119. Une formation
Structure ELF
L'un des principaux avantages de l’ELF
qui a contribué à sa popularité est qu'il
est extrêmement flexible et prend en
charge plusieurs tailles d'adresses (32
et 64 bits), ainsi que les endiannesses,
ce qui signifie qu'il peut fonctionner sur
de nombreuses architectures
122. Une formation
Système de fichiers
Ces appels système fournissent toutes les
fonctionnalités nécessaires pour interagir avec le FS :
• open/openat/create : Ouvrir et éventuellement créer
un fichier
• read/readv/preadv : Récupère les données du
descripteur de fichier
• write/writev/pwritev : Placer les données dans le
descripteur de fichier
• ….
123. Une formation
Le Réseau
Les appels système liés au réseau sont
construits autour de sockets :
• Socket : Créer un socket
• Bind : Lier une adresse au socket, par exemple,
un port pour écouter
• Listen : Écouter les connexions sur une prise
particulière
• Accept : Accepter une connexion à distance
124. Une formation
La gestion des processus
Ces appels système peuvent être utilisés par
des logiciels malveillants pour créer de
nouveaux processus ou rechercher des
processus existants :
• fork/vfork : Créer un processus enfant, par exemple,
une copie de lui-même
• execve/execveat : Exécuter un programme spécifié,
par exemple, un autre module
• Prctl : Permet diverses opérations sur le processus, par
exemple, un changement de nom
127. Une formation
Introduction
Les analystes disposent de plusieurs outils
qui peuvent faciliter l'analyse statique et
dynamique des logiciels malveillants Linux
Dans cette section, nous couvrirons les
solutions les plus populaires et fournirons
des directives de base sur la façon de
commencer à les utiliser
134. Une formation
La mine d’or
Evolution incroyable de l’industrie mobile
Prend la place des ordinateurs
Mine d’or
Données confidentielles
Photos
Contact
138. Une formation
Mobile Security Framework (MobSF)
Framework de pentesting
Android, iOS et Windows Mobile
Analyse statique et dynamique
Analyse de malware
MobFS
142. Une formation
Bilan
Maîtriser l'analyse dynamique de
Malwares
Démystifier la notion d'analyse
hybride et via Sandbox
Maîtriser l'analyse de Malware IoT et
Linux
Maîtriser l'analyse de Malwares sous
Android