Link copiato negli appunti
Il fine è quello di rendere inviolabile:
- il server,
- le applicazioni,
- i dati contenuti,
- la rete nella quale si trova;
- proteggere i dati scambiati tra client e server.
Tecniche ed accorgimenti per la prevenzione:
- proteggere fisicamente il server (impedire l'accesso fisico al server a chi non è abilitato, dare password a bios, bootloader - di qui si può accedere al sistema anche senza conoscere alcuna password - e screensaver);
- nessun utente non strettamente necessario deve avere login sul server (e tantomeno una shell di comando);
- usare preferibilmente partizioni (ext3) separate per utenti, programmi non facenti parte della distribuzione e via dicendo, secondo la logica più opportuna;
- definire limiti di utilizzo delle risorse del sistema per gli utenti interni (vedi PAM).
- usare password molto forti, ovvero molto lunghe, senza senso e non solo alfanumeriche e non derivate dallo username;
- abilitare le shadow password: le password saranno conservate in
/etc/shadow
anziché in/etc/passwd
. Il vantaggio è che solo l'utente root e il gruppo shadow potranno accedere in lettura a questo file, di modo che nessun altro utente locale possa lanciare un password cracker contro di esso; - disabilitare e disinstallare i servizi (e le condivisioni) non necessari e farli girare come utenti senza privilegi che, in caso di exploit, non potranno nuocere al sistema; non far girare assolutamente nulla come utente root;
- installare solo il software strettamente necessario e disinstallare il rimanente;
- configurare correttamente i servizi installati;
- usare una programmazione Web sicura;
- tenere aggiornato il sistema attraverso i security update (per molti sistemi è praticamente automatico) e tenere aggiornati se stessi (!);
- generalmente i server che devono esser accessibili dall'Internet (come tutti i server Web) vengono tenuti, nella rete dell'organizzazione, nella cosiddetta DMZ (zona demilitarizzata). È importante che router e firewall delimitino un tale segmento di rete e definiscano alcune politiche di sicurezza, quali (tra le basilari):
- bloccare le connessioni dall'Internet al server su porte non abilitate o per protocolli non usati;
- bloccare connessioni che traggano origine dal server verso la rete interna protetta e verso l'Internet (ciò impedisce il telnet inverso e altri canali di ritorno per guadagnare l'accesso alla shell);
- bloccare ping (ed altri pacchetti ICMP) in uscita;
- impedire l'accesso non controllato al firewall per la sua amministrazione;
- cifrare le trasmissioni tramite tunneling sicuro (garantisce integrità dei dati, autenticazione delle parti e riservatezza di quanto scambiato);
- prevenire e tenere monitorata ogni modifica sui file vitali: verificare periodicamente la firma degli eseguibili (Tripwire) e degli script Web; possibili sniffer inseriti sono programmi eseguibili come gli altri, quindi visibili dall'elenco dei processi. Inoltre, al fine della loro individuazione, è possibile monitorare le schede di rete funzionanti in modalità promiscua; utilizzare particolari IDS/patch che impediscano modifiche al kernel;
- tenere un log per ogni processo, salvare i file di log in luogo protetto (esterno e centralizzato, cifrato) e.. analizzarli di tanto in tanto o predisporre avvisi automatici per possibili tentativi di cracking;
- eseguire backup a cadenza (fitta e) prefissata.
In grassetto sono stati indicati gli argomenti di cui si parlerà diffusamente.