10 mesures de hardening pour protéger vos systèmes informatiques Linux

Les cybermenaces ne cessent d’augmenter et de se sophistiquer au fil des ans. Protéger vos systèmes n’a jamais été aussi important. Le hardening ou durcissement des systèmes est le processus de sécurisation IT que vous devez regarder de près. Il s’agit en effet d’une série d’actions efficaces pour minimiser les failles et points d’entrée que les cybercriminels pourraient exploiter.

De nombreux référentiels fournissent des recommandations et actions de base sur lesquelles vous pouvez vous appuyer. Mais il existe des différences selon le référentiel. De plus, certains, comme CIS Benchmarks ou le STIG (Security Technical Implementation Guides), proposent des recommandations spécifiques à chaque système d’exploitation. Il est ainsi impossible de les appliquer à l’intégralité d’un parc hétérogène.

Difficile donc de s’y retrouver et de savoir sur quoi s’appuyer. Alors, quelles règles de hardening essentielles vous faut-il privilégier ?

Nous avons parcouru les divers référentiels et identifié les 10 mesures indispensables. Simples et déployables sur l’ensemble de vos OS Linux, ces règles vous permettront de maintenir un niveau de sécurité primordial et efficace contre les cyberattaques sur l’ensemble de votre infrastructure.

1. Limitez les droits applicatifs

C’est une mesure de base à appliquer puisqu’elle s’applique par des fonctionnalités natives dans les différents OS Linux qui permettent de contrôler les droits et permissions des applications.

Concrètement, il s’agit d’activer et de configurer des modules comme AppArmor (pour les systèmes Debian) ou SELinux (pour les systèmes Red Hat). Ces modules de sécurité intégrés au noyau Linux permettent un contrôle granulaire des accès en définissant des droits par application (telles que l’accès réseau ou les permissions de lecture et d’écriture de fichiers) et en leur associant un profil de sécurité qui restreint les accès à l’OS. Cela contribue ainsi à protéger vos systèmes.

2. Désactivez les services non essentiels

Tout logiciel ou composant installé sur un OS augmente la surface potentielle d’attaque. Cette mesure vise donc à limiter, désactiver ou supprimer les accès (dans la mesure du possible) sur vos serveurs via des services non essentiels.

Ce type de services peut par exemple concerner les interfaces graphiques, les serveurs d’impression, Telnet, mail ou web qui permettraient d’exfiltrer des informations.

3. Supprimez les clients applicatifs à risque

Certains applicatifs, comme les clients FTP (File Transfer Protocol), Telnet ou RSH (Remote SHell) permettent l’échange de fichiers et de données à travers le réseau.

Selon les applications, le trafic peut transiter en clair, ce qui les rend très vulnérables aux attaques par reniflage (ou sniffing). Le reniflage consiste à intercepter le trafic pour accéder à des données confidentielles, telles que le nom d’utilisateur et le mot de passe.

Assurez-vous qu’aucun client de ce type ne fonctionne sur la machine s’il n’est pas utile. Vous pouvez bloquer ces applications afin de désactiver tout accès au système par leur biais, et garantir que vos données ne soient pas compromises.

4. Auditez vos configurations serveurs

Privilégiez autant que possible les connexions filaires, plus robustes, face à leurs équivalents sans fil.

De même, faites en sorte de protéger l’accès à l’activité du CPU de vos machines pour empêcher les attaques en side channel. Elles consistent à observer le comportement du système face à certaines actions utilisateur (en monitorant l’activité du CPU notamment) pour en extraire des informations. Enfin, assurez-vous que vos serveurs soient programmés pour s’éteindre en cas de problème identifié.

Vous souhaitez déployer ces mesures sur votre infrastructure ? 

5. Activez les logs

La gestion des logs est essentielle dans une démarche de hardening, notamment pour permettre de procéder à des analyses post-mortem après un dysfonctionnement.

Assurez-vous que les outils auditd et journald soient bien activés et configurés, et que les logs qu’ils génèrent soient bien compressés.

Auditd génère des logs à propos des événements qui ont lieu dans le système (date, heure, type, nombre de tentatives d’accès, imports, exports…). Journald, quant à lui, collecte et centralise l’ensemble des logs d’un système et aide à gérer les différentes sources de logs.

6. Sécurisez les accès SSH

Le protocole Secure Shell (SSH) est une méthode permettant d’envoyer de façon sécurisée des commandes à un ordinateur sur un réseau non sécurisé. Assurez-vous que ce service sensible soit correctement configuré.

L’objectif est :

  • que l’on ne puisse pas s’y connecter en tant qu’administrateur,
  • que la connexion ne soit possible qu’à l’aide de clés et non de mots de passe,
  • que ces clés soient suffisamment sécurisées.

Empêchez aussi le transfert des accès d’un environnement à un autre, et provoquez une déconnexion automatique en cas d’erreurs de connexion répétées.

7. Contrôlez l'escalade de privilèges

Les droits des utilisateurs doivent par défaut être attribués en respectant le principe du moindre privilège. Pourtant, il est parfois nécessaire de donner des droits d’administrateur de façon temporaire. L’outil sudo permet à l’administrateur de donner temporairement des privilèges à d’autres utilisateurs pour exécuter des commandes avec des droits administratifs.

Cette mesure vise à garantir que le paquet sudo soit correctement installé et configuré, et à s’assurer que les utilisateurs qui l’utilisent disposent des autorisations et des restrictions appropriées.

Elle définit également une durée maximale d’utilisation de cette commande et trace toutes les actions effectuées avec ses privilèges.

Enfin, elle permet de contrôler les droits utilisateurs au niveau du système de fichiers. L’escalade de privilèges due à des permissions trop grandes sur des répertoires est en effet un risque à surveiller. De même que les liens symboliques vers des répertoires de plus haut privilèges. Les fuites de données peuvent aussi se produire à cause des fichiers dump générés par des plantages d’application.

8. Contrôlez les utilisateurs et groupes locaux

Contrôlez les permissions et droits des utilisateurs, ainsi que l’accès aux informations qui y sont liées, comme le fichier stockant les mots de passe des utilisateurs. Veillez à ce que ce fichier soit crypté et lisible seulement par l’administrateur.

Cette mesure permet d’éviter les doublons d’utilisateurs et d’attribuer un identifiant unique à chaque utilisateur afin de renforcer la traçabilité des actions. De plus, elle vérifie que la machine n’a qu’un seul super utilisateur et que les groupes d’utilisateurs soient correctement paramétrés.

Inscrivez-vous à notre newsletter pour rester informé de nos actualités et de la sécurisation des infrastructures :

9. Sécurisez les mots de passes utilisateurs locaux

Au-delà de la gestion des utilisateurs eux-mêmes, il est nécessaire de définir des contraintes d’authentification sécurisée des utilisateurs.

Vérifiez que les utilisateurs ne puissent pas avoir de mots de passe vides et exigez que les mots de passe choisis respectent un protocole spécifique (nombre de caractères minimal, utilisation de caractères non alphanumériques, impossibilité de réutiliser d’anciens mots de passe, etc.). Veillez enfin à ce que l’accès soit bloqué en cas de tentatives trop nombreuses avec des mots de passe erronés.

10. Vérifiez les mises à jour applicatives

Dans la mesure où des vulnérabilités sont régulièrement découvertes et rendues publiques, ne pas appliquer les correctifs et mises à jour disponibles rapidement accroît les risques d’attaques. Les nombreuses attaques par malware après la publication de correctifs montrent la nécessité d’une approche proactive.

Cette mesure vise donc à surveiller en permanence que les systèmes sont bien à jour par rapport aux versions disponibles. Bien que des tests de non-régression soient nécessaires avant d’installer des mises à jour, retarder en excès ces actualisations est bien souvent une stratégie dangereuse.

Contrôlez et automatiser le hardening via un seul outil

S’assurer que ces mesures soient bien configurées en continu sur l’ensemble de vos systèmes Linux est généralement fastidieux. Le meilleur moyen d’y parvenir est d’utiliser un outil qui gère et sécurise l’ensemble de votre infrastructure.

C’est là que Rudder entre en jeu. Non seulement Rudder déploie ces règles sur vos systèmes, mais il veille aussi à ce qu’elles soient appliquées en continu. N’hésitez pas à jeter un œil à notre offre actuelle : en 3 jours, nous installons Rudder pour vous et nous déployons ces règles en audit sur tous vos systèmes Linux

Et ce n’est pas tout : nous proposons également un module de patch management en souscription. Celui-ci permet d’identifier les mises à jour disponibles et d’automatiser les campagnes de patchs pour mettre à jour vos systèmes.

Partager ce post

Retour en haut
Rudder robot named Ruddy makes an announcement.

Rudder 8.2 : simplifiez la conformité de la sécurité IT avec la solution Policy and benchmark

Détails du module Security management

Ce module a pour objectif de garantir une sécurité et une conformité optimales pour la gestion de votre infrastructure, avec des fonctionnalités pour les entreprises telles que :

Pour en savoir plus sur ce module, consultez la page gestion de la sécurité.

Détails du module configuration & patch management

Ce module vise une performance et une fiabilité optimales pour la gestion de votre infrastructure et de vos patchs, avec des fonctionnalités pour les entreprises telles que :

Pour en savoir plus sur ce module, consultez la page gestion des configurations et des patchs.