Sécurité des systèmes d`information

Transcription

Sécurité des systèmes d`information
Sécurité des systèmes d'information
Sécurité des réseaux
ENSIIE – 18 avril 2014
Julien Raeis <julien [at] mingbai.org>
Plan de cours
1. Réseau ?
2. Rappels sur TCP/IP
3. Éléments matériels
4. Découverte d'informations
5. Quelques faiblesses...
6. Conclusion
Réseau ?
Réseau ?
●
●
Objectifs d'un réseau
●
Livrer de l'information
●
Connecter différents noeuds
●
Transporter d'autres protocoles
●
Permettre l'accès à des données à distance
Notion de « service » réseau
●
Authentification
●
Contrôle d'accès
●
Éxécution de code/commandes
●
etc...
Sécurité ?
●
Les quatre composantes :
●
●
Disponibilité Intégrité Confidentialité Traçabilité
Risques et enjeux
●
Interception
●
Falsification
●
Disponibilité
●
Traçabilité
Le réseau dans l'audit
●
Moyen de transport pour se connecter aux « cibles »
●
●
●
Par Internet, VPN, en LAN...
Vecteur de « fuite » d'information
●
Topologie, filtrage
●
Services disponibles
●
Diversité de l'environnement et des systèmes
Support d'attaques
●
Interception de trafic
●
Détournement de trafic
●
Injection de trafic
Quelques rappels... légaux
●
Plusieurs articles de loi punissent les atteintes aux
systèmes informatiques dans la loi française
●
●
●
Droit pénal : jusqu'à l'emprisonnement (5 ans) et
75.000 € d'amende
Droit civil : préjudice commercial, perte
d'exploitation, matériel, image de marque...
Il faut l'accord explicite du propriétaire d'un système
avant toute action !
Quelques rappels... légaux
●
●
Notion de STAD (Systèmes de Traitement
Automatisés des Données)
Article 323-1 : intrusion
●
●
Article 323-2 : déni de service
●
●
« entraver ou fausser le fonctionnement »
Article 323-3 : altération
●
« accéder ou se maintenir frauduleusement dans
tout ou partie d'un STAD »
« introduire frauduleusement des données dans un
STAD ou de supprimer ou modifier
frauduleusement »
Quelques rappels... légaux
●
Article 323-3-1 : les outils de piratage
●
●
●
« Le fait, sans motif légitime ...
... d'importer, de détenir, d'offrir, de céder ou de
mettre à disposition...
... un équipement, un instrument, un programme
informatique ou toute donnée conçus ou
spécialement adaptés pour commettre une ou
plusieurs des infractions prévues par les articles
323-1 à 323-3 »
●
Article 323-4 : groupement
●
Article 323-7 : tentative
Vie privée et intellectuelle
●
Code pénal sur la vie privée
●
●
●
Article 226-15 : secret des correspondances : ouverture,
retard, suppression, détournement... avec intention
frauduleuse
Code de la propriété intellectuelle
●
●
●
Articles 226-1 et suivants : vie privée (dossiers informatiques
personnels), appareils d'écoute, secret professionnel ...
335-3-1 et autres : Mesure Technique de Protection (loi
« DADVSI »)
« altérer la protection d'une œuvre par un décodage, un
décryptage ou toute autre intervention personnelle »
« pas applicables aux actes réalisés à des fins de sécurité
informatique » (mais déclaré non constitutionnel)
Rappels sur TCP/IP
Modèles OSI et TCP/IP
TCP / IP (1979)
OSI (1981)
Application
Application
Présentation
Session
Transport
Transport
HTTP, SMTP, IRC, SSH
MIME, ASN.1, SMB
TCP, SIP
TCP, UDP, PPTP
Réseau
Réseau
IP, ICMP, IGMP, ARP
Liaison
Liaison de données
Ethernet, Token Ring,
Physique
Physique
100Base­TX, RS232
TCP/IP : vocabulaire
●
Vocabulaire précis :
●
Train de bits
●
Trame ethernet
●
Paquet/datagramme IP
●
●
Connexion/segment TCP
Pseudo-session/datagramme UDP
Requêtes HTTP, SNMP, DNS, etc.
Sessions SMTP, IMAP, POP3, SMB, etc.
Mécanismes de sécurité
S/MIME ­ PGP
SSH
SSL/TLS
IPsec
Boîtier
chiffrant
IP – Internet Protocol
●
IP (Internet Protocol),RFC 791 (1981)
●
Buts :
●
Routage/ transport de bout-en-bout de
l'information
●
Aucun contrôle garanti, aucune connexion
●
Aucune garantie d'acheminement
●
Deux versions : IPv4 et IPv6
●
Notion d'adresse IP (32 ou 128 bits)
●
Route d'un paquet IP déterminée par le réseau
En-tête IP
●
Champs intéressants
●
Protocole encapsulé
●
Adresses IP source et destination
Version
IHL
TOS (Type de Service)
Longueur totale
Flags
Identification (IP ID)
TTL
Protocole
Offset
Somme de contrôle
Adresse IP source
Adresse IP destination
Options
Bourrage
Données
Routage
●
Routage : acheminement de paquets à travers un réseau
de routeurs ou d'équipements actifs de niveau 3
●
●
Effectué saut par saut, à chaque routeur
Route déterminée pour chaque paquet et peut donc différer ou
être asymétrique
Faiblesses d'IP
●
Aucun mécanisme de sécurité de base
●
Quelques vulnérabilités...
●
Ecoute (sniffing)
●
Modification de paquets
●
Usurpation d'adresses (IP spoofing)
●
« Man-in-the-Middle »
●
IP flooding
IPsec
●
Mécanismes de sécurités définis sur IP
●
Pour IPv6 à l'origine, mais rétro-appliqué à IPv4
●
Date de novembre 1998
●
Suite de protocoles : AH / ESP
●
Apporte :
–
–
–
–
Intégrité / authentification (« authenticité »)
Anti-rejeu
Confidentialité
Compression
IP : champ TTL
●
TTL (Time-to-live)
●
Durée de vie d'un datagramme IP
–
–
●
Compteur décrémenté à chaque saut
Paquet détruit quand TTL arrive à 0
But : éviter les boucles lors d'un problème de
routage
Le TTL arrive à zéro :
le paquet IP est supprimé et une erreur est générée
TTL = 1
TTL = 5
TTL = 4
ICMP TTL Exceeded­in­transit
IP : champ ID
●
Identifiant unique d'un datagramme IP
●
●
Nécessaire pour la fragmentation
Utilité ici :
●
●
Évaluer la charge d'une machine si les champs ID sont incrémentaux (le
champ est incrémenté de X à chaque paquet reçu)
Obtenir des informations sur l'architecture en place
–
répartition de charge
# hping -S -p 80 www.francetelecom.com
HPING www.francetelecom.com (eth1 217.167.29.246): S set, 40 headers
len=46 ip=217.167.29.246 flags=SA DF seq=0 ttl=52 id=26435 win=24656
len=46 ip=217.167.29.246 flags=SA DF seq=1 ttl=52 id=53343 win=24656
len=46 ip=217.167.29.246 flags=SA DF seq=2 ttl=52 id=26436 win=24656
len=46 ip=217.167.29.246 flags=SA DF seq=3 ttl=52 id=26437 win=24656
len=46 ip=217.167.29.246 flags=SA DF seq=4 ttl=52 id=46043 win=24656
len=46 ip=217.167.29.246 flags=SA DF seq=5 ttl=52 id=26438 win=24656
--- www.francetelecom.com hping statistic --6 packets tramitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 47.5/49.1/53.0 ms
+ 0 data
rtt=53.0
rtt=50.4
rtt=48.3
rtt=47.5
rtt=47.9
rtt=47.6
bytes
ms
ms
ms
ms
ms
ms
IP : champ ID
●
Répartition des champs ID pour
http://www.ssi.gouv.fr/
IP : champ ID
●
Répartition des champs ID pour http://www.sun.com/
IP : options
●
●
Généralement inutilisées / filtrées par les piles TCP/IP et/ou
les pare-feu
Option source routing
●
●
Loose source routing : spécification de 1 à 8 passerelle(s)
intermédiaire(s) entre émetteur et destinataire
Strict source routing : spécification du chemin exact (1 à 8 passerelle(s))
entre émetteur et destinataire
➔
●
Option record route : chaque passerelle inscrit son adresse IP
dans le paquet
➔
Possibilité (théorique) d'attendre des adresses en RFC 1918
derrières des passerelles
Possibilité de traceroute sur IP (avec limitation à 8 sauts)
ARP
●
Address Resolution Protocol, RFC 826, 1981
●
●
Met en relation les couches 2 et 3 du modèle OSI
Obtention des adresses physiques d'une carte
●
MAC pour Ethernet
# tcpdump -n -v -i eth0 arp
Tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:21:08.828884 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.0.90 tell
192.168.0.1, length 46
15:21:08.828901 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.0.90 is-at
00:21:9b:6e:54:db, length 28
ICMP
●
Internet Control Message Protocol, RFC 792, 1981
●
●
Contrôle et gestion d'erreur IP
●
●
Couche 3 modèle OSI
Deux catégories de messages : diagnostic et erreur
Utilisé par ping par exemple (echo request/reply)
Type
Code
Somme de contrôle
Données variables (selon le type et le code)
Exemple de message ICMP
●
Exemple : ICMP Port Unreachable
Type
Somme de contrôle
Code
inutilisé
en­tête IP + min. 8 premiers octets des données du datagramme IP d’origine
↳port 53/UDP fermé
TCP
●
Transmission Control Protocol, RFC 791, 1981
●
●
●
●
Couches 4 du modèle OSI
Notion de port
Objectif : fournir un service de transfert de données
fiable entre deux applications
Protocole orienté connexion
●
Contrôle d'erreur, de flux, de congestion
●
Numéros de séquences pour chaque segment TCP
●
Drapeaux (états)
TCP : en-tête
Port source
Port destination
Numéro de séquence
Numéro d’acquittement
HL
Réservé
Flags
Fenêtre
Somme de contrôle TCP
Pointeur d’urgence
Options
Bourrage
Données
U A P R S F
R C S S Y I
G K H T N N
Drapeaux TCP
●
Drapeaux
●
SYN : établir une connexion
●
ACK : acquitter un segment TCP
●
RST : détruire une session
●
FIN : fin d'une session
●
PSH : données à transmettre aux couches
supérieures
Exemple de connexion TCP
●
|Time
|4,832
|
|4,834
|
|4,834
|
|11,911
|
|11,917
|
|12,241
|
|12,243
|
|12,387
|
|12,387
|
|12,387
|
|12,387
|
|12,390
|
| 192.0.2.42
| 192.0.2.1
|
SYN
|
|(60864) ------------------>
|
SYN, ACK |
|(60864) <-----------------|
ACK
|
|(60864) ------------------>
|
PSH, ACK - Len: 36
|(60864) ------------------>
|
ACK
|
|(60864) <-----------------|
PSH, ACK - Len: 1
|(60864) ------------------>
|
ACK
|
|(60864) <-----------------|
PSH, ACK - Len: 404
|(60864) <-----------------|
ACK
|
|(60864) ------------------>
|
FIN, ACK |
|(60864) <-----------------|
FIN, ACK |
|(60864) ------------------>
|
ACK
|
|(60864) <------------------
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
(3128)
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
|Seq
|
établissement de connexion TCP
= 1469137698 Ack = 0
= 512683169 Ack = 1469137699
= 1469137699 Ack = 512683170
= 1469137699 Ack = 512683170
= 512683170 Ack = 1469137735
= 1469137735 Ack = 512683170
= 512683170 Ack = 1469137736
= 512683170 Ack = 1469137736
= 1469137736 Ack = 512683574
= 512683574 Ack = 1469137736
= 1469137736 Ack = 512683575
= 512683575 Ack = 1469137737
terminaison de connexion TCP
Numéros de séquence TCP
●
Génération de numéros de séquence initiaux (ISN)
pseudo-aléatoires
●
●
But : rendre difficile la prédiction des numéros de
séquence pour ne pas pouvoir s'insérer dans une
connexion TCP (cf. TCP hijacking attack)
Sous Windows 98 :
Option TCP timestamp
●
Option TCP qui permet de connaître le temps depuis lequel
une machine cible est allumée
●
●
Permet aussi de compter les machines derrière de la répartition
de charge
Attention : en fait peut être remis à 0, dépend de
l'implémentation
Exemples de ports et services TCP
●
Ports « bien connus » assignés par l'IANA
●
HTTP : 80
●
HTTPS : 443
●
SMTP : 25
●
Telnet : 23
●
SSH : 22
UDP
●
UDP (User Datagram Protocol), RFC 768 (1980)
●
●
●
Couche 4 du modèle OSI
Notion de ports (comme TCP)
Objectif : délivrer le plus simplement possible des
données à une application
●
Pas de connexion ni de session ni de signalisation
●
Pas d'acquittement de messages
●
Avantage : rapidité
UDP
●
Format minimaliste
●
Simple « surcouche » à IP
●
Gestion des erreurs par ICMP
Port source
Port destination
Longueur totale
Somme de contrôle
Données
●
Protocole particulièrement sensible à la
falsification d'adresse IP source et au déni de
service !
–
Il faut sécuriser au niveau applicatif !
Exemple de ports et services UDP
●
Protocoles d'infrastructure : DNS (53)
●
Voix sur IP, diffusion multimédia
●
Administration, supervision : SNMP (161), syslog (514)
●
De découverte : NetBIOS (137)
●
De configuration : DHCP (69)
Éléments matériels
Le matériel
●
●
Nombreux types d'équipements réseau :
●
Commutateurs (switches)
●
Concentrateurs (hubs)
●
Routeurs
●
Pare-feu
●
Reverse-proxy
Du côté architecture, tout sera vu (revu ?) lors du
cours de Guillaume Valadon
Concentrateur (HUB)
●
Simple équipement « répéteur » de signal
●
Les trames sont dont renvoyées à tous les ports...
Commutateur (switch)
●
Équipement « intelligent »
●
●
Envoie à tout le monde la première fois qu'une adresse MAC
apparaît comme destination
Ensuite garde une table
des correspondances MAC/port
pour juste envoyer vers le bon port
VLAN
●
●
●
Norme 802.1q
Marquage par un identifiant de 1 à 4094 des trames
Ethernet (couche 2)
Objectif : créer des réseaux virtuels en utilisant les
mêmes ressources physiques
●
●
Généralement par port de switch (mode « access »
ou « untagged »)
Peut se faire par marquage des paquets (VLAN
« tagging » ou mode « trunk ») et peut servir au
transport de plusieurs VLAN : VLAN trunking
Découverte d'informations
Découverte d'informations
●
Ce qui nous intéresse
●
Le plan d'adressage
●
Les services disponibles
Et donc le filtrage appliqué
Les versions des systèmes d'exploitation et services
–
●
●
Comment ?
●
●
Écoute du réseau (méthode passive)
Envoi de paquets pour forcer des réponses (méthode
active)
Écoute réseau
●
Écoute passive
●
Pas besoin d'avoir d'adresse IP : mode promiscuous
●
Paquets en broadcast/multicast
●
Outils : tcpdump/wireshark/etherape
●
Mais aussi outils spécialisés pour extraire des données de
captures :
–
–
–
●
Écoute « active »
●
Identifiants et mots de passe
URL
Contenu d'e-mails...
On prend une adresse propre... ou on l'usurpe ! (cf. Plus
loin)
Capture Wireshark
Prise d'empreinte passive
●
Les paquets IP et leur contenu peuvent en dire long...
●
●
p0f : outil de prise d'empreinte en fonction des
données des paquets IP (ISN, TTL, etc.)
Diffusion NetBIOS (service Browser)
–
–
–
Divulgation du nom de la machine
De son adresse IP
Parfois de l'infrastructure Microsoft...
Découverte active : génération de paquets
●
IP : génération du datagramme IP en espace
utilisateur pour contourner la pile IP du noyau
●
Pour TCP/UDP, rien de plus simple : telnet ou netcat
●
Outils :
●
perl avec IO::Socket
●
en C avec libnet
●
hping, scapy...
Scapy
●
Outil de forge de paquets en python
●
Dispose de fonctions avancées type traceroute :
$ sudo scapy
>>> traceroute('86.65.182.120') ;
Begin emission :
******************.*********Finished to send 30 packets.
Received 29 packets, got 28 answers, remaining 2 packets
86.65.182.120:tcp80
2 192.168.3.2
11
3 65.184.126.246 11
[…]
18 86.65.182.120
SA
[…]
(<Traceroute: TCP:13 UDP:0 ICMP:15 Other:0>, <Unanswered: TCP:2 UDP:0
ICMP:0 Other:0>)
Cartographie du réseau
●
Découvrir l'architecture qui nous entoure
●
Un bon moyen : traceroute
●
●
Permet :
●
●
Outils : tracert, traceroute, tcptraceroute...
Découverte de redirection de ports, IP internes des
équipements de routage...
Contournement d'équipements de filtrage pour la
découverte
Balayage de ports
●
●
Objectif :
●
Découvrir les machines d'un réseau donné...
●
… et les services réseau fournis
Envoi de paquets spécifiques à des adresses IP
●
●
●
Analyse des paquets retour au niveau IP et/ou
TCP/UDP
Permet de déterminer l'état d'un port
L'outil par excellence : nmap
hping (exemples)
●
SYN sur port 80/tcp ●
Réponse : SYN/ACK → Port ouvert (réponse du service)
# hping3 -p 80 -S www.iiens.net
HPING www.iiens.net (eth0 193.54.225.83): S set, 40 headers + 0 data bytes
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=80 flags=SA seq=0 win=5840 rtt=5.2
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=80 flags=SA seq=1 win=5840 rtt=7.5
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=80 flags=SA seq=2 win=5840 rtt=6.7
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=80 flags=SA seq=3 win=5840 rtt=5.2
●
SYN sur port 31337/tcp ●
Réponse : RST/ACK → Port fermé (sans service)
# hping3 -p 31337 -S www.iiens.net
HPING www.iiens.net (eth0 193.54.225.83): S set, 40 headers
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=31337 flags=RA
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=31337 flags=RA
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=31337 flags=RA
len=46 ip=193.54.225.83 ttl=49 DF id=0 sport=31337 flags=RA
+ 0 data bytes
seq=0 win=0 rtt=6.1
seq=1 win=0 rtt=5.0
seq=2 win=0 rtt=6.0
seq=3 win=0 rtt=7.2
ms
ms
ms
ms
ms
ms
ms
ms
nmap
●
Outil devenu véritable boîte à outils
●
Choix du type de scan (UDP, TCP, ARP...)
●
Ports à scanner
●
Découverte des services
●
Prise d'empreinte
●
Scan de vulnérabilités...
●
Scriptable en LUA (cf. plus loin)
●
http://nmap.org/
Comment ça marche ?
●
Comment déterminer si un port est ouvert ?
●
●
●
open : port accessible et ouvert (SYN-ACK)
closed : port accessible et fermé (réponse
cohérente type RST, ou un ICMP Port Unreachable)
filtered : non accessible et fermé
–
Généralement absence de réponse ou ICMP Destination
unreachable
●
unfiltered : port accessible (donc open ou closed)
●
open|filtered : on ne sait pas (souvent le cas UDP)
nmap par l'exemple
$ sudo nmap -sS -F 192.168.5.10
Starting Nmap 5.51 ( http://nmap.org ) at 2011-04-14 16:26 CEST
Nmap scan report for 192.168.5.10
Host is up (0.00052s latency).
Not shown: 93 filtered ports
PORT
STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
143/tcp open imap
443/tcp open https
993/tcp open imaps
Nmap done: 1 IP address (1 host up) scanned in 2.70 seconds
Résultats
●
Rapidement on obtient, et de façon tout à fait
légitime des informations sur un système
d'information
●
Adressage
●
Filtrage (déductions)
●
Localisation des équipements de sécurité
●
Services accessibles
●
Versions et donc potentielles vulnérabilités
Autres fonctionnalités de nmap
●
Modules « NSE » (nmap scripting engine)
●
Développés en LUA
●
Charges applicatives afin de réaliser :
–
–
–
De la découverte de version
Des tentatives d'authentification
Exemple : authentification VMware, découverte des
systèmes Windows, « bannières » des serveurs Web, etc.
hping
●
Quelques options intéressantes :
●
-a : usurpation d'adresse IP
●
-s : port source
●
-p : port destination
●
-k : pas d'incrément du port source
●
--icmp, --udp
●
Envoi de segments particuliers : -S, -A
●
Traceroute -T...
Quelques faiblesses...
État des lieux
●
●
●
Réseaux de mieux en mieux protégés
●
Beaucoup d'attaques depuis la création d'Internet
●
Et donc beaucoup d'enseignements tirés
Création des équipements de sécurité
●
Filtrage réseau, applicatif
●
Bonnes pratiques d'architecture
Apparition de protocoles sécurisés pour répondre à
certains besoins
●
Notamment la confidentialité
Failles dans les équipements
●
Pas mal de dénis de services ou de vulnérabilités dans
les équipements eux-même...
●
Les équipements actifs sont de vrais ordinateurs
●
Par exemple, système d'exploitation IOS chez Cisco
–
–
●
IPv6 a été un grand vecteur de failles dans les
implémentations il y a quelques années !
–
Nombreuses failles de déni de service
Heureusement souvent dans des modules auxiliaires
Et personne ne s'en sert...
Interception
●
Attaque « Man-in-the-Middle » (homme du milieu)
–
–
Le client croit communiquer avec le serveur
L'attaquant observe et détourne le trafic
Man-in-the-Middle
●
Comment c'est possible ?
●
Réseaux non-segmentés : tout est sur le même
brin, juste séparé par des switches
●
Équipements anciens de type hub
●
Protocoles n'assurant pas de sécurité
–
–
–
➔
Intégrité
Authentification de bout-en-bout
Confidentialité
Faciles à modifier/détourner/intercepter, etc.
Attaques sur le matériel
●
Peut on transformer un switch en hub ?
●
Inondation d'adresses MAC (MAC flooding)
–
–
●
Équipements « professionnels » sont protégés contre
ce genre de manipulations
●
A pour effet de surcharger les tables de correspondance
de l'équipement
Transformation en hub...
Trafic trop important vers un port avec de
multiples adresses MAC sera ignoré
ARP spoofing
●
Détournement du trafic réseau sur un switch
●
Principe :
●
●
●
Chaque machine garde un cache des
correspondances MAC ⇔ IP
On va corrompre ce cache
–
Sur la victime : IP destination ⇔ IP attaquant
–
Sur la destination : IP victime ⇔ IP attaquant
Et on se place en routeur au milieu
ARP spoofing
S'en prémunir ?
●
Segmentation des réseaux
●
Routage avec contrôle d'accès
●
Utilisation de VLAN
●
Table ARP statique sur les équipements
●
Cache qui expire rapidement...
Et aux couches supérieures ?
●
●
Principe de l'authentification mutuelle
●
Appliqué dans IPsec, mais aussi dans SSL/TLS
●
Basé sur un secret partagé ou des certificats
Attention à l'interception
●
●
Dans le cadre d'HTTPS, les navigateurs affichent
maintenant des messages d'avertissement
difficiles à contourner
Mais les utilisateurs cliquent souvent
aveuglément...
Attaques DNS
●
Principe similaire à celui de l'ARP spoofing
●
●
Contrôler DNS c'est contrôler la destination du trafic
●
●
●
Modifications se font au niveau applicatif, plus au niveau
2 ou 3
Attaques apparaissent de temps à autre
●
●
On remplace une entrée DNS dans le cache d'un
résolveur
Notamment celle de Dan Kaminsky en 2008
Pas d'authentification dans les paquets DNS, faible
entropie des identifiants, données prédictibles...
DNS reste sensible, et les solutions proposées sont très
dures à mettre en place (DNSSEC...)
TCP session hijacking
●
●
« Kevin Mitnick Attack »
Consiste à injecter des segments TCP falsifiés dans
une session TCP déjà existante
●
●
●
●
Nécessite de connaître ou de prédire les numéros de séquence
et d'ACK
Besoin de réaliser un déni de service sur le client légitime pour
qu'il ne réponde plus aux sollicitations du serveur
Ne fonctionne plus aujourd'hui, les ISN étant pseudoaléatoires...
Utilisation de protocoles sécurisés pour éviter ceci
aux couches supérieures (SSH, TLS)
Contournement de filtrage
●
Principe du filtrage :
●
●
●
●
Niveau 3 : ACL sur les IP
Niveau 4 : ACL IP/ports + établissement de sessions
TCP
Niveau 7 : contenu du protocole applicatif, voire
authentification
Contournement ?
●
Comment accéder aux ports filtrés ?
●
Contourner depuis l'intérieur pour sortir ?
Fuite d'informations
●
●
Gros enjeu, éviter les fuites à tout prix !
Encapsulation dans de nombreux protocoles,
notamment des champs qui sont rarement vérifiés
●
●
ICMP : champs de données dans un Echo Request
ou Reply
TCP (RST, ACK, nombreux champs pas vérifiés par
la pile IP)
●
HTTP
●
DNS...
Déni de service
●
Objectif : stopper un service ou saturer un réseau
●
Moyens :
●
●
Souvent l'épuisement de ressources
●
Parfois le plantage direct
Aujourd'hui, grande peur des dénis de service
●
●
Intérêts économiques, financiers, etc.
Vers blaster en 2003, DDoS sur l'Estonie, attaques sur
les serveurs racine DNS en 2007
Déni de service
●
●
●
●
●
Niveau 2 ou 3 : injection de routes inexistantes,
attaques par mac flooding
ICMP : ICMP flood
TCP : SYN flood ou ouverture de sessions complètes
pour saturer les piles
LAND attaque (adresse source et destination
identiques)
Attaques par amplification, déni de service distribué,
etc.
Exemple : SYN flood
●
Envoi de segments TCP SYN à destination d'un port ouvert (80/tcp ici), avec
adresse IP source falsifiée et de préférence inaccessible (pour éviter de
récupérer un RST)
2
1
SYN/ACK
SYN
www
●
●
Va épuiser les tampons réseau du côté de la cible, conduisant à un déni de
service
Pour sécuriser, les connexions semi-ouvertes sont détruites sous BSD et
apparition des « syncookies » sous Linux
Un exemple d'attaque multi-couches
●
●
Déni de service distribué s'appuyant sur des serveurs DNS récursifs
ET des adresses IP source falsifiées
DNS est un protocole asymétrique
●
Taille moyenne d'une requête DNS : 60 octets
●
Taille maximale d'une réponse (E)DNS : environ 4000 octets
➔
●
Principe :
●
Facteur d'amplification de 66 environ
Requête DNS (sur UDP) vers un enregistrement « lourd » (4000
octets) forgé pour l'occasion
●
Adresse IP source forgée comme étant celle de la cible
●
Utilisation de plusieurs centaines de machines pour les requêtes
●
La machine cible va crouler sous les réponses DNS
Résultat d'un DDoS sur les DNS root G et L
Conclusion
Sécurité ?
●
Les réseaux sont au centre d'Internet
●
●
●
●
Ils véhiculent de nombreuses informations
Interconnectent des noeuds partout dans le
monde, et non contrôlés
La sécurité est certes de plus en plus présente...
… mais les protocoles sécurisés doivent être adoptés
par tous pour que ça marche !
Se prémunir des attaques en amont ?
●
A défaut d'avoir des protocoles sécurisés partout...
●
●
●
Du filtrage IP, TCP, UDP, voire applicatif
Détection d'intrusion
●
HIDS/HIPS
●
NIDS/NIPS
●
Problématique de la journalisation
Segmentation des réseaux (VLAN et routeurs)