Hardened Gentoo/nl

Gentoo Hardened (nl: Verhard) is een Gentoo project dat meerdere additionele beveiligingsservices aanbiedt boven op de welbekende Gentoo Linux installatie. Terwijl elke service individueel geselecteerd kan worden, stelt Gentoo Hardened meerdere risicobeperkende opties in de toolchain, ondersteunen van PaX, grSecurity, SELinux, TPE en meer...

Of dat je nu een server op het internet of een flexibel werkstation draait, wanneer je voor verschillende bedreigingen staat wil je jouw systeem meer verharden door automatisch de laatste beveiligingsverbeteringen toe te passen. Een systeem verharden betekent dat je extra tegenmaatregelen toepast tegen aanvallen en andere risico's en dat is gewoonlijk een gecombineerde verzamelingen van activiteiten die je op jouw systeem uitvoert.

In Gentoo Hardened zijn er verschillende projecten die actief zijn met het verder helpen van jouw Gentoo systeem te verharden door
 * specifieke opties in de toolchain (compiler, linker ...) aan te zetten zoals het forceren van positie-onafhankelijke toepassingen (en: position-independent executables aka PIE), stack smashing protectie en buffer controles tijdens het compileren.
 * PaX extensies aan te zetten in de Linux kernel, dewelke additionele beveiligingsmaatregelen bieden zoals het randomiseren van van de adresruimte lay-out (ASLR) en niet-uitvoerbaar geheugen (NX).
 * grSecurity extensies aan te zetten in de Linux kernel, inclusief extra chroot restricties, extra auditing, process restricties, enzovoort...
 * SELinux extensies aan te zetten in de Linux kernel, dewelke het Mandatory Access Control systeem aanbieden die de standaard Linux permissie restricties verbeteren.
 * Integrity gerelateerde technologieën, zoals het Integrity Measurement Architecture, voor systemen beter te beveiligen tegen ongewenste veranderingen.


 * Enabling specific options in the toolchain (compiler, linker ...) such as forcing position-independent executables (PIE), stack smashing protection and compile-time buffer checks.
 * Enabling PaX extensions in the Linux kernel, which offer additional protection measures like address space layout randomization and non-executable memory.
 * Enabling grSecurity extensions in the Linux kernel, including additional chroot restrictions, additional auditing, process restrictions, etc..
 * Enabling SELinux extensions in the Linux kernel, which offers a Mandatory Access Control system enhancing the standard Linux permission restrictions.
 * Enabling Integrity related technologies, such as Integrity Measurement Architecture, for making systems resilient against tampering

Natuurlijk bevat dit de nodige userspace programma's om deze extensies te beheren.

Wisselen naar een Hardened Profiel
Selecteer een Hardened Profiel, zodanig dat "pakket management" op een verharde manier gedaan word.

Door het Hardened Profiel te kiezen, zullen enkele instellingen van het pakket management (masks, USE flags, enzovoort...) als standaard worden ingesteld voor jouw systeem. Dit geldt voor veel pakketten, inclusief de toolchain. De toolchain is in gebruik voor het bouwen / compileren van jouw programma's, inclusief: De GNU Compiler Collection (GCC), binutils (linker, enzovoort...), en de GNU C bibliotheek (glibc). Door de toolchain opnieuw te emergen, zullen deze nieuwe instellingen standaard gelden voor de toolchain, dit staat toe toekomstige pakket compilaties op een verharde manier te doen.

The above commands rebuilt GCC, which can now be used to compile hardened software. Make sure that the hardened option is selected for GCC.

In het bovenstaande voorbeeld is het hardened GCC profiel een zonder suffix. Als je PIE of SSP wilt uitzetten, kies dan de relevante optie hardenedno(pie|ssp) of allebei, bijvoorbeeld hardenednopiessp. Het vanilla profiel is natuurlijk die waar het verharden uitstaat. Uiteindelijk zal je de nieuwe profiel instellingen moeten inladen:

Als je het "prelink" pakket gebruikt, verwijder het dan, want het is niet compatibel met het Hardened Profiel:

Nu kan je alle pakketten opnieuw installeren met jouw nieuw verharde toolchain:

Installeer verharde kernel broncode, zodanig dat de kernel jouw *systeem beheerd* op een verharde manier (zeker als je PaX gebruikt):

Nu configureer en compileer je de nieuwe kernel broncode en voeg je de kernel toe aan jouw boot beheerder (bvb. GRUB).

Hardened Gentoo/Grsecurity chroot
Als je wilt chrooten naar een gekopieerde omgeving waar de CONFIG_GRKERNSEC_CHROOT is aangezet dan zal je in grub (cd) dienen te veranderen in (hdx,y).

Vervolgens installeer je de grub omgeving opnieuw.

Hardened Instellingen per Pakket
Changing the GCC profile to deal with specific packages can be a pain. A way to avoid this is to set per-package C(XX)FLAGS using package.env. Create the file and add to that:

Om PIE te kunnen uitschakelen, creëer en voeg toe aan :

Finally add the package you want to disable either PIE or SSP for to and the relevant, for this example  is used here:

Zie ook
For more information, check out the following resources:


 * Gentoo Hardened SELinux Project
 * Project:Hardened/Grsecurity2_Quickstart
 * Project:Hardened/PaX_Quickstart

Extern

 * http://www.rockfloat.com/howto/gentoo-hardened.html#kernel