Un scanner de vulnérabilité Par Florian ARNOLD XPose IR3 le 24/11/2009 Nessus Un scanner de vulnérabilité Par Florian ARNOLD XPose IR3 le 24/11/2009
Sommaire Présentation Scan distant Scan local Gestion des rapports ARNOLD Florian - IR3 - 24/11/2009 Présentation Scan distant Scan local Gestion des rapports Gestion des failles de sécurité Nessus : un scanner de vulnérabilité
Scanner de vulnérabilité ARNOLD Florian - IR3 - 24/11/2009 Comment se caractérisent les vulnérabilités? 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é Nessus : un scanner de vulnérabilité
Nessus, c’est quoi? Produit de Tenable Network Security depuis 1998 ARNOLD Florian - IR3 - 24/11/2009 Produit de Tenable Network Security depuis 1998 Sous licence propriétaire depuis 2005 Compatible Microsoft / Unix Existe en GPL => OpenVAS Scanner de vulnérabilité Logiciel client / serveur Mécanisme de plugins Nessus : un scanner de vulnérabilité Audit des failles de sécurité
Pré-requis Installation du serveur Nessus ARNOLD Florian - IR3 - 24/11/2009 Installation du serveur Nessus Installation du client Nessus Mises à jour des vulnérabilités Création d’un utilisateur Nessus sudo apt-get install nessusd sudo apt-get install nessus Nessus : un scanner de vulnérabilité sudo nessus-update-plugins sudo nessus-adduser login
Nessusd : le serveur nessusd [-vcphdDLCR] [ -S <ip[,ip,...]> ] ARNOLD Florian - IR3 - 24/11/2009 nessusd [-vcphdDLCR] [ -S <ip[,ip,...]> ] S <ip[,ip,...]> : send packets with a source IP of <ip[,ip...]> v : shows version number h : shows this help p <number> : use port number <number> # 1241 by default c <filename> : alternate configuration file to use (default : /etc/nessus/nessusd.conf) D : runs in daemon mode d : dumps the nessusd compilation options q : quiet (do not issue any message to stdout) Nessus : un scanner de vulnérabilité
Nessus : le client Exemple de « targets-file » : ARNOLD Florian - IR3 - 24/11/2009 Exemple de « targets-file » : nessus [–c <.rcfile>] -q <host> <port> <user> <pass> <targets-file> <result-file> host : nessusd host port : nessusd host port user : nessus login pass : nessus password targets : file containing the list of targets result : name of the file where nessus will store the results .rcfile : client configuration side (~/.nessusrc by default) Nessus : un scanner de vulnérabilité 192.168.0.1 srvnessus 192.168.0.11 192.168.0.254 193.5.83.0/24
Schéma de fonctionnement Nessus ARNOLD Florian - IR3 - 24/11/2009 Demande de scan pour les réseaux : 192.168.0.0/24 192.168.10.1 192.168.20.1 Nessus : un scanner de vulnérabilité
Séquence des opérations ARNOLD Florian - IR3 - 24/11/2009 Détection des machines vivantes Scan des ports Récupération d’information : Type et version des divers services (scan distant) Liste des package installés (scan local) Attaque simple (peu agressives) Dénis de service (contre les logiciels visés) Dénis de service contre la machine ARP ping TCP ping ICMP ping Nessus : un scanner de vulnérabilité 9
Scan distant Avantages : Inconvénients : ARNOLD Florian - IR3 - 24/11/2009 Avantages : Test de connexion aux ports [1-15000] (par défaut) Scanner de port « maison » Tester la version des services Scan en parallèle (Gain de temps et de perf) Plusieurs instances de nessus[d] possibles Inconvénients : Faux positifs possibles Peut surcharger le réseau inutilement Ex. : HTTP 1.1, OpenSSL/0.8.7a, … Nessus : un scanner de vulnérabilité Ex. : Saturation de la table de translation d’un firewall
Scan distant Mono serveur Multi serveur ARNOLD Florian - IR3 - 24/11/2009 Mono serveur Multi serveur Nessus : un scanner de vulnérabilité
Scan local Avantages : Inconvénients : ARNOLD Florian - IR3 - 24/11/2009 Avantages : Répond au problème de faux positif 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 : Peut figer des applications locales Nécessite le redémarrage de ces applications Nessus : un scanner de vulnérabilité Ex : ferme de calcul bancaire Natixis tombé à cause du scan local
Scan local Différents accès possibles (~/.nessusrc) : Pour Unix : ARNOLD Florian - IR3 - 24/11/2009 Différents accès possibles (~/.nessusrc) : Pour Unix : SSH (login+password) SSH (clé privée + publique => cryptage asymétrique) Kerberos (cryptage symétrique) Pour Microsoft : NTLM & NTLMv2 (par défaut) Kerberos Nessus : un scanner de vulnérabilité
Gestion des rapports ARNOLD Florian - IR3 - 24/11/2009 Possibilités de générer des HTML, XML, NBE, TXT, TEX, NSR Fichiers NBE (Nessus Back End Report) par défaut Séparateur : ‘|’ 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|192.168.0.2|general/tcp|10180|Security Note|<description> results|192.168.0|192.168.0.2|general/icmp|10114|Security Warning|<description> results|192.168.0|192.168.0.2|general/udp|10287|Security Note|<description> results|192.168.0|192.168.0.2|general/tcp|19506|Security Note|<description> results|192.168.0|192.168.0.2|general/tcp|9999|Security Hole|<description> timestamps||192.168.0.2|host_end|Wed Oct 21 18:07:53 2009| timestamps|||scan_end|Wed Oct 21 18:07:53 2009| Nessus : un scanner de vulnérabilité
Utilisation des rapports ARNOLD Florian - IR3 - 24/11/2009 Nessus : un scanner de vulnérabilité
SCAP: Security Content Automation Protocol Sites de référence ARNOLD Florian - IR3 - 24/11/2009 Security Focus : http://www.securityfocus.com CVE : http://cve.mitre.org National Vulnerability Database : http://web.nvd.nist.gov Nessus : un scanner de vulnérabilité SCAP: Security Content Automation Protocol DRAFT NIST SP 800-126
NASL : c’est quoi? Nessus Attack Scripting Language ARNOLD Florian - IR3 - 24/11/2009 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 Nessus : un scanner de vulnérabilité
NASL : fonctionnement Test de scripts NASL : ARNOLD Florian - IR3 - 24/11/2009 Test de scripts NASL : nasl [-vhsDL] [-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 Nessus : un scanner de vulnérabilité nasl –t target_host my_script.nasl
Structure de scripts NASL ARNOLD Florian - IR3 - 24/11/2009 # # Nasl script to be used with nessusd if(description) { script_name(language1:<name>, [...]) script_description(language1:<desc>, [...]) script_family(language1:<family>, [...]) script_cve_id(CVE-ID1[, CVE-ID2, ..., CVE-IDN]); script_bugtraq_id(ID1[, ID2, ..., IDN]); script_dependencies(filename1 [,filename2, ..., filenameN]); … exit(0); } # Script code here. # 'attack' section. Nessus : un scanner de vulnérabilité
APPE & STOR command => buffer overflow Exemple de script NASL ARNOLD Florian - IR3 - 24/11/2009 if(description){ script_id(15628); script_cve_id("CVE-2004-1626", "CVE-2004-1627"); script_bugtraq_id(11508); … 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); ability_ftp_overflow.nasl APPE & STOR command => buffer overflow Nessus : un scanner de vulnérabilité
Merci de votre attention ARNOLD Florian - IR3 - 24/11/2009 Merci de votre attention QUESTIONS ? Nessus : un scanner de vulnérabilité