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