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, abbiamo diversi progetti attivi, che contribuiscono a rinforzare ulteriormente i sistemi Gentoo 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
Select a hardened profile, so that package management will be done in a hardened way.

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:

Installate i sorgenti del kernel hardened, in modo che il kernel vi permetta di *amministrare il sistema* in modalità sicura (specialmente utilizzando PaX):

Ora configurate/compilate i sorgenti ed aggiungete il nuovo kernel al vostro boot manager (es. GRUB).

Chroot con Gentoo Hardened/Grsecurity
Se si vuole effettuare il chroot in un ambiente copiato, dove la variabile CONFIG_GRKERNSEC_CHROOT sia abilitata, è necessario utilizzare il cd grub e modificare i parametri root(cd) kernel(cd) initrd(cd) da (cd) a (hdx,y).

Ora è possibile installare l'ambiente GRUB

Hardenizzare singoli pacchetti
Modificare il profilo GCC sulla base di singoli pacchetti può essere difficoltoso. Un modo per evitare questo è configurare delle C(XX)FLAGS ad-hoc per ogni pacchetto utilizzando package.env. Create il file ed aggiungetelo a:

Per permettere la disabilitazione di PIE, creare ed aggiungere a :

Infine aggiungete il pacchetto per cui volete disabilitare PIE o SSP a ed il relativo, per l'esempio seguente utilizziamo :

Vedere anche
Per ulteriori informazioni, potete consultare:


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

Risorse esterne

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