Indipendentemente dalla tipologia di dispositivo utilizzato (mobile/desktop/server), uno dei pre-requisiti fondamentali per una sana gestione dei propri dati è la mitigazione del rischio e la riduzione delle superfici esposte a potenziali attacchi. Il nostro approccio quindi non si limiterà ad una serie di suggerimenti e tecniche da applicare - sia in ambito domestico che enterprise - ma ad un'analisi approfondita di diverse tipologie di attacco ed eventuali contromisure.
Linux Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco
1. A cura di Marco Ferrigno
Linux Security Hardening
panoramica sui principi generali per la riduzione delle superfici di attacco
LinuxDay Napoli 2015
#ldna15 || @marco_ferrigno
2. Prerequisiti:
attitudine mentale alla sicurezza (non solo informatica)
aver visto Mr.Robot
Cosa impareremo:
Metodo (giusto qualche contenuto tecnico)
modus operandi
Propedeuticità ed obiettiviPropedeuticità ed obiettivi
3. Perché sono cosi forti:Hardening: definizioneHardening: definizione
In informatica, è definito hardening (indurire,
temprare) quel processo il cui obiettivo è quello di
proteggere un sistema riducendo la sua superficie
di vulnerabilità.
Maggiori sono i servizi che il sistema offre,
maggiore è la superficie di vulnerabilità sfruttabile
per un potenziale attacco.
In linea di principio, quindi, un sistema a singola
funzione risulta più sicuro di qualunque altro
sistema (o quasi ...)
4. Perché sono cosi forti:Perchè GNU/Linux?Perchè GNU/Linux?
Sebbene in configurazione standard sia un
sistema molto più sicuro di diversi
competitor, risulta comunque necessario
(e intellettualmente stimolante, imho)
riuscire a renderlo ancora più sicuro;
indipendentemente dall'ambito di utilizzo
5. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
Gli attacchi nei confronti dei convenzionali (e diffusi) computer desktop sono in
costante aumento.
Anche se esiste un numero inferiore di malware operanti su piattaforma GNU/Linux rispetto
agli altri sistemi operativi, è superficiale (nonché stupido) credere di essere al sicuro!
In un contesto espressamente linux-oriented si parla di rootkit quando un software
malevolo è progettato e programmato con lo scopo di guadagnare l'accesso come utente
root
Indipendentemente da ciò (e dalla distribuzione scelta) sono molti i software stand-alone
esposti a potenziali attacchi.
6. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
Un buon inizio:
ClamAV: progettato espressamente per il rilevamento e l'eliminazione di malware
e trojan.
Interessante il comando freshclam che permette l'upgrade del db contenente
tutte le info sui virus in circolazione.
RkHunter: valido strumento contro i rootkit, sniffer e bugs
Comandi chiave:
- rkhunter update
- rkhunter c (o rkhunter –check; accompagnato magari da uno skip
keypress)
7. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
L'utente desktop ha solitamente poco interesse nel verificare quali parametri (nella
maggior parte dei casi, fondamentali) siano stati modificati all'interno della propria
macchina …
Tiger: esamina una serie di parametri fondamentali come:
passwd,
gestione gruppi,
utenti,
gestione hosts,
PATH,
sintassi cron,
servizi in avvio,
gestione e integrità del filesystem
…
verificandone correttezza e riportando eventuali modifiche in /var/log/tiger/
8. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
Firewall
Le distro GNU/Linux dispongo già di un firewall
interno e di strumenti adatti alla loro gestione.
Al di là del loro uso lato terminale, è possibile
semplificare il tutto con comode interfacce grafiche.
Un esempio su tutti è Uncomplicated Firewall e la
sua GUI (gufw)
9. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
Backup e ripristino
Attualmente molte distribuzioni
prevedono soluzioni di disaster
recovery, vere e proprie suite che
comprendono sia software di
backup che di ripristino.
Uno strumento interessante è
senz'altro duplicity, basato su
rsync, la cui caratteristica è quella
di creare backup cifrati ed efficienti
in termini di banda.
Per rendere le cose ancora più
immediata per l'utente desktop,
dejadup fornisce una comoda
interfaccia grafica a duplicity
10. Perché sono cosi forti:Hardening Linux DesktopHardening Linux Desktop
Aggiornamento costante (e consapevole!)
Molti attacchi vs le nostre postazioni vengono lanciati da attacker che hanno avuto modo
di appurare la presenza o meno di vulnerabilità legate al sistema operativo o ad altri
programmi in esecuzione su di esso.
La community crea le opportune
patch che vengono messe a
disposizione degli utenti tramite delle
funzioni built-in che avvisano la
presenza degli aggiornamenti
11. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Siano essi utilizzati in produzione o in fase di test, una infrastruttura
server rappresenta l'obiettivo preferito di un potenziale attacker.
Uno dei compiti fondamentali del sistemista è quindi quello contrastare gli
attacchi esterni riducendo la superficie di vulnerabilità afferente alla propria
infrastruttura.
Punti chiave:
gestire le sessioni remote
configurare ad hoc il firewall
configurare ad hoc un ids
12. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Premessa:
Molti dei concetti inerenti la sicurezza di base si applicano sia in ambito desktop che in
ambito server. Ciò che cambia è il modo in cui questi concetti vengono applicati.
Per impostazione predefinita, una macchina (ed un sistema operativo) desktop
richiede una configurazione minima e ha in sé un gran numero di applicazioni pronto uso
per l'utente (genericamente consumatore)
Al contrario, una macchina (ed un sistema operativo) server ha come presupposto
limitare al minimo i livelli di accesso e di usabilità
Parola chiave: pianificazione
Determinare la funzione del server
Limitare a zero l'installazione di software aggiuntivo
GUI or NOT GUI
13. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Secure Shell (ssh)
ssh consente ad un utente la connessione remota ad un'altra macchina.
Gli amministratori di sistema usano costantemente ssh per accedere ai loro server da un
computer remoto.
Anche se ssh fornisce un ottimo livello di sicurezza, è possibile fare ancora di più!
Cambio del numero di porta (22, di default), ma è una modifica utile solo contro gli script
kiddies!
Negare accesso come root.
Creazione di una whitelist per utenti e gruppi.
Knockd: permette di nascondere l'esistenza di un accesso ssh (insieme di parole chiave
da inviare ad una serie di porte)
14. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Regole del firewall
Iptables strumento per il filtraggio di pacchetti.
Potenzialità elevate
Massima personalizzazione
Possibilità di costruire infrastrutture complesse
La completa comprensione dei protocolli di rete aiuta molto!
15. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Monitoraggio del sistema
Si rende necessario istituire un sistema di monitoraggio per rilevare se un attacco
contro il server ha avuto luogo.
Analizziamo due strumenti interessanti: tripwire e logwatch
Tripwire verifica l'integrità di files e directory segnalando eventuali anomalie attraverso
un log dedicato oppure via mail;
Logwatch aiuta a controllare i vari log di
sistema evitando di collegarsi via ssh, in
quanto essi vengono spediti via mail
(necessita quindi di un server di posta
elettronica in uscita, smtp)
16. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Utenti e gruppi: la gestione dei permessi
La colonna dei permessi mostrati tramite terminale contiene 10 lettere:
Il primo spazio indica la tipologia dell'elemento (directory, link, file)
I permessi per 3 gruppi distinti (utente, gruppo, altri utenti)
Strumenti chiave:
chmod – permessi su utenti
chown – cambio dell'utente proprietario
chgrp – cambio del grupp
17. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Chroot
permette di "imprigionare" un utente in una radice diversa da quella che il kernel usa
realmente (/).
Definiamo in primo luogo una serie di domande che ci consentiranno di svolgere più
facilmente il nostro lavoro:
1. Cosa vogliamo consentire all'utente ?
2. A chi è destinata la shell ?
3. Quanti utenti dovrà contenere l'ambiente chroot ?
4. Che genere di restrizioni vogliamo applicare ?
18. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Crittografia
Processo di cifratura che rende dei dati illeggibili a chi non possiede la chiave per
ricrearli nella loro forma originale.
È possibile cifrare un intero disco rigido o le partizioni del disco.
Consigli utili: crittografare una directory che contiene informazioni sensibili!!
ecryptfs - utility per cifrare il disco
Recupero dati
In caso di emergenza, potrebbe essere necessario recuperare i dati crittografati. È
possibile farlo automaticamente facendo in modo che il disco rigido è montato, e poi
aprire il terminale.
encryptfsrecoverprivate
19. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Ulteriori misure di sicurezza: tutto in PIÙ password
Password BIOS / EFI
E non dimentichiamo:
Configurar{lo} per disabilitare il boot da dispositivi esterni
Password GRUB
E /boot …!?
20. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Ulteriori misure di sicurezza
Partizionamento: scelte ponderate!
Minimizzare i pacchetti in esecuzione
Un comando utile chkconfig list | grep '3:on'
Controllare la lista delle porte aperte { netstat }
Un'idea non da poco: disabilitare l'accesso a periferiche usb!
Creare un file come ‘/etc/modprobe.d/nousb‘
E scriverci
install usbstorage /bin/true
21. Perché sono cosi forti:Hardening Linux ServerHardening Linux Server
Ulteriori misure di sicurezza
SELinux
Security-Enhanced Linux è un meccanismo di sicurezza di controllo di accesso
obbligatoria prevista nel kernel.
Disabilitare è sconsigliato, ma ...
22. Perché sono cosi forti:Una distro a caso: Qubes OSUna distro a caso: Qubes OS
È una distro GNU/Linux basata su Fedora la cui filosofia si basa su un concetto “semplice”
security by isolation
Utilizza i meccanismi tipici della paravirtualizzazione (XEN) per mandare in esecuzione le
applicazioni lanciate.
la magia
Tenta di coniugare due
concetti contraddittori:
- riduzione al minimo della
quantità di fiducia
(necessaria per isolare le
istanze)
- esecuzione di applicativi
desktop oriented
23. Perché sono cosi forti:contatticontatti
Marco Ferringo - @marco_ferrigno
- Research and consultant in computer scurity and system enginnering
- IT Infrastructure Engineer e IT Security Manager per il progetto Programma il Futuro (MIUR-CINI)
- Developer of the Italian Debian GNU/Linux HowTos
- SailfisOS Early Adopter
- NaLUG (Napoli Linux Users Group) member (atto finale!)
- ICTTF (International Cyber Threat Task Force) member
- Supporter @ Digital Champions Napoli
- http://marcoferrigno.wordpress.com
- mailto: marcoferrigno@cryptolab.net