Hardened Gentoo/it

Gentoo Hardened è un progetto di Gentoo che offre molteplici servizi di sicurezza aggiuntivi applicati ad una installazione di Gentoo Linux. Anche se ognuno di questi può essere selezionato separatamente, Gentoo Hardened abilita diverse opzioni per la mitigazione del rischio nella toolchain, supporta PaX, grSecurity, SELinux, TPE ed altro ancora.

Che si tratti di un server esposto su Internet o di una workstation flessibile, quando si ha a che fare con minacce molteplici si potrebbe desiderare di rinforzare il proprio sistema oltre alla normale applicazione delle ultime patch di sicurezza. "Hardenizzare" un sistema significa applicare contromisure aggiuntive contro attacchi ed altri rischi ed è solitamente una combinazione di attività fatte sul sistema stesso

All'interno di Gentoo Hardened, diversi progetti sono attivi per aiutare in questo rinforzo attraverso:


 * l'abilitazione di specifiche opzioni nella "toolchain" (compilatore, linker ...) come forzare la creazione di eseguibili indipendenti dalla posizione ("position-independent executables", o PIE), protezione dallo stack overflow (SSP - "stack smashing protection") o dal buffer overflow (compile-time buffer checks).
 * l'abilitazione delle estensioni PaX nel kernel Linux, che offrono delle misure di protezione aggiuntiva come l'ALSR (address space layout randomization) e rendere non eseguibili gli spazi di memoria
 * l'abilitazione delle estensioni grSecurity nel kernel Linux, incluse restrizioni addizionali per il chroot, auditing aggiuntivo, restrizione dei processi, ecc...
 * l'abilitazione di SELinux nel kernel Linux, che offre un controllo accessi esteso (MAC, Mandatory Access Control) oltre i normali permessi Linux.
 * l'abilitazione di una serie ti tecnologie relative all' Integrità dei dati, come l'Integrity Measurement Architecture, per rendere i sistemi più resistenti al "tampering" (corruzione/manomissione dei dati)

Di conseguenza, questo include le utility necessarie all'amministrazione di queste estensioni.

Passare ad un profilo Hardened
Scegliere il profilo hardened, in modo che l' amministrazione dei pacchetti sia fatta in modo hardenizzato.

Scegliendo il profilo hardened, certe impostazioni del gestore dei pacchetti (masks, flags USE, eccetera...) diventano di default sul sistema. Questo si applica a molti pacchetti, inclusa la toolchain. La toolchain è la serie di software utilizzata per compilare i programmi, ed include: la GNU Compiler Compilation (GCC), le binutils (linker, ecc.) e la libreria C di GNU (glibc). Reinstallando la toolchain, queste impostazioni di default verranno applicate, consentendo che tutta la compilazione di pacchetti futura venga fatta in modo hardened.

I comandi sopra ricompilano GCC, che può essere utilizzato ora per compilare software hardenizzato. Assicurarsi che l'opzione hardened sia selezionata per GCC.

Nell'esempoi sopra, il profilo hardened è quello senza suffissi. Se si vuole disabilitare PIE o SSP selezionare il relativo hardenedno(pie|ssp) o entrambi, hardenednopiessp. Il profilo vanilla è ovviamente quello con l'hardening disabilitato. Caricate poi le nuove impostazioni:

Se utilizzate il pacchetto "prelink", rimuovetelo, dato che non è compatibile con il profilo hardened:

Potete ora reinstallare tutti i pacchetti con la nuova toolchain hardenizzata:

Install hardened kernel sources, so that the kernel will *manage your running system* in a hardened way (especially using PaX):

Now configure/compile the sources and add the new kernel to your boot manager (ie., GRUB).

Hardened Gentoo/Grsecurity chroot
If you want to chroot to a copied environment where the CONFIG_GRKERNSEC_CHROOT is enabled you must use the cd grub and change the root(cd) kernel(cd) initrd(cd) setting to from (cd) to (hdx,y).

Now you can install the grub environment.

Per package hardening settings
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:

To allow for disabling PIE, create and add to :

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

External resources

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