Sicurezza di una rete WiFI

Download Report

Transcript Sicurezza di una rete WiFI

CHI SONO - Alessandro Campus
Mi chiamo Alessandro Campus, vivo ad Alghero dove lavoro come tecnico di rete presso la società
cooperativa Primo Principio che si occupa di soluzioni wireless e reti di sensori. Utilizzo
quotidianamente Linux per il mio lavoro, sia all'interno delle nostre soluzioni, sia come sistema per il
loro monitoraggio e manutenzione.
Linux Security : simulazione di un attacco informatico di Alex Campus
SICUREZZA INFORMATICA
Iniziamo col dire che col termine sicurezza, in informatica, si intende l'analisi delle vulnerabilità, dei rischi e degli attacchi che
possono essere portati ad un sistema, sia dal punto di vista software che hardware, nonché delle soluzioni che consentono di
proteggerlo.
Linux Security : simulazione di un attacco informatico di Alex Campus
ESEMPIO DI SISTEMA INFORMATICO
Linux Security : simulazione di un attacco informatico di Alex Campus
PENETRATION TESTING
Per ottenere un elevato livello di sicurezza è utile condurre delle vere e proprie simulazioni di attacco dove,
mediante l'uso di tecniche reali, è possibile individuare le eventuali falle cercando di guadagnare l'accesso non
autorizzato al sistema. Questo tipo di simulazione, su un sistema informatico, è chiamata Penetration Test e viene
eseguito da personale autorizzato sulla rete del cliente.
I suoi obiettivi principali sono:
Determinare la praticabilità di una o più metodologie di attacco
Identificare le maggiori vulnerabilità di un sistema
Testare l'impatto che un attacco portato con successo avrebbe sul sistema
Testare la competenza e l'efficienza del personale addetto alla sicurezza
Fornire prove concrete per un maggiore investimento nella sicurezza del sistema
Linux Security : simulazione di un attacco informatico di Alex Campus
TIPI DI MINACCE E ATTACCHI INFORMATICI
Ogni giorno nascono nuovi tipi di minacce; in questo caso analizziamo quelle che sono le principali tipologie di
attacco, facendo riferimento anche a casi reali in cui sono state usate.
Linux Security : simulazione di un attacco informatico di Alex Campus
Spoofing (Man In The Middle)
Consiste fondamentalmente nella cammuffamento dell'identità in rete della macchina dell'attaccante, al fine di intercettare o
modificare il traffico tra due macchine bersaglio.
- Può avvenire a diversi livelli dello stack di rete
- E' un attacco cosiddetto "Man in The Middle)
- Si basa sul fatto che i protocolli di rete non diano modo di verificare l'indirizzo di origine presente in un pacchetto
Linux Security : simulazione di un attacco informatico di Alex Campus
Linux Security : simulazione di un attacco informatico di Alex Campus
Linux Security : simulazione di un attacco informatico di Alex Campus
SESSION HIJACKING
Il dirottamento TCP/IP è una tecnica che utilizza pacchetti camuffati per assumere il controllo di una connessione tra
sistema bersaglio e una macchina host. La connessione del sistema bersaglio viene terminata e l'aggressore è in
grado di comunicare con la macchina host proprio come se l'aggressore fosse il sistema bersaglio.
Questa tecnica è eccezionalmente utile quando il sistema bersaglio utilizza password one-time per la connessione alla
macchina host. Una password one-time può essere utilizzata per autenticarsi una e una sola volta; ciò significa che lo
sniffing dell'autenticazione è inutile per l'aggressore. In questo caso, il dirottamento TCP/IP costituisce un'eccellente
tecnica di attacco.
Linux Security : simulazione di un attacco informatico di Alex Campus
Linux Security : simulazione di un attacco informatico di Alex Campus
Sniffing
E' il processo di cattura dei pacchetti che scorrono in una rete al fine di analizzare nel dettaglio il traffico. Attraverso questa tecnica è
possibile comprendere a fondo le caratteristiche della rete, i protocolli utilizzati, nonché i dati in chiaro che vengono scambiati tra gli
host. Può essere usata sia per reti cablate che wireless.
Per realizzare questa tecnica vengono utilizzati dei software particolari chiamati sniffer di rete. Uno sniffer funziona solitamente
seguendo queste fasi:
Collezione: in questa fase lo sniffer non fa altro che raccogliere dati binari grezzi dalla rete. Questo viene fatto convertendo la modalità
della scheda di rete (ethernet o wifi) in modalità promiscua, facendo si che ascolti tutto il traffico del segmento di rete a cui è connessa,
non soltanto quello che le è destinato.
Conversione: i dati binari grezzi vengono convertiti in forma leggibile
Analisi: è l'analisi vera e propria dei dati estratti e convertiti. Qui lo sniffer prende i dati raccolti, verifica i protocolli in base alle
informazioni estratte e ne analizza le caratteristiche.
Linux Security : simulazione di un attacco informatico di Alex Campus
Exploiting
Di tutte le tecniche utilizzate per violare un sistema informatico, probabilmente la fase di exploiting è quella più raffinata.
Consiste essenzialmente nello sfruttare (il termine exploit sta a significare proprio questo, sfruttamento) un errore nel codice di
programmazione usato nel software, o, anche, di una errata configurazione.
I programmi sono semplicemente insiemi complessi di regole da applicare in un certo ordine, che in definitiva dicono al
computer cosa deve fare.
Sfruttare le vulnerabilità di un programma significa semplicemente escogitare un modo astuto per far fare al computer ciò che
desideriamo anche nel caso che il programma sia stato sviluppato appositamente per impedire tale azione.
Linux Security : simulazione di un attacco informatico di Alex Campus
Trojan Horse and Backdooring
Sono generalmente file binari che, attraverso l'uso di tecniche di inganno quali l'ingegeria sociale, vengono recapitati alla
vittima (spesso come allegato e-mail, ma anche pagine web o altro malware) e fatti eseguire sulla sua macchina allo scopo di
guadagnarne o mantenerrne l'accesso remoto.
Nel primo caso (guadagnare l'accesso ad un sistema) vengono sparsi per il mondo tramite campagne di spam, siti web
malevoli, drive infetti o altro e sono generalmente file eseguibili già compilati (es cryptowall).
Nel secondo caso (mantenere l'accesso ad un sistema) si parla di backdoor, spesso hanno la forma di codice sorgente e
vengono caricati sulla macchina vittima, dall'attaccante, una volta compromesso un sistema. Grazie a questo codice malevolo
“iniettato” nel sistema operativo, è possibile mantenere l'accesso al sistema rimanendo nascosti agli occhi degli amministratori
di sistema/rete (i codici delle backdoor sono altamente ottimizzati per infiltrarsi ovunque, spesso in moduli del kernel o
mascherati da innoqui programmi applicativi).
In entrambi i casi possono distinguersi in “bind connection”, ovvero, è il codice malevolo che attende connessioni TCP da
remoto, oppure “reverse connection”, in questo caso è il trojan stesso che cerca di connettersi ad un server remoto (molto utile
per bypassare dispositivi perimetrali quali NAT).
Linux Security : simulazione di un attacco informatico di Alex Campus
Linux Security : simulazione di un attacco informatico di Alex Campus
Attacchi DDoS - Distribuited Denial of Service
E' un attacco diretto a rendere non più fruibile agli utenti di un sistema una macchina o un servizio di rete
Nel caso in cui al sorgente di un attacco sia composta da numerosi host prende il nome di Distribuited Denial of Service.
Linux Security : simulazione di un attacco informatico di Alex Campus
Linux Security : simulazione di un attacco informatico di Alex Campus
Password Cracking
Le password sono tutt'ora il modo più comune e diffuso di proteggere i dati e consentire l'accesso ad un sistema.
La tecnica del password cracking consiste ricostruire una password partendo da dati che vengono archiviati o trasmessi su un
sistema.
Le password sono spesso memorizzate sui sistemi sotto forma di codice hash, ovvero la versione cifrata della password. Ne sono
esempi MD5 e Blowfish.
Quando si accede ad un sistema (fase di login) la password inserita viene codicifata in hash (seguendo l'algoritmo utilizzato dal
sistema) e quindi confrontata con quella memorizzata nel sistema.
Per definizione, non sarebbe possibile risalire alla password originaria partendo dal codice hash.
Il processo di crack parte quindi dal download dei file contenenti gli hash e continua con l'utilizzo di un tool di password
cracking, che seguirà fondamentalmente queste fasi:
-
si seleziona l'algoritmo di hash appropriato
seleziona una parola chiave in chiaro (ovvero non cifrata in hash)
si cifra la parola chiave selezionata
la si confronta con la versione contenuta sul file hash: se coincidono abbiamo trovato la password in chiaro
Questo tipo di attacco, che prova password predefinite contenute in chiaro su un file, è chiamato "a dizionario" e si differenzia da
ll'attacco cosiddetto "Brute Force", che prova invece tutte le combinazioni possibili di caratteri disponibili .
E' un'ottima tecnica per elevare i privilegi una volta che si è già compromesso un sistema.
Linux Security : simulazione di un attacco informatico di Alex Campus
Fasi di un Penetration Test
Andiamo in questa fase a vedere in concreto come testare la sicurezza di un sistema. Vedremo le varie fasi che costituiscono un
possibile attacco informatico diretto ad una piccola rete, analizzando le relative tecniche, nonché gli strumenti utilizzati.
Un test di questo tipo segue una metodologia ben precisa, che ricalca molto fedelmente ciò che realmente accade durante la
pianificazione e l'esecuzione di un attacco informatico. Fondamentalmente i passi seguiti sono i seguenti:
RICOGNIZIONE
SCANNING
EXPLOITATION
MANTENIMENTO
DELL'ACCESSO
Linux Security : simulazione di un attacco informatico di Alex Campus
Ricognizione
E' la prima fase di un attacco informatico (e spesso la più importante, sebbene, altrettanto spesso, la più sottovalutata). Consiste
fondamentalmente nel raccogliere e comporre un report di informazioni riguardanti il sistema bersaglio, informazioni che spesso
sono pubblicamente disponibili e reperibili sul web (siti web aziendali, social networks..). I dati raccolti durante questa fase danno
all'attaccante una chiara idea del sistema bersaglio, e consistono in:
-
elenco siti aziendali / account facebook, twitter, instagram etc.
numeri di telefono / indirizzi e-mail
presenza sul web di impiegati (sempre account social networks, siti personali..)
interrogazioni DNS
Pratica: whois, dig, nslookup
Linux Security : simulazione di un attacco informatico di Alex Campus
Scanning
Si basa fondamentalmente sui risultati ottenuti nella fase precedente e, in particolar modo, sulla lista degli indirizzi IP
corrispondenti agli host attivi del sistema bersaglio. Nella fase precedente, infatti, si sono usate le informazioni per costruire
questa lista di indirizzi, nella fase di scanning li si utilizzerà per individuare specifici servizi attivi e porte aperte.
La fase di scanning si può suddividere in tre fasi:
- Determinazione se l'host è “vivo” (ping sweeps)
- Port scanning del sistema (nmap
- Scanning delle vulnerabilità di un sistema
Pratica: utilizzo base di nmap
Linux Security : simulazione di un attacco informatico di Alex Campus
Guadagno dell'accesso (Exploitation)
Linux Security : simulazione di un attacco informatico di Alex Campus
Mantenimento dell'accesso
Una volta che l'accesso al sistema è stato ottenuto, sorge la necessità di mantenerlo. Spesso, infatti, un exploit garantisce soltanto
un accesso temporaneo. Per fare in modo che l'attaccante abbia la possibilità di accedere al sistema anche dopo che l'attacco è
stato portato a termine, si usano dei particolari software chiamati backdoor, che in parte abbiamo già affrontato.
Vediamo in pratica come funzionano partendo da un software molto interessante:
Linux Security : simulazione di un attacco informatico di Alex Campus