Cybersécurité : Lynis

De Justine's wiki
Aller à la navigation Aller à la recherche

Présentation

Lynis est un outil d'audit système sous Unix/Linux. Il scanne le système à la recherche d'informations sur la sécurité, d'informations générales, il cherche les logiciels installés, les configurations, les problèmes de sécurités, etc... Il est très utilisé pour les audits de sécurité.

J'utilise la version 2.7.3, dernière en date lors de l'écriture de cet article (avril 2019).

Mise en place

Installation

Lynis n'as pas besoin d'une installation. On peut lui faire un dossier dans /usr/local/lynis. On va ensuite le télécharger avec wget et le décompresser.

root@Justine-pc:~# mkdir /usr/local/lynis
root@Justine-pc:~# cd /usr/local/lynis
root@Justine-pc:/usr/local/lynis# wget https://downloads.cisofy.com/lynis/lynis-2.7.3.tar.gz
--2019-04-07 12:28:44--  https://downloads.cisofy.com/lynis/lynis-2.7.3.tar.gz
Résolution de downloads.cisofy.com (downloads.cisofy.com)… 2a01:7c8:aac2:37b::1, 37.97.194.171
Connexion à downloads.cisofy.com (downloads.cisofy.com)|2a01:7c8:aac2:37b::1|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 282609 (276K) [application/octet-stream]
Enregistre : «lynis-2.7.3.tar.gz»

lynis-2.7.3.tar.g 100%[==========>] 275,99K  1,37MB/s    ds 0,2s    

2019-04-07 12:28:44 (1,37 MB/s) - «lynis-2.7.3.tar.gz» enregistré [282609/282609]

root@Justine-pc:/usr/local/lynis# tar -xvf lynis-2.7.3.tar.gz

Les bases de l'utilisation

Il faut être root pour utiliser Lynis, car celui-ci écrit vers /var/log/lynis.log. On va d'abord le lancer sans arguments pour voir son aide :

root@Justine-pc:/usr/local/lynis# cd lynis
root@Justine-pc:/usr/local/lynis/lynis# ./lynis

[ Lynis 2.7.3 ]

################################################################################
  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
------------------------------------

  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 './lynis show options', or use the man page.

  No command provided. Exiting..

Lynis se lance donc comme n'importe quel script. Diverses options sont disponibles, visibles avec --check-options :

    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 './lynis show options', or use the man page.



root@Justine-pc:/usr/local/lynis/lynis# ./lynis show options
--auditor
--cronjob (--cron)
--debug
--developer
--help (-h)
--license-key
--log-file
--manpage (--man)
--no-colors
--no-log
--pentest
--profile
--plugin-dir
--quick (-Q)
--quiet (-q)
--report-file
--reverse-colors
--skip-plugins
--tests
--tests-from-category
--tests-from-group
--upload
--verbose
--version (-V)
--wait
--warnings-only

Scanner notre système

Pour scanner notre système, nous allons utiliser la commande suivante :

./lynis audit system

Lynis commence par nous donner quelques informations généralistes sur le système, puis il scanne diverses choses classées en catégories, et affiche ses résultats selon le code-couleur que l'on connaît déjà en matière de supervision (Vert = OK, Jaune = Attention, rouge = danger).

Un scan de mon système sous Ubuntu 18.10 révèle dores et déjà quelques faiblesses !

Cet affichage est utile, et plus de détails sont disponibles dans les fichiers de logs :

  • /var/log/lynis.log : donne le détail des scans
  • /var/log/lynis-report.dat donne des informations sur le fonctionnement interne de Lynis.

Dans le fichier lynis.log, celui-ci nous donne, en plus du détail de ses activités, des suggestions :

019-04-07 12:39:37 Result: file /boot/grub/grub.cfg is readable (or directory accessible).
2019-04-07 12:39:37 Result: Didn't find hashed password line in GRUB boot file!
2019-04-07 12:39:37 Suggestion: Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot in single user mode without password) [test:BOOT-5122] [details:-] [solution:-]

Mettre Lynis à jour

La mise à jour de Lynis, installé de cette façon, ne peut se faire qu'en changeant l'exécutable; l'usage de la commande lynis update release est déprécié !

On peut connaître la version actuelle de Lynis grâce à la commande suivante :

root@Justine-pc:/usr/local/lynis/lynis# ./lynis update info

 == Lynis ==

  Version            : 2.7.3
  Status             : Up-to-date
  Release date       : 2019-03-21
  Update location    : https://cisofy.com/lynis/

Lynis est aussi disponible via les dépôts, mais le version la plus récente disponible sur ceux-ci (chez Ubuntu) est actuellement la 2.6.2.

Au quotidien

Il peut être intéressant de lancer Lynis via des cronjobs. Un exemple :

30    22    *    *    *    root    /path/to/lynis -c -Q --auditor "automated" --cronjob

Ici, lynis sera lancé à 22h30, avec l'identité d'auditeur (le champ représentant la personne en train de lancer le scan) "automated". Le -c correspond à "check", soit uns can du système; le Q correspond à "quick", ce qui permet d'éviter que Lynis ne demande des inputs de la aprt de l'utilisateur.

En conclusion

Lynis est un outil puissant, facile à déployer. Il peut être utile de le lancer au quotidien et de le coupler à un outil d'analyse des logs. Cependant, il faut rester prudent : ce n'est pas parce que tout est [OK] que le système est parfaitement sécurisé ! Le plus utile reste de regarder les logs pour comprendre les retours que nous donne le programme.