Nessus : l’outil d’audit réseau

13
Nessus : l’outil d’audit de services réseau Description : Nessus est un outil de sécurité informatique. Il signale les faiblesses potentielles ou avérées sur les machines testées. Ceci inclut entre autres : Les services vulnérables à des attaques permettant : la prise de contrôle de la machine l'accès à des informations sensibles (lecture de fichiers confidentiels par exemple) des dénis de service... Les services jugés faibles (on suggère par exemple de remplacer Telnet par SSH) Les dénis de service contre la pile TCP/IP Les mots de passe par défaut, quelques mots de passe communs, et l'absence de mots de passe sur certains comptes systèmes. Nessus peut aussi appeler le programme externe Hydra pour attaquer les mots de passe à l'aide d'un dictionnaire. Nessus est également capable de : détecter une version d'un service, sans utiliser la bannière d'accueil que l'on peut spécifier pour un service, mais en étudiant son comportement. Principe de Fonctionnement : Nessus détecte les machines vivantes sur un réseau, balaie les ports ouverts, identifie les services actifs, leurs versions, puis tente diverses attaques. Nessus utilise des logiciels tiers s’ils sont disponibles : Le scanner de port Nmap qui fournit des fonctionnalités avancées dans le domaine du balayage de port ; Le logiciel Nitko ou Whisker qui permet de faire des tests et des attaques spécifiques sur les serveurs Web enfin l’outil Hydra cité plus haut qui fournit des attaques brute-force pour des services tels que Telnet, IMAP Le fait que Nessus utilise des logiciels tiers tient du principe qu’il n’est pas nécessaire d’implémenter de nouveau ce qui existe déjà et répond parfaitement aux besoins. Nessus est basé sur une architecture client / serveur qui permet de multiples Configurations ; il se divise donc en deux parties : nessusd qui est un daemon exécutant les requêtes ainsi que la communication avec la cible, et nessus, une application client qui récupère les données et affiche le résultat. Le démon de Nessus est placé à l’extérieur du réseau de l’entreprise sur Internet (WAN) afin d’effectuer des séries de tests externes. Le client lui est à l’intérieur du réseau. Il permet de contrôler le serveur et de configurer le serveur qui effectue l’attaque proprement dite de la machine cible. Il est ainsi possible d’avoir une vision claire des services effectivement vulnérables à partir d’Internet.

description

Nessus est outil pour l’audit des réseau (sécurité)

Transcript of Nessus : l’outil d’audit réseau

Page 1: Nessus : l’outil d’audit réseau

Nessus : l’outil d’audit de services réseau

Description :

Nessus est un outil de sécurité informatique. Il signale les faiblesses potentielles ou avérées

sur les machines testées. Ceci inclut entre autres :

Les services vulnérables à des attaques permettant :

la prise de contrôle de la machine

l'accès à des informations sensibles (lecture de fichiers confidentiels par

exemple)

des dénis de service...

Les services jugés faibles (on suggère par exemple de remplacer Telnet par SSH)

Les dénis de service contre la pile TCP/IP

Les mots de passe par défaut, quelques mots de passe communs, et l'absence de mots

de passe sur certains comptes systèmes. Nessus peut aussi appeler le programme

externe Hydra pour attaquer les mots de passe à l'aide d'un dictionnaire.

Nessus est également capable de :

détecter une version d'un service, sans utiliser la bannière d'accueil que l'on peut

spécifier pour un service, mais en étudiant son comportement.

Principe de Fonctionnement :

Nessus détecte les machines vivantes sur un réseau, balaie les ports ouverts, identifie les

services actifs, leurs versions, puis tente diverses attaques.

Nessus utilise des logiciels tiers s’ils sont disponibles :

Le scanner de port Nmap qui fournit des fonctionnalités avancées dans le domaine du

balayage de port ;

Le logiciel Nitko ou Whisker qui permet de faire des tests et des attaques spécifiques

sur les serveurs Web

enfin l’outil Hydra cité plus haut qui fournit des attaques brute-force pour des

services tels que Telnet, IMAP …

Le fait que Nessus utilise des logiciels tiers tient du principe qu’il n’est pas nécessaire

d’implémenter de nouveau ce qui existe déjà et répond parfaitement aux besoins.

Nessus est basé sur une architecture client / serveur qui permet de multiples

Configurations ; il se divise donc en deux parties :

nessusd qui est un daemon exécutant les requêtes ainsi que la communication avec la

cible, et

nessus, une application client qui récupère les données et affiche le résultat.

Le démon de Nessus est placé à l’extérieur du réseau de l’entreprise sur Internet (WAN) afin

d’effectuer des séries de tests externes.

Le client lui est à l’intérieur du réseau. Il permet de contrôler le serveur et de configurer le

serveur qui effectue l’attaque proprement dite de la machine cible. Il est ainsi possible d’avoir

une vision claire des services effectivement vulnérables à partir d’Internet.

Page 2: Nessus : l’outil d’audit réseau

Nessus intègre d’importantes bases de connaissances relatives aux services proposés sur

divers systèmes d’exploitation, aux failles de vulnérabilité et aux résolutions des problèmes

crées par la présence des failles de vulnérabilité. La base de données a l’avantage d’être

largement évolutive grâce au système de plug-in.

En effet, chaque test de sécurité se présente sous forme d’un plug-in extérieur. Les plug-in

correspondant aux failles de sécurité les plus récentes sont disponibles sur Internet. Nous en

dénombrons plus de 2000 à ce jour. Ces plug-in, sur un système d’exploitation de type

Linux, sont placés dans le répertoire dédié /usr/lib/nessus/plugin/. Dans l’interface cliente, il

est possible de choisir les plug-in que nous voulons prendre en compte.

Le principe de fonctionnement de Nessus se résume comme suit :

1. Le client Nessus se connecte et s’identifie.

2. Le client et le serveur s’échangent leurs certificats afin de crypter les données et que

le serveur authentifie le client. Les certificats sont des fichiers chiffrés qui permettent

d’authentifier les différents intervenants lors de transactions sur Internet.

3. Le serveur informe le client des différents tests et options disponibles.

4. Le client envoie les différents paramétrages au serveur.

5. Le serveur Nessus effectue un balayage de la cible à l’aide des différents scanners de

port à sa disposition. Le scanner de port employé peut être Nmap.

6. La réalisation du scan.

7. Les informations récoltées lors du scan sont enregistrées dans la base de données.

8. Le serveur Nessus effectue les tests correspondant aux données recueillies lors du

balayage des ports. Par exemple si le port 23 est ouvert, les tests correspondant à

Telnet sont lancés.

9. Les plug-in de tests analysent la cible en se reposant sur la base de données.

10. Les plug-in enregistrent les informations relatives aux tests dans la base de données.

11. Toutes les informations sont envoyées au serveur Nessus lors de l’exécution des tests.

12. Les informations récoltées ainsi que leurs analyses sont mises à la disposition de

l’utilisateur.

Nous pouvons obtenir la représentation schématique suivante :

Page 3: Nessus : l’outil d’audit réseau

Mise en œuvre :

L’utilisation de Nessus peut se faire sur différents systèmes d’exploitation tel que : les

différentes versions de Windows et de nombreuses déclinaison d’Unix telles que Linux,

FreeBSD, etc.

Ici nous utilisons une distribution LINUX : DEBIAN

I. Details de l’Installation :

Installation de la partie serveur sur la machine distante :

Page 4: Nessus : l’outil d’audit réseau

On procède à une installation en ligne de commande :

$ sudo apt-get install nessusd

Congratulations. Your server certificate was properly created.

/etc/nessus/nessusd.conf updated

The following files were created :

. Certification authority :

Certificate = /var/lib/nessus/CA/cacert.pem

Private key = /var/lib/nessus/private/CA/cakey.pem

. Nessus Server :

Certificate = /var/lib/nessus/CA/servercert.pem

Private key = /var/lib/nessus/private/CA/serverkey.pem

#

Ensuite on crée un compte nessus :

$ sudo nessus-adduser

Using /var/tmp as a temporary file holder

Add a new nessusd user

----------------------

Login : l-laforet

Authentication (pass/cert) [pass] :

Login password :

Login password (again) :

User rules

----------

nessusd has a rules system which allows you to restrict the hosts

that l-laforet has the right to test. For instance, you may want

him to be able to scan his own host only.

Please see the nessus-adduser(8) man page for the rules syntax

Enter the rules for this user, and hit ctrl-D once you are done :

(the user can have an empty rules set)

192.168.1.0/24

default deny

Login : test

Password : ******

DN :

Rules :

192.168.1.0/24

default deny

Is that ok ? (y/n) [y]

user added.

#

Page 5: Nessus : l’outil d’audit réseau

Ici, nous avons spécifié que notre utilisateur l-laforet est seulement en

mesure d'accéder au réseau 192.168.1.0/24.

Installation du client :

# apt-get install nessus

Reading Package Lists... Done

Building Dependency Tree... Done

The following extra packages will be installed:

libatk1.0-0 libgd-gif1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common

libnessus2 libpango1.0-0 libpango1.0-common libtiff4

Suggested packages:

ttf-kochi-gothic ttf-kochi-mincho ttf-thryomanes ttf-baekmuk

ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp

ttf-arphic-bkai00mp nessusd

Recommended packages:

libatk1.0-data hicolor-icon-theme x-ttcidfont-conf

The following NEW packages will be installed:

libatk1.0-0 libgd-gif1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common

libnessus2 libpango1.0-0 libpango1.0-common libtiff4 nessus

0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.

Need to get 6323kB of archives.

After unpacking 18.8MB of additional disk space will be used.

Do you want to continue? [Y/n] Y

II. Configuration :

1. Configuration du serveur :

Pour vérifier la configuration, par défaut ici, du serveur nessusd, nous pouvons utiliser la

commande nessusd -s :

$ sudo nessusd -s

plugins_folder = /var/lib/nessus/plugins

email = root

max_hosts = 255

max_checks = 15

logfile = /var/log/nessus/nessusd.messages

log_whole_attack = yes

log_plugins_name_at_load = no

dumpfile = /var/lib/nessus/nessusd.dump

rules = /etc/nessus/nessusd.rules

users = /etc/nessus/nessusd.users

per_user_base = /var/lib/nessus/users

cgi_path = /cgi-bin

optimize_test = yes

checks_read_timeout = 15

delay_between_tests = 1

test_file = /etc/passwd

port_range = 1-15000

ping_hosts = yes

reverse_lookup = no

Page 6: Nessus : l’outil d’audit réseau

host_expansion = dns;ip

subnet_class = C

scan_level = normal

outside_firewall = no

plugin_upload = no

language = english

peks_username = nessusd

peks_keylen = 1024

peks_keyfile = /etc/nessus/nessusd.private-keys

peks_usrkeys = /etc/nessus/nessusd.user-keys

peks_pwdfail = 5

track_iothreads = yes

cookie_logpipe = /etc/nessus/nessusd.logpipe

cookie_logpipe_suptmo = 2

cert_file = /var/lib/nessus/CA/servercert.pem

key_file = /var/lib/nessus/private/CA/serverkey.pem

ca_file = /var/lib/nessus/CA/cacert.pem

config_file = /etc/nessus/nessusd.conf

$

La configuration du serveur s'effectue par le fichier /etc/nessus/nessusd.conf.

Nous lançons le serveur par la commande suivante :

$ sudo nessusd -D

Loading the plugins... 1530 (out of 2063)

------------------------------------------------------------

You are running a version of Nessus which is not configured

to receive a full plugin feed. As a result, your security

audits might produce incomplete results.

To obtain a full plugin feed, you need to register your

Nessus scanner at the following URL :

http://www.nessus.org/register/

------------------------------------------------------------

All plugins loaded

$

Ici le chargement des plugins s'effectue en premier. Ces plugins chargés permettront au client

de sélectionner les différents types d'attaques.

On regarde si le processus est bien lancé :

$ ps aux | grep nessus root 4864 0.0 1.2 7324 4704 ? Ss 21:49 0:00 \

nessusd: waiting for incoming connections

$

2. Configuration des tests de sécurité :

On lance l'application sur la machine cliente par la commande suivante:

$ sudo nessus

On obtient alors l’interface ci-dessous :

Page 7: Nessus : l’outil d’audit réseau

Nessusd host : permet de définir le serveur Nessus et de s’y connecter

Plug-ins : il est possible ici de choisir la liste des plug-in que nous

exécuterons lors de la détection des vulnérabilités.

Prefs : cet onglet permet d’indiquer des informations complémentaires à

Nessus, que des pirates sont susceptibles d’avoir en leur possession. Cela peut

être par exemple le nom et le mot de passe correspondant à un compte de type

FTP, SMB, IMAP … etc. La connaissance de ces informations

complémentaires peut permettre à Nessus de détecter davantage de

vulnérabilités et rendre ainsi le scan plus complet.

Scan options : c’est ici que nous indiquons la plage de ports que nous

souhaitons scanner. Il est également possible d’activer l’option « safe checks »

pour éviter de faire tomber le serveur ciblé. Il est également possible d’activer

ou de désactiver de nombreuses autres options : le nombre d’ordinateurs à

tester en même temps, choix des scanners de port utilisé …

Page 8: Nessus : l’outil d’audit réseau

Target selection : nous effectuons le choix de la ou les machines visées. Nous

pouvons spécifier une adresse IP ou une plage d’adresse IP. La notion CIDR

est supportée.

User : permet de spécifier des règles pour, par exemple, exclure une adresse

IP sur laquelle nous ne désirons pas effectuer de tests.

Configuration des plugins : Il est possible de choisir quels plug-in on désire lancer

au moyen de cet écran. En cliquant sur le nom d’un plug-in, une fenêtre expliquant ce

que fait le plug-in s’affiche.

Configuration des options de scan : Ici, nous spécifions les options générales du

scan. Cet onglet permet d'ajuster la plage des ports que l'on souhaite scanner. C'est

aussi ici que nous positionnons l'option Safe check, qui, comme son nom l'indique,

permet de limiter les risques lors du scan.

Cette option proposée par Nessus permet de limiter les risques lors d'un scan. En effet,

le principe d'un scan est d'interagir avec les équipements du réseau. Cependant,

Page 9: Nessus : l’outil d’audit réseau

certains des types de scan utilisés ne respectent par les RFC. Cela a pour effet de

rendre instable certains de ces équipements. Il est donc recommandé de limiter les

types de scans sur des équipements en production.

Configuration de la portée des tests : Il est possible d’indiquer la cible de diverses

façons. On peut utiliser :

une simple adresse IP

une plage d’adresse IP. Ici nous prenons la classe C entière.

Page 10: Nessus : l’outil d’audit réseau

Activation de la base de connaissance : Grand intérêt de ce logiciel, la base de

connaissance permet de rendre intelligente l'application. Lors d'un scan d'un réseau

entier, ce dernier, rencontrant éléments ou services identiques, ne va perdre son temps

à reproduire ses tests. Cette base contenant les ports et services ouvert peut également

être sauvegardée, pour effectuer un comparatif par exemple avec un futur scan d'une

même partie d'un réseau.

Page 11: Nessus : l’outil d’audit réseau

Autres configurations :

D’autre configurations sont disponibles, notamment celles relatives aux règles (Prefs)

permettant aux utilisateurs de limiter leurs tests. Il est possible par exemple d’exclure une

adresse IP que l’on ne veut pas tester.

III. Test :

Une fois toutes les configurations effectuées on peut alors procéder aux différents tests à

l’aide de la touche Start the scan visible sur l’interface ci-dessus.

Après exécutions des tests on obtient les résultats dans l’interface ci-dessous :

Page 12: Nessus : l’outil d’audit réseau

Interprétation des tests :

Le rapport généré par Nessus permet de sélectionner chaque machine du réseau détécté. Pour

chaque machine, il fait remonter les services à l'écoute sur le réseau. Pour chaque service il

effectue un rapport sur la sécurité mise en place. Il fournit des conseils forts utiles, et, fait

prendre conscience d'un réel risque en terme de sécurité s’il y en a lors du déploiement d'un

service quelconque.

En résumé on a :

Une première zone permet de sélectionner un sous réseau qui vient d’être

testé ; ici on a un seul sous-réseau.

Une seconde zone permet de choisir un ordinateur ou un serveur au moyen de

son adresse IP.

Une troisième zone indique les ports qui ont été découverts avec une indication

du niveau de gravité maximale associé à chaque port.

Exemple de résultats pour un port:

Warning found on port echo (7/tcp)

The 'echo' port is open. This port is

not of any use nowadays, and may be a source of problems,

since it can be used along with other ports to perform a denial

Page 13: Nessus : l’outil d’audit réseau

of service. You should really disable this service.

Risk factor : Low

Solution : comment out 'echo' in /etc/inetd.conf

CVE : CVE-1999-0103

Nessus ID : 10061

Information found on port echo (7/tcp)

An echo server is running on this port

Nessus ID : 10330

On remarque que Nessus retourne le détail de ses recherches, on peut lister tous les ports et

ainsi voir quel est le trou de sécurité. Dans l’exemple on est devant un risque de Dos, en plus

comble du luxe il nous propose une « solution » ce qui s’avère très pratique.

Il est à noter que les informations ainsi obtenues sont exportables sous divers formats. Nous

pouvons citer par exemple les formats : ASCII text, LaTeX, HTML ou « Spiffy » HTML,

c’est-à-dire des documents HTML qui comportent des graphiques et des graphes.

Conclusion :

En résumé nous pouvons dire que:

Nessus est un analyseur de sécurité de machine et réseau. Il permet de détecter un

grand nombre de vulnérabilités sur les systèmes les plus connus. Nessus est basé sur le

scanner Nmap, dont il intègre l'ensemble des fonctionnalités. Il y ajoute cependant un

grand nombre de connaissances.

Sa particularité première est qu'il fonctionne en mode client / serveur. Le client permet

de configurer le serveur qui effectue une attaque de la machine visée.

Nessus donne trois types d’indications qui sont les suivantes :

Trou de sécurité : indique les failles de vulnérabilités présentent

Alerte de sécurité : indique des failles qui peuvent devenir des trous de sécurité

Message de sécurité : donne la possibilité à un attaquant de fournir des

informations sur le poste.

Depuis la version 3, le code est propriétaire mais le logiciel reste gratuit sauf pour une

exploitation en entreprise (1200 dollars par an). Un fork de Nessus 2, OpenVAS, est

lui disponible sous licence GPL (libre).

Nessus est adapté pour les entreprises de petite et moyenne taille (entreprises de moins

de 1000 machines). Les limites de son utilisation apparaissent avec des réseaux de

tailles importantes. En effet, dans le cas des tests réalisés sur un petit réseau de trois

postes qui ne propose pas énormément de services, les rapports d’audit atteignaient

jusqu'à 16 pages. Dans un véritable réseau d’entreprise, où le nombre de machines

présentes sur le réseau peut dépasser le millier, la question de l’exploitation

convenable des résultats obtenus se pose. Des rapports volumineux peuvent vite

devenir inexploitables.

Documentation :

http://www.nessus.org.