Suite à mon billet d'hier sur la sécurisation de mon noyau, je me suis dit qu'expliquer un peu ce qu'est GrSecurity (GrSec pour les intimes) ne serait pas forcément néfaste pour les lecteurs se demandant ce que c'est. C'est un patch permettant d'augmenter la sécurité d'un noyau Linux de manière significative. Et pourquoi en aurait-on besoin, les systèmes GNU/Linux ne sont-ils pas déjà sécurisés? Oui, ils le sont, mais de base un utilisateur non privilégié mais possédant un compte sur une machine peut accumuler une certaine somme d'informations pouvant aider à compromettre ce système. Ce patch permet donc de rendre plus difficile cette récolte d'informations, effectuée par un éventuel pirate cherchant la compromission de votre machine (ainsi, il ne pourra pas obtenir la liste des processus de votre machine, les adresses IP et interfaces de votre machine, etc...). L'ensemble de possibilités offertes par celui-ci est loin d'être négligeable, donc il serait dommage de s'en priver, surtout sur une machine faisant office de serveur ou sur laquelle différentes personnes sont potentiellement amenées à s'y connecter, ou bien en ont au moins la possibilité. Mais il n'y a pas que des restrictions pour l'obtention d'informations, il y a aussi des correctifs divers, tels l'amélioration de l'entropie lors du choix des ports TCP sources (cf faille récente dans le protocole TCP, rendue plus difficile par cette rustine), la modification du protocole ICMP pour rendre plus ardue la détection des systèmes d'exploitation selon leur couche TCP/IP, une protection accrue des espaces d'adressage, une possibilité de logguer différents évènements systèmes (exécution d'une application, création d'un répertoire, ...), la gestion d'ACL système, ou encore sécurisation des prisons systèmes (chroot). Une fois le noyau compilé, on peut modifier les différents comportements via sysctl, ou le système de fichier /proc.
Vous trouverez plus d'information sur l'application du patch et sa configuration dans cet excellent article [FR] (un peu de Google Bombing ne fait pas de mal
).
Pour récupérer automatiquement le patch GrSecurity Debian [EN] (la récente version 2 est vieille de seulement 10 jours à l'heure où j'écris ce billet) et l'outil associé de gestion des listes d'accès (gradm [EN]), si vous disposez d'une Debian et que vous êtes disposé à recompiler Linux, et que vous utilisiez un noyau 2.4 ou 2.6 vous pouvez utiliser :
14:42 xarli@iguzki ~% sudo apt-get install kernel-patch-grsecurity2 gradm
Les sources se trouvent alors sous forme d'archives pour les différents noyaux concernés dans /usr/src/kernel-patches
Site officiel de GrSec [EN]
Site officiel de Pax [EN], composant inclu dans GrSec
Autres rustines de sécurité pour le noyau Linux [EN], issues du projet OpenWall et utiles si vous avez un noyau non concerné par GrSec (2.0 ou 2.2 par exemple).
<pub>Mon mémoire de fin d'étude sur la sécurisation des systèmes GNU/Linux [FR]</pub>