103/06/2004E. B. Kerberos et la Sécurité Emmanuel Bouillon SSTIC 04.
SSTIC 2004:
description
Transcript of SSTIC 2004:
![Page 1: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/1.jpg)
SSTIC 2004:Détections Heuristiques en environnement Win32
Nicolas Brulez – Silicon Realms
![Page 2: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/2.jpg)
Introduction
![Page 3: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/3.jpg)
Les différents types de virus
• Cryptés
• Oligomorphiques
• Polymorphiques
• Métamorphiques
![Page 4: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/4.jpg)
Le Format PE
• Le MZ Header
• Le PE Header
• Le PE File Header
• Le PE optional Header
• Le Data Directory
• Les Sections Headers
![Page 5: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/5.jpg)
Code Relogeable
Les virus doivent pouvoir être exécutable à n’importe quelle
adresse mémoire. Le principe du code relogeable est un offset de
référence aux données du virus.
Les données se retrouvent toujours à même distance du début du
virus par exemple, ce qui permet au virus, de retrouver ses
données à n’importe quelle adresse de chargement.
Delta Offset.
![Page 6: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/6.jpg)
Présentation de quelques types d'infections Win32
![Page 7: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/7.jpg)
Emplacement du virus
• Dernière section:- Ajout de Section
Avant: Après:
![Page 8: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/8.jpg)
Emplacement du virus
• Dernière section:- Ajout de Section
![Page 9: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/9.jpg)
Emplacement du virus• Dernière section:
- Agrandissement de la dernière section
Avant: Après:
![Page 10: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/10.jpg)
Emplacement du virus• Dernière section:
- Agrandissement de la dernière section
![Page 11: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/11.jpg)
Emplacement du virus
• Infection du Header
![Page 12: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/12.jpg)
Emplacement du virus• « Cavity »
Avant: Après:
![Page 13: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/13.jpg)
Point d'entrée
• Dans la dernière section
![Page 14: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/14.jpg)
Point d'entrée
• Dans la première section
![Page 15: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/15.jpg)
Point d'entrée
• Avant la première section
![Page 16: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/16.jpg)
Infection par modification de e_lfanew
E_lfanew est un pointeur en MZ+3Ch qui contient l’offset du PE Header.
L’infection par modification de e_lfanew consiste à ajouter le virus
directement à la fin du fichier infecté, et à modifier le pointeur vers le
PE Header pour que le loader de windows charge le virus à la place du
binaire original.
Le PE Header se retrouve alors très loin du début du fichier.
![Page 17: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/17.jpg)
Les détections heuristiques Win32
![Page 18: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/18.jpg)
Analyse de la structure PE
Les détections heuristiques sont principalement basées sur l’analyse
de la structure des exécutables PE Windows:
• Point d’Entrée
• Caractéristiques Sections
• Noms de sections
• Valeurs non mises à jours dans le Pe Header
• Placement du Pe Header dans le fichier…
![Page 19: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/19.jpg)
Analyse de la structure PE
• Point d'entrée dans la dernière section
• Point d'entrée avant la première section
![Page 20: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/20.jpg)
Analyse de la structure PE
• Caractéristiques des sections:- Dernière section « exécutable »
- Première section « Writeable »
• Nom des sections et leurs caractéristiques
![Page 21: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/21.jpg)
Analyse de la Structure PE
• « Virtual Size » incorrect dans le PE Header
• PE Header en fin de fichier
• « Size of Code » incorrect
![Page 22: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/22.jpg)
Analyse du code
• Instruction non standard au point d'entrée
• Calcul du delta offset
• Redirection de code Suspect:- JUMP FAR
- PUSH RET
![Page 23: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/23.jpg)
Analyse du code
• Recherche de fichiers PE
• Utilisation du PEB pour récupérer des adresses systemes
• Détection de code utilisant des adresses systemes
« hardcodées »
![Page 24: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/24.jpg)
Analyse du « code »
• Recherche de chaines de caractères particulières dans une section code.
- "*.exe"
- API et dll windows
- Base de Registre
![Page 25: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/25.jpg)
Emulation
• JMP FAR
• PUSH / RET
• Emulation des décrypteurs
![Page 26: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/26.jpg)
Techniques Anti Heuristiques
![Page 27: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/27.jpg)
Structure PE
• Non Modification des caractéristiques des sections• Ajout de plusieurs sections• Ajout d'un bout de code du virus dans la première
section (point d'entrée tjs dans la section code)• Packing de la section code et ajout du virus dans
l'espace non utilisé• Point d'Entrée Obscure
![Page 28: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/28.jpg)
Structure PE
• Patch des appels aux fonctions de l’API Windows pour appeler le virus
• Patch du Stack Frame
• Calcul du Checksum du fichier PE
• Renomage des sections existantes
• « Size of Code » est corrigé
![Page 29: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/29.jpg)
Anti Emulation
• SEH - Structured Exception Handling.
• Instructions du Co-Processeur
• MMX / SSE
• Instructions non documentées
• Code Anti Machine Virtuelle
• Couches de cryptage avec Auto brute force
• Threads
![Page 30: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/30.jpg)
Code anti heuristique
• Le delta offset est obtenu différement
• Le code pour la recherche de fichiers PE est obscurci
• Les fonctions de l’API Windows ne sont plus référencées directement (checksum)
![Page 31: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/31.jpg)
Présentation d'un moteur Heuristique Perso
![Page 32: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/32.jpg)
Présentation d'un moteur Heuristique Perso
• Analyse de binaires standards : notepad, regedit, calc, MS Pain, WordPad etc…
![Page 33: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/33.jpg)
Présentation d'un moteur Heuristique Perso
![Page 34: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/34.jpg)
Présentation d'un moteur Heuristique Perso
![Page 35: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/35.jpg)
Présentation d'un moteur Heuristique Perso
![Page 36: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/36.jpg)
Présentation d'un moteur Heuristique Perso
• Analyse de binaires Infectés : Virus polymorphes, Cryptés, Standard, EPO etc
![Page 37: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/37.jpg)
Présentation d'un moteur Heuristique Perso
![Page 38: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/38.jpg)
Présentation d'un moteur Heuristique Perso
![Page 39: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/39.jpg)
Présentation d'un moteur Heuristique Perso
![Page 40: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/40.jpg)
Présentation d'un moteur Heuristique Perso
![Page 41: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/41.jpg)
Présentation d'un moteur Heuristique Perso
![Page 42: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/42.jpg)
Présentation d'un moteur Heuristique Perso
![Page 43: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/43.jpg)
Présentation d'un moteur Heuristique Perso
![Page 44: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/44.jpg)
Présentation d'un moteur Heuristique Perso
![Page 45: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/45.jpg)
Présentation d'un moteur Heuristique Perso
A Noter:
Un outil de génération de virus a été publié recemment par
un des groupes de création de virus les plus connus.
Tout les virus générés sont détectés heuristiquement par le
moteur.
![Page 46: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/46.jpg)
Présentation d'un moteur Heuristique Perso
• Analyse de fichiers PE packés : PE protect, PEShield etc…
![Page 47: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/47.jpg)
Présentation d'un moteur Heuristique Perso
![Page 48: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/48.jpg)
Présentation d'un moteur Heuristique Perso
![Page 49: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/49.jpg)
Présentation d'un moteur Heuristique Perso
![Page 50: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/50.jpg)
Conclusion
![Page 51: SSTIC 2004:](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b7e550346895da49b2c/html5/thumbnails/51.jpg)
Questions?