Pots de miel et Machine Virtuelle
Transcription
Pots de miel et Machine Virtuelle
Pots de miel et Machine Virtuelle Cédric Lauradoux 21 novembre 2005 ACI unihavege Plan I Introduction aux pots de miel I Réalisation I Détection . Processeur . Changement de contexte I Conclusion ACI unihavege 1/31 Introduction aux pots de miel serveur web anti virus serveur mail Sécurité ew m Fir ids all user A B C D E F ACI unihavege bi zo r e k c a h 2/31 Introduction aux pots de miel anti virus serveur mail r e v serveur web Intrusion all user Fir ew ids A B C r e ck E z bi om r e k c a h ha F ACI unihavege 3/31 Introduction aux pots de miel del t pomie user all serveur web anti virus serveur mail Intrusion Fir ew ids A C E B del t pomie F ACI unihavege z bi om r e k c a h 4/31 Introduction aux pots de miel Fonctions I Sonde de détection d’intrusion (aider ids) I Observation de l’attaquant I Test de logiciel I 2 Familles [SPIT 04] : – Haut niveau d’interaction (HNI) – Bas niveau d’interaction (BNI) ACI unihavege 5/31 Introduction aux pots de miel HNI I Pot de miel BNI : l’attaquant accède seulement à un service Détection d’intrusion = Signal d’activité I Pot de miel HNI : l’attaquant accède à une machine complète Observation = Espionnage ACI unihavege 6/31 Réalisation Choix I Machine physique I Ajouter des services espion [SEBEK] I Attaquant devient root = ROOTKIT I Isolateur I Cloisonne les processus = impossiblité d’atteindre les droits de root I Pas de produits I Virtualisation ACI unihavege 7/31 Réalisation Virtualisation I Définition : création d’environnements indépendants sur une même machine I Chaque environnement a son mode privilégié : • une machine virtuelle émule le mode privilévigié d’un processeur ACI unihavege 8/31 Réalisation Virtualisation I 2 familles : – processeur totalement émulé – processeur partiellement émulé ACI unihavege 9/31 Détection Objectif Trouver ce qui ne va pas sur la machine. I Processeur totalement émulé : chercher le processeur hôte I Processeur partiellement émulé : chercher l’activité anormale ACI unihavege 10/31 Processeur totalement émulé Caractéristiques Informations sur le processeur : less /proc/cpuinfo processor vendor_id cpu family model model name stepping cpu MHz cache size : 0 : GenuineIntel : 15 : 2 : Intel(R) Pentium(R) 4 CPU 2.60GHz : 9 : 2593.533 : 512 KB Existe t’il d’autres sources d’information ? ACI unihavege 11/31 Processeur totalement émulé Caractéristiques • • • • • • Jeu d’instructions Emulation Gestion mémoire Gestion interruption Antémémoires Optimisation Branchements Latence ACI unihavege Simulation 12/31 Processeur totalement émulé Antémémoires • Taille et taille des blocs Rétro-ingénierie • Algorithme de placement • Algorithme d’insertion (LRU) ACI unihavege 13/31 cycles CPU 10000 Pentium 4 Pentium 3 9000 8000 7000 6000 5000 4000 3000 2000 COLD START MISS 1000 0 20 40 60 80 ACI unihavege 100 120 Indice de 140 l'élément ajouté 14/31 cycles CPU 3500 PowerPc G4 (1.1) PowerPc G4 (2.9) 3000 2500 2000 1500 1000 500 0 0 10 20 30 40 50 60 ACI unihavege 70 80 90 Indice de l'élément 100 ajouté 15/31 Processeur totalement émulé Machine virtuelle et détection Les paramêtres entre machine émulée et machine d’exécution sont souvent (toujours) différents. ACI unihavege 16/31 cycles CPU 500 timing obtenu 450 400 350 300 250 200 150 100 50 0 10 20 30 40 50 60 ACI unihavege 70 80 90 Indice de l'élément 100 ajouté 17/31 cycles CPU 800 timing obtenu sur PearPC 750 700 650 600 550 500 450 400 350 300 250 0 10 20 30 40 50 60 ACI unihavege 70 80 90 Indice de l'élément 100 ajouté 18/31 cycles CPU 800 émulateur PearPC un vrai G4 700 600 500 400 300 200 100 Indice de 0 0 10 20 30 40 50 60 ACI unihavege 70 80 90 l 100 ajouté 19/31 Processeur totalement émulé Conclusion I On est capable de voir le processeur enfoui derrière l’émulateur I Besoin de décorréler le compteur de cycle du processeur hôte et des processeurs émulés : difficile ACI unihavege 20/31 Processeur partiellement émulé Ordonnancement I Système réactif I Impression simultanéité I Problème un seul processeur I Ordonnancement - Préemption I Interruptions ACI unihavege 21/31 Système d’exploitation Ordonnancement processus ordonnancement fifo ordonnanceur C B A temps slice ACI unihavege 22/31 Processeur partiellement émulé Ordonnancement processus ordonnancement tourniquet ordonnanceur C B A temps slice ACI unihavege 23/31 Processeur partiellement émulé Ordonnancement I Le coût caché du tourniquet ? tourniquet fifo switch Communication entre les processus ACI unihavege 24/31 Processeur partiellement émulé Interruptions I Real Time Clock (RTC) 1Hz-8192Hz I Time Stamp Counter (TSC) 3.5Ghz I Programmable Interval Timer (PIT) 10Mhz I Oscillateur (PIT sous X86 : 82C54) I Compteur 64 bits (TSC : X86) ACI unihavege 25/31 Processeur partiellement émulé HAVEGE I Un outil : HAVEGE et ses dérivées (SEZNEC et SENDRIER 2003). HArdware Volatile Entropy Gathering and Expansion http ://www.irisa.fr/caps/projects/hipsor/HAVEGE.html ACI unihavege 26/31 Processeur partiellement émulé HAVEGE i=SAMPLING_SIZE; start=hardClock(); while(i>0) { end=HardClock(); printf("%llu\n",end-start); start=end; i--; } ACI unihavege 27/31 Processeur partiellement émulé Trace suivant l’ordonnancement I Mesure de la régularité de la boucle : auto-corrélogramme n−h 1X Ch = (Yt − Y )(Yt+h − Y ) n t=1 . pour une machine réelle . pour vmware ACI unihavege 28/31 Corrélation 1 Tourniquet FIFO 0.8 0.6 0.4 0.2 0 -0.2 0 200 400 600 800 1000 1200 ACI unihavege 1400 1600 1800 Delta 2000 29/31 Corrélation 1 VMWARE Tourniquet VMWARE FIFO 0.8 0.6 0.4 0.2 0 -0.2 0 200 400 600 800 1000 1200 ACI unihavege 1400 1600 1800 Delta 2000 30/31 Conclusions I La réalisation des pots de miel reste un problème ouvert. I La latence des opérations sur le processeur est cruciale. I Le compteur de cycle est le point sensible ACI unihavege 31/31