1. Vulnérabilités des Systèmes d'Information
Attaques & Dénis de service
Bruno Tréguier – Bruno.Treguier@shom.fr
15/02/2012
1
Attaques et Dénis de service
2. A méditer...
« L'épaisseur d'une muraille
compte moins que la volonté de
la franchir. »
Thucydide
Homme politique athénien
~460 à 400 av J.C.
2
Attaques et Dénis de service
3. Typologie des attaquants
Extrêmement variée
Du « script kiddie » à l'agence gouvernementale, en
passant par les escrocs, la mafia, les activistes... ou les
simples curieux et apprentis sorciers !
Motivations diverses
Personnelle
Jeu, vengeance
Idéologique
« Hacktivisme »
Economique
Vol, escroquerie, chantage
3
Attaques et Dénis de service
4. Typologie des attaques (1/2)
Peut être envisagée sous de nombreux angles :
En fonction du niveau de l'attaque
réseau, applicatif...
En fonction des pré-requis environnementaux
accès physique au matériel ou non, LAN ou WAN...
En fonction du type d'attaque
active ou passive, bruyante ou furtive...
En fonction du but de l'attaque
déni de service, obtention d'un accès au système, vol de
ressources, vol ou destruction d'informations, utilisation
du système comme « base » d'attaque, usurpation
d'identité, actions revendicatives...
4
Attaques et Dénis de service
5. Typologie des attaques (2/2)
Quel que soit le système envisagé, on en arrive toujours, au
final à 2 types bien distincts d'attaques :
Les attaques en « déni de service »
de plus en plus nombreuses
parfois assez simples à mener
Les attaques à but intrusif
moins nombreuses
d'un niveau plus élevé
potentiellement beaucoup plus lourdes de conséquences
Les attaques DDoS utilisent les 2 !
5
Attaques et Dénis de service
6. Quelques types d'attaque par niveau
Niveau de l'atttaque Déni de service Intrusion
- Ingénierie sociale - Ingénierie sociale
Opérateur (exécution de virus/troyens) (execution de virus/troyens)
- SlowLoris/SlowPost (Web) - CSRF, XSS
Applicatives - spécifiques - Mail bombing - SQL Injections
- PDF
- Buffer overflows - Buffer overflows
Applicatives - génériques - Format string errors
- DNS poisoning - DNS poisoning
Applicatives - protocolaires - BGP hijacking - BGP hijacking
- password sniffing (Telnet...)
- SYN flooding - TCP sequence prediction
TCP - UDP - Fragmentation UDP
- UDP flooding
- Attaque « smurf » - Source routing
IP/ICMP - Fragmentation IP/Teardrop - ICMP redirect
- Ping flooding - Fragmentation IP
- ARP flooding - ARP cache poisoning
ARP - Ethernet - ARP cache poisoning - Spanning Tree
- Spanning Tree
6
Attaques et Dénis de service
7. Quelques attaques ayant fait date... (1/2)
1988 : faille sendmail utilisée par le « Morris worm »
1996 : article fondateur sur les buffer overflows dans Phrack
n°49 :
« Smashing the stack for fun and profit », par Aleph One
1996 : 1ères attaques XSS (Cross-Site Scripting)
1997 : faille BGP (IP hijacking) découverte par hasard
(incident dit « de l'AS 7007 »)
1998 : faille de type BO sur « rpc.statd » : attaques Solar
Sunrise contre des machines du DoD
1999 : 1ers DDoS connus
2000 : article fondateur de Tim Newsham sur les « format
string attacks »
(liste de diffusion « Bugtraq » le 09/09/2000)
7
Attaques et Dénis de service
8. Quelques attaques ayant fait date... (2/2)
2000 : 1ères attaques CSRF (Cross-Site Request Forgery)
(sur le logiciel « Zope »)
2001 : 1ères injections SQL
2001 : ver « CodeRed »
(attaque DDoS sur le site de la Maison Blanche)
2002 : à 2 reprises (août puis octobre), attaques DDoS sur les
serveurs DNS de la racine
2003 : le 25 janvier, nouvelle attaque DDoS sur les serveurs
DNS de la racine (ver Slammer – BO sur SQL server)
2003 : 11 août, attaque du ver Blaster (BO sur service
DCOM-RPC de Windows)
2007 : Attaques DDoS contre l'Estonie
2008 : Attaques DDoS contre l'Ossétie du Sud
2011 : Ver Stuxnet
8
Attaques et Dénis de service
9. Constat sur l'évolution du « niveau » des attaques
Le niveau des attaques « monte » dans les couches au fil du
temps...
Certaines « couches » n'existent que depuis peu (ex : Web
2.0)
Les couches hautes sont beaucoup plus nombreuses...
Les applicatifs sont de plus en plus complexes et sujets aux
failles
Les attaques de type DDoS sont de plus en plus nombreuses
Elles témoignent d'une certaine organisation de
l'« underground »
Outils de plus en plus nombreux et automatisés (TFN2k,
StachelDraht...)
9
Attaques et Dénis de service
10. Les « buffer overflows » (débordements de tampon)
Pile (stack)
void fonction(int a, int b)
{
int c;
Paramètre b char s[80];
Paramètre a int d;
Adresse retour
Sauvegarde pointeur de frame printf(“Entrez un texte:”);
Variable locale c scanf(“%s”, s);
s[79]
printf(“Vous avez entré: %s”, s);
…
Variable locale s (chaîne) …
}
s[0]
Variable locale d
10
Attaques et Dénis de service
11. Les attaques en déni de service
Ressources visées :
Bande passante
Espace disque
Connexions au SGBD
CPU
Mémoire
Nombre de processus ou de threads
Firmware (Permanent DoS : « Phlashing »)
11
Attaques et Dénis de service
12. Quelques attaques au niveau ARP
TechniqueTechnique(s) Solution(s)Solution(s)
- ARP flooding : Inonder les Limiter le nombre d'@ MAC par
switches avec des milliers de port.
paquets comportant des adresses
MAC différentes Exemple sur switch Cisco :
conf t
interface fastEthernet 0/4
switchport mode access
switchport port-security
switchport port-security maximum 100
switchport port-security violation protect
Limitations : utilisable uniquement sur LAN
12
Attaques et Dénis de service
13. Quelques attaques au niveau IP/ICMP
TechniqueTechnique(s) Solution(s)Solution(s)
- Saturer la bande passante via - Filtrer au niveau du firewall dès
des attaques de type “smurf” qu'un taux de ping dépasse une
- Faire planter les machines via certaine limite
un “ping de la mort” (>64K) - Appliquer les patches de
- Envoyer des paquets IP ayant sécurité des O.S.
des infos de fragmentation
erronées (Teardrop attack)
13
Attaques et Dénis de service
14. Smurf « Hall of shame » : le SAR
14
Attaques et Dénis de service
15. Quelques attaques au niveau TCP et UDP
TechniqueTechnique(s) Solution(s)Solution(s)
- SYN flooding : envoi d'un flot de - Filtrer au niveau du firewall,
paquets TCP SYN (le + souvent réduire le timer SYN-RECEIVED,
avec adresse source falsifiée) utiliser les SYN Cookies
- attaque LAND (TCP SYN +
adresses source et destination
identiques)
- UDP flooding (envoi massifs de
paquets UDP provoquant des
réponses ICMP port unreachable)
- UDP packet storm : mise en
relation de 2 serveurs UDP (ex :
chargen + echo)
15
Attaques et Dénis de service
16. Quelques attaques de protocoles applicatifs
TechniqueTechnique(s) Solution(s)Solution(s)
- DNS poisoning : envoi de - Avoir un serveur DNS et des
fausses réponses DNS pointant résolveurs aussi à jour que
sur des adresses IP inexistantes possible
- BGP Hijacking : modification des - BGP : question ouverte...
informations de routage - SMTP : règles de filtrage anti-
- SMTP : email bombing spam et anti-virus, architecture
- HTTP : SlowLoris, SlowPost de mail à adapter
- HTTP : utilisation d'un serveur
ou d'un proxy non vulnérable, ou
augmentation du nombre maxi
de clients simultanés
16
Attaques et Dénis de service
17. Les attaques en déni de service distribuées :
quelques faits (1/2)
Apparition aux alentours de 1998
En augmentation rapide (barrière des 100 Gb/s franchie en
2010)
source : Darren Anstee - Arbor Networks, Inc.
17
Attaques et Dénis de service
18. Les attaques en déni de service distribuées :
quelques faits (2/2)
Protocoles applicatifs les plus ciblés : HTTP et DNS (devant
HTTPS, SMTP, SIP)
Toujours beaucoup de SYN floods
La majorité des attaques restent de petite envergure (87%
prennent moins de 1 Mb/s)
Augmentation progressive de la taille et de la fréquence des
attaques...
18
Attaques et Dénis de service
19. Les attaques en déni de service distribuées :
architecture d'attaque typique
19
Attaques et Dénis de service
20. Les attaques en déni de service distribuées :
déroulement typique (1/2)
Les différentes phases (en règle générale) :
1) Pré-positionnement d'un malware « minimal » sur un
certain nombre de systèmes (typiquement quelques
centaines à quelques milliers), appelés « contrôleurs »
(handlers)
Vecteurs : virus/troyen, vulnérabilité logicielle, etc.
2) Etablissement, par les contrôleurs, d'un canal de
commande (unidirectionnel) permettant un contrôle par
l'attaquant
Vecteurs : connexions directes, canaux IRC, plus
récemment, même Twitter (!)
20
Attaques et Dénis de service
21. Les attaques en déni de service distribuées :
déroulement typique (2/2)
3) Téléchargement (optionnel) d'une « charge » variable
permettant de s'adapter (choix de la cible, type d'attaque)
Vecteurs : connexions directes type HTTP, FTP ou autre
4) Compromission automatisée de dizaines de milliers de
machines vulnérables par les contrôleurs
Vecteurs : virus/troyen, vulnérabilité logicielle
5) Lancement de l'attaque à un moment précis
Soit pré-programmé
Soit sur ordre de l'attaquant, via les contrôleurs
21
Attaques et Dénis de service
22. Focus sur Blaster
But : lancer une attaque DDOS (SYN flood) contre Microsoft
le 15 août 2003 (service windowsupdate.com)
Apparition le 11 août 2003
Pic d'infection le 13 août 2003
Utilisation d'une faille de type « buffer overflow » dans le
service RPC/DCOM (port 445)
Capable d'infecter Windows XP et Windows 2000
Provoque une instabilité dans tous les autres (NT, XP64,
Windows Server 2003)
Arrestation de l'auteur le 29 août 2003
Message « caché » dans le code :
« Billy Gates why do you make this possible ? Stop making
money and fix your software!! »
22
Attaques et Dénis de service
23. Le « business » des DDoS
Du « côté obscur », les choses s'organisent...
La surface d'attaque devient de plus en plus importante
Les outils sont de plus en plus automatisés et faciles
d'accès
Il devient possible de louer des « botnets » de plusieurs
milliers de machines
Pendant ce temps, chez les « gentils »...
Beaucoup d'articles de journaux, d'infos sur Internet
La protection contre ces DDoS devient un enjeu majeur
pour les grands acteurs de la sécurité
De nombreuses solutions (commerciales) sont proposées...
23
Attaques et Dénis de service
24. Que peut-on faire ? (1/3)
Opération “Payback”: l'entrée des locaux
de la HADOPI il y a quelques semaines...
Crédits photo : PATRICK KOVARIK/AFP
24
Attaques et Dénis de service
25. Que peut-on faire ? (2/3)
Un déni de service distribué est très difficile à stopper :
Excellente résilience
Plusieurs niveaux rendant difficile la recherche des
responsables
Un conseil de l'ANSSI (qui cite Thomas Longstaff, de
l'Université Carnegie Mellon) :
« En réalité, la prévention doit plus porter sur le renforcement
du niveau de sécurité des machines connectées au réseau
[pour éviter qu'une machine puisse être compromise] que sur
la protection des machines cibles ».
Extrait du bulletin CERTA-2000-INF-001 du 21 février 2000
25
Attaques et Dénis de service
26. Que peut-on faire ? (3/3)
Quelques précautions élémentaires :
Etre à jour au niveau des versions de ses logiciels
Se tenir au courant de l'actualité SSI
Invalider les services inutiles sur toutes les machines
(clientes comme serveurs)
Paramétrer les firewalls afin de ne pas autoriser, par défaut,
les paquets en sortie
Au cas par cas : interdire certaines adresses IP ou plages
d'adresses en entrée du firewall
Configurer avec soin ses serveurs web (réduction du temps
d'expiration des connexions, par exemple)
Utiliser plusieurs serveurs et faire de la répartition de
charge
26
Attaques et Dénis de service
27. A méditer...
« Ce ne sont pas les murs qui
protègent la citadelle, mais
l'esprit de ses habitants. »
Thucydide
Homme politique athénien
~460 à 400 av J.C.
27
Attaques et Dénis de service
28. Points non abordés, faute de temps...
Les outils
Scanners de ports, outils d'aide à l'« auto-diagnostic », etc.
La réglementation
La LCEN réprime le « trafic de moyens techniques
d'attaque »
Les attaques de plus en plus fréquentes sur les autorités de
certification
Via la technique (attaque des protocoles cryptographiques
ou de leurs implémentations)
Via l'ingénierie sociale
Le « phishing »
A rapprocher des autres méthodes d'ingénierie sociale
Et certainement plein d'autres trucs....
28
Attaques et Dénis de service
29. A méditer...
« L'histoire est un éternel
recommencement. »
Thucydide
Homme politique athénien
~460 à 400 av J.C.
29
Attaques et Dénis de service