analyse et détection des attaques ddos etat de l’art et ... · pdf filesolution:...
TRANSCRIPT
Analyse et détection des attaques DDoSEtat de l’art et proposition
Jamel Ksiksi, Mohamed El Khattibi, Yacine Bouzida, Sylvain Gombault
2
Cadre du projet
Projet DDoS: GET (Groupe des Ecoles de
Télécommunications)
Partenaire industriel: France Telecom DRD
(Département de Recherche et Développement)
3
Etapes du travail
Compréhension du sujet : DoS ? DDoS ?
Recherche sur Internet des outils DDoS
Essai des attaques
Modification des outils
Récupération des résultats des attaques
Analyse des attaques DDoS: niveau victime
Solution: Script de détection
4
Plan
Introduction
Les attaques DDoS( Principe, Architecture, Communications, Les attaques DoS)
Les outils DDoS( Principe, Les outils DDoS étudiés, Étude des outils DDoS)
Analyse des flux côté victime ( Trinoo, TFN, Stacheldraht, TFN2K, Mstream)
Le Script de détection
Conclusion
5
Introduction
Ecoute (Sniffing): intercepter toutes les trames même quine nous sont pas destinées pour avoir des mots de passepar exemple.
Usurpation (Spoofing): se faire passer pour une autremachine en falsifiant son adresse IP.
Déni de service (Deny of Service): nuire à la disponibilitéd’un système par Saturation des réseaux avec du trafic. Saturation de l’espace disque. Occupation du temps du microprocesseur
Types de menaces
6
Usurpation d’adresse
Aucune authenticité des adresses IP n’est garantie pardéfaut Facilite l’usurpation d’adresse IP = IP spoofing Donne l’impunité à l’attaquant
Externe IP
Site A192.3.45.0/24
Site B192.1.2.0/24
Datagramme IP
AD=192.1.2.11
AS=193.3.45.172
Site A -> Site BSite X
adr. officielle: 200.1.2.0/24
Datagramme IP
AD=192.1.2.11
AS=192.3.45.172
Site A -> Site B
Datagramme IP
AD=192.3.45.172
AS=192.1.2.11
Site B -> Site A
Routeur X
Routeur BRouteur A
Introduction
7
Exemple d’attaque sur Internet
Attaque de février 2000 par usurpation et déni de service surYahoo!...
Usurpation de l’@IP de la Victime => Impunité pour X
Internet
Victime(s) - yahoo!
Attaquant - X
Routeur V
Routeur X
Site(s) esclave(s)
Routeur A
AD=192.16.1.255
AS=@Victime
ICMP - echo
Introduction
8
IntroductionIntroductionLes attaques Les attaques DDoSDDoSLes outils Les outils DDoSDDoSAnalyse des flux cAnalyse des flux côôttéé victime victimeLe Script de dLe Script de déétectiontectionConclusionConclusion
9
DoSDoS
Surcharger le trafic réseau d’unserveur en le submergeant
d’information réseau
· Inondation UDP ( UDP flooding )
· Inondation TCP-SYN ( TCP-SYN flooding )
· Inondation ICMP echo ( Smurf par exemple) ….......
DoS par saturation du rDoS par saturation du rééseauseau
10
Définition: DoS distribué ( plusieurs machines à l'origine de cette attaque ). Architecture: une attaque DDoS a quatre niveaux de composants:
Attaquant Maître Démon Victime
Les communications entre différents niveaux se basent sur les protocolesconnus
DDoS
Internet
Victime(s)!
Attaquant - X
Routeur V
Routeur X
(Maîtres+Démons)
Routeur A
11
Caractérisation d’une communication
802049tcp175.44.78.10200.1.2.34
Port serveurPort clientProtocole@IP serveur@IP client
Une communication est repérée par le quintuplé
Un numéro de port (2 octets) sert au niveau TCP ou UDP à préciser unprocessus à l'intérieur d'une machine. Certains sont réservés côté serveur: les « well known ports » (http 80, ftp 21...)
généralement < 1024 Les numéros de ports côté client sont pris généralement >= 1024
TCP/UDP
IP
Netscape
TCP/UDP
IP
httpd
Réseau d'entreprise IP
200.1.2.34 175.44.78.10
2049 80
client serveur
12
Le protocole TCP fonctionne en mode connecté. Il établit une connexion logique fiablede bout en bout. Le protocole doit assurer l'identification des paquets. Utilise le mécanisme d'établissement de connexion en trois phases.
Principe de l’attaque: consiste à saturer un serveur en envoyant une multitude depaquets TCP avec le flag SYN armé.
But: créer une multitude de connexions demandant un grand nombre de ressourcessystème.
Difficile à détecter: Le numéro de port change Usurpation de l’adresse source
Inondation TCP SYN (SYN flood)
M1 M2
| |
|-----SYN----->|| ||<--SYN/ACK----|| ||----ACK------>|| |
M1 M2
| |
|-----SYN----->|| ||<--SYN/ACK----|| ||----SYN------>|| |
13
Inondation UDP (UDP flood)
Le protocole UDP fonctionne en mode non connecté.
L’envoi des paquets se fait sans s’assurer de la
connexion et sans possibilité de rattrapage d'erreur.
Le trafic UDP est prioritaire sur le trafic TCP.
Principe de l’attaque: De la même manière que pour
l’inondation TCP SYN, l'attaquant envoie un grand
nombre de requêtes UDP sur une machine.
But: troubler et saturer le trafic transitant sur le réseau.
14
Inondation ICMP (ICMP flood)
Ce type d'attaques concerne les serveurs et non pas les ordinateursclients.
Vulnérabilité: Lorsqu'on envoie un echo à une machine elle doit répondre
par un echo_replay si elle est connectée. Lorsqu'on envoie un PING à un réseau en broadcast (par
exemple 255.255.255.0), le paquet est envoyé à chacune desmachines du réseau
Principe envoi d'une multitude de petits paquets ICMP echo.
But: la machine cible est saturée par cette multitude de paquets etne peut plus répondre aux demandes de connexions car l'ensemblede la bande passante est utilisée.
15
Attaque Smurf
Principe: un attaquant envoie un ping en broadcast surun réseau avec une adresse IP source correspondant àcelle de la machine cible. Le flux entre le port ping de lacible et du réseau sera multiplié par le nombre demachines sur le réseau.
But: saturation de la bande passante du réseau et dusystème de traitement de paquets de la cible.
Internet
Attaquant Victime
16
Attaque TCP ACK
Durant cette attaque, les agents envoient des paquets TCP avec Le drapeau ACK (accusé de réception) activé
Une adresse source aléatoire.
Lorsque le port destinataire de la cible est ouvert Le paquet nécessite une analyse plus poussée de la part de la pile IP de
la victime avant d’être rejeter.
induire un trafic supplémentaire dû à la notification du refus
17
IntroductionIntroductionLes attaques Les attaques DDoSDDoSLes outils Les outils DDoSDDoSAnalyse des flux cAnalyse des flux côôttéé victime victimeLe Script de dLe Script de déétectiontectionConclusionConclusion
18
Les outils DDoS
Saturation r_seau
Emp_cher le bon fonctionnement d’un syst_me ou l’acc_s _une ressource
DDoSDDoS
UDP flooding TCP-SYN flooding SmurfICMP echo
Principe:
19
Les outils étudiés
Dans l’ordre chronologique de leur apparition, les outils DDoS sont:
Trinoo TFN Stacheldraht TFN2K ( évolution de TFN) Mstream
20
Trinoo
Architecture: l’outil Trinoo est composé de programmes Maître "master.c“ Démon "ns.c"
Communications: Attaquant-> Maître(s):27665/TCP Maître -> Démon(s):27444/UDP Démon -> Maître(s):31335/UDP
Attaques UDP flood
21
TFN (Tribe Flood Network)
Architecture : l’outil TFN est composé de programmes Maître “tribe.c“ Démon “td.c"
Communications: Attaquant -> Maître(s): tout shell distant
sur un port tcp sur un port udp sur icmp telnet Ssh
Maître -> Démon(s): paquets ICMP echo_replay Attaques
Syn flood ICMP flood UDP flood Smurf
22
Stacheldraht
Architecture : l’outil Stacheldraht est composé de programmes Maître "mserv.c" Démon "td.c"
Communications: Attaquant -> Maître(s): 16660/tcp Maître -> Démon(s):
65000/tcp icmp_echo_replay
Attaques Syn flood ICMP flood UDP flood Smurf
23
TFN2K
Architecture : l’outil TFN2K est composé de programmes Maître “tfn.c“ Démon “td.c"
Communications: Attaquant -> Maître(s): tout shell distant
sur un port tcp sur un port udp sur icmp telnet ssh
Maître -> Démon(s): via TCP UDP, ICMP 3 de manière aléatoire
Attaques Syn flood ICMP flood UDP flood Smurf
24
Mstream
Architecture : l’outil Mstream est composé de programmes Maître "master.c“ Démon "server.c"
Communications: Attaquant-> Maître(s):
6723/TCP 15104/TCP 12754/TCP
Maître -> Démon(s): 9325/UDP 6838/UDP
Démon -> Maître(s): 7983/UDP 10498/UDP
Attaques stream(tcp ack flood)
25
Exemple de DDoS
Attaque DDoS contre des nombreux sites (yahoo,cnn, etc…) en janvier 2000 Outil utilisé: Stacheldraht
70 démons
Types d’attaques:
80 % Smurf
20 % inondation TCP
26
France Telecom a détecté du trafic de commande(communications) qui sature le réseau
DDoS
De quel type de trafic s’agit-il ?
Analyse des flux côté victime
Internet
Victime(s)!
Attaquant - X
Routeur V
(Maîtres+Démons)
Routeur X
Routeur A
27
IntroductionIntroductionLes attaques Les attaques DDoSDDoSLes outils Les outils DDoSDDoSAnalyse des flux cAnalyse des flux côôttéé victime victimeLe Script de dLe Script de déétectiontectionConclusionConclusion
28
Schéma du laboratoire
Attaquant
démon
Maître
victime
192.168.56.102
192.168.56.100192.168.56.106
192.168.56.107
29
Démarche
Analyse des flux Trinoo, TFN, TFN2K, Stacheldraht,Mstream UDP, TCP, ICMP Autres protocoles (targa3)
Trouver une méthode qui fonctionne avec les outils nonmodifiés Et voir comment elle peut se généraliser à des outils modifiés ou
nouveaux Performante
Détection d’un grand nombre de paquets similaires Non détectables par l’analyse des matrices de flux car les ports et
les adresses sources varient pseudo-aléatoirement Idée : utilisation d’une fonction de hash sur les invariants
30
Trinoo – udp
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
constantPort dest.
aléatoirePort source
UDPUDPAttaque
TrinooTrinooOutil
LLéégendegende
128112968064483216
checksum
urce
nation
ProtTOS
DonnéeslengthPort dest.Port source@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
Trame UDPTrame UDP
VariantsDonnées invariants
Invariants UDP
Invariants IP
16:37:22.329033 192.168.56.107.32783 > 192.168.56.106.http: udp 4 (DF) 4500 0020 0000 4000 4011 48a7 c0a8 386b c0a8 386a 800f 0050 000c 5125 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:37:22.329101 192.168.56.107.32783 > 192.168.56.106.http: udp 4 (DF) 4500 0020 0000 4000 4011 48a7 c0a8 386b c0a8 386a 7122 0050 000c 4f25 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:37:22.329168 192.168.56.107.32783 > 192.168.56.106.http: udp 4 (DF) 4500 0020 0000 4000 4011 48a7 c0a8 386b c0a8 386a 0032 0050 000c 039d 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:37:22.329236 192.168.56.107.32783 > 192.168.56.106.http: udp 4 (DF) 4500 0020 0000 4000 4011 48a7 c0a8 386b c0a8 386a f123 0050 000c 256a 0000 0000 0000 0000 0000 0000 0000 0000 0000
31
Définition des caractéristiques : Trinoo
KTTL
-Port dest.
KLongueur
-Cheksum
KPort source
Entête udp
0000Données
a.b.c.d@ IP source
Kfrag. OffsetK=0idK=0TOS
Entête ip
valeurchamp
Caractéristiques de l’attaque : Le port destination est constant L’adresse IP source est constante (celle du(des) démon(s)) Les données sont nulles
32
TFN – icmp echo
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
ICMP ICMP echoechoAttaque
TFNTFNOutil
15:51:56.687402 47.75.73.111 > 192.168.56.106: icmp: echo request 4500 005c 0b16 0000 ff01 3ebe 2f4b 496f c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
15:51:56.707400 228.218.153.106 > 192.168.56.106: icmp: echo request 4500 005c 0b16 0000 ff01 3933 e4da 996a c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
15:51:56.727451 2.209.223.88 > 192.168.56.106: icmp: echo request 4500 005c 0b16 0000 ff01 d54e 02d1 df58 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
128128112112969680806464484832321616
Code d N°séquence
urce
nation
ProtTOS
DonnéesIchecksum.Type@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
Trame ICMPTrame ICMPLLéégendegende
VariantsDonnées invariants
Invariants ICMP
Invariants IP
33
TFN – tcp syn
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
aléatoirePort dest.
aléatoirePort source
TCP SYNTCP SYNAttaque
TFNTFNOutil15:50:49.255865 111.98.11.53.4065 > 192.168.56.106.3408: S 367546785:367546801(16)win 65535 urg 64665
4500 0028 8006 0000 ff06 c81f 6f62 0b35 c0a8 386a 0fe1 0d50 15e8 51a1 996c 0000 1022 ffff 9564 fc99 0000 0000 0000
15:50:49.275829 156.103.13.4.3759 > 192.168.56.106.6539: S1020464442:1020464458(16) win 65535 urg 44042
4500 0028 53bd 0000 ff06 c594 9c67 0d04 c0a8 386a 0eaf 198b 3cd3 0d3a a6f8 0000 1022 ffff e84f ac0a 0000 0000 0000
15:50:49.295825 145.101.11.90.6085 > 192.168.56.106.telnet: S1081635245:1081635261(16) win 65535 urg 22154
4500 0028 015c 0000 ff06 24a2 9165 0b5a c0a8 386a 17c5 0017 4078 71ad 9946 0000 1022 ffff 52d5 568a 0000 0000 0000
15:50:49.315878 107.18.24.3.9007 > 192.168.56.106.3687: S 886795361:886795377(16)win 65535 urg 43236
4500 0028 a3d2 0000 ff06 9bd5 6b12 1803 c0a8 386a 232f 0e67 34db 6c61 c722 0000 1022 ffff 4101 a8e4 0000 0000 0000
128128112112969680806464484832321616
source seqUence ittement
urce
nation
ProtTOS
Donnéesurgencechecksumfenetreflagsoffset
N° d’aquN°Port dest.Port@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
Trame TCPTrame TCPLLéégendegende
VariantsDonnées invariants
Invariants TCP
Invariants IP
34
TFN – udp
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Pn-1+ 1Port dest.
Pn-1- 1Port source
UDPUDPAttaque
TFNTFNOutil15:49:17.458204 arp who-has 192.168.56.106 tell 192.168.56.107
0001 0800 0604 0001 0001 032a 2820 c0a8 386b 0000 0000 0000 c0a8 386a 0000 0000 0000 0000 0000 0000 0000 0000 0000
15:49:17.458259 arp reply 192.168.56.106 is-at 0:4:75:a0:d8:b0 0001 0800 0604 0002 0004 75a0 d8b0 c0a8 386a 0001 032a 2820 c0a8 386b
15:49:17.458445 230.108.145.91.9998 > 192.168.56.106.2: udp 1 4500 0020 9e10 0000 ff11 ace1 e66c 915b c0a8 386a 270e 0002 0009 0000 0be2 ffbf 0000 0000 0000 0000 0000 0000 0000
15:49:17.558414 27.127.186.63.9997 > 192.168.56.106.3: udp 1 4500 0020 d748 0000 ff11 15b3 1b7f ba3f c0a8 386a 270d 0003 0009 0000 0be2 ffbf 0000 0000 0000 0000 0000 0000 0000
15:49:17.570424 171.145.239.48.9996 > 192.168.56.106.4: udp 1 4500 0020 1130 0000 ff11 16c8 ab91 ef30 c0a8 386a 270c 0004 0009 0000 0be2 ffbf 0000 0000 0000 0000 0000 0000 0000
LLéégendegende Trame UDPTrame UDP
-1
+1
128112968064483216
checksum
urce
nation
ProtTOS
Données
DonnéeslengthPort dest.Port source@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants UDP
Invariants IP
Varie d’une session à autre
35
Définition des caractéristiques : TFN
KWindow
K=00CodePn-1+ 1Port dest.-Port dest.
K=ffffffTTLK=0K=0K=0Frag. Offset
00004 octets non nuls+0000……………….0000Données
@ source
Identifiant
Long. totaleTOS
K=0K=0
K=f7ff
k=08
K
K
Pn-1- 1
--
K=22K
0x—00
-
-
UrgenceCheksum
FlagsN° séquenceOffsetIdentifiantCheksumN°acquittement
ChecksumLongueurN° séquence
TypePort sourcePort source
Entête du Protocole transporté
aléatoirealéatoirealéatoire
K--
KK=20K=28K=0K=0K=0
Entête IP
Icmp echoudpTcp syn
Caractéristiques de l’attaque : Pour udp :
Le port source se décrémente de 1 Le port destination s’incrémente de 1 Les données sont nulles à partir du 5ème octet Les deux premiers octets sont variables d’une session à une autre
Pour tcp syn et icmp: Les données sont nulles.
36
Stacheldraht – tcp syn
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Pn-1+ 1Port dest.
constantPort source
TCP SYNTCP SYNAttaque
StacheldrahtStacheldrahtOutil
LLéégendegende
16:14:37.897522 192.168.56.155.1751 > 192.168.56.106.52027: S674711609:674711609(0) win 65535
4500 0028 a5d5 0000 1e06 04a5 c0a8 389b c0a8 386a 06d7 cb3b 2837 4839 8136 d506 5302 ffff 2a7a f751 0000 0000 0000
16:14:37.897604 arp who-has 192.168.56.155 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 389b
16:14:37.897585 192.168.56.147.1751 > 192.168.56.106.tcpmux: S674711609:674711609(0) win 65535
4500 0028 a5d5 0000 1e06 04a5 c0a8 3893 c0a8 386a 06d7 0001 2837 4839 3bcb ec5e 5302 ffff 99e3 8136 0000 0000 0000
16:14:37.897652 192.168.56.155.1751 > 192.168.56.106.2: S 674711609:674711609(0)win 65535
4500 0028 a5d5 0000 1e06 04a5 c0a8 389b c0a8 386a 06d7 0002 2837 4839 3bcb ec5e 5302 ffff 99e2 8136 0000 0000 0000
Trame TCPTrame TCP
+1
urce
128128112112969680806464484832321616
source seqUence ittementnation
ProtTOS
Donnéesurgencechecksumfenetreflagsoffset
N° d’aquN°Port dest.Port@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants TCP
Invariants IP
37
Stacheldraht – udp
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Pn-1+ 1Port dest.
aléatoirePort source
UDPAttaque
StacheldrahtStacheldrahtOutil
Trame UDPTrame UDPLLéégendegende
16:23:09.400024 192.168.56.251.10179 > 192.168.56.106.2: udp 400 4500 01ac 69b2 0000 ff11 5dd8 c0a8 38fb c0a8 386a 27c3 0002 0198 0000 0000 0000 6669 636b 656e 0000 0000 0000 0000 0000 23 lignes 0000 0000 0000 0000 0000 0000 0000
16:23:09.400086 arp who-has 192.168.56.251 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 38fb
16:23:09.400393 192.168.56.158.40936 > 192.168.56.106.3: udp 400 4500 01ac 774c 0000 ff11 509b c0a8 389e c0a8 386a 9fe8 0003 0198 0000 0000 0000 6669 636b 656e 0000 0000 0000 0000 0000
23 lignes 0000 0000 0000 0000 0000 0000 0000
16:23:09.400414 arp who-has 192.168.56.158 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 389e
+1
urce
128112968064483216
checksumnation
ProtTOS
Données
DonnéeslengthPort dest.Port source@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants UDP
Invariants IP
38
Stacheldraht – icmp echo
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
ICMP echoAttaque
StacheldrahtStacheldrahtOutil
16:21:22.451947 192.168.56.3 > 192.168.56.106: icmp: echo request 4500 0030 0bf6 0000 ff01 be18 c0a8 3803 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:21:22.452001 arp who-has 192.168.56.3 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 3803
16:21:22.452012 192.168.56.227 > 192.168.56.106: icmp: echo request 4500 0030 0bf6 0000 ff01 bd38 c0a8 38e3 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:21:22.452070 arp who-has 192.168.56.227 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 38e3
16:21:22.452080 192.168.56.196 > 192.168.56.106: icmp: echo request 4500 0030 0bf6 0000 ff01 bd57 c0a8 38c4 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:21:22.452111 arp who-has 192.168.56.196 tell 192.168.56.106 0001 0800 0604 0001 0004 75a0 d8b0 c0a8 386a 0000 0000 0000 c0a8 38c4
Trame ICMPTrame ICMPLLéégendegende
urce
128128112112969680806464484832321616
Code d N°séquencenation
ProtTOS
Données
DonnéesIchecksum.Type@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants ICMP
Invariants IP
39
Définition des caractéristiques : Stacheldraht
KWindow
K=00CodePn-1+ 1Port dest.Pn-1+ 1Port dest.
KKKTTLK=0K=0K=0Frag. Offset
000000000000Données
@ source
Identifiant
Long. totaleTOS
K=0K=0
K=f7ff
k=08
K=0
K
-
K
K
K=02KK
K
K
Urgence
Cheksum
FlagsN° séquenceOffsetIdentifiantCheksumN°acquittement
ChecksumLongueurN° séquence
TypePort sourcePort source
Entête du Protocole transporté
a.b.c.xa.b.c.xa.b.c.x
K-K
K=30KK=28K=0K=0K=0
Entête IP
Icmp echoudpTcp syn
Caractéristiques de l’attaque : L’identificateur est constant pour tcp syn et icmp L’adresse source est du même réseau que le démon: a.b.c.x Le port destination s’incrémente de 1 Les données sont nulles pour des petits paquets Les ( données – 24 derniers octets ) sont nulles pour des grands
paquets
40
TFN2K – tcp syn
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
aléatoirePort dest.
aléatoirePort source
TCP SYNTCP SYNAttaque
TFN2KTFN2KOutil 16:01:25.880088 136.246.81.0.64324 > 192.168.56.106.53510: S 1761100:1761120(20)win 37466 urg 43159
4500 0028 067c 0000 d806 094b 88f6 5100 c0a8 386a fb44 d106 001a df4c 8c3b 0000 0022 925a 8e70 a897 0000 0000 0000
16:01:25.880105 93.48.252.0.60103 > 192.168.56.106.60458: S 13976650:13976670(20)win 58115 urg 24345
4500 0028 ed57 0000 ed06 8e34 5d30 fc00 c0a8 386a eac7 ec2a 00d5 444a c5be 0000 0022 e303 624c 5f19 0000 0000 0000
16:01:25.880203 35.123.4.0.9105 > 192.168.56.106.42016: S 3080164:3080184(20)win 55878 urg 43801
4500 0028 eecd 0000 f606 b574 237b 0400 c0a8 386a 2391 a420 002e ffe4 379b 0000 0022 da46 28ba ab19 0000 0000 0000
16:01:25.880300 216.94.15.0.39077 > 192.168.56.106.24156: S 13276850:13276870(20)win 12708 urg 54534
4500 0028 8f35 0000 ec06 5f29 d85e 0f00 c0a8 386a 98a5 5e5c 00ca 96b2 cac4 0000 0022 31a4 f740 d506 0000 0000 0000
Trame TCPTrame TCPLLéégendegende
urce
128128112112969680806464484832321616
source seqUence ittementnation
ProtTOS
Donnéesurgencechecksumfenetreflagsoffset
N° d’aquN°Port dest.Port@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants TCP
Invariants IP
41
TFN2K – udp
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Pn-1+ 1Port dest.
Pn-1- 1Port source
UDPUDPAttaque
TFN2KTFN2KOutil16:00:35.312231 arp who-has 192.168.56.106 tell 192.168.56.107
0001 0800 0604 0001 0001 032a 2820 c0a8 386b 0000 0000 0000 c0a8 386a 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:00:35.312287 arp reply 192.168.56.106 is-at 0:4:75:a0:d8:b0 0001 0800 0604 0002 0004 75a0 d8b0 c0a8 386a 0001 032a 2820 c0a8 386b
16:00:35.312478 43.28.116.0.65529 > 192.168.56.106.echo: udp 1 4500 001d 7fb4 0000 f511 adec 2b1c 7400 c0a8 386a fff9 0007 0009 fff5 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:00:35.312545 132.216.77.0.65528 > 192.168.56.106.8: udp 1 4500 001d 8153 0000 de11 9091 84d8 4d00 c0a8 386a fff8 0008 0009 fff5 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:00:35.312613 119.20.9.0.65527 > 192.168.56.106.discard: udp 1 4500 001d 0e42 0000 e311 5067 7714 0900 c0a8 386a fff7 0009 0009 fff5 0000 0000 0000 0000 0000 0000 0000 0000 0000
LLéégendegende Trame UDPTrame UDP
-1
+1
urce
128112968064483216
checksumnation
ProtTOS
Données
DonnéeslengthPort dest.Port source@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants UDP
Invariants IP
42
TFN2K – icmp echo
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
ICMP echoAttaque
TFN2KTFN2KOutil
Trame ICMPTrame ICMPLLéégendegende
16:02:07.214251 212.96.118.0 > 192.168.56.106: icmp: echo request [ttl 0] 4500 005c 0b66 0000 0001 6bc8 d460 7600 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:02:07.214352 220.200.175.0 > 192.168.56.106: icmp: echo request [ttl 0] 4500 005c 0b66 0000 0001 2a60 dcc8 af00 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
16:02:07.214456 223.111.85.0 > 192.168.56.106: icmp: echo request [ttl 0] 4500 005c 0b66 0000 0001 81b9 df6f 5500 c0a8 386a 0800 f7ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
urce
128128112112969680806464484832321616
Code d N°séquencenation
ProtTOS
Données
DonnéesIchecksum.Type@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants ICMP
Invariants IP
43
TFN2K – targa3 (1)
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Traga 3 -??Attaque
TFN2KTFN2KOutil
16:05:21.656299 57.129.85.0 > 192.168.56.106: ip-proto-255 138 [ttl 0] 4500 009e 182b 0000 00ff 19a3 3981 5500 c0a8 386a b919 9aec f665 ff2e 48d0 9b58 2edb 862d baeb 9180 f42e dbf5 f35d 8536
6 lignes non nuls 5393 5314 919d 4334 9084 2f07 e70a
16:05:21.656988 15.5.94.0 > 192.168.56.106: ip-proto-255 240 (frag 2850:240@0+) [ttl 0] 4500 0104 0b22 2000 00ff 27c2 0f05 5e00 c0a8 386a 1e6e 6400 2df0 c3c7 56b5 6e05 7dac 0ae2 202b 6a03 8549 9c21 c4d6 e315
13 lignes non nuls 724b f359
16:05:21.658317 8.81.157.0 > 192.168.56.106: igmp (frag 15784:333@65528+) [ttl 0] 4500 0161 3da8 3fff 0002 9d90 0851 9d00 c0a8 386a 0cad 9011 2768 f54c 6d38 a87e ceb3 e6be c312 2e14 92a0 0aa8 edd7 8d72
19 lignes non nuls 88
16:05:21.659613 175.56.130.0 > 192.168.56.106: ip-proto-193 (frag 6326:195@65528+) [ttl0]
4500 00d7 18b6 3fff 00c1 3666 af38 8200 c0a8 386a bf12 89c6 26c9 0ac4 179e 2b2f 88e0 515f 4388 1168 3c1a 6271 dc9b 12cc
10 lignes non nuls 8881 491b 56f9 ff
16:05:21.655420 84.147.11.0 > 192.168.56.106: xns-idp (frag 34756:353@32056) [ttl 0] 4500 0175 87c4 0fa7 0016 c962 5493 0b00 c0a8 386a cf11 47d3 7c71 d63c d94b 5a00 64e0 2556 de2f 3dca 7361 dc45 7d4f eedc
20 lignes non nuls
eed8 f59a cd
02=IGMP02=IGMP
13=ARGUS13=ARGUS
22=XNS-IDP22=XNS-IDP
255=RESERVED255=RESERVED
44
TFN2K – targa3 (2)16:05:21.659231 35.109.101.0 > 192.168.56.106: egp (frag 693:255@3872) [ttl 0]
4500 0113 02b5 01e4 0008 33cb 236d 6500 c0a8 386a 00fb 9b8f dafa 3a0e 6d94 5a29 863c f62f 6188 aefe 000e 8b91 b6fe 2216 1223 0142 e254 9197 69fd 7018 104f f100
13 lignes non nuls 793c ea
16:05:21.657811 168.82.183.0 > 192.168.56.106: truncated-ip6 - 59652 bytesmissing!50bf:2217:5cb6:ad05:f2f6:6643:5923:29a2 > 16f4:af1e:c146:3667:46a6:b403:e29b:a508:ip-proto-176 60034 [class 0x39] [flowlabel 0xfc00] [ttl 0]
4500 01ba e970 0000 0029 7745 a852 b700 c0a8 386a 1390 fc00 ea82 b072 50bf 2217 5cb6 ad05 f2f6 6643 5923 29a2 16f4 af1e 1dea 6313 69a4 e7e1 78bc 1a6f bf66 de83
23 lignes non nuls 2e30 48a4 f64e 6d17 c7a6
16:05:21.658982 150.250.205.0 > 192.168.56.106: pup (frag 15687:496@65528+) [ttl 0] 4500 0204 3d47 3fff 000c de9a 96fa cd00 c0a8 386a 89a4 d1a3 16dd 332c 651e 9324 bf49 42b5 46ef 1251 9293 1c17 a9ad 62b8 a6ee 3fda 169c 54cd 49fd bee0 32fb e7e5
28 lignes non nuls da2b 9734
16:05:21.654751 146.64.250.0 > 192.168.56.106: idpr-cmtp (frag 21690:332@65528+) [ttl 0] 4500 0160 54ba 3fff 0026 9f6b 9240 fa00 c0a8 386a 6734 5d86 44e3 95d6 a20a d4d1 6fb2 c685 aeda b2d6 158b de64 a20c 6b14
18 lignes non nuls
9c4f 4cef e80e 37b4 6c77 c8bd d7e5 9946
08=EGP08=EGP
41=UNASSIGNED41=UNASSIGNED
38=IDPR-CMTP38=IDPR-CMTP
10=BBN-RCC-MON10=BBN-RCC-MON
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
Traga 3 -??Attaque
TFN2KTFN2KOutil
45
Définition des caractéristiques : TFN2K
-Window
K=00CodePn-1+ 1Port dest.-Port dest.
K=0--TTL
K=0K=0K=0Frag. Offset
Non nulles000000000000Données
@ source
Identifiant
Long. totale
TOS
K=0
K=0
K=f7ff
k=08
K
K
Pn-1- 1
-
-
K=22
K
0x--00
0x0---
-
Urgence
Cheksum
Flags
N° séquenceOffset
IdentifiantCheksumN°acquittement
ChecksumLongueurN° séquence
Protocole aléatoire
TypePort sourcePort source
Entête du Protocole transporté
x.y.z.0x.y.z.0x.y.z.0x.y.z.0
K--
KKK=28
K=0K=0K=0
Entête IP
targa3Icmp echoudpTcp syn
Caractéristiques de l’attaque : Les protocoles de l’attaque targa3 sont aléatoires Pour toutes les attaques:
Les @ sources sont x.y.z.0 Les données sont nulles (sauf targa3)
Pour udp: Le port source se décrémente de 1 Le port destination s’incrémente de 1
46
Mstream - tcp ack
16:29:43.017468 187.90.137.27.18682 > 192.168.56.106.62052: . ack 0 win 16384[tos 0x8]
4508 0028 c0f6 0000 ff06 bd48 bb5a 891b c0a8 386a 48fa f264 6d87 4c79 0000 0000 5010 4000 3cec 0000 0000 0000 0000
16:29:43.017531 78.26.234.71.18938 > 192.168.56.106.32533: . ack 0 win 16384[tos 0x8]
4508 0028 c1f6 0000 ff06 c85c 4e1a ea47 c0a8 386a 49fa 7f15 6e87 4c79 0000 0000 5010 4000 ba4f 0000 0000 0000 0000
16:29:43.017601 157.153.210.4.19194 > 192.168.56.106.41630: . ack 0 win 16384[tos 0x8]
4508 0028 c2f6 0000 ff06 9020 9d99 d204 c0a8 386a 4afa a29e 6f87 4c79 0000 0000 5010 4000 5d8a 0000 0000 0000 0000
16:29:43.017737 151.197.175.57.19450 > 192.168.56.106.42214: . ack 0 win 16384[tos 0x8]
4508 0028 c3f6 0000 ff06 b7bf 97c5 af39 c0a8 386a 4bfa a4e6 7087 4c79 0000 0000 5010 4000 81e1 0000 0000 0000 0000
29/04/04Session
192.168.56.106victime
192.168.56.107démon
192.168.56.107master
192.168.56.107attaquant
aléatoirePort dest.
Pn-1+ 100Port source
TCP ACKAttaque
MstreamMstreamOutil
Trame TCPTrame TCPLLéégendegende
+1
+1
+1
urce
128128112112969680806464484832321616
source Seq Uence ittementnation
ProtTOS
Donnéesurgencechecksumfenetreflagsoffset
N° d’aquN°Port dest.Port@ desti
@ sochecksumTTLFrag. offsetidTotal lengthV+long
VariantsDonnées invariants
Invariants TCP
Invariants IP
47
Définition des caractéristiques : Mstream
0000DonnéesK=0UrgenceKfenêtre
K=10flagsKOffset
K=0N° acquittement+0x1000000N° séquence
+100Port source
Entête tcp
K=ffTTLK=0frag. Offset
+0x100idK=0TOS
Entête ip
valeurchamp
Caractéristiques de l’attaque : L’identificateur s’incrémente de 0x100 Le port source s’incrémente de 0x100 Le numéro de séquence s’incrémente de 0x1000000 Les données sont nulles
48
Définition des caractéristiques : bilan@ démon : a.b.c.d
ATTAQUE OUTIL
Variables Entête IPProtocole transporté
Data Bou.TCP
Durée taille V+Long TOS LongTot Ident. Frag.
Off TTL Prot. Chec. @s. @dest. Portsource Port dest. N° seq. N° ack Offset Flags Fenetre Chec. Urg.
TCP SYN
STACH. A C K=45 K=0 MK RK K=0 KI 06 K a.b.c.R K=V RK R++ K RK MK K=02 K K-- RK K x
TFN2K C C K=45 K=0 MK R K=0 RI 06 M R.R.R.(K0) K=V R R R(0RRR) R(RR00) K=0 K=22 R M R K x
TFN C C K=45 K=0 MK R K=0 KI 06 M R.R.R.(KR) K=V R R R R(RR00) MK K=22 K M R K x
TCP ACK MSTREAM C C K=45 K=08 MK R++ K=0 KI 06 M R K=V R++ R R++ K K=50 K=10 K M K=0 K x
UDP
Portsource Port dest. Long Chec
UDP flood
TFN C C K=45 K=0 MK R K=0 KI 11 M R K=V Pn-1 -1 Pn+1 +1 MK K=0 K
TFN2K C C K=45 K=0 MK R K=0 KI 11 M R K=V Pn-1 -1 Pn+1 +1 MK K=0 K
STACH. A A K=45 K=0 MK K K=0 RI 11 M K=a.b.c.R K=V --R Pn-1 +1 MK K=0 K
TRINOO A A K=45 K=0 MK K K KI 11 K K=a.b.c.d K=V K R K MK K
ICMP
Type Code Chec Id N° seq
ICMP echo
TFN C C K=45 K=0 MK Id_P_Actif(K) K=0 I 01 M R K=V K=08 K=0 K=f7ff K=0 K=0
TFN2K C C K=45 K=0 MK Id_P_Actif(K) K=0 I 01 M R.R.R.0 K=V K=08 K=0 K=f7ff K=0 K=0
STACH. A A K=45 K=0 MK Id_P_Actif(K) K=0 I 01 M K=a.b.c.R K=V K=08 K=0 K=f7ff K=0 K=0
TARGA3 K=45 - - - - - RR - R.R.R.0 - - - - - - - - - - - -
A : gérée parl’Attaquant
C : gérée par leprogramme
M : valeurcalculée
I :incrémentée par routeur
R : valeuraléatoire
K :valeurconstante
V : Victime
Constante Constante par session (Incré/decré)mentation
Calculée non constante Partiellement constante Aléatoire
K
K
K
49
IntroductionIntroductionLes attaquesLes attaques DoS DoSLes outils Les outils DDoSDDoSAnalyse des outilsAnalyse des outilsLe Script de dLe Script de d__tectiontectionConclusionConclusion
50
Exemple sur UDP (1)
24 derniersoctets3 -> octets2 premiers
octets
variables
constantvictimex.x.x.0TFN2K
constantvictimea.b.c.xStacheldraht
constantvariablesvictimex.x.x.xTFN
constantvictimea.b.c.dTrinoo
Données
@Destination
@SourceOutil
51
Exemple sur UDP(2)
Après l’analyse des flux UDP: Trinoo, TFN, TFN2K, Stacheldraht
Recherche des invariants et calcul de signature Protocole (P) Une partie des données (D)
Suppression des 2 premiers octets <- TFN Suppression des 24 derniers <- Stacheldraht
h0 = h(P,D) Permet de détecter un DDoS si grand nombre de paquets
similaires Ensemble de signatures connues (outils non modifiés)
24derniersoctets
3 ->octets
2 premiersoctets
variables
constantvictimex.x.x.0TFN2K
constantvictimea.b.c.xStacheldraht
constantvariablesvictimex.x.x.xTFN
constantvictimea.b.c.dTrinoo
Données@
Destination
@Source
Outil
52
Calcul de signature
Hachage ( md5sum)
Données 1 taille t1 Résumé 1 taille t
Données 3 taille t3
Données 4 taille t4
Données 2 taille t2
Données 5 taille t5
Résumé 2 taille t
Résumé 3 taille t
Résumé 4 taille t
Résumé 5 taille t
Comparaison desdonnées difficile
Comparaison desdonnées facile
Signatures
53
Exemple sur UDP(2)
Après l’analyse des flux UDP: Trinoo, TFN, TFN2K, Stacheldraht
Recherche des invariants et calcul de signature Protocole (P) Une partie des données (D)
Suppression des 2 premiers octets <- TFN Suppression des 24 derniers <- Stacheldraht
h0 = h(P,D) Permet de détecter un DDoS si grand nombre de paquets
similaires Ensemble de signatures connues (outils non modifiés)
24derniersoctets
3 ->octets
2 premiersoctets
variables
constantvictimex.x.x.0TFN2K
constantvictimea.b.c.xStacheldraht
constantvariablesvictimex.x.x.xTFN
constantvictimea.b.c.dTrinoo
Données@
Destination
@Source
Outil
54
Exemple sur UDP (3)
Autres invariants Adresse destination -> victime (V)
h1 = h(P,D,V)
Permet de détecter un DDoS vers une victime si grandnombre de paquets similaires
Doit être corrélé avec h0 pour connaître le type du DDoS h2 = h(P,D,V,a.b.c.d)
Caractérise Trinoo non modifié h3 = h(P,D,V,a.b.c.X)
Caractérise Stacheldraht et un mode usurpé de TFN nonmodifiés
sinon TFN2K non modifié (X.X.X.0) ou TFN (X.X.X.X)
24derniersoctets
3 ->octets
2 premiersoctets
variables
constantvictimex.x.x.0TFN2K
constantvictimea.b.c.xStacheldraht
constantvariablesvictimex.x.x.xTFN
constantvictimea.b.c.dTrinoo
Données@
Destination
@Source
Outil
55
Exemple sur UDP (4)
Peut Peut êêtre tre DDoS DDoS ??
CC’’est une attaque est une attaque DDoSDDoS
TrinooTrinoo
StacheldrahtStacheldraht
TFNTFN
TFN2KTFN2K
h1 = h(P,D,V)
h0 = h(P,D)
h2 = h(P,D,V,a.b.c.d)
h4 = h(P,D,V,x.x.x.0)
h3 = h(P,D,V,a.b.c.x)
h5 = h(P,D,V,x.x.x.x)
24derniersoctets
3 ->octets
2premiersoctets
variables
constantvictimex.x.x.0TFN2K
constantvictimea.b.c.xStacheldraht
constantvariablesvictimex.x.x.xTFN
constantvictimea.b.c.dTrinoo
Données@
Destination
@Source
Outil
56
Conclusion
Détection: nouvelle méthode pour détecter les DDoS, quine se base pas sur les champs variables: Atout desattaquants.
Présentation faite à France Telecom qui a validé leconcept.
Utilisation de notre travail pour mettre en place unesonde performante: Implémentation en langage C.