Nell’era delle guerre informatiche e dei giorni in cui si sente davvero di tutto, mi ritrovo spesso ad ascoltare discorsi un po’ particolari da parte di persone non appartenenti al settore che parlano di diavoli, hacker e “gente che ti piomba nel computer o nel telefono senza che tu te ne accorga” per colpa di Internet.
Ad accrescere questa leggenda metropolitana contribuiscono le fughe di foto, password e dati verificatesi in tempi più o meno recenti – dall’attacco ad iCloud che fece trapelare migliaia di foto di celebrità nude, per poi passare ad una fuga di dati simile su Snapchat, fino a terminare alle password trapelate di Mark Zuckerberg e Katy Perry.
Onde evitare confusione, è arrivato il momento di dare tutte le risposte alle domande che riguardano le modalità di assestamento di un attacco informatico in rete.
Non esiste una modalità standard tantomeno una procedura programmata ma c’è da chiarire immediatamente un aspetto fondamentale: l’hacker – definiamo così colui che entra in un sistema senza averne esplicita autorizzazione, e da ora in avanti denoteremo sotto la generica parola hacker anche gruppi composti da più persone – non è un’ombra onnipresente tantomeno ha la facoltà della telecinesi, di conseguenza non può svegliarsi una mattina e decidere di entrare in un sistema informatico… perché, semplicemente, la riuscita o meno del suo piano dipende dalla sua abilità in percentuale relativamente bassa.
A giocare un ruolo chiave figurano le vulnerabilità della macchina (o delle macchine) che esso intende attaccare, vulnerabilità che possono essere provocate sia da programmi scritti male che da un errore umano.
Per rendere chiaro il concetto nelle sezioni che seguono cercheremo di “disassemblare” un attacco informatico su rete tipico, studiandone da vicino i passaggi.
Di seguito troverete una descrizione più o meno dettagliata ma di semplice comprensione di cosa ci sia dietro un attacco orientato esclusivamente al traffico di informazioni o alla distruzione dei dati.
Nel penultimo paragrafo si parlerà invece degli attacchi mirati a limitare o azzerare le funzionalità del server bersaglio, il cosiddetto DoS (o DDoS, se ad attaccare sono più server), decisamente più semplice rispetto ad un attacco data-oriented.
Al termine della lettura saranno chiari i motivi per cui, nonostante l’astuzia e l’abilità, l’hacker non ha il dono dell’ubiquità e non sta ad ogni angolo del mondo tecnologico. : dietro qualsiasi tipo di attacco informatico esistono una serie di meccanismi che spesso neanche si immaginano.
Attacco hacker per accesso ai dati
Analisi del bersaglio
Quando si parla di attacchi informatici su larga scala non bisognerebbe mai pensare che la cosa nasca improvvisamente e quasi come un capriccio, anzi.
Per assestare un attacco ad un target specifico, sia esso un singolo server o un’intera rete, è fondamentale studiare e monitorare non soltanto il server stesso ma anche gli eventuali meccanismi di sicurezza ad esso collegati (firewall, sonde e cose del genere).
In alcuni casi si rende necessario addirittura ricorrere al cosiddetto “social engineering” (ad esempio tentativi di phishing, interazioni o addirittura furto d’identità) se quanto trapelato semplicemente “osservando” non basta.
In questa fase l’hacker dovrà cercare di carpire cose quali:
- Programmi e demoni in esecuzione sul server così da essere in grado eventualmente di sfruttarne i bug;
- Traffico dati da e verso il server, per cercare di carpire tutte le informazioni in transito (ad esempio password, parametri delle reti private, eventuali firewall e via discorrendo);
- Algoritmi di cifratura, se presenti, con i quali i dati del punto precedente vengono cifrati;
- Modalità di accesso al server;
- Tempistiche delle eventuali sonde o del personale di auditing;
- Eventuali meccanismi di scansione o segnalazione automatica di accessi indesiderati, se presenti;
- Tutte le altre informazioni utili (posizione dei file di log, autorizzazioni dei gruppi di utenti e quant’altro).
A seconda della portata dell’attacco la fase di studio può durare giorni, mesi o a volte addirittura anni, periodi durante i quali gli hacker dovranno essere pronti a tutto.
Si, spesso anche a ricominciare daccapo, a causa delle ovvie modifiche che il sistema potrebbe subire in tutti i suoi aspetti nel corso del tempo.
Preparazione all’attacco
Terminata la fase di studio l’hacker dovrà affrontare una vera e propria lotta contro il tempo perché, come vi ho spiegato in precedenza, le modifiche ad un sistema informatico sono sempre dietro l’angolo.
Una volta ottenute tutte le informazioni necessarie, l’hacker dovrà definire la strategia d’attacco ideale in base ai riscontri scaturiti dallo studio.
Potrà scegliere di monitorare e decifrare con gli appositi mezzi il traffico in transito sul server, sfruttare una o più vulnerabilità dei programmi in esecuzione sul server utilizzando o scrivendo un apposito exploit, usare le credenziali ottenute tramite social engineering o usare una combinazione di tutti e tre i metodi.
Cosa fondamentale, in questa fase l’hacker definirà i tempi di esecuzione dei vari passaggi richiesti nonchè le modalità con cui mascherarsi durante l’accesso al server, cercando di far “rimbalzare” il proprio indirizzo IP su più nodi possibili.
In tal modo questi renderà il rintracciamento complesso. Spesso vengono preparati dei veri e propri “ambienti d’attacco” così da limitare al minimo l’eventualità di errori da parte dell’hacker stesso.
Esecuzione dell’attacco
Dopo aver studiato il bersaglio e preparato tutte le modalità d’attacco si entra nella fase più rischiosa e adrenalinica di tutta la procedura: l’attacco vero e proprio.
E’ qui che l’hacker tenta di accedere materialmente al server in questione per prelevare o distruggere i dati di cui ha bisogno ed è qui che mette in pratica tutti gli accorgimenti definiti nelle fasi precedenti.
L’accesso avviene solitamente tramite credenziali mirate, se c’è stato modo di prelevarle, oppure sfruttando una vulnerabilità di qualche programma tramite un apposito exploit.
Una volta dentro, il nostro simpatico elemento potrebbe aver bisogno di acquisire privilegi maggiori (spesso amministrativi) sulla macchina in questione: in questo caso potrebbe aver pronto uno 0day che gli permetterà di ottenere tale risultato.
Da questo momento in poi parte la lotta contro il tempo: più si è rapidi, minori sono i rischi. E la prima cosa da fare è rendersi invisibili a tutti i meccanismi di logging (quelli che “registrano” qualsiasi cosa succeda) in esecuzione sul sistema.
Subito dopo gli approcci sono essenzialmente due:
- l’hacker decide di mirare dritto ai dati e di eseguire direttamente ciò che deve (nel caso di transito potrebbe avvenire nel frattempo la creazione di un canale privato);
- l’hacker decide di predisporre il server vittima ad un accesso futuro, e quanto più discreto possibile, per completare l’opera più in là (installando o creando al volo una cosiddetta backdoor, oppure impossessandosi di credenziali d’accesso già presenti).
In genere il secondo è l’approccio più efficace ma anche il più rischioso.
Di certo dopo aver assestato l’attacco, che sia immediato o da protrarre in futuro, l’hacker andrà ad eliminare le tracce del suo accesso modificando (ma quasi mai eliminando) file di log presenti nel sistema, qualsiasi esso sia.
Nel momento in cui l’hacker non venisse intercettato durante la comunicazione e l’esecuzione delle operazioni che si è prefisso.. per il povero amministratore di rete (o per il possessore del computer in questione) sarà sempre troppo tardi.
DoS e DDoS
Questo è l’attacco informatico che di norma conduce all’irraggiungibilità di un sito web o, più in generale, di qualsiasi servizio o applicazione.
Il DoS – che sta per denial-of-service, letteralmente negazione del servizio – è l’attacco di cui i server cadono vittima quando si sente parlare di “pagine web” o “servizi irraggiungibili per colpa di gruppi di hacker”.
Assestare un attacco DoS richiede certamente meno tempo rispetto quanto ne richiede la tipologia di attacco descritta poc’anzi, tuttavia la quantità di impegno non è di certo minore.
Spesso un DDoS – che sta per Distributed denial-of-service – si provoca semplicemente “bombardando” il server vittima con un’enorme quantità di dati grazie ad una botnet, una serie di macchine collegate insieme per inviare dati contemporaneamente, costruita ed orchestrata dall’hacker di turno.
Più grande è la botnet, più dati si mandano, più la probabilità che il server non sia in grado di gestirli è alta, per cui il server stesso non si ritrova in condizioni di eseguire le normali procedure di smistamento dati.
Conseguenza diretta di ciò è l’interruzione (o quantomeno il malfunzionamento) del servizio offerto, nel caso dei webserver ciò si traduce materialmente con l’irragiungibilità del sito ospitato.
Il lavoro grosso dell’hacker in questo caso è costruire una buona botnet, di norma guadagnando l’accesso a varie macchine con il metodo descritto precedentemente.
Esiste tuttavia un’altra tipologia di attacco DoS che consiste nel mandare letteralmente in crash una o più applicazioni sul server.
Solitamente ciò avviene sfruttando, grazie agli exploit remoti, le vulnerabilità dei programmi in esecuzione sul server stesso.
Nulla vieterebbe ad un hacker di assestare un DoS direttamente dall’interno del server ma, vista la complessità di una pratica simile (bisognerebbe seguire in primis tutto l’iter descritto nei paragrafi precedenti), un DoS dall’interno è utilizzato soltanto nel caso di attacchi su larghissima scala.
Evitare di essere vittime di un attacco
Se siete riusciti ad arrivare fino in fondo alla lettura di questo articolo avrete già chiara un’idea di come fare ad evitare di incappare in un qualsivoglia attacco hacker, perché il primo accorgimento per difendersi è sempre conoscere le modalità di attacco.
Purtroppo va ribadito per l’ennesima volta che l’unica macchina sicura è una macchina spenta, e che un margine minimo di rimanere vulnerabili se connessi ad Internet esiste sempre.
D’altra parte, che voi siate gestori di un server oppure semplicemente possessori di un computer, di uno smartphone, tablet e via dicendo, vi sono degli accorgimenti che potrebbero indubbiamente farvi dormire sogni più tranquilli, ad esempio:
- Tenere sempre aggiornato il sistema operativo, il kernel (se stiamo parlando di un GNU/Linux) e le applicazioni installate su di esso; ridurrà la probabilità di essere esposti a bug.
- Evitare di installare, soprattutto in ambienti server e/o di produzione, software attivo o demoni che interagiscono con la rete e richiedono l’apertura di porte remote se non strettamente necessario.
- Per i dispositivi mobile, evitare l’installazione di app di terze parti.
- Attenzione alle email dubbie e ai siti non conosciuti: evitare di eseguire allegati e file contenuti in essi.
- Tenere sempre ben configurato firewall (software o hardware che sia) e lasciare “sbloccate” soltanto tutte quelle porte di cui si ha necessariamente bisogno.
- Impostare sul firewall filtri che impediscano in qualche modo tutti i tipi di flood (SYN, TCP e via discorrendo); sarà così limitata l’efficacia di un potenziale DDoS tramite botnet;
- Evitare di installare software precompilato (sopratutto per quanto riguarda gli ambienti di produzione GNU/Linux) di dubbia provenienza, potrebbe esporre la macchina a malware di ogni tipo (in particolare rootkit, backdoor e keylogger);
- In caso si gestisca un ambiente server, evitare di usarlo per navigare in Internet – ed in particolare su siti in cui è richiesto di inserire le credenziali d’accesso – se non strettamente necessario.