Sécurité réseau en pratique Ainsi font font. 1 3 Plan Attention Comment font les pirates Scanner Exploiter Ecouter Comment sécuriser Utilisation des outils décrits plus loin est ILLEGALE! Interdiction FORMELLE d utiliser ces outils ailleurs que dans les salles prévues pour cet usage Ils peuvent servir à sécuriser un réseau et à le pirater Ne JAMAIS les utiliser ailleurs que sur un LAN privé Charte informatique 2 4
Attention Outils d audit=outils d attaques=armes Pas les pointer sur des cibles réelles Prendre toutes les précautions Demander l autorisation de l admin et FAI Pas dans le cadre de la fac Perpétrer des actes de piratage est répréhensible Peut vous coûter votre carrière C est TRES sérieux Synthèse Identifier la cible Collecter des infos Lancer l attaque Couvrir ses traces Maintenir l accès 5 7 How hackers do it Identifier la cible Inspiré de «How hackers do it: Tricks, Tools, and Techniques» A. Noordergraaf, Sun Blueprints May 2002 Actualisé pour la partie «outils» Un bon hacker (bidouilleur) programme un outil pour scanner (explorer) le réseau Il le rend public sur Internet Des script kiddies (novices) le téléchargent et s en servent pour trouver des systèmes vulnérables ou des points d accès 6 8
Identifier la cible Dans le monde réel, cible est choisie en fonction du gain potentiel Majorité des attaques ciblées au hasard selon les opportunités détectées par les scanners de vulnérabilité Nécessaire de se protéger même si l attaque ne rapporte rien au pirate! Outils de base Nslookup/dig Résolution de noms de domaine Ping Vérifier quelles sont les machines en ligne Trouver les adresses de broadcast Traceroute Combien de routeurs jusqu à la cible? à la main par envoi de paquets tcp en changeant le TTL 9 11 Identifier la cible Connaître c est faire la moitié du chemin Si les défenses sont connues, plus facile de planifier l attaque Moyens Détection de l hôte (ping) Recherche des services (port scan, banner grabbing) Détection de la topologie Traceroute, wardialing, wardriving Détection d OS par son fingerprint Sources publiques (whois, dns, web, annuaires) Social engineering 10 Outils de base Finger collecte les informations sur les utilisateurs Finger alice@host.target donne des infos sur alice pour un hote donné Finger @host.target donne des infos sur tous les utilisateurs connectés 12
Outils de base Netcat ou nc Outil multifonctions (aussi appelé TCP/IP swiss army knife) utilisable à différentes fins Entre autres: récupérer les bannières des serveurs (banner grabbing) nc -v -n host.target 22 renvoie la version de ssh qui tourne sur la machine (SSH-1.99-OpenSSH_5.1) Description Nmap ("Network Mapper") is a free open source utility for network exploration or security auditing. It was designed to rapidly scan large networks, although it works fine against single hosts. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. Nmap runs on most types of computers and both console and graphical versions are available. Nmap is free software, available with full source code under the terms of the GNU GPL. 13 15 Vulnérabilités : nmap Port scanner Nmap fait partie des port scanners Un port scanner peut parcourir une grande plage d adresses IP et retourner les ports ouverts (= services) et les version d OS 14 16
OS detection Techniques standard Connexion smtp, snmp ou telnet pour examiner les réponses du serveur Plus efficace (dans nmap) le TCP/IP stack fingerprinting qui identifie la réponse du système à des paquets TCP avec des flags particuliers Stealth mode Attaquant doit récupérer les réponses à ses requêtes Il va donc devoir utiliser son IP comme src Si requête repérée, on remonte à son IP Stealth mode est plus discret; scanner empêche partiellement fonctionnement log 17 19 Modes de fonctionnement Vanilla Tentative de connexion sur tous les ports Strobe Ciblé sur certains ports spéciaux Fragment packets Limitation à des paquets fragmentés (permet de traverser certains fw) UDP: recherche ports udp Sweep: connexion sur le même port d un ou des PC FTP bounce: scanner se fait passer pour serveur ftp pour paraître légitime 18 Collecte d informations Travailler de façon systématique en notant tout Objectif Avoir une meilleure connaissance du réseau attaqué que son admin (en tout cas, plus à jour) 20
Collecte d informations Pour chaque @IP, déterminer: Son nom de domaine, Si la machine est en vie (ping, arp) Quels ports sont ouverts Pour chaque port Quels services offerts Quel serveur, version, service pack Quel OS La machine est-elle multi-homed Service ouvert plus indicatif? Vulnérabilités Une fois à l intérieur: Trouver les utilisateurs, les mots de passe à casser Les fichiers intéressants Les connexions réseau actives Les tables de cache arp Les indications sur d autres machines 21 23 Vulnérabilités Obtenir un accès Le novice utilise ensuite une liste d adresses IP vulnérables pour accéder au système Selon les faiblesses il peut éventuellement créer/utiliser un compte ou un accès privilégié Il l utilise pour obtenir de nouveaux privilèges et pirater d autres systèmes reliés à celui qu il vient de pénétrer Exemple: se faire passer pour une machine du réseau attaqué 22 24
Fait partie de la panoplie des sniffers Un sniffer est un programme qui lit tout le trafic sur le LAN en passant l interface réseau en mode de «promiscuité» Ainsi, la carte réseau transmet au sniffer tout le trafic réseau D autres sniffers existent comme snoop (WIN) qui permet de récupérer des mots de passe transmis pour une connexion telnet, ftp, imap,pop 25 Outil d'audit : crack Erreurs d'unix : /etc/passwd lisible par tous, même si non inversible Même algorithme de chiffrement sur toutes les machines Par combinaison (sans dictionnaire), la puissance actuelle des machines permet de découvrir des mots de passe jusqu'à plusieurs caractères Crack à partir de mots de dictionnaires : Ajoute des mots venant d'informations dans /etc/passwd (nom,...) Crée de nouveaux mots (cle+, Cle, elc,...) Chiffre chaque mot et compare le résultat avec la chaîne dans /etc/ passwd Mémorise les mots de passe testés 27 Howto Un peu de psychologie Un utilisateur se connecte sur un serveur imap (pas imaps) Sur un serveur pop par telnet ou ftp Quelques outils d observation passive Et le tour est joué Ensuite 26 Outil d'audit : crack Configurable : Nouvelles règles pour générer de nouveaux mots Ajout de dictionnaires (ciblés linguistiquement) Peut travailler sur plusieurs fichiers passwd Peut envoyer un message aux utilisateurs La première exécution est très longue Crack a beaucoup de succès sur les serveurs FTP anonymes => Utiliser shadow password => utiliser régulièrement crack et envoyer un message aux utilisateurs fautifs 28
Crack : extrait de résultat Feb 21 13:32:47 Crack v4.1f: The Password Cracker, (c) Alec D.E. Muffett, 1992 Feb 21 13:32:48 Loaded 17 password entries with 17 different salts: 100% Feb 21 13:32:48 Loaded 240 rules from 'Scripts/ dicts.rules'. Feb 21 13:32:48 Starting pass 1 - password information Feb 21 13:33:38 Guessed dupont (/bin/ksh in./ passwd) [dupont9] f5em4jkrapyaq Feb 21 13:34:36 Starting pass 2 - dictionary words Feb 21 13:34:36 Applying rule '!?Al' to file 'Dicts/ bigdict.z' Feb 21 21:18:39 Applying rule '28!?Al$9' to file 'Dicts/bigdict.Z' Feb 21 21:24:37 Guessed durant (/bin/ksh in./ passwd) [tomate.] DQywOoXMwQFiI 29 Connexion sécurisé Par la transmission d une clé secrète dans une enveloppe digitale Une enveloppe digitale contient une clé secrète chiffrée par un chiffre à clé publique Certificat est une garantie de la relation identité, clé publique. 31 Plus fort: connexion imaps MI(T)M Le réseau est plus sûr Plus de telnet, ftp, pop, imap Seul accès imaps Comment faire??? MI(T)M! 30 32
Arp spoofing Description d ettercap Ettercap is a suite for man in the middle attacks on LAN. It features sniffing of live connections, content filtering on the fly and many other interesting tricks. It supports active and passive dissection of many protocols (even ciphered ones) and includes many feature for network and host analysis. 33 35 Un outil pour ça Et Fred dispose maintenant peut-être d un couple login/password valide D ailleurs, ettercap permet aussi théoriquement de récupérer des mots de passe ssh1 entre autres choses D autres outils plus spécifiques font la même chose 34 36
Encore plus fort Tout est raisonnablement sécurisé sauf l OS de certaines machines. Que fait le pirate? Il s attaque à la machine la plus faible La sécurité du système est celle de son maillon le plus faible Outils d'audit : ISS Internet Security Scanner Audit de sécurité d'un réseau de machines : à distance, essai des failles de sécurité connues des applications réseau ISS teste : Les comptes sync, guest, lp,... ( mot de passe?) Le port 25 (quelle version de Sendmail?) Certains alias dangereux (uudecode,...) FTP anonymes (peut on créer un répertoire?) rexd (nombreux trous) NIS (cherche le nom de domaine) ; NFS (répertoires exportés?) Les utilisateurs connectés Outil très dangereux dans certaines mains 37 39 Outils d audit Les précurseurs Exemple ISS ISS SATAN COPS export list for 157.211.150.4: /usr/local/tex (everyone) /usr/lib/x11/ncd (everyone) /usr/local/x11r5 (everyone) /tempo /local_home /home meltemi,busar (everyone) (everyone) toto chose.truc:pts/1 Oct 5 07:13 2 titi chose.truc:pts/2 Oct 4 15:03 9550:21 tata chose.truc:pts/2 Oct 4 15:03 9550:21 157.211.150.9 machine.truc.edu 38 40
Outils d'audit : SATAN Outil d'audit : COPS Mêmes objectifs et mêmes méthodes que ISS Interface client web Beaucoup de bruit médiatique : pas de catastrophe Aurait pus être beaucoup plus dangereux On peut passer régulièrement SATAN et ISS sur son réseau Peut sceller certains fichiers Création d'un fichier résultat ou envoi d'un message Peut être exécuté sans être root Configurable : fichiers à sceller, objets dont l'accès est à vérifier, dictionnaires On peut : ajouter ses propres vérifications, le mettre dans le CRON Problèmes : messages succincts, pas de MAJ récente => Faire passer COPS sur toute nouvelle machine installée et régulièrement sur les autres 41 43 COPS Exemple Computer Oracle and Password System Audit de sécurité d'une machine Unix Ensemble de programmes qui vérifient ou détectent : Les permissions de certains fichiers, répertoires, devices Les mots de passe "pauvres" Le contenu des fichiers passwd et group Les programmes lancés dans /etc/rc.local et par cron Les fichiers SUID root L'accès à certains fichiers utilisateurs (homedir,.profile,.cshrc,...) L'installation correcte de FTP anonyme Certains trous de sécurité ("+" dans hosts.equiv, montages NFS, "." dans PATH de root)... **** cron.chk **** **** home.chk **** Warning! User uucp's home directory /var/ spool/uucppublic is mode 03777! **** passwd.chk **** Warning! Password file, line 10, no password: sync::1:1::/:/bin/sync Warning! Password file, line 11, user sysdiag has uid = 0 and is not root sysdiag:*:0:1:old System **** user.chk **** **** misc.chk **** Warning! /bin/uudecode creates setuid files! **** ftp.chk **** Warning! /etc/ftpusers should exist! 42 44
Comment le trouver Premier pas: cibler Au moyen d un scanner de vulnérabilité Par analyse des ports d entrée, le scanner de vulnérabilité trouve l hôte ou le service le plus faible C est ce que fait nessus 45 47 Description Puis scanner The "Nessus" Project aims to provide to the internet community a free, powerful, up-to-date and easy to use remote security scanner. A security scanner is a software which will audit remotely a given network and determine whether someone (or something - like a worm) may break into it, or misuse it in some way. Unlike many other security scanners, Nessus does not take anything for granted. That is, it will not consider that a given service is running on a fixed port - that is, if you run your web server on port 1234, Nessus will detect it and test its security. Nessus is very fast, reliable and has a modular architecture that allows you to fit it to your needs. Nessus works on Unix-like systems (MacOS X, FreeBSD, Linux, Solaris and more) and a Windows version called NeWT is available. 46 48
Attaque du maillon faible Et pour le wifi? Par des rootkits Un rootkit est un terme qui décrit un ensemble de scripts et d exécutables réunis ensemble qui permet à un pirate de cacher ses agissements et d obtenir un accès privilégié au système. On procède de même Cibler Attaquer 49 51 Tâches d un rootkit Modification des logs Modification des outils système pour rendre la détection d un piratage plus difficile Création d une trappe d accès cachée Utilisation du système comme point d entrée sur les autres hôtes du réseau Cibler Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system. It will work with any wireless card which supports raw monitoring (rfmon) mode, and can sniff 802.11b, 802.11a, and 802.11g traffic. Kismet identifies networks by passively collecting packets and detecting standard named networks, detecting (and given time, decloaking) hidden networks, and infering the presence of nonbeaconing networks via data traffic. 50 52
Attaquer Filtrage de ports aircrack is an 802.11 WEP and WPA-PSK keys cracking program that can recover keys once enough data packets have been captured. It implements the standard FMS attack along with some optimizations like KoreK attacks, thus making the attack much faster compared to other WEP cracking tools. In fact, aircrack is a set of tools for auditing wireless networks. Contrôle de frontière Contrôle de transit 53 55 Contrôle des frontières Sécuriser Problème principal des intranets connectés à Internet Solution : coupe-feu (firewall) combine: filtres de paquets serveurs proxy mécanismes cryptographiques (IP tunneling) diminuer le nombre de points d entrée 54 56
Filtres de paquets Fonction assurée par les agents de distribution (routeurs ou hôtes dédiés) principe de contrôle redistribuer, effacer et/ou tracer chaque paquet basé sur les informations de l en tête du paquet adresse d origine et de destination direction (entrée/sortie) par rapport au réseau local type d application (port IP) implémentations principales sur TCP/IP Iptables/netfilter netfilter and iptables are building blocks of a framework inside the Linux 2.4.x and 2.6.x kernel. This framework enables packet filtering, network addresss [and port] translation (NA[P]T) and other packet mangling. It is the re-designed and heavily improved successor of the previous Linux 2.2.x ipchains and Linux 2.0.x ipfwadm systems. netfilter is a set of hooks inside the Linux kernel that allows kernel modules to register callback functions with the network stack. A registered callback function is then called back for every packet that traverses the respective hook within the network stack. iptables is a generic table structure for the definition of rulesets. Each rule within an IP table consists out of a number of classifiers (iptables matches) and one connected action (iptables target). netfilter, iptables and the connection tracking as well as the NAT subsystem together build the whole framework. 57 59 Ports services les plus connus RFC "ASSIGN NUMBERS" (RFC1700 ou plus récent) et /etc/ services ftp-data 20 (TCP) telnet 23 (TCP) whois 43 (TCP) bootp 67 (UDP) finger 79 (TCP) http 80 (TCP) rpc portmap 111 (UDP et TCP) ntp (Time) 123 (UDP) snmp trap 162 (UDP) rsh (rcp, rdist) 514 (TCP) syslog 514 (UDP) uucp 540 (TCP) nfs 2049 (UDP ou TCP) 58 ftp-commandes 21 (TCP) smtp 25 (TCP) DNS 53 (UDP et TCP) tftp 69 (UDP) pop3 (Eudora) 110 (TCP) pop2 109 (TCP) nntp (News) 119 (TCP) snmp 161 (UDP) rlogin 513 (TCP) printer (lpr) 515 (TCP) rip 520 (UDP) archie 1525 (UDP) X11 6000-6063 (TCP) Règles de filtrage Chaîne = liste ordonnée de règles. Chaque règle exprime une condition Si la règle ne s'applique pas au paquet, on consulte la règle suivante. Une fois épuisé l'ensemble des règles, le noyau applique la politique par défaut de la chaîne ( {ACCEPT DROP}) qui est habituellement DROP pour un système sécurisé. 60
Instructions sur les chaînes créer une nouvelle chaîne (-N) effacer une chaîne vide (-X) changer la politique par défaut (-P) afficher les règles d'une chaîne (-L) vider toutes les règles (-F) réinitialiser les compteurs de paquets et d'octet de toutes les règles d'une chaîne (-Z) Examen d un paquet En cas de forwarding vers une autre interface, le paquet traverse FORWARD s'il est accepté, il poursuit son chemin. Si le forwarding n'est pas activé ou si on ne sait pas comment transmettre ce paquet, il est supprimé. 61 63 Examen d un paquet Examen d un paquet S'il est destiné à la machine, le paquet traverse INPUT. S'il est autorisé à poursuivre son chemin (décision ACCEPT), il est traité par le processus local à qui il est destiné. En revanche, si la décision est DROP, le paquet est supprimé. 62 Enfin, un programme exécuté par la machine peut également envoyer des paquets traités par OUTPUT. Si la chaîne accepte ces paquets, ils continuent leur chemin vers l'interface réseau à laquelle ils sont destinés. 64
Méthode du Ack bit (established) Dans un datagramme TCP un "Ack bit" accuse réception du datagramme précédent Dans le datagramme d'ouverture de session TCP, ce bit n'est pas positionné En bloquant le premier datagramme toute session TCP est impossible Donc, en filtrant les datagrammes TCP entrants sans "Ack bit", on bloque les connexions TCP entrantes (tout en autorisant les connexions sortantes) Langage routeur : "Ack bit" = "established" Fonctionnement bonjour bonjour, je suis Bob; Cert B prouve-le De B (H(c est Bob)) voici notre secret : Ch B (K) Ch K (sûr?,mac(sûr?)) 65 67 Fonctionnement The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a fullstrength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL toolkit and its related documentation. OpenSSL is based on the excellent SSLeay library developed by Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apachestyle licence, which basically means that you are free to get and use it for commercial and non-commercial purposes subject to some simple license conditions. bonjour bonjour, je suis Bob; Cert B prouve-le De B (H(c est Bob)) voici notre secret : Ch B (K) Ch K (sûr?,mac(sûr?)) Transmission de clé publique 66 68
Fonctionnement Fonctionnement bonjour bonjour bonjour, je suis Bob; Cert B prouve-le De B (H(c est Bob)) Authentification par signature bonjour, je suis Bob; Cert B prouve-le De B (H(c est Bob)) voici notre secret : Ch B (K) Ch K (sûr?,mac(sûr?)) voici notre secret : Ch B (K) Ch K (sûr?,mac(sûr?)) Echange sécurisé+intégrité 69 71 Fonctionnement bonjour bonjour, je suis Bob; Cert B prouve-le De B (H(c est Bob)) voici notre secret : Ch B (K) Ch K (sûr?,mac(sûr?)) Enveloppe digitale OpenSSH est une version LIBRE de la suite d'outils du protocole SSH de connexion réseau utilisé par un nombre croissant de personnes sur l'internet. De nombreux utilisateurs de telnet, rlogin, ftp et autres programmes identiques ne réalisent pas que leur mot de passe est transmis non chiffré à travers l'internet. OpenSSH chiffre tout le trafic (mots de passe inclus) de façon à déjouer les écoutes réseau, les prises de contrôle de connexion, et autres attaques. De plus, OpenSSH fournit toute une palette de possibilités de tunnellisation et de méthodes d'authentification. 70 72
Protection contre La suite logicielle OpenSSH inclus les programmes ssh qui remplace telnet et rlogin, scp qui remplace rcp, et sftp qui remplace ftp. De plus sshd est inclus, constituant la partie serveur du package, ainsi que d'autres utilitaires tels que ssh-add, ssh-agent, ssh-keygen, ssh-keysign, sshkeyscan, et sftp-server. OpenSSH supporte les protocoles SSH 1.3, 1.5 et 2.0. IP Spoofing une machine distante prétend qu un paquet IP provient d une autre IP source routing : idem précédent DNS spoofing interception de clairs/crypto manipulation de données d hôtes intermédiaires 73 75 Description de ssh Programme permettant de se connecter de façon sécure à une machine distante et d exécuter une commande sur cette machine But : remplacement de rsh et rlogin Méthode : en chiffrant les communications TCP/IP X11 Etapes principales Authentification mutuelle des machines Par RSA de l utilisateur chiffrement de la session mécanisme à clé secrète à choisir DES, 3DES, IDEA, blowfish, arcfour, sans. 74 76
4 modes d authentification analogue à.rhosts en authentifiant l hôte par RSA en authentifiant l utilisateur par RSA (avec une autorité de certification) Authentification hôte IP header AH TCP data De S (h(m)) Clé secrète de la source Source S Cible C On ajoute une authentification RSA Elle vérifie la clé d hôte du client en utilisant un protocole 77 79 Authentification 1 Si l hôte de l utilisateur est sur la machine distante dans /etc/hosts.equiv /etc/shosts.equiv ou s il existe un fichier.rhosts ou.shosts la connexion de l utilisateur est autorisée Forme normalement interdite car insécure 78 Authentification hôte (suite) La cible C recevant De S (h (M)) peut alors vérifier l origine du message avec la clé publique de la source. La clé publique est dans /etc/ssh_known_hosts $HOME/.ssh/known_hosts IP header AH TCP data De S (h(m)) 80
Authentification hôte (fin) Après ces vérifications, le login est autorisé. Remédie aux trous de sécurité : IP spoofing DNS spoofing routing spoofing A supprimer : hosts.equiv,.rhosts, rlogin, rsh pour des raisons de sécurité. Génération de clés L utilisateur crée un couple (clé publique/clé privée) par ssh_keygen privée dans.ssh/identity publique dans.ssh/identity.pub qu on retrouve sur la machine distante dans.ssh/authorized_keys analogue au.rhosts 81 83 Authentification utilisateur Le serveur connaît la clé publique de l utilisateur. Il génère un nombre aléatoire r et l envoie chiffré avec la clé publique de l utilisateur : défi pour l utilisateur celui-ci est le seul à pouvoir déchiffrer r Il retourne r au serveur Authentification par certificat Le serveur demande un certificat à l utilisateur. L utilisateur peut obtenir son certificat auprès d un serveur d authentification Peut également fonctionner avec des cartes à puce 82 84
Sinon Si toutes ces méthodes échouent, ssh demande un mot de passe à l utilisateur Le mot de passe transite chiffré sur le réseau En ajoutant de l information dans le paquet, il est possible de déjouer une attaque par rejeu. Et ce n est pas tout Snort is an open source network intrusion detection system, capable of performing real-time traffic analysis and packet logging on IP networks. It can perform protocol analysis, content searching/ matching and can be used to detect a variety of attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts, and much more. Snort uses a flexible rules language to describe traffic that it should collect or pass, as well as a detection engine that utilizes a modular plugin architecture. Snort has a real-time alerting capability as well, incorporating alerting mechanisms for syslog, a user specified file, a UNIX socket, or WinPopup messages to Windows clients using Samba's smbclient. Snort has three primary uses. It can be used as a straight packet sniffer like tcpdump(1), a packet logger (useful for network traffic debugging, etc), or as a full blown network intrusion detection system. 85 87 Connexion Mise en place d un outil de sécurité dit «honeypot» Machine réelle attaques - simulées (nessus) Quand l identité a été acceptée par le serveur, celui-ci exécute la requête de l utilisateur Toutes les communications sont chiffrées en remplacement de TCP/IP par IPSec. Machine virtuelle avec services Internet attaquables Log des attaques: -à la main -automatiques - réelles Exploitation: avoir des informations sur les techniques de piratage 86 88
Et quand tout a échoué. Il faut avoir fait des sauvegardes. Pouvoir tout réinstaller et sans perte C est le plan de reprise 89 10 règles de sécurité Sécuriser les points faibles Opérer en profondeur Bien gérer les cas d erreur Principe du strict minimum Cloisonner Rester simple Encourager le secret Il est difficile de garder un secret Rester méfiant Utiliser les ressources de la communauté 90