======Sécurité des réseaux====== =====Attaques qui nécessitent peu d'intelligence du réseau===== ====Reconnaissance==== ===Packets sniffers=== Placer un NIC en mode promiscuité afin de récupérer tout le trafic du lien, notamment les informations sensibles de certains protocoles qui passent en clair (mots de passe Telnet, FTP, SMTP, POP ou HTTP). L'attaquant doit être dans le même domaine de collision. Pour éviter cette menace on utilise de l'authentification, du chiffrement, des outils anti-sniff (ils analysent le temps de réponse d'une machine pour détecter un potentiel sniff) et une infrastructure switchée. ===Ping sweeps=== Scan de range d'IPs afin de déterminer lesquelles répondent (sont utilisées). Dans le cas du scan d'un port unique sur toute une plage d'IPs, on appelle cela un portsweep ou **scan horizontal**. ===Port scans=== Portscan = **scan vertical** ; il permet de déterminer quel ports sont ouverts afin de détecter les services qui tournent sur la machine, et ainsi détecter d'éventuelles failles de sécurité (via les informations renvoyées par la cible comme le nom et la version du logiciel, les bannières, etc...). Les port scans et ping sweeps sont bloquer par les équipements de niveau 4 et supérieur (firewalls, IPS). Le logiciel le plus connu de scan de ports est [[http://fr.wikipedia.org/wiki/Nmap|nmap]]. ===Internet information queries=== Il s'agit là de l'utilisation d'outils (disponibles sur internet) afin de récupérer des informations ; par exemple une requête whois permet de récupérer des informations dans le DNS. ====Access attacks==== ===Password attacks=== Attaque pour deviner un mot de passe ; par exemple une attaque par force brute (test de toutes les possibilités une par une) ou par dictionnaire (tests d'une liste préétablie de mots de passe potentiels). Les logiciels les plus connus d'attaque par dictionnaire sont [[http://fr.wikipedia.org/wiki/John_the_Ripper|John the Ripper]], [[http://fr.wikipedia.org/wiki/Cain_%26_Abel|Cain & Abel]] ou L0phtCrack ; ils peuvent être utiles pour un administrateur système afin de tester la résistance des mots de passe des utilisateurs. Pour pallier à ce genre d'attaque, on peut : * forcer la complexité des mots de passe (par exemple 8 caractères minimum, utilisation de caractères alphanumériques, etc..) * forcer les utilisateurs à changer de mots de passe régulièrement * ne pas utiliser le même mot de passe pour différentes applications * ne pas enregistrer les mots de passe en "plaintext" (il faut les hasher (MD5, SHA-1), et ne pas laisser les hashs lisibles à tous les utilisateurs (ex : utilisation de shadows sous Linux)) * définir une durée entre chaque saisie du mot de passe (ce qui augmente considérablement le temps nécessaire pour trouver le mot de passe) * limiter le nombre de tentatives possibles en échec (par ex. 3 pour les cartes SIM). ===Trust exploitation=== Utilisation d'un accès avec privilège fourni sur un équipement pour faire une chose non autorisée ; par exemple la compromission d'une DMZ, puis rebondir faute de blocage sur un intranet non sécurisé faisant confianc à la DMZ. ===Port redirection=== Compromission d'une machine afin de l'utiliser comme rebond pour lancer une attaque vers d'autres cibles ; aisni l'IP visible de la source de l'attaque sera celle de la machine compromise. ===Man-in-the-middle attacks=== L'attaquant se place en coupure dans une communication entre 2 machines, afin d'écouter et/ou de transformer les informations échangées. ===Buffer overflow=== Attaque qui consiste à dépasser le tampon d'une application mal programmée (typiquement en C/C++ qui ne protègent pas la mémoire) afin de faire de l'injection de code (exécuter un code malicieux). ====DoS et DDoS==== Attaque par déni de service (Deny of Service) est une attaque qui consiste à submerger un serveur avec des requêtes infondées (par exemple une "SYN attack"), afin qu'il devienne indisponible pour les utilisateurs normaux. Une attaque Dos est lancée à partir d'une machine, une **DDoS** (Distributed DoS) depuis plusieurs machines (souvent zombies = compromises). Pour se protéger des attaques de type DoS, il faut une fonction anti-DoS qui limite le nombre de requête par unité de temps. Souvent, les IPs source sont également usurpées (spoofing) ; on peut alors mettre en place de l'anti-spoofing. Un filtrage anti-spoofing consiste en : * le blocage des paquets de réseaux privés non routables (**RFC 2827** càd les réseaux 0.0.0.0/8 ; 10.0.0.0/8 ; 127.0.0.0/8 ; 172.16.0.0/12 ; 192.168.0.0/16 ; 224.0.0.0/4 et 240.0.0.0/4) en entrée/sortie d'internet * le blocage vers internet de tous les paquets dont les IPs sources ne correspondent pas à votre plage d'adressage * le blocage des paquets reçus d'internet qui ont une IP source de votre plage d'adressage * d'une façon générale, bloquer les paquets dont l'IP source ne correspond pas à ce qui est attendu =====Attaques qui nécessitent un réseau intelligent===== ====Vers, virus et chevaux de Troie==== Pour bloquer ce genre de menaces, utilisation de : * antivirus mis à jour régulièrement * logiciels mis à jour régulièrement * s'abonner aux listes de diffusion qui publient les dernières vulnérabilités * utiliser un équipement spécifique de type IDS/IPS (analyse niveau 7) ====Vers==== Un ver est un code qui exploite une vulnérabilité sur un système, s'installe dessus, et se propage vers de nouvelles cibles. Le but d'un ver est de récupérer un accès privilégié (administrateur, root) sur les systèmes cibles afin de les contrôler. Pour mémo : les 4 étapes de désinfection d'un ver sont : contain, inoculate, quarantaire and treat. ====Virus==== Un virus est un code malicieux qui ne peut pas se propager sans l'intervention de l'homme ; c'est la principale différence avec un ver. ====Attaques au niveau application==== Il s'agit de l'exploitation de failles sur des logiciels qui utilisent des ports connus (HTTP, FTP, etc). ====Vulnérabilités des protocoles de management==== Un exemple classique est l'utilisation de Telnet pour administrer des équipements, qui n'est ni plus ni moins qu'une faille de sécurité puisque les communication Telnet ne sont pas chiffrées, donc lisibles par n'importe qui. Liste des protocoles non sûrs : * telnet * SNMP v2 et inférieur * syslog * FTP/TFTP * NTP sans authentification (v2 et inférieures) Liste de bonnes pratiques : * utiliser IPsec, SSH ou SSL pour l'administration * mettre en place des ACLs pour ne permettre que les serveurs d'administration * respecter le RFC 3704 (bloquer le spoofing)