Recherche de site Web

Comment protéger les liens physiques et symboliques dans CentOS/RHEL 7


Sous Linux, les liens matériels et logiciels font référence à des fichiers très importants. S'ils ne sont pas très bien protégés, leurs vulnérabilités peuvent être exploitées par des utilisateurs malveillants du système ou des attaquants.

Une vulnérabilité courante est la course aux liens symboliques. Il s'agit d'une vulnérabilité de sécurité dans un logiciel, qui se produit lorsqu'un programme crée des fichiers de manière non sécurisée (en particulier des fichiers temporaires) et qu'un utilisateur malveillant du système peut créer un lien symbolique (soft) vers un tel fichier.

Lire aussi : Comment créer un lien physique et symbolique sous Linux

Cela se produit pratiquement ; un programme vérifie si un fichier temporaire existe ou non, dans le cas contraire, il crée le fichier. Mais dans ce court laps de temps entre la vérification du fichier et sa création, un attaquant peut éventuellement créer un lien symbolique vers un fichier auquel il n'est pas autorisé à y accéder.

Ainsi, lorsque le programme s'exécute avec des privilèges valides, crée le fichier portant le même nom que celui créé par l'attaquant, il crée littéralement le fichier cible (lié) auquel l'attaquant avait l'intention d'accéder. Cela pourrait donc donner à l’attaquant un moyen de voler des informations sensibles du compte root ou d’exécuter un programme malveillant sur le système.

Par conséquent, dans cet article, nous allons vous montrer comment sécuriser les liens physiques et symboliques des utilisateurs malveillants ou des pirates dans les distributions CentOS/RHEL 7.

Sur CentOS/RHEL 7 existe une fonctionnalité de sécurité vitale qui permet uniquement de créer ou de suivre des liens par des programmes uniquement si certaines conditions sont remplies, comme décrit ci-dessous.

Pour les liens physiques

Pour qu'un utilisateur du système puisse créer un lien, l'une des conditions suivantes doit être remplie.

  • l'utilisateur ne peut créer un lien que vers des fichiers dont il est propriétaire.
  • l'utilisateur doit d'abord avoir un accès en lecture et en écriture à un fichier auquel il souhaite créer un lien.

Pour les liens symboliques

Les processus sont uniquement autorisés à suivre des liens qui ne font pas partie des répertoires accessibles en écriture (les autres utilisateurs sont autorisés à écrire) qui ont des bits persistants, ou l'un des éléments suivants doit être vrai.

  • le processus suivant le lien symbolique est propriétaire du lien symbolique.
  • le propriétaire de l'annuaire est également propriétaire du lien symbolique.

Activer ou désactiver la protection sur les liens physiques et symboliques

Il est important de noter que par défaut, cette fonctionnalité est activée à l'aide des paramètres du noyau dans le fichier /usr/lib/sysctl.d/50-default.conf (la valeur 1 signifie activer ).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Cependant, pour une raison ou une autre, si vous souhaitez désactiver cette fonctionnalité de sécurité ; créez un fichier appelé /etc/sysctl.d/51-no-protect-links.conf avec les options du noyau ci-dessous (la valeur 0 signifie désactiver).

Notez ce 51 dans le nom du fichier (51-no-protect-links.conf), il doit être lu après le fichier par défaut pour remplacer les paramètres par défaut.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

Enregistrez et fermez le fichier. Utilisez ensuite la commande ci-dessous pour effectuer les modifications ci-dessus (cette commande charge en fait les paramètres de chaque fichier de configuration système).

sysctl --system
OR
sysctl -p  #on older systems

Vous aimerez peut-être également lire les articles suivants.

  1. Comment protéger par mot de passe un fichier Vim sous Linux
  2. 5 commandes « chattr » pour rendre les fichiers importants IMMUTABLES (inchangeables) sous Linux

C'est tout! Vous pouvez poster vos questions ou partager vos réflexions sur ce sujet via le formulaire de commentaires ci-dessous.