SÉCUR ITÉ DES R É S E A U X LES A TTAQUES A. Guermouche 0 Plan Les attaques? Qu
SÉCUR ITÉ DES R É S E A U X LES A TTAQUES A. Guermouche 0 Plan Les attaques? Quelques cas concrets de MiTM BGP OSPF DNS : Failles & dangers Déni de service distrbué (DDoS) Comment se défendre? Mécanismes de detection d’intrusions honeypot SIEM 1 LES ATTAQUES? Techniques d’attaque/d’intrusion Attaque. n’importe quelle action qui compromet la sécurité des informations. Intrusion. Prise de contrôle partielle ou totale d’un système distant. Description d’une attaque : Recherche d’informations. réseau, serveurs, routeurs, . . . Recherche de vulnérabilités. système d’exploitation, serveurs applicatifs, . . . Tentative d’exploitation des vulnérabilités. à distance puis localement Installation de backdoor. Installaltion de sniffer. Suppression des traces. Attaque par déni de service. 3 Buts des attaques (1/2) Interruption. vise la disponibilité des informations (DoS, . . . ) Interception. vise la confidentialité des informations (capture de contenu, analyse de traffic, . . . ) Source de l’attaque 4 Buts des attaques (2/2) Modification. vise l’intégrité des informations (modification, rejeu, . . . ) Source de l’attaque Fabrication. vise l’authenticité des informations (mascarade, . . . ) Source de l’attaque 5 Technique de recherche d’information Recherche d’informations publiques. DNS, whois, . . . Découverte du réseau et du filtrage IP . traceroute, ping, hping, netcat, . . . Découverte des systèmes d’exploitation. nessus, nmap, xprobe, queso, . . . Découverte de services ouverts. nmap, udp-scan, nessus, . . . Découverte des versions logicielles. telnet, netcat, . . . 6 Exemple : Découverte de machines via DNS Interrogation du DNS avec dig : • serveur de mail (champ MX), serveur DNS (champ NS) • résolution inverse sur toutes les adresses (dig -x) (peu discret) • transfert de zone (dig server axfr zone.) (pas toujours autorisé) >dig labri.fr. MX ; < < > > DiG 9.4.1-P1 < < > > labri.fr. MX ;; global options: printcmd ;; Got answer: ;; -»HEADER < <- opcode: QUERY, status: NOERROR, id: 22464 ... ;; QUESTION SECTION: ;labri.fr. IN MX ;; ANSWER SECTION: labri.fr. 28800 IN MX 10 iona.labri.fr. ... 7 Balayage Découverte de machines : But. • découvrir les machines d’un réseau donné. Principe. • envoyer un paquet à toutes les adresses. • analyser le paquet retour Outils. • nmap • . . . Découverte de ports ouverts : But. • découvrir les services/ports ouverts sur une machine donnée. Principe. • envoyer des paquests. • analyser les paquet retour (ou leur absence) Outils. • nmap • telnet • netcat • . . . 8 Détection de ports ouverts ping sweep (balayage avec ping) : nmap -sP -PI ... Principe. Envoyer un paquet ICMP Echo Request et attendre le paquet ICMP Echo Reply. Inconvénient. Méthode très peu discrète. Techniques plus sophistiquées : nécessitent généralement des privilèges administrateur sur la machine source • Half Open SYN scan un seul paquet SYN • NULL scan paquet sans flags (réponse uniquement si le port correspondant est fermé) • FIN scan un seul paquet avec le flag FIN (réponse uniquement si le port correspondant est fermé) • XMAS scan URG + PUSH + FIN (réponse uniquement si le port correspondant est fermé) • . . . 9 Détection de ports ouverts scan TCP via HTTP proxy bounce scan Utiliser un proxy HTTP comme relai pour faire du scan de ports : • GET http://ftp.ens-lyon.fr:21 HTTP/1.0 (et attendre la réponse) scan TCP via FTP (FTP Bounce attack) Utiliser un proxy FTP (ayant un disfonctionnement) comme relai pour faire du scan de ports : • PORT 10,10,0,2,0,25 • nmap -b ... scan UDP • nmap -sU ... scan RPC • nmap -sR ... 10 Détection de ports ouverts idle scan • technique de balayage de ports TCP . • hautement furtive. • utilisation d’un intermédiaire appelé zombie. • technique basée sur l’utilisation de l’IPID (compteur de fragementation IP) du zombie. source https://upload.wikimedia.org/wikipedia/commons/e/ef/Idlescan.png une version plus avancée et plus récente de ce scan est ONIS. 11 Détermination du filtrage IP Méthode : • Forger un paquet avec un ttl tel que le paquet est arrêté par un filtre IP . • Essayer de communiquer avec hôte situé derrière le firewall. • Analyser les réponses. Outils : • firewalk, . . . Défense : • Interdir aux réponses ICMP de sortir du réseau protégé. • ... 12 Prise de contrôle d’un serveur distant En plusieurs étapes : 1. Recherche de services ouverts (SMTP , FTP , . . . ) 2. Exploitation de vulnérabilités : (CGI, exploit connu, débordement de buffer, injection de code/commande, . . . ) 3. Pose de sniffer 4. Pose de backdoor Exemples de backdoor : rwwwshell. Lancer un client HTTP avec un shell associé sur une machine à l’intérieur du réseau et ouvrir une connexion HTTP vers un serveur du pirate. loki. installer un serveur particulier sur une machine du réseau interne et communiquer avec lui en utilisant le champ données des paquets ICMP . 13 Attaques sur les réseaux locaux Écoute du réseau. Capturer le contenu des paquets qui ne nous sont pas destinés. • tcpdump • sniff • . . . Usurpation d’adresses (IP et MAC). Forger et envoyer des paquets avec une fausse adresse IP. . . • dsniff • . . . Vol de session. Forger des paquets permettant la prise de contrôle d’une connexion déjà établie. • juggernaut • hunt • . . . 14 Usurpation d’adresses (spoofing) Principe. • Forger et envoyer des paquets IP avec une fausse adresse source. Propriété. • Impossibilité de trouver la véritable source. Utilisation. • Technique souvent utilisée dans le cas d’attaque de type DoS. Rappel : Une attaque de type DoS vise l’interruption d’un service en saturant la cible de requêtes. 15 Vol de session (Connection Hijacking) Objectif. • Prendre la main sur une connexion déjà établie. Principe. • Attendre l’établissement d’une connexion. • Désynchroniser la connexion entre le client et le serveur (en forgeant un paquet avec un numéro de séquence particulier). • Profiter de la désynchronisation pour faire faire au serveur ce qu’on veut. Difficulté. • Attaque très compliquée (voire impossible) si on n’a pas la possibilité de voir le traffic entre le client et le serveur. 16 Derniers résultats sur TCP Utilisation de side-channels sur TCP pour deviner : le quadruplet identifiant la connexion, les numéros de séquence et d’acquittement, voire voler la connexion. Attaque blind traditionnelle (brute force) • Terminaison de la connexion et injection de données. • Nécessite un paquet forgé contenant: ◦4-tuple <src IP , dst IP , src port, dst port> doit être connu. ◦numéro de séquence utilisé (hypothèse) SEQ est in-window (du point de vue du récepteur) RFC 5961 (Aout 2010) • déjoue les attaques blind in-window (c.f. ci-dessus). • modification du schéma de réception pour SYN, RST et les paquets de données. L ’implémentation linux a introduit une vulnérabilité de type side-channel. source https://www.usenix.org/sites/default/files/conference/protected-files/security16_slides_cao.pdf 17 Yue Cao USENIX Security 2016 Threat Model • Consists of: • An arbitrary pair of client and server • A blind off-path attacker(no eavesdropping capability) • Assumption: the attacker can send spoofed packets with the victim (client or server)’s IP address 5 Client Server Attacker Threat Model Yue Cao USENIX Security 2016 SYN Receiving Scheme • Before RFC 5961: blind RST Attack by sending spoofed SYN packet 8 Sender Receiver SYN Out-of-Window ACK back In_Window Reset Connection After RFC 5961 Challenge ACK Challenge ACK RCV.NXT RCV.NXT+RCV.WND RCV_Window SEQ # Space Before RFC 5961 SEQ #: Challenge ACK: ask sender to confirm if it indeed restarted Yue Cao USENIX Security 2016 RST Receiving Scheme • Before RFC 5961: blind RST Attack by sending spoofed RST packet 9 RST Out-of-Window Drop the Packet In-Window Reset Connection After RFC 5961 Exactly match Drop the Packet Challenge ACK Reset Connection Sender Receiver RCV.NXT RCV.NXT+RCV.WND RCV_Window SEQ # Space Before RFC 5961 SEQ #: 0/4G Challenge ACK: tell sender to confirm if it indeed terminated the connection Yue Cao USENIX Security 2016 Data Receiving Scheme • Before RFC 5961: blind Data Injection Attack by injecting spoofed DATA packet 10 In-RCV_Window —> Check ACK # After RFC 5961 In-Accpt_Window Process Data Out-of-Window Drop Challenge Window (Old ACK) Challenge ACK Drop Process Data SND.NXT SND.UNA Accept Window SND.UNA-2G Challenge Window RCV.NXT RCV.NXT+RCV.WND RCV_Window SEQ # Space ACK # Space Before RFC 5961 SEQ #: ACK #: Yue Cao USENIX Security 2016 Why Does This Vulnerability Exist? • RFC 5961: a much stricter check on incoming packets • Challenge ACK is triggered in a established connection: • SYN packet with correct 4-tuples <srcIP, dstIP, srcPort, dstPort> (any SEQ #) • RST packet with 4-tuples, in-window SEQ # • Data packet with 4-tuples, in-window SEQ #, old ACK #(in challenge window) 11 Port number SEQ number ACK number SYN-triggered challenge ACK RST-triggered challenge ACK ACK-triggered challenge ACK Rate limit of challenge ACK (recommended by RFC 5961) Linux followed faithfully Side-Channel Side-Channel Side-Channel SYN RST Data Yue Cao USENIX Security 2016 Side Channel Vulnerability • sysctl_tcp_challenge_ack_limit: implemented in Linux 3.6+ • Global limit of all challenge ACK per sec, shared across all connections • Default value: 100 (reset per second) 13 100 uploads/s1/ cours-1 1 .pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 07, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 4.9163MB