NESSUS 1 Un scanner de vulnrabilit Par Florian
NESSUS 1 Un scanner de vulnérabilité Par Florian ARNOLD XPose IR 3 le 24/11/2009
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SOMMAIRE Présentation Scan distant Scan local Gestion des rapports Gestion des failles de sécurité 24/11/2009 Nessus : un scanner de vulnérabilité 2
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCANNER DE VULNÉRABILITÉ Comment se caractérisent les vulnérabilités? 24/11/2009 Nessus : un scanner de vulnérabilité Services réseaux vulnérables Accès aux données sensibles Fautes de configuration (Ex : relais SMTP ouvert) Patchs de sécurité non appliqués Mots de passe par défaut Dénis de service contre la pile TCP/IP Notion de « vulnerability Assessment » : Identifier / Classifier des failles de sécurité Permet de résoudre les problèmes de sécurité Utilisé par les scanners de vulnérabilité 3
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation NESSUS, C’EST QUOI? Produit de Tenable Network Security depuis 1998 Sous licence propriétaire depuis 2005 Compatible Microsoft / Unix Existe en GPL => Open. VAS Scanner de vulnérabilité 24/11/2009 Nessus : un scanner de vulnérabilité Audit des failles de sécurité Logiciel client / serveur Mécanisme de plugins 4
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation PRÉ-REQUIS Installation du serveur Nessus 24/11/2009 Nessus : un scanner de vulnérabilité sudo apt-get install nessusd Installation du client Nessus sudo apt-get install nessus Mises à jour des vulnérabilités sudo nessus-update-plugins Création d’un utilisateur Nessus sudo nessus-adduser login 5
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation NESSUSD : LE SERVEUR 24/11/2009 Nessus : un scanner de vulnérabilité nessusd [-vcphd. DLCR] [ -S <ip[, ip, . . . ]> ] S <ip[, ip, . . . ]> v h p <number> c <filename> D d q : send packets with a source IP of <ip[, ip. . . ]> : shows version number : shows this help : use port number <number> # 1241 by default : alternate configuration file to use (default : /etc/nessusd. conf) : runs in daemon mode : dumps the nessusd compilation options : quiet (do not issue any message to stdout) 6
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation NESSUS : LE CLIENT host port user pass targets result. rcfile 24/11/2009 Nessus : un scanner de vulnérabilité nessus [–c <. rcfile>] -q <host> <port> <user> <pass> <targets-file> <result-file> : nessusd host port : nessus login : nessus password : file containing the list of targets : name of the file where nessus will store the results : client configuration side (~/. nessusrc by default) Exemple de « targets-file » : 192. 168. 0. 1 srvnessus 192. 168. 0. 11 192. 168. 0. 254 193. 5. 83. 0/24 7
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCHÉMA DE FONCTIONNEMENT NESSUS 24/11/2009 Nessus : un scanner de vulnérabilité Demande de scan pour les réseaux : 192. 168. 0. 0/24 192. 168. 10. 1 192. 168. 20. 1 8
Scan distant Gestion des rapports Scan local Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SÉQUENCE DES OPÉRATIONS Détection des machines vivantes Scan des ports Récupération d’information : ARP ping TCP ping ICMP ping Type et version des divers services (scan Liste des package installés (scan 24/11/2009 Nessus : un scanner de vulnérabilité distant) 9 local) Attaque simple (peu agressives) Dénis de service (contre les logiciels visés) Dénis de service contre la machine 9
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCAN DISTANT Avantages : Scanner de port « maison » Tester la version des services Ex. : HTTP 1. 1, Open. SSL/0. 8. 7 a, … Scan en parallèle (Gain de temps et de perf) Plusieurs instances de nessus[d] possibles Inconvénients : 24/11/2009 Nessus : un scanner de vulnérabilité Test de connexion aux ports [1 -15000] (par défaut) Faux positifs possibles Peut surcharger le réseau inutilement Ex. : Saturation de la table de translation d’un firewall 10
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCAN DISTANT Mono serveur Multi serveur 24/11/2009 Nessus : un scanner de vulnérabilité 11
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCAN LOCAL Avantages : Test de vulnérabilité des logiciels locaux Ex : version de « dll » obsolète Rend un scan optimal Authentifications importantes Utilisation de techniques de Hackers Ex : attaque par dictionnaire sur « /etc/shadow » Inconvénients : 24/11/2009 Nessus : un scanner de vulnérabilité Répond au problème de faux positif Peut figer des applications locales Nécessite le redémarrage de ces applications Ex : ferme de calcul bancaire Natixis tombé à cause du scan local 12
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SCAN LOCAL Différents accès possibles (~/. nessusrc) : SSH (login+password) SSH (clé privée + publique => cryptage asymétrique) Kerberos (cryptage symétrique) Pour Microsoft : NTLM & NTLMv 2 (par défaut) Kerberos 24/11/2009 Nessus : un scanner de vulnérabilité Pour Unix : 13
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation GESTION DES RAPPORTS Possibilités de générer des HTML, XML, NBE, TXT, TEX, NSR Fichiers NBE (Nessus Back End Report) par défaut Séparateur : ‘|’ 24/11/2009 Nessus : un scanner de vulnérabilité timestamps|||scan_start|Wed Oct 21 18: 05: 26 2009| timestamps||192. 168. 0. 2|host_start|Wed Oct 21 18: 05: 31 2009| results|192. 168. 0. 2|general/tcp|10180|Security Note|<description> results|192. 168. 0. 2|general/icmp|10114|Security Warning|<description> results|192. 168. 0. 2|general/udp|10287|Security Note|<description> results|192. 168. 0. 2|general/tcp|19506|Security Note|<description> results|192. 168. 0. 2|general/tcp|9999|Security Hole|<description> timestamps||192. 168. 0. 2|host_end|Wed Oct 21 18: 07: 53 2009| 14 timestamps|||scan_end|Wed Oct 21 18: 07: 53 2009|
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation UTILISATION DES RAPPORTS 24/11/2009 Nessus : un scanner de vulnérabilité 15
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation SITES DE RÉFÉRENCE Security Focus : http: //www. securityfocus. com CVE : http: //cve. mitre. org National Vulnerability Database : http: //web. nvd. nist. gov SCAP: Security Content Automation Protocol DRAFT NIST SP 800 -126 24/11/2009 Nessus : un scanner de vulnérabilité 16
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation NASL : C’EST QUOI? Nessus Attack Scripting Language Interpréteur maison orienté sécurité Utilisé par Nessus pour tester les vulnérabilités Permet d’écrire ses propres tests de vulnérabilité Partage des scripts / Indépendant de l’OS Environ 32 000 scripts NASL présents aujourd’hui 24/11/2009 Nessus : un scanner de vulnérabilité 17
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation NASL : FONCTIONNEMENT Test de scripts NASL : nasl –t target_host my_script. nasl 24/11/2009 Nessus : un scanner de vulnérabilité nasl [-vhs. DL] [-p] [ -t target ] [-T trace_file] [-SX] script_file. . . -h : shows this help screen -p : parse only - do not execute the script -D : run the 'description part' only -L : 'lint' the script (extended checks) -t target : Execute the scripts against the target(s) host -T file : Trace actions into the file (or '-' for stderr) -s : 'safe checks‘ enabled -v : shows the version number -X : Run the script in 'authenticated' mode 18
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation STRUCTURE DE SCRIPTS NASL # Script code here. # 'attack' section. # 24/11/2009 Nessus : un scanner de vulnérabilité # # Nasl script to be used with nessusd # if(description) { script_name(language 1: <name>, [. . . ]) script_description(language 1: <desc>, [. . . ]) script_family(language 1: <family>, [. . . ]) script_cve_id(CVE-ID 1[, CVE-ID 2, . . . , CVE-IDN]); script_bugtraq_id(ID 1[, ID 2, . . . , IDN]); script_dependencies(filename 1 [, filename 2, . . . , filename. N]); … … exit(0); } 19
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités ARNOLD Florian - IR 3 - Présentation EXEMPLE DE SCRIPT NASL ability_ftp_overflow. nasl if(description){ … exit(0); } # Check starts here include("ftp_func. inc"); port = get_kb_item("Services/ftp"); if ( ! port ) port = 21; if ( ! get_port_state(port) ) exit(0); banner = get_ftp_banner(port: port); if ( ! banner ) exit(0); if ( egrep(pattern: "^220 Welcome to Code-Crafters - Ability Server ([0 -1]. . *|2. ([0 -2]|3[0 -4]))[^0 -9]", string: banner) ) security_hole(port); APPE & STOR command => buffer overflow 24/11/2009 Nessus : un scanner de vulnérabilité script_id(15628); script_cve_id("CVE-2004 -1626", "CVE-2004 -1627"); script_bugtraq_id(11508); 20
Scan distant Scan local Gestion des rapports Gestion des vulnérabilités QUESTIONS ? 24/11/2009 Nessus : un scanner de vulnérabilité MERCI DE VOTRE ATTENTION ARNOLD Florian - IR 3 - Présentation 21
- Slides: 21