Cet article a été écrit par FLESCH Jérôme pour debian-fr et est sous license FDL.
Lors de sa rédaction, le dernier noyau stable en date était le 2.6.5 (20/05/2004).
En fait cet article complète celui_çi pour la simple et bonne raison qu'il y a relativement peu de changements entre GrSecurity 1 et GrSecurity 2.
Les principaux changements sont:
Je n'ai pas regardé s'il y avait des changements au niveau des ACLs, mais cela serait étonnant.
Tout comme le précédent, cet article est essentiellement une reprise de l'aide fournie par le noyau et la doc officielle, avec éventuellement quelques petits eclaircissement sur certains points.
Sous debian (unstable), le nom du paquet est:
kernel-patch-grsecurity2
Comme pour la version 1, il est probable que les sources du noyau Linux fournies par Debian ne marche pas avec ce patch. Il vous faudra donc récupérer les sources du dernier noyau en date sur http://kernel.org/.
Personnellement, j'ai aussi pour habitude de récupérer le patch GrSecurity sur http://grsecurity.org/.
La mise à jour des sources à partir du patch se fait toujours de la même manière:
patch -p0 < grsecurity-2.0-2.6.5.patch
(Rappel: Ce patch part du principe que les sources de votre noyau se trouvent dans ./linux-[version]/ )
Ensuite il ne vous reste plus qu'à lancer
make menuconfig
(ou encore make xconfig, ou même make gconfig, c vous qui voyez).
Les options propres à GrSecurity 2.0 se trouvent désormais dans la rubrique "Security options".
Comme vous pouvez le constater, il s'y trouve encore deux autres sous-rubriques: GrSecurity et PaX.
Toutes les options présentes dans la sous-rubrique GrSecurity sont déja décrites içi.
Voici donc la description des options offertes par PaX:
Enable various PaX features
Cette option vous permet d'activer diverses options de Pax. PaX ajoute des mécanismes de prévention d'intrusion qui réduisent les risques d'intrusions par l'intermédiaire de bugs permettant la corruption de la mémoire (notamment les Buffers Overflows).
PaX Control
Support soft mode
Cette option désactive les autres options de PaX sauf sur les executables marqués explicitement à l'aide de " paxctl ".
Un autre moyen d'activer cette option est de donner l'option "pax_softmode=1" au noyau lors du démarrage.
Pour utiliser cette option, vous devrez aussi activer l'option "Use ELF program header marking" décrite un peu plus loin.
Use legacy ELF header marking
(attention, ce n'est pas l'option dont je parlais juste avant).
En fait cette option fait exactement la même chose que la suivante, mais d'une manière qui, semble-t-il, est désormais dépréciée. Cette option est surement toujours là dans le simple but de pouvoir continuer à utiliser les anciens marquages. Cette option s'utilise avec " chpax ".
Use ELF programm header marking
Cette option permet de controler l'usage de certaines options de PaX en fonction de l'éxecutable concerné. Grâce à l'outils " paxctl ", il est possible de faire des modifications dans l'entête d'un fichier éxecutable et d'y inscrire des informations destinées à PaX. Si cette option est activée, elle prendra le dessus sur l'option précédente.
MAC system integration
Note: Cette option est seulement pour les développeurs&co.
Re-Note: je ne suis pas sûr de quoi il retourne, et ma traduction est surement approximative, donc si vous savez de quoi il retourne, mailez-moi, merci.
Les systèmes de contrôles d'accès ont la possibilité de controler les drapeaux PaX placés dans les entêtes des fichiers executables. Choisisez la méthode supporté par votre système:
None: Si votre système n'interagit pas avec PaX.
Direct: Si votre système définit lui-même la fonction pax_set_flags().
hook: Si votre système utilise le rappel pax_set_flags_func.
Non-executable pages
Pour cette option et ses sous-options, je vois renvoit encore une fois sur cet article.
Address Space Layout Randomization
Encore.
Mais:
Disable the vsyscall page
Le noyau Linux 2.6 a introduit de nouvelles fonctionnalités accelerant ou simplifiant certaines opérations, comme les appels systèmes ou les retours des gestionnaires de signaux.
Malheureusement, cela offre un angle d'attaque supplémentaire à nos vils ennemis les pirates notamment car la page vsyscall est toujours à une adresse fixée et contient du code machine qui est très utile pour réaliser des attaques du type "return-to-libc".
Cette technique d'exploit ne peut pas vraiment, en général, être empêchée par les solutions du noyau.
Cette option vous permet donc de désactiver purement et simplement l'utilisation de la page vsyscall.
Voilà, c'est tout, merci d'avoir pris le temps de lire cet article :)