Analyse et détection des attaques DDoS Etat de l’art et ... · PDF fileSolution:...

57
Analyse et détection des attaques DDoS Etat de l’art et proposition Jamel Ksiksi, Mohamed El Khattibi, Yacine Bouzida, Sylvain Gombault

Transcript of Analyse et détection des attaques DDoS Etat de l’art et ... · PDF fileSolution:...

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.

57

Q U E S T I O N S ?