Ne pas exécuter de programmes depuis /tmp
Les malwares et les exploits déposent souvent un programme dans /tmp et l'exécutent. Ce réglage empêche toute exécution à cet endroit.
Pourquoi il compte
Après une intrusion, les logiciels malveillants et les scripts d’exploitation téléchargent souvent un programme dans /tmp, parce que tout le monde peut y écrire, puis l’exécutent. Monter /tmp pour que rien dedans ne puisse s’exécuter casse cette étape et force l’attaquant à chercher ailleurs.
Comment il fonctionne
Met l’option de montage noexec sur /tmp : le noyau refuse d’exécuter les programmes qui s’y trouvent et de mapper ses fichiers en code exécutable. Cela n’empêche pas un interprète de lire un script, donc bash /tmp/script.sh fonctionne toujours.
À qui il s'adresse
Convient aux serveurs et aux ordinateurs de bureau bien tenus, où les logiciels viennent du gestionnaire de paquets. Développeurs et quiconque compile ou lance des installateurs doivent y réfléchir à deux fois : beaucoup d’outils s’attendent à exécuter des choses depuis /tmp.
Ce que vous pouvez remarquer
Des programmes échouent avec Permission denied ou failed to map segment from shared object. Installateurs, outils de compilation, scripts de paquets et certains modules Java ou Python qui dépaquetent du code dans /tmp sont les victimes habituelles.
Le vérifier sur votre ordinateur
Voir les options du montage :
findmnt -no OPTIONS /tmp L'appliquer à la main
Ajoutez l'option au montage dans /etc/fstab, ou dans une unité de montage systemd, puis remontez :
# /etc/fstab, add "noexec" to the options of /tmp, for example:
tmpfs /tmp tmpfs defaults,noexec 0 0
sudo mount -o remount /tmp L'annuler
Retirez de nouveau l'option et remontez.
Réglages liés
Sources
- Linux Hardening Guide (madaidans)
- 17