Audit Système : Lynis

8 minute de lecture

Mis à jour :

Les menaces informatique ont évolués, à l’époque les petits malins s’amusaient à rependre des vers, détruire des disques, simplement pour démontrer qu’ils étaient capable de le faire.

Par la suite ils ont trouvés plus intelligent de s’introduire dans vos systèmes et réseaux.

  1. De ce fait ils prennent possession de votre machine afin qu’elle lui obéisse.

  2. Ce que l’on nomme des ROOTKIT

Aussi existe-t-il des produits comme Lynis, RKHunter et CHKROOTKIT, qui vont vérifier la présence de certains fichiers de configuration, vous signifiant quels fichiers il serait intéressant de modifier.

Lynis

Lien vers le dépot git de cisofy.

Outil d’audit de sécurité pour les systèmes à base Unix

Lynis par exemple va générer une somme de contrôle permettant alors de faire une comparaison avec une somme d’origine, vous permettant alors de constater les changements dans votre système.

Il parcourt la configuration du système et crée un résumé des informations système et des problèmes de sécurité, utilisable par des auditeurs professionnels.

Il peut aider à des audits automatisés.

Lynis peut être utilisé en plus d’autres logiciels comme les analyseurs de sécurité, les outils de mesures de performance du système et les outils de réglage fin.

Lynis va auditer tout le système, en cherchant la présence, l’absence de fichier ou module, d’application, et donne un rapport en fonction des critères de recherches.

Lynis s’execute sur votre machine sans avoir besoin de l’installer.

Via git

Vous pouvez pour cela cloner le dépot , il y a une démonstration de 30 secondes sur leur site :

  • Récupération du projet git clone https://github.com/CISOfy/lynis
  • Se déplacer dans le répertoire du projet lynis cd lynis
  • Executer lynis ./lynis audit system

Ou profiter du package préparer par leur soin.

lynis en package .deb

Il faut ajouter leur clé dans notre gestionnaire de paquets, de cette manière lynis se mettra automatiquement à jour .

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

Si tout va bien , vous avez le message qui suit.

Executing: /tmp/apt-key-gpghome.3u3SxypK2k/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F
gpg: clef 366C67DE91CA5D5F : « CISOfy Software (signed software packages) <software@cisofy.com> » n est pas modifiée
gpg:       Quantité totale traitée : 1
gpg:                 non modifiées : 1

  • Mise à jour des dépots

sudo apt update

On voit que l’on receptionne le paquet.

Réception de:9 https://packages.cisofy.com/community/lynis/deb stable InRelease [11,4 kB]
  • Installation

sudo apt install lynis

Usage

En appelant Lynis, celui-ci nous affiche un petit menu , nous indiquant les principale commande pour auditer le système.

Et je découvre avec joie que Lynis audite également les Dockers :+1:

>~ sudo lynis

[ Lynis 2.6.4 ]

################################################################################
  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-2018, CISOfy - https://cisofy.com/lynis/
  Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program
------------------------------------


  Usage: lynis command [options]


  Command:

    audit
        audit system                  : Perform local security scan
        audit system remote <host>    : Remote security scan
        audit dockerfile <file>       : Analyze Dockerfile

    show
        show                          : Show all commands
        show version                  : Show Lynis version
        show help                     : Show help

    update
        update info                   : Show update details


  Options:

    --no-log                          : Don't create a log file
    --pentest                         : Non-privileged scan (useful for pentest)
    --profile <profile>               : Scan the system with the given profile file
    --quick (-Q)                      : Quick mode, don't wait for user input

    Layout options
    --no-colors                       : Don't use colors in output
    --quiet (-q)                      : No output
    --reverse-colors                  : Optimize color display for light backgrounds

    Misc options
    --debug                           : Debug logging to screen
    --view-manpage (--man)            : View man page
    --verbose                         : Show more details on screen
    --version (-V)                    : Display version number and quit

    Enterprise options
    --plugindir <path>                : Define path of available plugins
    --upload                          : Upload data to central node

    More options available. Run '/usr/sbin/lynis show options', or use the man page.

  No command provided. Exiting..

Apperçu

Lynis est rapide, complet … très complet. Mais très propre quant à la manière dont les infos sont retournées. Je montre les 3 premières parties.

Je choisi l’option pentest et indique un auditeur :squirrel: . Vous allez voir c’est très clair.

On voit que l’on a un fichier de configuration de ce type prf (preferences): /etc/lynis/default.prf

>~ sudo lynis --pentest --auditor ordinatous

[ Lynis 2.6.4 ]

################################################################################
  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-2018, CISOfy - https://cisofy.com/lynis/
  Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program
------------------------------------
  - Detecting OS...                                           [ DONE ]
  - Checking profiles...                                      [ DONE ]
  - Detecting language and localization                       [ fr ]

  ---------------------------------------------------
  Program version:           2.6.4
  Operating system:          Linux
  Operating system name:     Debian
  Operating system version:  9.4
  Kernel version:            4.9.0
  Hardware platform:         x86_64
  Hostname:                  gally-reborn
  ---------------------------------------------------
  Profiles:                  /etc/lynis/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat
  Report version:            1.0
  Plugin directory:          /usr/share/lynis/plugins
  ---------------------------------------------------
  Auditor:                   ordinatous
  Language:                  fr
  Test category:             all
  Test group:                all
  ---------------------------------------------------
  - Program update status...                                  [ NO UPDATE ]

[+] System Tools
------------------------------------
  - Scanning available tools...
  - Checking system binaries...

[+] Plugins (phase 1)
------------------------------------
 Note: les plugins ont des tests plus poussés et peuvent prendre plusieurs minutes

  - Plugins activés                                           [ NONE ]



Lynis va passé en revu une quarantaine de point dans le système. Comme:

  • le Boot
  • le noyaux (kernel)
  • la gestion USB
  • l’authentification (NIS, LDAP, PAM)
  • le réseau
    • dns
    • fiirewall
    • ssh

Durant les test nous verrons des ok, ou des suggestions ou encore non trouvé .

Il y a un code couleur qui permet d’avoir une idée de l’urgence :

message signification
vert :+1:
blanc neutre
jaune faible (à voir)
rouge :suspect:
  • Toutefois certaines alertes :suspect: n’en sont pas vraiment.

Par exemple :

[+] Boot and services
------------------------------------
  - Service Manager                                           [ systemd ]
  - Checking UEFI boot                                        [ ACTIVÉ ]
  - Checking Secure Boot                                      [ DÉSACTIVÉ ]
  - Checking presence GRUB2                                   [ TROUVÉ ]
    - Checking for password protection                        [ ATTENTION ]
  • oui le secure boot est DÉSACTIVÉ
    • J’ai installé mon OS à la place de celui fourni..
  • Non je n’ai pas de mot de passe à Grub2
    • Je ne connais pas bcp de monde qui le fait sur samachine perso..

A l’issu de ces tests, les suggestions que l’on voit passer, sont récapitulés en bas.

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

  -[ Lynis 2.6.4 Results ]-

  Warnings (1):
  ----------------------------
  ! Couldn't find 2 responsive nameservers [NETW-2705]
      https://cisofy.com/controls/NETW-2705/

  Suggestions (38):
  ----------------------------
  * Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]
          https://cisofy.com/controls/BOOT-5122/

Par exemple SSH:

SSH est dans les 38 suggestions.

- SSH option: Port                                        [ SUGGESTION ]

Et c’est là que c’est beau :

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

Vous n’avez ici, qu’un infime apperçu .

Certaines alertes sont tout à fait logiques, je ne suis pas dans un réseau d’entreprise , je n’ai pas besoin de LDAP.

- PAM modules                                               [ TROUVÉ ]
 - LDAP module in PAM                                        [ NON TROUVÉ ]

Lynis va réellement accompaner l’administrateur dans la configuration de certains services.

C’est un très bon outil vraiment très utile . Je le recommande car il a le mérite d’être clair.

Bonus

Automatisation du scan avec cron. Plus précisément le cron.daily afin qu’il s’execute chaque jours.

En root editer une tâche avec l’editeur de votre choix: vi /etc/cron.daily/lynis

Puis recopier ceci dedans:

#!/bin/sh

set -u
DATE=$(date +%Y%m%d)
HOST=$(hostname)
LOG_DIR="/var/log/lynis"
REPORT="$LOG_DIR/report-${HOST}.${DATE}"
DATA="$LOG_DIR/report-data-${HOST}.${DATE}.txt"

cd /usr/local/lynis

# Run Lynis
./lynis audit system --cronjob > ${REPORT}

# Etape optionnelle , efface le fichier si il est déjà présent , mais ça ne devrait pas arriver.
if [ -f /var/log/lynis-report.dat ]; then
    mv /var/log/lynis-report.dat ${DATA}
fi

Et voilà.