Le fasi di un attacco informatico (e qualche mio consiglio)
Le fasi di un attacco informatico variano molto a seconda di chi lo esegue e di qual e' il suo obbiettivo.
Conoscerle aiuta a capire chi ci troviamo di fronte ma soprattutto, a comprendere meglio il possibile rischio e mettere in campo tutte le possibili azioni o precauzioni per mitigarlo. Di seguito qualche consiglio.
In questa rappresentazione vediamo in viola gli attacchi piu' complessi da parte di APT o gruppi molto specializzati, in giallo le attivita' tipiche dell' attivismo (Hactivism) volte a suscitare l'interesse dei media o per azioni dimostrative verso qualcuno/qualcosa ed in rosso le minacce meno specializzate ed in genere rivolte alla massa.
Vediamo in cosa consistono le fasi principali.
Fase 1 - Define Target, Footprinting: in questa fase viene selezionato l'obbiettivo (o gli obbiettivi se sono molti) ed inizia la raccolta di quante piu' informazioni possibile sul/sui target.
Immaginiamo, per semplicita', che l'obiettivo sia l'azienda XYZ. In questa fase si studia la storia dell'azienda, le sedi, i suoi componenti, i suoi dipendenti, i clienti, i fornitori, i partner e quante piu' informazioni si possono recuperare sui media o in rete. In questa fase si identificano le aree in cui XYZ e' "esposta" che potrebbero essere, ad esempio, il suo sito internet, i suoi server mail, i suoi canali di comunicazione con i clienti, i partner o i dipendenti.
Questa fase e' del tutto simile al classico "sopralluogo" che vediamo nei film quando dei malviventi vogliono commettere un "colpo" e studiano gli orari di apertura della banca, i turni delle guardie, gli orari di minore affluenza di clienti, ecc...
Da questa prima fase impariamo che e' molto importante fare attenzione a quali / quante informazioni diffondiamo riguardo a noi stessi, alla nostra societa' ed a quello che facciamo in rete (soprattutto nei social networks) poiche' queste possono essere oggetto di una minuziosa analisi e poter essere utilizzate contro di noi.
Fase 2 - Scanning and Enumeration: individuati i punti di maggiore "esposizione" si procede alla verifica della presenza di "falle" o di varchi per poter accedere ai sistemi.
Per semplicita' consideriamo come esempio di esposizione il sito internet della societa' XYZ.
In questa fase si esegue una scansione completa di tutti i servizi tecnologici che XYZ espone, di come sono stati costruiti (quali tecnologia e prodotti) e cosa permettono di fare.
Attraverso la lista dei prodotti e tecnologie utilizzate si procede alla verifica di tutte le "falle" (difetti, problemi di sicurezza) conosciute per questi prodotti. Esistono molti strumenti e tecniche per farlo. Se si individua qualcosa (tipicamente dovuto a software non aggiornato o configurato grossolanamente) ecco che il varco e' aperto.
Se gli strumenti non restituissero alcun risultato, potrebbe essere comunque disponibile una vulnerabilita' "0 day" (ovvero talmente recente da non essere ancora conosciuta al pubblico) che affligge questi prodotti. Esistono svariati market che offrono "0 day" vulnerabilities.
Da questa fase impariamo quanto e perche' sia importante mantenere sempre aggiornati i prodotti informatici che si utilizzano, soprattutto se questi sono esposti su internet o comunque a "contatto" con l'esterno (clienti, fornitori, collaboratori).
Appare anche chiaro perche' sia utile eseguire degli "assessment" sul livello di vulnerabilita' della propria infrastruttura, agendo proprio come farebbe un attaccante ("thinking like an attacker"), per rendersi conto dell'effettivo livello di rischio.
Fase 3(a) - L'attacco "Frontale": Attraverso le vulnerabilita' individuate si procede allo sfruttamento della falla (exploit) in modo da avere accesso al sistema o a parte di esso.
Un attaccante sa bene che una "falla" nel sistema o una "0 day" hanno vita breve... prima o poi qualcuno correggerĂ l'errore. Una volta valutato il livello di accesso ottenuto e le caratteristiche "interne" del sistema e' necessario passare allo step successivo (Fase 4).
Dall'attacco frontale impariamo l'importanza di tecniche e strumenti di difesa "attivi" come gli IDPS (Intrusion Detection & Prevention Systems) ed i WAF (Web Application Firewalls).
E' evidente che la presenza sui sistemi di un buon software di "Endpoint Protection" (antivirus/antimalware) aiuta moltissimo nella rilevazione di anomalie.
Vulnerabilita' nuove (0 day) vengono scoperte di continuo e non esiste un software o sistema perfetto, per questo e' fondamentale strutturare la propria rete ed i propri sistemi affinche' possano "sopportare" o "contenere" una possibile intrusione poiche' e' statisticamente probabile che, prima o poi, succedera'.
Fase 3(b) - L'attacco "Laterale": Se la fase 2 non ha rilevato nulla e quindi significa che le mura difensive di XYZ sono solide (almeno per il momento, in attesa di una "0 day") si potrebbe cambiare strategia ed eseguire l'attacco ad un'entita' piu' debole che noi sappiamo essere collegata ad XYZ e poi raggiungere il nostro obiettivo attraverso il canale che esiste tra i due.
Questo e' il caso di collegamenti con partner, clienti o fornitori. Dobbiamo ricordare che "la catena difensiva e' forte quanto il suo anello piu' debole". L'attenzione dell'attaccante potrebbe quindi passare verso qualcuno collegato a noi, eseguendo dall' inizio le fase 1-2-3a per poi raggiungere lo stesso scopo: l'accesso al sistema.
Dall' attacco laterale capiamo quanto sia importante scegliere dei partners (collaboratori o fornitori) che abbiano quantomeno il nostro livello di sensibilita' in fatto di sicurezza. In ogni caso anche i canali di comunicazione con soggetti "fidati" potrebbero diventare una possibile via di ingresso per malintenzionati ed e' quindi necessario porre la giusta attenzione nella protezione anche di questi canali.
Fase 3(c) - L'attacco "Interno": Se la fase 2 non ha rilevato nulla e la 3b non e' praticabile si ricorre al metodo "Cavallo di Troia", ovvero si cerca di fare entrare "all'interno delle mura" qualcosa che aprira' un varco verso l'esterno. Il 90% degli attacchi di questo tipo vengono eseguiti via mail attraverso "spear phishing" (mail con allegati o link che contengono del malware) oppure attraverso i social networks attraverso link malevoli che innescano lo scaricamento di malware in modalita' "drive-by-download". L'attacco interno puo' essere eseguito anche mediante "Social Engineering" o la diffusione di supporti (chiavette USB, Hard Disk o addirittura mouse appositamente modificati in modo da avere una piccola memoria USB!) che contengono delle componenti malware.
Questo tipo di attacco e' in assoluto il piu' difficile da contrastare poiche' fa leva sul "fattore umano" che per sua natura e' debole.
Dall'attacco interno si imparano un'infinita' di cose: l'importanza di un buon sistema antispam, l'educazione di ogni membro della famiglia o azienda a non cadere vittima del phishing, fare attenzione a qualsiasi link che si "cliccka" in modo azzardato e molto altro... ci sono libri interamente dedicati a questo tema :-)
Fase 4 - Persistence: Una volta dentro il sistema attraverso uno dei tipi di attacco visti precedentemente e' necesario garantirsi la "persistenza" ovvero instaurare uno o piu' canali (comunemente "backdoors") che garantiscano l'accesso per il futuro. Ne esistono di diverso tipo e di diversa tecnologia. In questo caso l'attaccante cerchera' di seminarne quante piu' backdoors possibile ed usandone di tipi diversi in modo tale che se anche qualcuna dovesse essere individuata, resteranno le altre vie di riserva attive.
In questa fase appare evidente come la "recovery" da un attacco non puo' essere semplicemente la "chiusura della falla" poiche' nel frattempo potrebbero essere attive "n" istanze malware che comunicano dall'interno verso l'esterno. L'operazione di "bonifica" non e' per nulla scontata e richiede strumenti di analisi potenti ed un periodo di osservazione adeguato.
Fase 5 - Lateral Movement: Indipendentemente da quale sia il sistema o area o zona di rete in cui l'attaccante abbia avuto accesso, inizia una nuova fase di ricerca: il movimento laterale. In sintesi l'attaccante ripetera' le fasi 2 e 3 ma questa volta "dentro" il sistema / rete in modo da individuare cio' che cerca (dati? proprieta' intellettuale? eseguire transazioni non autorizzate?)
Anche per questa fase l'insegnamento maggiore che se ne trae e' che e' necessario avere degli strumenti di monitoraggio evoluti (o quantomeno un logging level adeguato) per poter monitorare che anche le comunicazioni interne tra i sistemi siano lecite. Purtroppo spesso si considerano le comunicazioni interne "sicure" e quindi vengono sottovalutate.
Fase 6 - Privilege Escalation: All' interno di un sistema il movimento orizzontale e le possibilita' di azione sono decisamente maggiori se si dispone di privilegi amministrativi o si intercettano le password di utenze in qualche modo privilegiate rispetto alle altre.
Ecco quindi che l'attaccante cerchera' di sfruttare altre falle conosciute dei sistemi operativi o dei software di middleware per carpire queste accoppiate di utenze e password.
Per evitare di incorrere in facili "escalation dei privilegi" e' importante che le credenziali degli utenti (login/password) non vengano salvate in files di configurazione o dimenticate in scripts di installazione o manutenzione sui sistemi.
E' importante limitare la presenza di utenze applicative generiche che abbiano privilegi elevati su numerosi sistemi: la compromissione di uno di questi utenti genererebbe un effetto a catena molto pericoloso.
Sarebbe auspicabile usare un sistema di PUAM (Privileged User Access Managament) che gestisce e monitora l'utilizzo di queste particolari utenze.
Il movimento laterale trova terreno fertile in caso di configurazioni troppo permissive, password di default lasciate sugli applicativi, permessi eccessivi sui file-systems per gli utenti, comunicazioni non criptate (telnet, ftp, smtp) o addirittura mancato controllo degli accessi (anonymous access).
Di nuovo ritorna anche il tema del "patching" dei sistemi operativi e del software e della possibilita' di condurre degli "assessment interni" per valutare con attenzione il livello di rischio.
Fase 7 - Data Exfiltration: Su questa fase non mi dilungo ma e' facile intuire che i dati possono essere prelevati da mail server, file server e soprattutto dai Databases.
E' quindi evidente che su queste fonti di dati si focalizzera' l'attenzione dell'attaccante.
Dalla fase 7 impariamo l'importanza della criptazione del dato immagazzinato nei DB, di un' attenta gestione del logging su tutte le basi dati e sull' opportunita' di installare un prodotto di DAM (Database Activity Monitoring).
Fase 8 - Covering Tracks and Remain Undetected: Questa fase, tipica degli APT e dei gruppi di attacco piu' evoluti, consiste nel cancellare possibili tracce, log, evidenze che possano segnalare la presenza dell'attacco o che possano ricondurre all'attaccante.
Questa fase e' un insieme di tecniche e tecnologie volte a "passare inosservati" eseguendo delle attivita' minuziose e precise che non destino alcun sospetto agli amministratori di sistema.
Questa fase 8 insegna che potrebbero essere proprio i dettagli a far suonare il campanello di allarme! Ad esempio un piccolo "buco temporale" in un log, un messaggio di errore inspiegabilmente troncato a meta' oppure un diverso owner/gruppo su alcuni files e cosi' via... in sintesi quando ci si trova davanti ad un'attivita' di cancellazione delle tracce il lavoro diventa ancora piu' difficile ed e' indispensabile un approccio di "Forensic Analysis" che richiede prodotti e skills molto veriticali.
Spero che questa panoramica delle fasi dell' attacco sia servita per dare un'idea di come funziona ma soprattutto, e questo e' il mio fine, sia servita a lasciare qualche consiglio su come comportarsi ed a cosa fare attenzione fase per fase.
