Vous êtes sur la page 1sur 21

NESSUS

1 scanner de vulnérabilité
Gestion des Gestion des
Présentation Scan distant Scan local

ARNOLD Florian - IR3 - 24/11/2009 Nessus : un scanner de vulnérabilité


rapports vulnérabilités

SOMMAIRE
 Présentation

 Scan distant

 Scan local

 Gestion des rapports

 Gestion des failles de sécurité 2


Gestion des Gestion des
Présentation Scan distant Scan local

ARNOLD Florian - IR3 - 24/11/2009 Nessus : un scanner de vulnérabilité


rapports vulnérabilités

SCANNER DE VULNÉRABILITÉ
 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é
3
 Utilisé par les scanners de vulnérabilité
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

NESSUS, C’EST QUOI?


 Produit de Tenable Network Security depuis 1998
 Sous licence propriétaire depuis 2005
 Compatible Microsoft / Unix
 Existe en GPL => OpenVAS
 Scanner de vulnérabilité

Audit des failles de sécurité

 Logiciel client / serveur


 Mécanisme de plugins 4
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

PRÉ-REQUIS
 Installation du serveur Nessus
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


5
sudo nessus-adduser login
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

NESSUSD : LE SERVEUR

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)

6
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

NESSUS : LE CLIENT
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)

 Exemple de « targets-file » :
192.168.0.1
srvnessus
192.168.0.11 7
192.168.0.254
193.5.83.0/24
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SCHÉMA DE FONCTIONNEMENT NESSUS

Demande de scan pour les réseaux :


192.168.0.0/24
192.168.10.1
192.168.20.1

8
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SÉQUENCE DES OPÉRATIONS


 Détection des machines vivantes
ARP ping
 Scan des ports
TCP ping
ICMP ping
 Récupération d’information :
 Type et version des divers services (scan distant)
9
 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
9
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SCAN DISTANT
 Avantages :
 Test de connexion aux ports [1-15000] (par défaut)
 Scanner de port « maison »
 Tester la version des services
Ex. : HTTP 1.1, OpenSSL/0.8.7a, …

 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
10
Ex. : Saturation de la table de translation d’un firewall
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SCAN DISTANT
Mono serveur Multi serveur

11
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SCAN LOCAL
 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 12

Ex : ferme de calcul bancaire Natixis tombé à cause du scan local


Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SCAN LOCAL
 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
13
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

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 : ‘|’
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| 14
timestamps|||scan_end|Wed Oct 21 18:07:53 2009|
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

UTILISATION DES RAPPORTS

15
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

SITES DE RÉFÉRENCE

 Security Focus :
http://www.securityfocus.com

 CVE :
http://cve.mitre.org

 National Vulnerability Database :


http://web.nvd.nist.gov
16
SCAP: Security Content Automation Protocol
DRAFT NIST SP 800-126
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

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


17
 Environ 32 000 scripts NASL présents aujourd’hui
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

NASL : FONCTIONNEMENT

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

 Test de scripts NASL : 18


nasl –t target_host my_script.nasl
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

STRUCTURE DE SCRIPTS NASL


#
# 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);
}

19
# Script code here.
# 'attack' section.
#
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

EXEMPLE DE SCRIPT NASL


ability_ftp_overflow.nasl
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 20
([0-1]\..*|2\.([0-2]|3[0-4]))[^0-9]", string:banner) ) security_hole(port);
APPE & STOR command => buffer overflow
Gestion des Gestion des
Présentation Scan distant Scan local
rapports vulnérabilités

MERCI DE VOTRE ATTENTION

QUESTIONS ?

21