23
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

Linux Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Embed Size (px)

Citation preview

Page 1: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

A cura di Marco Ferrigno

Linux Security Hardeningpanoramica sui principi generali per la riduzione delle superfici di attacco

LinuxDay Napoli 2015

#ldna15 || @marco_ferrigno

Page 2: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

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

Page 3: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

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 ...)

Page 4: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

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

Page 5: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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.

Page 6: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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 bugsComandi chiave:- rkhunter update- rkhunter ­c (o rkhunter –check; accompagnato magari da uno ­skip­keypress)

Page 7: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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/

Page 8: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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)

Page 9: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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, deja­dup fornisce una comoda interfaccia grafica a duplicity

Page 10: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Desktop Hardening 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

Page 11: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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

Page 12: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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 serverLimitare a zero l'installazione di software aggiuntivo GUI or NOT GUI

Page 13: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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)

Page 14: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening Linux Server

Regole del firewall

Iptables strumento per il filtraggio di pacchetti.

Potenzialità elevateMassima personalizzazionePossibilità di costruire infrastrutture complesse 

La completa comprensione dei protocolli di rete aiuta molto!

Page 15: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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)

Page 16: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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 utentichown – cambio dell'utente proprietariochgrp – cambio del grupp

Page 17: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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 ?

Page 18: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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.

encryptfs­recover­private

Page 19: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening Linux Server

Ulteriori misure di sicurezza: tutto in PIÙ password

Password BIOS / EFIE non dimentichiamo:Configurar{lo} per disabilitare il boot da dispositivi esterni

Password GRUB

E /boot …!?

Page 20: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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/no­usb‘ E scriverciinstall usb­storage /bin/true

Page 21: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

Perché sono cosi forti:Hardening Linux Server Hardening 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 ...

Page 22: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

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 magiaTenta di coniugare due concetti contraddittori:- riduzione al minimo della quantità di fiducia (necessaria per isolare le istanze)- esecuzione di applicativi desktop oriented

Page 23: Linux  Security Hardening - panoramica sui principi generali per la riduzione delle superfici di attacco

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: [email protected]