• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 28/11/2019

Croisez votre analyse avec un outil d'audit automatique

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

L'administrateur système Linux dispose d'une vaste palette d'outils pour sécuriser les systèmes d'exploitation. Certains outils vont permettre une analyse fine des fichiers de trace (Logwatch par exemple), d'autres vont se concentrer sur l'analyse des traces réseau, comme les sniffers (Snort par exemple), d'autres encore vont chercher à détecter les vulnérabilités par rapport à une base connue (Nessus par exemple).

C'est exactement ce que nous étions en train de faire ! Dans ce chapitre, je vous propose d'installer cet outil et de comparer ses résultats avec ceux de l'audit que nous avons réalisé.

Installez Lynis

logo cisofy
CISOFy, acteur indépendant spécialisé en sécurité informatique

L'outil est supporté par les principales distributions : Red Hat, Debian, et openSUSE.

Vous pouvez regarder cette vidéo pour l'installation, ou suivre mon explication écrite pas à pas en -dessous : 

Pour installer Lynis, lancez simplement la commande suivante :

[root@fichesproduits ~]# yum install lynis

Lynis est un petit package, qui arrive sans dépendances :

Installation 1 Paquet

Taille totale des téléchargements : 252 k
Taille d'installation : 1.3 M
Is this ok [y/d/N]:

Pour consulter la liste des fichiers ajoutés par ce package, lancez la commande suivante :

[root@fichesproduits ~]# rpm -ql lynis
/etc/lynis
/etc/lynis/default.prf
/usr/bin/lynis
/usr/share/bash-completion/completions/lynis
/usr/share/doc/lynis-2.7.1
...
/usr/share/lynis/plugins/custom_plugin.template
/usr/share/man/man8/lynis.8.gz
/var/log/lynis-report.dat
/var/log/lynis.log

Lynis est entièrement écrit en shell script, et donc complètement lisible par l'homme. Pour consulter le script principal, lancez la commande suivante :

[root@fichesproduits ~]# more /usr/bin/lynis
#!/bin/sh

#################################################################################
#
# Lynis
# ------------------
#
# Copyright 2007-2013, Michael Boelen
# 2013-now, CISOfy
#
# Web site: https://cisofy.com

L'utilisation de Lynis est assez simple. Il faut lancer le script principal /usr/bin/lynis avec l'une des deux commandes suivantes :

  • audit : pour exécuter la batterie de tests et réaliser l'audit, ou

  • show : pour afficher une information, telle que la configuration par exemple.

Ensuite, on peut éventuellement ajouter les options suivantes dans le script :

Option

Abréviation

Description

--auditor "Name"

 

Définit le nom de l'auditeur dans le rapport

--checkall

-c

Effectue tous les tests

--check-update

 

Vérifie les mises à jour

--cronjob

 

Exécute en tant que tâche planifiée (inclut les options -c -Q)

--help

-h

Affiche l'aide

--manpage

 

Affiche la documentation

--nocolors

 

Annule l'utilisation de couleurs

--pentest

 

Effectue un test d'intrusion

--quick

-Q

Mode non interactif, sauf pour les erreurs

--quiet

 

N'affiche que les avertissements

--reverse-colors

 

Utilise des couleurs inversées

--version

-V

Vérifie la version du programme

Exécutez un premier rapport de Lynis

Pour exécuter un premier rapport sur Lynis, vous pouvez me suivre en vidéo ou bien dans le texte ensuite. 

Pour exécuter Lynis, lancez la commande suivante :

[root@fichesproduits ~]# lynis audit system

[ Lynis 2.7.1 ]

################################################################################
Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under the terms of the GNU General Public License.
See the LICENSE file for details about using this software.

2007-2019, CISOfy - https://cisofy.com/lynis/
Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program

En fonction des paramètres, l'exécution peut être plus ou moins rapide. En général, elle dépasse rarement une minute.

À la fin de l'exécution vous obtenez un résultat semblable à :

================================================================================

Lynis security scan details:

Hardening index : 66 [############# ]
Tests performed : 220
Plugins enabled : 0

Components:
- Firewall [V]
- Malware scanner [X]

Lynis Modules:
- Compliance Status [?]
- Security Audit [V]
- Vulnerability Scan [V]

Files:
- Test and debug information : /var/log/lynis.log
- Report data : /var/log/lynis-report.dat

================================================================================

L'indicateur Hardening index, basé sur 100, est spécifique à Lynis. Chaque résultat de tests effectué pendant l'audit ajoute (ou non) des points à cet indicateur. L'objectif est de suivre les recommandations de Lynis afin d'augmenter cette valeur et de se rapprocher de 100. Concernant des serveurs sensibles, je considère qu'ils sont sécurisés à partir de 85 (mais cela dépend toujours du contexte).

La liste des tests effectués par Lynis et les traces détaillées des tests se trouvent dans les deux fichiers suivants :

  • /var/log/lynis.log, et

  • /var/log/lynis-report.dat.

Mais en remontant sur la sortie standard de l'exécution de Lynis, pour pourrez aussi consulter le résultat des tests. Nous allons en parcourir quelques-uns ensemble.

Comparez les résultats de Lynis avec ceux de votre audit

Comme d'habitude, vous pouvez suivre cette comparaison en vidéo ou dans le texte ci-dessous. Je prends dans la vidéo l'exemple du résultat de File Systems, du rapport de Lynis. 

Prenons l'exemple du chapitre File systems de Lynis :

[+] File systems
------------------------------------
- Checking mount points
- Checking /home mount point [ SUGGESTION ]
- Checking /tmp mount point [ SUGGESTION ]
- Checking /var mount point [ SUGGESTION ]
- Checking LVM volume groups [ TROUVÉ ]
- Checking LVM volumes [ TROUVÉ ]
- Query swap partitions (fstab) [ OK ]
- Testing swap partitions [ OK ]
- Testing /proc mount (hidepid) [ SUGGESTION ]
- Checking for old files in /tmp [ OK ]
- Checking /tmp sticky bit [ OK ]
- Checking /var/tmp sticky bit [ OK ]
- ACL support root file system [ ACTIVÉ ]
- Mount options of / [ OK ]
- Mount options of /boot [ NON DEFAULT ]
- Disable kernel support of some filesystems
- Discovered kernel modules: cramfs squashfs udf

Vous pouvez constater que Lynis nous propose trois recommandations sur les points de montage /home, /tmp et /var. Toutes les recommandations de Lynis se situent en fin de rapport. Voici ce qui apparaît concernant File systems :

* To decrease the impact of a full /home file system, place /home on a separate partition [FILE-6310]
https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /tmp file system, place /tmp on a separate partition [FILE-6310]
https://cisofy.com/lynis/controls/FILE-6310/

* To decrease the impact of a full /var file system, place /var on a separate partition [FILE-6310]
https://cisofy.com/lynis/controls/FILE-6310/

Vous pouvez constater que Lynis conseille des partitions distinctes pour ces trois points de montage. Ce qui était aussi exactement notre conclusion :

Recommandation

Type

Principe

SYS.4

Vérifier que le partitionnement isole et protège les composants du système

CRITICAL

Défense en profondeur

Mais a priori, Lynis ne teste pas les options de montage de ces partitions. Nous sommes donc allés un peu plus loin avec la recommandation suivante :

Recommandation

Type

Principe

SYS.5

Vérifier les options des points de montage des systèmes de fichiers

CRITICAL

Moindre privilège

Prenons maintenant un second exemple avec le chapitre SSH Support. Le résultat de l'audit de Lynis montre :

[+] SSH Support
------------------------------------
- Checking running SSH daemon [ TROUVÉ ]
- Searching SSH configuration [ TROUVÉ ]
- SSH option: AllowTcpForwarding [ SUGGESTION ]
- SSH option: ClientAliveCountMax [ SUGGESTION ]
- SSH option: ClientAliveInterval [ OK ]
- SSH option: Compression [ SUGGESTION ]
- SSH option: FingerprintHash [ OK ]
- SSH option: GatewayPorts [ OK ]
- SSH option: IgnoreRhosts [ OK ]
- SSH option: LoginGraceTime [ OK ]
- SSH option: LogLevel [ SUGGESTION ]
- SSH option: MaxAuthTries [ SUGGESTION ]
- SSH option: MaxSessions [ SUGGESTION ]
- SSH option: PermitRootLogin [ SUGGESTION ]
- SSH option: PermitUserEnvironment [ OK ]
- SSH option: PermitTunnel [ OK ]
- SSH option: Port [ SUGGESTION ]
- SSH option: PrintLastLog [ OK ]
- SSH option: StrictModes [ OK ]
- SSH option: TCPKeepAlive [ SUGGESTION ]
- SSH option: UseDNS [ SUGGESTION ]
- SSH option: VerifyReverseMapping [ NON TROUVÉ ]
- SSH option: X11Forwarding [ SUGGESTION ]
- SSH option: AllowAgentForwarding [ SUGGESTION ]
- SSH option: UsePrivilegeSeparation [ OK ]
- SSH option: AllowUsers [ NON TROUVÉ ]
- SSH option: AllowGroups [ NON TROUVÉ ]

Il spécifie les recommandations suivantes :

* Consider hardening SSH configuration [SSH-7408]
- Details : AllowTcpForwarding (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : ClientAliveCountMax (3 --> 2)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : Compression (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : LogLevel (INFO --> VERBOSE)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : MaxAuthTries (6 --> 2)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : MaxSessions (10 --> 2)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : PermitRootLogin (YES --> (NO|PROHIBIT-PASSWORD|WITHOUT-PASSWORD))
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : Port (22 --> )
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : TCPKeepAlive (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : UseDNS (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : X11Forwarding (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

* Consider hardening SSH configuration [SSH-7408]
- Details : AllowAgentForwarding (YES --> NO)
https://cisofy.com/lynis/controls/SSH-7408/

Vous pourrez retrouver ici certaines de nos recommandations :

Recommandation

Type

Principe

NET.12

Examiner la directive PermitRootLogin du service SSH

CRITICAL

Moindre privilège

NET.13

Vérifier le port d'écoute du service SSH

CRITICAL

Défense en profondeur

NET.14

Vérifier le durcissement avancé du service SSH

WARNING

Défense en profondeur

La recommandation NET.14 couvre de nombreuses suggestions de Lynis. On peut cependant noter que Lynis propose le durcissement de certaines directives supplémentaires, parmi lesquelles :

  • AllowTcpForwarding ;

  • MaxAuthTries ;

  • TCPKeepAlive ;

  • AllowAgentForwarding.

En résumé

Il est normal et plutôt rassurant de retrouver beaucoup de nos recommandations dans les résultats de Lynis. Cependant, nous avons pu constater quelques différences : des ajouts, mais aussi des points moins détaillés chez Lynis. Gardez à l'esprit qu'un outil d'audit automatique tel que Lynis est là pour accompagner votre démarche d'audit. Vous restez le seul maître de vos recommandations et je vous encourage donc à vous servir de Lynis comme d'un outil complémentaire.

Dans le chapitre suivant, je vous propose de vous pencher sur le rapport en lui-même, et notamment sur sa première page. Le fond et la forme de la première page de ce document doivent être bien réfléchis afin d'aboutir à un rapport clair et efficace.

Exemple de certificat de réussite
Exemple de certificat de réussite