Vous êtes sur la page 1sur 33

Protection contre les attaques

de dni de service dans les


rseaux IP

Rfrant : Osman SALEM


HOTTE Marion
LUTUN Quentin-Edouard
ASCOET Thomas

SOMMAIRE
Introduction
I.

Historique

II.

Algorithmes dattaques existants


A.

Diffrentes attaques
1. Attaques du type DoS
2. Attaques du type DDoS
3. ARP Spoofing / ARP Poisoning

B.
C.
D.
E.
F.

SYN Flooding
UDP Flooding
Attaque par fragmentation
Ping of death
Smurffing

III. Logiciels et algorithmes de dfense


A.

B.
C.
D.

IDS / IPS
1. Les IDS
2. Les IPS
3. SYN Cookie / SYN Cache / SYN Proxy
NETFILTER
CUSUM
ALGORITHME ADAPTATIF DE SEUIL

IV. Conclusion
V.

Index

Introduction
Dfinition Dos, DDoS : attaque dun pirate, sur un serveur informatique, de faon
lempcher doffrir le service pour lequel il est destin.
Qui, o, support : les victimes du dni de service ne sont pas uniquement celles qui le
subissent, les postes compromis (daemons et masters) et les postes clients qui narrivent pas
accder aux services dsirs sont galement les victimes des pirates qui effectuent le DoS. De
nos jours, le piratage peut tre acquis aisment, lattaquant peut donc tre un utilisateur
lambda tant que son poste est reli au rseau mondial.
Pourquoi (but) : but principal : que laccs au serveur dune entreprise devienne impossible
aux clients, le but ntant pas daltrer les donnes contenues et changes ni de voler des
informations, mais plutt de nuire la rputation de lentreprise en empchant laccs aux
divers services fournis aux clients en provoquant un ralentissement significatif ou une
saturation du systme voire le crash du systme. A lorigine, les pirates ntaient intresss
que par la renomme davoir russit faire tomber un rseau. Aujourdhui, la raison de ces
attaques est le chantage, en effet ces criminels sont principalement motivs par largent.
Deux types de DoS :
Deni de service par saturation : submerger une machine dun grand nombre de
requte afin quelle ne soit plus apte rpondre aux demandes des clients.
Deni de service par exploitation de vulnrabilits : exploiter une faille du
systme dans le but de le rendre inutilisable.
Comment (principe) : envoyer une trs grande quantit de paquets, dont la taille est
relativement importante, en mme temps, voire sur une longue priode.
Le principe du Distributed Denial of Service (DDoS) consiste utiliser une grande quantit de
postes Zombies , pralablement infectes par des backdoors ou troyens , dans
lintention de paralyser la rponse du serveur attaqu. Les matres sont eux-mmes relis aux
postes daemons . Le pirate se sert des postes matres pour contrler les postes daemons qui
effectueront lattaque, sans cela, le pirate devrait se connecter lui-mme chaque daemons ce
qui serait plus long mettre en place, et plus facilement reprable.
Pour utiliser les masters et daemons, il est ncessaire dexploiter des failles connues (FTP).
Le pirate se connecte aux masters en TCP pour prparer lattaque, ces derniers envoient les
commandes aux daemons en UDP.

I.

Historique

Les attaques par dni de service ont commenc dans les annes 1980, ce nest quen Aout
1992 quaurait eu lieu la premire attaque de dni de service distribu dirige contre les
serveurs de lUniversit du Minnesota, la suite de quoi laccs Internet de lUniversit est
rest bloqu pendant plus de 2 jours.
Historique des attaques de dni de service :
En dcembre 1996 a eu lieu l'attaque Ping de la mort (Ping Of Death).
En juillet 1997, a eu lieu l'attaque Smurf qui, grce un serveur de diffusion ( broadcast ),
duplique et envoie sur lensemble du rseau le message quil aura reu de la machine
attaquante. Par la suite, les machines du rseau rpondent au serveur de diffusion qui
redirigera ces rponses sur la machine cible.

Cette attaque fut suivie par lattaque WinNuke qui provoquait un blue screen ou un
reboot sur les postes Windows 95 et NT.
En octobre de la mme anne a eu lieu l'attaque Land dont le principe est lusurpation
dadresse IP dans le but dexploiter une faille du protocole TCP/IP dans les systmes viss.
Cette attaque consiste donc envoyer dans les champs sources et destination des paquets IP
exactement la mme adresse et le mme numro de port ce qui avait pour consquence de
dstabiliser ou de faire tomber les systmes vulnrables tels que les systmes Windows 95,
98, NT 4.O, FreeBSD etc ...

Enfin, en dcembre 1997, a t applique lattaque Teardrop / Overdrop dont le principe est
dexploiter la fragmentation effectue par le protocole IP (fragmentation des paquets, de taille
trop importante, en plus petits paquets possdant tous un numro didentification et de
squence, la rception, ils sont rassembls grce aux valeurs de dcalage). On insre dans
les paquets fragments de fausses informations de dcalage qui, lors du rassemblage
provoquaient des vides ou recoupements qui avaient pour consquence une instabilit sur les
stations Linux, Windows NT et 95.
En janvier 1998, l'attaque Bonk/Boink qui visait les stations Windows 95 et NT 4.0. Le
principe est dmettre une grande quantit de paquets UDP corrompus provoquant des
blocages ou des plantages du systme d'exploitation qui a t vis, suivie par l'attaque Fraggle
qui inondait la cible de paquets UDP en utilisant une variante amplifie de lattaque Smurf.
Suivit en juin 1998 de lattaque Syndrop base sur le Teardrop en TCP avec le bit SYN et
possdant des champs invalides tels que le numro de squence par exemple. L'impact de
cette attaque est le blocage les postes Windows NT4 SP3 par un Freeze (gls, blocage).
Le lundi 21 octobre 2002, une attaque de type Ping Flood bloque 9 des 13 serveurs DNS qui
ont pour but le routage des requtes de rsolution de nom de domaine, rendant ainsi
impossible laccs leurs ressources pendant trois heures. Les pirates ont pu grce un parc
important de machines de gnrer un nombre de requtes entre deux et trois fois suprieur la
capacit des treize serveurs viss.
Historique des attaques de dni de service distribu :
La premire attaque DDOS qui fut mdiatise dans la presse sest produite le 7 fvrier 2000
contre Yahoo! Lattaque a empch laccs son portail Internet pendant trois heures. Durant
ces heures Yahoo aurait subi une perte denviron 500 00$.
Le lendemain, ce sont Amazon.com, Buy.com, CNN et eBay ont t attaqus au moyen du
dni de service distribu provoquant ainsi soit l'arrt total, soit un fort ralentissement du
fonctionnement de leur serveur. Sur les dix heures pendant lesquelles lattaque a dur,
Amazone aurait subi une perte de 600 000$, eBay est pass de 100 9.4% de disponibilit et
CNN en dessous de 5% de la capacit habituelle. Le 9 fvrier suivant, E Trade et ZDNet ont
leur tour t victimes de ce type dattaques dont la consquence fut linaccessibilit de leur
portail.
En septembre 2001, un virus nomm Code Red infecte des milliers de systmes, suivit par une
seconde version, Code Red II, qui installait un agent effectuant le DDOS. Il paratrait que
cette attaque aurait t lance contre la Maison Blanche, cette dernire a, par la suite annonce
que les mesures ncessaires la scurit seraient entreprises.
Ds l't de lanne suivante, c'est Internet qui subit une attaque DDOS l'encontre de ses 13
serveurs racines. Cette attaque na dur qu'une heure mais elle aurait pu paralyser la totalit
du rseau Internet.
En septembre 2002 est apparue la premire version de Slapper qui, en seulement deux
semaines, a contamin plus de 13 000 serveurs Linux. Slapper utilise une faille de scurit
prsente dans le module OpenSSL1, et y transfert un agent DDOS.
Le 25 janvier 2003, le ver SQL Slammer infecte des serveurs de bases de donnes MySQL de
Microsoft qui taient alors mal configurs. Seuls 4 des 13 serveurs racines ont t affects ne
provoquant quune rduction de 15% de la performance globale du rseau.
3

Algorithmes dattaques existants

II.

De trs nombreuses mthodes permettent darriver un DoS :


-

Le SYN Flood consiste saturer un serveur en envoyant un grand nombre de paquets


TCP avec le flag SYN arm.
LUDP Flood consiste saturer le trafic rseau en envoyant le plus grand nombre de
paquets UDP une machine.
Le ping of death utilise aussi une faiblesse de certaines piles TCP/IP lors de la gestion
de paquets ICMP trop volumineux.
Le smurfing est aussi une attaque base sur le protocole ICMP.
Les bombes e-mail consistent envoyer sur le rseau des mails trop volumineux.

Nous allons voir plus en dtail, comment fonctionnent les diffrentes attaques proposes cidessous.

A.

Diffrentes attaques

Contexte :
La ralisation d'un dni de service n'est pas trs complique, mais pas moins efficace. Nous
avons vu prcdemment que la plupart du temps, elles sont ralises avec succs car la plupart
des dnis de service exploitent des failles lies au protocole TCP/IP. Les contre-mesures sont
compliques mettre en place, dautant plus que ce type dattaque utilise les services et
protocoles normaux d'Internet. La seule faon de sen protger est de dtecter les
comportements anormaux, ce qui implique notamment la vrification de l'intgrit des
paquets, la surveillance du trafic, ltablissement de profils types et de seuils. Commenons
tout dabord par comprendre comment fonctionnent ces attaques afin de mieux les dtecter ou
de les contrer. Il existe de nombreux outils pour raliser des attaques du type DoS et DDoS.
La plupart dentre eux sont conus pour fonctionner avec les systmes d'exploitation Unix et
Linux, mais de plus en plus sont dvelopps sous les systmes Windows.

1. Attaques du type DoS


Logiciel
Hping
Slowloris, NKiller
LetDown
Sockstress

Type dattaques
UDP/TCP/ICMP flooding, Smurf
SYN-Flood over HTTP
TCP/TCP SYN flooding
TCP Session flooding

Pour simuler les attaques du type Dni de Service, nous utiliserons loutil Hping . Celui-ci
permet de raliser l'envoi de paquets via les protocoles TCP, UDP ou ICMP en modifiant
leurs en-ttes. Il est disponible sous Unix, Linux, MacOS X et Windows.

Fonctionnement :

Dans ce type dattaque, le hacker lance seul son attaque contre la victime. La plupart du
temps, le hacker cache son identit rseau (adresse IP et ports UDP/TCP) en se faisant passer
pour une, voire plusieurs autres machines (IP Spoofing). Ainsi, il ne peut pas tre reconnu par
la victime. L'IP Spoofing peut tre galement utilis pour faire du DNS Spoofing.
Utilisation de loutil Hping :
Attaque du type SYN FLOOD :
# hping S i u10 p 80 a @IP_MACHINE_USURPEE @IP_MACHINE_CIBLE
Largument S demande le positionnement du flag. Le second argument i prcise
lintervalle entre deux envois (ici en micro secondes). Le troisime p spcifie le port
destination. Le quatrime a dsigne une adresse source. Le dernier, enfin, donne ladresse
destination.
Attaque du type PING FLOOD (ICMP FLOODING) :
# hping -1 i u10 @IP_MACHINE_CIBLE
Largument -1 prcise que les paquets se font en ICMP, ceux-ci sont par dfaut des echo
request .
Attaque du type SMURFING :
# hping -1 i u10 a @ IP_MACHINE_CIBLE @IP_BROADCAST
Avantages : Il permet de gnrer des paquets TCP, UDP, ICMP et Raw IP contrairement
l'utilitaire ping(8) d'Unix, qui ne permet lui que d'envoyer des paquets ICMP. Hping est
principalement utilis comme un outil de scurit, mais il peut tre utilis sous diverses
formes comme :
-

Test de firewall et du rseau


Traceroute avanc
Outil d'illustration, lors d'une formation TCP/IP
5

Inconvnients :
Les attaques ne proviennent que dune seule machine, de ce faite les attaques du type PING
Flood (ICMP flooding) ralentissent la machine mais pas suffisamment pour l'empcher
d'mettre les RST qui mettent fin la connexion (la connexion est rinitialise).

2. Attaques du type DDoS


Type dattaques
UDP flooding
UDP/TCP/TCP SYN flooding, Smurf
UDP/TCP/TCP SYN flooding, Smurf
UDP/TCP/ICMP flooding
ACK flooding

Logiciel
Trinoo
Tribe Flood Network (TFN) et TFN2k
Stacheldraht
Schaft
MStreamT

Compte tenu des performances actuelles des serveurs et de la gnralisation des techniques de
rpartition de charge et de haute disponibilit, il devient de plus en plus difficile de raliser
une simple attaque DoS. De ce fait, les attaques du type Dni de service distribu sont de plus
en plus prises par les pirates informatiques car elles permettent de dcupler les effets dune
attaque initiale. Malgr tout, elles restent complexes mettre en uvre. L'efficacit du dni de
service tant lie au nombre de machines compromises, de telles attaques ncessitent donc au
pralable une phase de corruption de machines sur Internet, afin dy installer des agents, et de
pouvoir plus tard utiliser cette arme dattaquants.
Fonctionnement :

Larchitecture ci-dessus comporte 4 types d'htes diffrents : le(s) client(s) (Hacker), le(s)
serveur(s) (Master), les agents (Zombies) et enfin la cible (Victime). Le client, utilis par
l'attaquant, contrle un ou plusieurs Serveurs, lesquels communiquent avec les Agents
chargs de la mise en uvre du dni de service. Pour viter que les Agents et les Serveurs ne
puissent tre utiliss par autrui (administrateur lgitime de l'hte, autres pirates) toutes les
commandes vers ces programmes ncessitent des mots de passe ou des informations
supplmentaires. De plus, afin dviter le blocage des commandes par un outil de dtection ou
de filtrage, les communications peuvent tre cryptes.
Nous utiliserons loutil Stacheldraht (fil de fer barbel en allemand), c'est un outil
partiellement bas sur TFN (dont il reprend le code de l'Agent) mais qui a comme
caractristique de chiffrer toutes ses communications TCP. De plus, il comporte des
instructions de compilation pour Linux et Solaris.
61111/tcp
65512/tcp et echo_reply/icmp
Ou 65512/tcp
ou 65513/tcp
Client --------------> Serveur -----------------------------> Agent
<----------------------------echo_reply/icmp
L'Agent, lorsqu'il dmarre, cherche contacter un certain nombre de serveurs sur le port TCP
65512 ou 65513 en envoyant un message ICMP echo_reply en clair avec comme identifiant
666 en dcimal et skillz dans le champ de donnes. Si un Serveur est l'coute, il
rpond par un echo_reply avec un identifiant 667 et ficken en donnes. L'Agent
procde alors un test pour savoir sil peut mettre des adresses sources compltement
alatoire en envoyant vers un Serveur un paquet ICMP echo_reply d'adresse source 3.3.3.3
avec son adresse relle dans les donnes (identifiant 666). Si le message arrive au Serveur, il
rpond via echo_reply avec un identifiant 1000 et spoofworks (l'usurpation
fonctionne !) dans les donnes. En cas de succs, l'Agent fabriquera des adresses sources
quelconques, sinon il se limitera modifier l'octet de poids le plus faible (ce qui permet au
moins la cible d'identifier le rseau ou sous-rseau metteur). Le Serveur stocke les Agents
identifis dans un fichier .bc chiffr l'aide de l'algorithme symtrique BlowFish. De
mme, les Agents possdent un fichier avec une liste de Serveurs (.ms par dfaut) chiffr avec
BlowFish ou bien se rfrent 2 Serveurs par dfaut cods dans le binaire.
Le Client se connecte sur le port TCP 61111 ou 65512 d'un Serveur, s'authentifie avec un mot
de passe et peut alors envoyer un certain nombre de commandes pouvant tre transmises aux
Agents via echo_reply/icmp (la commande est un code dans l'identifiant) :
-

gestion de la liste de Serveurs des Agents (ajout, retrait) ;

liste des Agents prsents et morts aprs un test de la connexion TCP ;

changement de la taille, des ports cibles, pour les paquets d'attaque ;

attaques par saturation de requtes UDP, TCP, ICMP sur plusieurs adresses ;

ouverture d'un shell distant sur un port donn par les htes des Agents ;

mise jour de chaque Agent en utilisant le programme rcp sur la machine hte.

Chaque Agent a la possibilit de crer un certain nombre de processus fils (1 par dfaut et 15
maximums) pour attaquer squentiellement l'ensemble des cibles.
Pour plus dinformations, cf. stacheldraht.analysis de D. Dittrich.
7

Utilisation de loutil Stacheldraht :


Dmarrage du Serveur(MASTER) :
#
[*]-stacheldraht-[*]
1 bcasts were successfully read in.

forking

in

the

./mserv
background...

Dmarrage de lAgent :
# ./td
Connexion au Serveur(MASTER) :
./client @IP_MASTER
[*] stacheldraht [*]
(c) in 1999 by ...
trying to connect...
connection established.
-------------------------------------enter the passphrase : sicken
-------------------------------------entering interactive session.
******************************
welcome to stacheldraht
******************************
type .help if you are lame
stacheldraht(status: a!1 d!0)>
Si lauthentification avec le Serveur russi, on accde alors linvite de commandes de ce
dernier qui indique certaines informations comme le nombre d'agents qui sont censs tre
actifs ("a!") et inactifs ("d!"). On peut dsormais envoyer un certain nombre de commandes
d'administration (liste des Agents identifis et vrification qu'ils sont actifs, arrt des Agents,
...), ou encore demander un dni de service sur une ou plusieurs adresses IP.
Quelques commandes utiles :
.help : Liste toutes les commandes.
.mtimer : Dfinit la dure de lattaque (en seconde).
.micmp : Lancer une attaque du type ICMP FLOODING.
.msyn : Lancer une attaque du type SYN FLOODING.
.mudp : Lancer une attaque du type UDP FLOODING.
.mack : Lancer une attaque du type TCP ACK FLOODING.
.msmurf : Lancer une attaque du type SMURF.
.mudns : Lancer une attaque du type UDP FLOODING sur le port 53 (DNS).
.mlist : Liste les machines infectes par le DoS.
.mstop all : Stop toutes les attaques en cours.
Exemple :
.micmp 192.168.0.1 : Lance une attaque DoS du type ICMP FLOODING vers la machine
cible 192.168.0.1 .

Avantages :
-

Effet multiplicateur par rapport lattaque DoS initiale.

Possibilit de lancer une attaque massive de dni de service, coordonne, par les
machines infectes contre un ou plusieurs sites.

Saturation de la bande passante du rseau en Amont.

Avec le support dauthentification et de cryptage BlowFish, il est impossible de


dtecter les commandes passes, de cette manire le maitre est quasi-indtectable.

Inconvnient :
La mise en place est beaucoup plus complexe, elle ncessite au pralable une phase de
corruption de machines sur Internet afin dy installer des agents.

3. ARP Spoofing / ARP Poisoning


Comme nous l'avons dit prcdemment, un pirate masque gnralement son identit en
falsifiant l'adresse IP source des paquets qu'il envoie. Il doit galement s'assurer qu'il n'y aura
pas de rponse de la part de la machine qui on a usurpe l'adresse IP. En effet, si une
machine dont l'IP a t usurpe venait recevoir les SYN-ACK provenant de la victime, cest
dire des paquets inattendus, elle y rpondrait par un RST, ce qui mettrait fin la connexion
en attente et librerait les ressources (empchant donc l'attaque de se raliser correctement).
Ainsi un message RST est plus rapide qu'une ngociation de fin de connexion.
Pour s'en assurer, on peut lancer une attaque du type SYN FLOODING pour inonder la
machine cible avec une norme quantit de SYN, tout en sachant que la machine usurpe est
toujours active sur le rseau. Ainsi, on remarque que quelque soit le nombre de SYN envoy,
la cible parvient toujours traiter les RST reus et donc librer les ressources, ce qui prouve
en effet qu'il faut rduire au silence la machine usurpe pour qu'elle n'envoie aucun RST. La
solution idale serait bien entendu de dconnecter la machine du rseau, mais il est bien
vident qu'un pirate ne dispose gnralement pas d'un accs physique la machine. Les
attaques du type PING FLOOD, cest dire l'envoi massif de requtes ICMP pour saturer la
machine ou encore le SMURFING, technique proche de la prcdente, mise part qu'elle met
en jeu toutes les machines du rseau contre la machine usurpe, peuvent permettre dune
certaine faon la mise hors service. Malheureusement, ces attaques ralentissent la machine
mais pas suffisamment pour l'empcher d'mettre les RST. Le but recherch tant de
surcharger au point de mettre hors service la machine. Cest l quintervient la technique de
lARP Spoofing ou ARP Poisoning (empoisonnement de cache ARP), utilisant le protocole de
rsolution d'adresse ARP. Elle va permettre l'attaquant de dtourner des flux de
communication transitant sur un rseau local commut, lui permettant de les couter, de les
corrompre, mais aussi d'usurper une adresse IP ou de bloquer du trafic. Il sagira donc ici
dempoisonner le cache ARP de la machine cible en attribuant une adresse mac invalide
l'adresse IP de la machine usurpe. Lorsque la cible envoie des paquets SYN-ACK, elle les
envoie vers une adresse mac inexistante, et donc aucune machine ne peut rpondre avec un
paquet RST et mettre fin la connexion semi-ouverte. Pour envoyer des paquets ARP reply
interval rgulier, on pourra utiliser loutil send_arp , qui est un simple programme
disponible sous Linux. Il envoie sur le rseau un paquet ARP paramtrable :
send_arp src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr
9

Exemple:
send_arp 192.168.0.1 00:e2:20:03:3f:d5 192.168.0.12 00:e0:30:9e:08:9a
Il devient donc trs simple de rajouter une boucle afin qu'il envoie un tel paquet interval
rgulier.
Il existe galement dautres alternatives au programme send_arp comme Dsniff ou
encore Ettercap qui constituent une suite doutils destine raliser l'audit d'un rseau et
divers tests de pntration et qui permettent entre autres de mettre en pratique lARP Spoofing
/ ARP Poisoning.
Malgr tout, cette attaque est trs limite car elle se restreint au rseau local de la cible.

B.

SYN Flooding

Principe :
Cette attaque utilise une faiblesse du protocole TCP en se basant sur l'envoi massif de
demande d'ouverture de session SYN. L'objectif tant de saturer le nombre maximum de
sessions TCP en cours. Ainsi, lorsque cette limite est atteinte, la cible ne pourra plus tablir
aucune session TCP causant une indisponibilit de toutes ces applications en coute de port
TCP.
Fonctionnement gnral :

Remarque :
-

Les numros de squence initiaux x et y sont choisis alatoirement.


Un timer est dclanch aprs lenvoi dun SYN.
Si une rponse tarde trop arriver (>75s), la connexion est abandonne.

Se protger :
-

une bonne configuration des firewalls permet de dtecter/limiter ce type dattaque. Par
exemple, on peut limiter le nombre de connexions TCP par seconde.
10

Fonctionnement :

Les SynCookies reprsentent une solution technique relativement efficace prsente dans le
chapitre III, A. 3

C.

UDP Flooding

Principe :
Cette attaque exploite le mode non connect du protocole UDP. Elle consiste gnrer une
grande quantit de paquets UDP soit destination dune machine soit entre deux machines
(Ex : Chargen Denial of Service Attack).
Consquences :
-

DoS : congestion du rseau et saturation des ressources des deux htes victimes ;
Congestion gnralement plus importante quavec le TCP Flooding car lUDP ne
possde pas de mcanisme de contrle de congestion ;
Les paquets UDP sont prioritaires sur les paquets TCP ;
La totalit de la bande passante peut tre sature : effondrement de la totalit du
rseau.

Se protger :
-

Configurer les firewalls pour limiter le trafic UDP.


Dsactiver si possible certains services comme echo et chargen.

11

Rappel sur UDP :


-

Cest un protocole de la couche transport.


Cest un service sans connexion et non fiable : les paquets UDP peuvent se doubler ou
se perdre.
Aucun service supplmentaire nest ajout par rapport IP.

En-tte dun paquet UDP :

Faiblesse dUDP :
-

Aucun champ nest chiffr dans une en-tte UDP


Il ny a pas de service dauthentification

Fonctionnement dUDP Flooding :

12

D.

Attaque par fragmentation

Principe :
Les dnis de service de type Packet Fragment utilisent des faiblesses dans limplmentation
de certaines piles TCP/IP au niveau de la dfragmentation IP (rassemblage des fragments
IP). Une des attaques les plus connues utilisant ce principe est le Teardrop.
Consquences :
Certains cas de rassemblage non prvus entranent un crash de la machine et donc un dni de
service.
Se protger :
Installer si possible une implmentation de la pile TCP/IP rsistant cette faille.
Fonctionnement :

L'astuce est de modifier les numros de squence


afin de gnrer des blancs ou des recouvrements
lors du rassemblage par la pile IP cible.
Aujourd'hui, comme pour le ping de la mort, cette
technique n'est plus viable du fait que les piles IP
ont toutes volues.

13

E.

Pind of death

Cette technique d'attaque est dpasse, mais elle a fait ses preuves l'poque. Elle exploitait
une faiblesse dans l'implmentation de la plupart des piles IP en envoyant un paquet ICMP
d'une taille non conforme (suprieur 64 octets). Ceci avait pour effet de planter directement
la pile IP attaque.
Cependant, comme pour l'attaque par fragmentation, cette technique n'est plus viable du faite
que les piles IP ont toutes volues. Nous pouvons donc discuter en datagramme ICMP de
grande taille sans aucun souci.
L'attaque Ping de la mort est souvent confondue en pensant qu'elle est base sur le fait de
saturer une bande passante en ICMP. Ce n'est pas le cas, car ce principe est appliqu par
l'attaque Ping Flood et non pas par le Ping de la mort.

F.

Smurffing

Principe : Cette attaque utilise


-

Le protocole ICMP,
De lIP spoofing,
Parfois le broadcast.

Consquences :
-

Denis de service (dans le cas de smurfing par exemple).


Interception de paquets.

Se protger :
-

Configurer les firewalls pour limiter le trafic ICMP par seconde ;


Configurer les firewalls pour bloquer les ping ;
Interdire le broadcast.

14

Fonctionnement :

Quelques types derreur :


-

type 8 (Echo Request) : test si la machine cible est oprationnelle


type 0 (Echo Reply) : en rponse au paquet ICMP de type 8
type 11 (Time Exceeded) : exploit par traceroute

Les messages ICMP Time exceeded ou Destination unreachable peuvent forcer un


ordinateur casser ses connexions en cours (celles concernes par le message). Si un
attaquant envoie de manire rpte de faux messages de ce type, il peut causer un DoS.
Les messages ICMP "Redirect" (normalement utiliss par les routeurs) permettent de
dtourner un flux de donnes en spcifiant la route que doit emprunter les paquets. Deux
restrictions : lattaquant doit tre sur le mme rseau local, et dautre part, une connexion
entre lattaquant et la victime doit dj exister.

15

III. Logiciels et algorithmes de dfense


Nous avons vu prcdemment quil tait important de se protger contre des attaques toujours
plus massives et efficaces. Il est donc important de bien configurer notre firewall et de
comprendre comment le hacker effectue ses attaques. Voici plusieurs logiciels et algorithmes
permettant de dtecter les intrusions.

Qu'est-ce qu'un pare-feu?


Un pare-feu (appel aussi coupe-feu ou firewall en anglais), est un systme permettant de
protger un ordinateur ou un rseau d'ordinateurs des intrusions provenant d'un rseau tiers
(notamment internet). Le pare-feu est un systme permettant de filtrer les paquets de donnes
changs avec le rseau, il s'agit ainsi d'une passerelle filtrante comportant les interfaces
rseau suivante :
une interface pour le rseau protger (rseau interne) ;
une interface pour le rseau externe.

Le systme firewall est un systme logiciel, reposant parfois sur un matriel rseau ddi,
constituant un intermdiaire entre le rseau local (ou la machine locale) et un ou plusieurs
rseaux externes. Il est possible de mettre un systme pare-feu sur n'importe quelle machine et
avec n'importe quel systme pourvu que :
La machine soit suffisamment puissante pour traiter le trafic ;
Le systme soit scuris ;
Aucun autre service autre que le service de filtrage de paquets ne fonctionne sur le
serveur.

16

A.

IDS / IPS

Contexte :
Nous avons vu prcdemment quil tait trs simple de mettre en uvre une attaque du type
Dni de Service ou encore de faon Distribue sans avoir de relles connaissances techniques
sur les protocoles rseau et en programmation puisque des outils prts lemploi existent. Il
est tout de mme trs difficile de lutter contre ce type dattaque, compte tenu de la complexit
de la mise en uvre de moyens pour la distinguer du trafic lgitime. Le seul moyen de sen
prmunir consisterait donc agir en amont, en implmentant des techniques de prvention,
dtection, traage et suppression des attaques dans le rseau. Il faut rappeler que la slection
dune technique de prvention dpend des contraintes techniques provenant du rseau
existant, du type de client et du type dattaque que lon souhaite prvenir.
Prvention contre les Dni de Service de type Applicatifs :
Pour rappel, ce genre dattaque vise exploiter les vulnrabilits dune application comme
par exemple les dpassements de tampon (Buffer Overflow) ou encore la saturation de
ressources CPU. Il exploite les faiblesses de la conception dun protocole ou de son
implmentation, il est donc ncessaire pour viter ce genre dattaque de mettre jour le
systme rgulirement pour corriger les ventuelles failles logicielles ou systmes. Mais le
problme majeur qui se pose est souvent celui de la mauvaise configuration des services par
ladministrateur qui constitue la principale cause des dnis de service applicatifs. En effet,
malheureusement lerreur est humaine et il est difficile de penser tout pour mettre en place
une configuration bien scurise.
Un moyen efficace de se protger des attaques du type Dni de Service est dutiliser un
systme de danalyse et de dtection dintrusion IDS (Intrusion Detection System) ainsi quun
systme de prvention IPS (Intrusion Protection System).

1. Les IDS
Les systmes de dtection dintrusion (ou encore IDS) permettent de dtecter de manire
furtive les activits anormales ou suspectes et permettent ainsi d'avoir une action de
prvention sur les risques d'intrusion en coutant le trafic rseau.
Il existe trois grands types dIDS bien distincts :
-

Les NIDS (Network Based Intrusion Detection System).


Les HIDS (HostBased Intrusion Detection System).
Les IDS hybrides la fois NIDS et HIDS.

a) Les NIDS (Network Based Intrusion Detection System)


Le NIDS analyse et contrle le trafic rseau, cherchant dventuelles traces dattaques en
gnrant des alertes lorsque des paquets suspects sont dtects.

17

Il fonctionne de trois manires diffrentes :

En mode Capture (ou encore Sniffer) qui permet de rcuprer tout le trafic rseau en
temps rel. Il utilise pour cela la bibliothque standard de capture de paquet libpcap.
La bibliothque de capture de paquets Packet Capture Library est porte sur
quasiment toutes les plateformes, ce qui permet en gnral aux IDS dtre compatible
sur toutes les plates formes. Par exemple, sous Linux, le fonctionnement de la capture
d'un NIDS est de copier tout paquet arrivant au niveau de la couche liaison de donnes
du systme d'exploitation. Une fois ce paquet copi, il lui est appliqu un filtre BPF
(Berkley Packet Filter), ncessaire l'affinage de ce que l'IDS cherche rcuprer
comme information. Il est aussi noter que le trafic analys n'est pas forcment gal
celui du trafic entrant, tant donn que la libpcap agit une couche en dessous du
pare-feu (qui agit au niveau rseau).

En mode Analyse dont on distingue deux approches complmentaires :

1. Lanalyse par Signatures qui permet de la mme manire quun Antivirus de


rechercher des formes dvnements caractrisant une attaque partir de bibliothques
de signatures : Exemple: /bin/sh vers un serveur web.
Avantages :
- Trs puissant pour reconnatre une attaque sans gnrer un trop grand nombre de fauxpositifs.
- Diagnostique rapidement lutilisation dune technique dattaque.
Inconvnients :
- Impossibilit de dtecter des attaques non connues ou rcentes Mise jour
constante !
- Problme dvasion.
2. Lanalyse Comportementales qui permet de rechercher des formes dvnements lis
des activits anormales : Exemple: Un stagiaire utilise des outils de hack sur le rseau
de la socit.
Avantages :
- Dtection danomalies permettant de dtecter un comportement non attendu.
- Dtection des symptmes dune attaque avant lapplication de lattaque elle-mme.
Inconvnients :
- Quantit importante de fausses alertes.
- Phase dapprentissage trs fastidieuse pour caractriser un comportement anormal.
- En mode Alertes (ou encore Gnrateur de Log) qui permet de journaliser les
tentatives dattaques ou dintrusions gnralement stockes dans le gestionnaire de
18

journalisation du systme Syslog. Il est galement possible de formater les alertes sous
la norme IDMEF (pour Intrusion Detection Message Exchange Format) afin de les
rendre compatible avec dautres logiciels de scurit. Ainsi, celles-ci peuvent tre
remontes par email par la plupart des IDS.
Concept NIDS :

NIDS - Emplacement solution n1


- Port span : Le switch fait une copie de tout trafic dun port ou dun vlan vers le port du
NIDS.
Avantages :
- Facilit dinstallation et de configuration.
- Pas de modification de larchitecture existante.
Inconvnients :
- Saturation si contrle de plusieurs ports.

NIDS - Emplacement solution n2


- Hub : Le NIDS coute tout le trafic qui transite par le Hub.
Avantages :
- Facilit dinstallation.
- Aucun matriel supplmentaire.
- Solution peu chre.
Inconvnients :
- Connexion Half duplex.
- Dbit mauvais.

19

NIDS - Emplacement solution n3


- Tap : Similaire au Hub. Spare le flux selon la direction (entrant ou sortant).
Avantages :
- Rsiste aux coupures de courant.
- Pas de changement de topologie.
- Prise en charge de plusieurs ports (12).
Inconvnients:
- Prix.
En Rsum :
Le NIDS permet donc de surveiller tout le flux rseau dune socit sans impacter sur la
charge du rseau. En effet, celui constitue un lment passif du rseau coutant le trafic, ce
qui ne perturbe pas le rseau. De plus, il est mono-tche et apparat invisible aux yeux des
pirates. Malgr tout, il demande des ressources ncessaires importantes notamment aux
niveaux du CPU et de la mmoire en traitant un grand nombre dinformations la fois. De
plus, certains paquets ne seront pas analyss, cest pourquoi on prfrera plutt une solution
Hardware (plus rapide) que Software. Ainsi, les solutions du type VPN et SSL (par exemple),
compliquent lanalyse. En effet le NIDS est incapable danalyser le trafic chiffr. Enfin, il est
galement ncessaire de tenir jour la base de donnes des signatures pour que le NIDS soit
efficace aux attaques.
b) Les HIDS (HostBased Intrusion Detection System)
Les HIDS analyse et contrle des informations contenues sur un quipement prcis (ex: un
serveur). Ainsi, contrairement un NIDS, le HIDS rcupre les informations qui lui sont
donnes par le matriel ou le systme d'exploitation. Il y a pour cela plusieurs approches :
signatures, comportement (statistiques) ou dlimitation du primtre avec un systme d'ACL.
Concept HIDS :

20

Avantages :
- Permet de traiter des vnements locaux au systme quun NIDS ne peut pas voir.
- Peut analyser le trafic chiffr (ex: ssh).
- Pas dimpact sur lutilisation dun rseau switch .
- Permet de dtecter les Rootkit (chevaux de Troie).
Inconvnients :
- Difficult dadministration (exemple avec Tripwire et Aide, fichier de politique
configurer).
- Risque en cas de compromission locale.
- Les attaques de type DoS (Dni de service) et DDoS (dni de service distribu)
peuvent gner lanalyse locale dun HIDS.
- CPU de la sonde = CPU du serveur !
c) Les IDS hybrides la fois NIDS et HIDS

Les IDS hybrides sont bass sur une architecture distribue, o chaque composant unifie son
format d'envoi d'alerte (typiquement IDMEF) permettant des composants divers de
communiquer et d'extraire des alertes plus pertinentes.
Les avantages des IDS hybrides sont multiples :
- Moins de faux positifs
- Meilleure corrlation
- Possibilit de raction sur les analyseurs

2. Les IPS
Les IPS, contrairement aux IDS (scurit passive) classiques, constituent une scurit active
pour filtrer et bloquer les flux, ajoutant cela la dfense proactive et la prvention des
intrusions sur le rseau/hte. Avant toute action, une dcision en temps rel est excute
(lactivit est compare un ensemble de rgles). Si l'action est conforme l'ensemble de
rgles, la permission de lexcuter sera accorde et l'action sera excute. Si l'action est
illgale (c'est--dire si le programme demande des donnes ou veut les changer alors que cette
action ne lui est pas permise), une alarme est donne. Dans la plupart des cas, les autres
dtecteurs du rseau (ou une console centrale) en seront aussi informs dans le but
dempcher les autres ordinateurs d'ouvrir ou d'excuter des fichiers spcifiques. Le
diagramme ci-dessous illustre le fonctionnement dun IPS.

21

Concept IPS :

Fonctionnalits IPS:
- Le comportement de l'application est analys et not (quelles donnes sont
normalement demandes, avec quels programmes elle interagit, quelles ressources
sont requises, etc.).
- Linterception d'appels au systme : avant qu'un appel au systme (rootkit) soit
accept, il doit tre compltement vrifi (par exemple, quel programme a demand
l'appel au systme, sous quelles autorisations d'utilisateur tourne le processus -root...-,
quoi l'appel systme essaie-t-il d'accder, etc.). Cette fonctionnalit permet la
surveillance des essais de modification d'importants fichiers du systme ou de la
configuration.
- Lorsquune attaque est dtecte, lalerte peut aller dune simple entre dans un journal
un blocage de ressources.
- Linteraction avec les quipements rseaux tels que : firewall, IDS, VPN, anti-virus,
anti-spam, etc.
- Dautres fonctionnalits sont possibles, comme la comprhension des rseaux IP
(architecture, protocoles, etc.), la matrise des sondes rseau/analyse des logs, la
dfense des fonctions vitales du rseau, la vitesse d'analyse et un mode stateful
inspection.

22

Limites IPS :
Les principales limites et contraintes des IPS ce jour semblent tre leur mise en place
dlicate, leur administration rebutante, la possibilit de bloquer tout le rseau en cas de fausse
alerte, ainsi que linexistence dun standard actuel. Il est galement capable de stopper des
attaques rseau et applicatives les plus courantes aujourdhui. C'est pour toutes ces raisons,
que les IDS sont beaucoup plus utilises que les IPS, bien que certains IDS soient maintenant
dotes de fonction permettant de ragir et donc dbloquer certaines attaques. Malgr tout,
pour les entreprises, un IPS constitue, un investissement pour la scurit plus judicieux quun
simple IDS.

Les diffrents types IDS/IPS connus :


Voici un lien dun tableau rsumant les diffrents types dIDS/IPS :
Cf. Tableau

A l'origine crit par Martin Roesch, Snort est la solution la plus rpandue pour les parties IDS
et IPS. Cest dune part le fait quil soit libre (publi sous licence GNU GPL) et donc que le
fonctionnement soit accessible au plus grand nombre et d'autre part sa modularit qui permet
tous de participer l'augmentation du nombre de pr-processeurs, de rgles et de modules
de sortie disponibles. Cependant, la recherche de trames qui circulent sur le rseau peut tre
longue et fastidieuse, mais si l'effort est rcompens, cela vaut srement la peine.
Snort fonctionne en 4 modes :
- Sniffer (snort -vde) : Comme tcpdump et WireShark, permettant dcouter le trafic
rseau en des points stratgiques.
- Gnrateur de log (snort -vde -l ./log) : Permettant le dbogage des attaques en cours
ou passes.
- NIDS (Intrusion Detection System) : Dtecteur danomalies permettant de capter des
intrusions (Scurit Passive).
- IPS (Intrusion Prevention System) : Permettant la prvention des intrusions sur le
rseau (Scurit Active) Snort_Inline.
Larchitecture de Snort est compose comme suit :
- Noyau de base : au dmarrage, ce noyau charge un ensemble de rgles, compile,
optimise et classe celles-ci. Durant lexcution, le rle principal du noyau est la
capture de paquets.
- Une srie de pr-processeurs, ceux-ci amliorent les possibilits de SNORT en matire
danalyse et de recomposition du trafic captur. Ils reoivent les paquets directement
capturs, ventuellement les retravaillent puis les fournissent au moteur de recherche
de signatures.

23

Une srie danalyses est ensuite applique aux paquets. Ces analyses se composent
principalement de comparaisons de diffrents champs des headers des protocoles (IP,
ICMP, TCP et UDP) par rapport des valeurs prcises.
Aprs la dtection dintrusion, une srie de output plugins permet de traiter cette
intrusion de plusieurs manires : envoie vers un fichier log, envoie dun message
dalerte vers un serveur Syslog ou encore stocker cette intrusion dans une base de
donnes SQL.

Rglages de Snort :
Tous les paramtres rgler de Snort se trouvent dans le fichier "snort.conf" situ dans le
rpertoire "/etc/snort". Dans ce fichier, une quantit importante d'information est fournie en
commentaire "#" pour permettre l'utilisateur de connatre l'utilit de chaque section, de
chaque variable et tre capable de faire une configuration correcte. Nous allons maintenant
dcrire les sections les plus importantes du fichier snort.conf .
Rglage des variables rseau
La configuration d'un Systme de Dtection d'Intrusion sur un rseau dpend naturellement de
la topologie de ce rseau, de ses plages d'adresses, des serveurs dont il est quip, etc. Par
dfaut, Snort va analyser tous les paquets de toutes les adresses IP du rseau. Ce choix de
rglage se fait en utilisant la variable HOME_NET rgle comme suit : var HOME_NET
any. Si l'utilisateur, ne veut analyser que les paquets de certaines adresses IP, il peut rentrer
des intervalles d'adresses (ex : 192.168.2.0/24), des IP particulires, etc.
#Valeur pour un rseau en 192.168.0.x
var HOME_NET 192.168.0.0/24
#Valeur par dfaut
#var HOME_NET any
#Valeur pour deux rseaux utilisant chacun une classe d'adresse
#var HOME_NET [10.0.0.0/24,192.168.0.0/24]
Choix des rgles
Cette section de "snort.conf" est une suite d' include de fichiers de rgles. En effet, les
rgles pour un certain type d'attaques sont regroupes dans un mme fichier au nom explicite
avec l'extension .rules dans le rpertoire rules , par exemple : attack-responses.rules,
ftp.rules. Pour que Snort utilise un fichier de rgles, il suffit que cette ligne soit sans
commentaire. Pour omettre un fichier de rgles, il faut commenter la ligne avec un #
devant.
#On inclut les fichiers de rgles qui nous intresse
#Personal Rules
include $RULE_PATH/perso.rules
#EmergingThreats Rules
include $RULE_PATH/emerging-attack_response.rules
include $RULE_PATH/emerging-botcc-BLOCK.rules
include $RULE_PATH/emerging-botcc.rules
#include $RULE_PATH/emerging-compromised-BLOCK.rules
#include $RULE_PATH/emerging-compromised.rules
include $RULE_PATH/emerging-dos.rules

24

Dfinition de rgle Snort :


Les rgles de SNORT sont composes de deux parties distinctes : le header et les options.
- Le header permet de spcifier le type dalerte gnrer (alert, log) et dindiquer les
champs de base ncessaires au filtrage : le protocole (TCP, UDP ou ICMP),
l'orientation du trafic auquel la rgle s'applique (Unidirectionnel ou Bidirectionnel)
ainsi que les adresses IP et ports sources et destination.
- Les options, spcifies entre parenthses, permettent daffiner lanalyse, en
dcomposant la signature en diffrentes valeurs observer parmi certains champs du
header ou parmi les donnes.
L'entte de rgle contient l'information qui dfini le "qui, o, et quoi" d'un paquet, ainsi que
quoi faire dans l'vnement o le paquet avec tous les attributs indiqus dans la rgle devrait
se prsenter. Le premier lment dans une rgle est l'action de rgle. L'action de rgle dit
Snort quoi faire quand il trouve un paquet qui correspond aux critres de la rgle. Il y a cinq
actions accessibles par dfaut dans Snort, alert, log, pass, activate, et dynamic.
alert - gnre une alerte en utilisant la mthode d'alerte slectionne, et alors journalise
le paquet
log - journalise le paquet
pass - ignore le paquet
activate - alerte et alors active une autre rgle dynamic
dynamic - reste passive jusqu' tre active par une rgle activate, alors agit comme
une rgle log
Les options de rgle forment le cur du moteur de dtection d'intrusion de Snort, combinant
facilit d'utilisation, puissance et flexibilit. Toutes les options de rgle de Snort sont spares
les unes des autres par un caractre point virgule ";". Les mots cls des options de rgle sont
spars de leurs arguments avec un caractre deux points ":". Ci-dessous les diffrentes
options de rgle disponibles dans Snort :
msg - affiche un message dans les alertes et journalise les paquets
ttl - teste la valeur du champ TTL de l'entte IP
ipoption - regarde les champs des options IP pour des codes spcifiques
fragbits - teste les bits de fragmentation de l'entte IP
dsize - teste la taille de la charge du paquet contre une valeur
flags - teste les drapeaux TCP pour certaines valeurs
seq - teste le champ TCP de numro de squence pour une valeur spcifique
ack - teste le champ TCP d'acquittement pour une valeur spcifie
itype - teste le champ type ICMP contre une valeur spcifie
icode - teste le champ code ICMP contre une valeur spcifie
icmp_id - teste la champ ICMP ECHO ID contre une valeur spcifie
icmp_seq - teste le numro de squence ECHO ICMP contre une valeur spcifique
content - recherche un motif dans la charge d'un paquet
content-list - recherche un ensemble de motifs dans la charge d'un paquet
offset - modifie l'option content, fixe le dcalage du dbut de la tentative de
correspondance de motif
session - affiche l'information de la couche applicative pour la session donne
sid identifiant de signature contenu dans la base de signature

25

Exemple de rgle contre le SYN FLOOD sur le protocole HTTP(80):


La technique de dtection des attaques du type SYN FLOOD peut savrer difficilement
applicable. Il faut donc chercher une nouvelle orientation. Il sagit de trouver ce qui
caractrise un Syn Flood frauduleux (<> Syn Flood cr par une grande affluence de
clients) ; Il est donc prfrable plutt que dtecter les effets immdiats dtecter les effets
secondaires.
Dans certains cas de figure, le pirate ne peut empcher compltement la machine usurpe de
rpondre. Il reste donc certains paquets RST trahissant la prsence dune attaque. La rgle
suivante dtecte donc un seuil anormal de paquet RST :
alert tcp any any -> 192.168.0.1 80 (msg:"RST"; flow:stateless; flags:R; threshold: type both,
track by_dst, count 100, seconds 20; sid:1000003;)
De mme, si le pirate emploie une adresse qui ne soit pas prsente sur le rseau, certains
routeurs sont configurs pour rpondre par un paquet ICMP de type host unreachable (il
se peut que le routeur rponde aussi avec des RST, ce qui empche la bonne ralisation de
lattaque, nanmoins il peut tre intressant de dtecter cette tentative) :
alert icmp any any -> any any (msg:"Host unreachable"; itype: 3; icode: 1; threshold: type
both, track by_dst, count 100, seconds 20; sid:1000002;)
Snort en Mode Sniffer :
#snort dev PROTO
d : Pour Imprimer lcran les donnes dans les paquets.
e : Imprimer lcran lentte Ethernet(couche liaison).
v : Verbose mode, pour laffichage des informations contenus dans les enttes TCP/IP.
PROTO : Imprime uniquement les messages du protocole PROTO (i.e. IP, TCP, UDP, ICMP)
Snort en Mode Gnrateur de log :
#snort -dev -l ./log : Pour lenregistrement des paquets dans un fichier.
l : Rpertoire pour enregistrer le fichier ("./log" dans lexemple).
Snort en Mode NIDS (Intrusion Detection System) :
Dmarrage de Snort :
#/etc/init.d/snort start
Arret de Snort :
#/etc/init.d/snort stop
Redmarrage de Snort :
#/etc/init.d/snort restart
Options SNORT :
Cf. Options
Mise jour de Snort :
Une fois Snort install, il est ncessaire d'installer les rgles de signature Snort et de les
maintenir jour. Pour cela, nous pouvons utiliser le programme oinkmaster.
26

#oinkmaster -o /etc/snort/rules -b /etc/snort/backup 2>&1


La dernire instruction ci-dessus signifie que nous lancons le script perl oinkmaster, les rgles
sont places dans le dossier /etc/snort/rules et si il y a des changements dans les nouvelles
rgles, les rgles courante vont tre sauvegardes dans le dossier /etc/snort/backup.
A Noter que le tlchargement des rgles de signature Snort ncessite un abonnement
payant, nanmoins il existe une alternative propos par une communaut libre et dynamique:
http://www.bleedingsnort.com
La diffrence par rapport aux rgles officielles Snort fournit par la socit Sourcefire est que,
avec les rgles bleedingsnort, les rgles sont disponibles gratuitement immdiatement aprs
leur cration.
Pour faciliter la lecture des rapports gnrs par Snort, il existe des solutions front-end
web comme SnortSnarf, ACID ou encore BASE qui sont des interfaces graphiques crites en
PHP utilise pour afficher les logs gnrs par l'IDS Snort et envoys dans la base de
donnes.

3. SYN Cookie / SYN Cache / SYN Proxy


Les SynCookies :
La technique de dtection des connexions semi-ouvertes peut savrer difficilement
applicable, il faut donc chercher dautres alternatives pour contrer les attaques SYN
FLOODING. Le problme est qu chaque fois qu'un paquet SYN est reu, les
informations concernant la connexion sont stockes dans une file. Une fois que l'attaquant
envoy un nombre suffisant de paquets SYN la file se rempli compltement et de
nouvelles connexions ne sont plus possibles, ce qui engendre l'indisponibilit du service.
Il faudrait donc supprimer cette file d'attente. Le serveur n'a en fait pas besoin de stocker
les informations de la connexion, contenues dans le paquet SYN (adresse IP et port du
client et du serveur), vu qu'elles sont galement prsentes dans le paquet ACK envoy par
le client. La solution revient donc utiliser les SynCookies . En effet, afin dviter de
stocker les informations de la connexion dans une file dattente, le serveur va se servir du
rseau comme zone mmoire. Ainsi, il va envoyer au client les informations dont il a
besoin pour tablir la connexion. Le client les lui retournera, puis il vrifiera si le numro
d'acquittement du paquet envoy par le client passe un test de scurit spcifique pour
crer et tablir la connexion.
Pour activer les SYN-cookies sous Linux :
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
Pour les dsactiver :
echo 0 > /proc/sys/net/ipv4/tcp_syncookies

Les SynCookies prsentent quelques dsavantages :


Tout dabord comme les options de TCP ne sont pas sauvegardes lors de la demande de
connexion, certaines ne seront pas prises en compte. De plus, ils peuvent galement poser
27

des problmes de scurit, ainsi un attaquant peut ainsi tenter un ACK flood en esprant
tomber sur quelques cookies, compltant ainsi une connexion et consommant tout de
mme des ressources. Enfin, les SynCookies utilisent un peu plus le CPU qu'une
connexion ne les utilisant pas, vu quils doivent gnrer un numro de squence en
utilisant certaines informations du paquet SYN (adresses IP, ports). Mais cela reste
ngligeable.

Le SynCache :
Contrairement Linux qui utilise trs classiquement les SynCookies comme une solution
de secours suite un flood dtect sur des queues classiques, les systmes comme
FreeBSD ont dcid de modifier leur systme stockant les tats afin de le rendre plus
rsistant avant de passer en dernier recours un mcanisme de SynCookies. FreeBSD
utilise dsormais un SynCache pour conserver l'tat d'une connexion jusqu' sa
compltion. Il a donc t dcid de limiter fortement les donnes conserves en utilisant
une table de hashage, en lieu et place de la classique liste linaire par sockets, avec les
sockets indexes par bucket via des listes chanes. Ainsi, en cas de dtection de flood, la
plus ancienne entre (par bucket ou sur la totalit du cache) est supprime, avant de
basculer sur les SynCookies. Ce mcanisme permet la fois de diminuer l'occupation
mmoire et d'acclrer le parcours de la structure de donnes.
N.B : En jargon informatique, on appelle "bucket" ("bote confettis"), la "bote" dans
laquelle les bits disparaissent lorsqu'ils se perdent durant la transmission de donnes.
Le SynProxy :
Normalement, lorsquun client ouvre une connexion TCP vers un serveur, le par-feu relaie
les paquets d'ouverture au fur et mesure qu'ils arrivent. Ce dernier peut galement agir
en tant que mandataire (proxy). Dans ce cas, aucun paquet n'est transmis au serveur avant
que le client n'ait termin l'change initial. Ainsi, grce cette mthode, le serveur est
protg contre les attaques SYN FLOOD.
Toutes les connexions destination du serveur HTTP seront mandates par le par-feu.
Malheureusement, l'option synproxy state nest disponible (par dfaut) uniquement sous
Paketfilter (FreeBSD) et non sur Netfilter (Linux); Nanmoins, il est possible de
bnficier de loption sous Netfilter en ajoutant des extensions ce dernier.

B.

NETFILTER

Dfinition :
Netfilter est un module du noyau Linux qui offre la possibilit de contrler, modifier et filtrer
les paquets IP, et de suivre les connexions. Il fournit ainsi les fonctions de pare-feu, de partage
de connexions internet et d'autorisation du trafic rseau. Iptables est l'interface en "ligne de
commande" permettant de configurer Netfilter.

28

Fonctionnalit :
Netfilter se prsente comme une srie de 5 "hooks" (points d'accrochage), sur lesquels des
modules de traitement des paquets vont se greffer. Ces points sont:
NF_IP_PRE_ROUTING
NF_IP_LOCAL_IN
NF_IP_FORWARD
NF_IP_POSTROUTING
NF_IP_LOCAL_OUT
La branche gauche reprsente le trajet des paquets qui entrent et qui sortent vers et depuis un
processus local (SMB, FTP, HTTP etc.)
La branche de droite reprsente le trajet des paquets qui traversent notre passerelle dans sa
fonction de routeur.

A travers ces cinq points d'insertion, Netfilter tre capable :


D'effectuer des filtrages de paquets, principalement pour assurer des fonctions de
Firewall. Nous pourrons, par exemple, interdire tous les paquets venant de l'Internet
et s'adressant au port 80 (HTTP) de passer. Notre serveur APACHE est un serveur
Intranet et ne doit pas tre accessible depuis l'extrieur.
D'effectuer des oprations de NAT (Network Address Translation). Ces fonctions sont
particulirement utiles lorsque l'on veut faire communiquer tout ou partie d'un rseau
priv, mont avec des adresses IP prives (192.168.x.x par exemple) avec l'Internet.
D'effectuer des oprations de marquage des paquets, pour leur appliquer un traitement
spcial. Ces fonctionnalits sont particulirement intressantes sur une passerelle de
rseau d'entreprise, un peu moins pour notre rseau domestique.
29

Les tables et leurs chanes :


Il existe trois tables qui vont servir contenir des rgles de "filtrage":

Exemples de manipulations avec IPtables :


Pour commencer, nous allons tout fermer au niveau de la passerelle dans la table "filter".
# Nous vidons les chanes :
iptables F
# Nous supprimons d'ventuelles chanes personnelles :
iptables -X
# Nous les faisons pointer par dfaut sur DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

C.

CUSUM

CUSUM est un algorithme de dtection de changement de modle dans des processus


stochastiques (tude des phnomnes alatoires dpendant du temps).
Les machines victimes dune attaque de type TCP/SYN flooding pourraient ainsi tre
dtectes en appliquant un test de dtection de ruptures correspondant au nombre de paquets
SYN reus par chaque machine destination prsente dans le trafic. Cependant, un rseau
typique doprateur fait circuler plusieurs dizaines de milliers de connexions par seconde ; les
analyser toutes devient rapidement un problme difficile, au vu de la quantit massive de
donnes traiter.
Cest pourquoi, une mthode de rduction de dimension doit tre pralablement employe.
A chaque pas de temps, les statistiques du CUSUM sont compares un seuil. Une alarme est
dclenche lorsque les valeurs dpassent ce seuil.

30

D.

ALGORITHME ADAPTATIF DE SEUIL

L'algorithme adaptatif de seuil est un l'algorithme robuste et simple. Il se fonde sur l'examen
de l'analyse du trafic pendant un intervalle de temps. Si le nombre de paquets SYN excde un
seuil particulier il est probable qu'une attaque soit en cours.
Afin de prendre en compte des variations d aux habitudes des utilisateurs, la valeur du seuil
est place de manire adaptative base sur une valuation du nombre moyen de paquets SYN.

IV. Conclusion
Le Dni de Service est en augmentation, il est donc ncessaire d'investir dans la scurit
interne en crant un poste ou service ddi au sein de l'entreprise. Leurs deux objectifs
principaux devront tre la prvention et le curatif. Le premier sera de mener une veille active
sur les nouvelles attaques et vulnrabilits. Le second objectif, le curatif, devra procder un
suivi rgulier des diffrentes mises jour et tre trs ractif sur la surveillance des vnements
relats en supervision de l'architecture scurit.
La ralit du risque est donc vidente, dans ce cas, il peut tre intressant de contracter une
police d'assurances couvrant les pertes ventuelles engendres par une attaque de ce type.
Tout comme les virus, pour pouvoir contrer les diffrentes attaques, il faut dabord que
celle-ci soit cre. On ne combat pas quelque chose qui na pas encore t cr. Il faut
avoir t infect une premire fois pour pouvoir analyser et stopper ces attaques.
Cest le rle de plusieurs logiciels dcrits dans les prcdents chapitres.

V.

Index

http://fr.wikipedia.org/wiki/Attaque_par_d%C3%A9ni_de_service#Programmes_disponibles
_sur_Internet
http://www.authsecu.com/dos-attaque-deny-of-service/dos-attaque-deny-ofservice.php#Les_principales_attaques
http://www.securiteinfo.com/attaques/hacking/ddos.shtml
http://www.securiteinfo.com/attaques/hacking/dos.shtml
http://cr.yp.to/syncookies.html
http://gd.tuwien.ac.at/www.hping.org/manpage.html
http://en.wikipedia.org/wiki/Stacheldraht

31