Come fare un penetration test per scoprire le falle del sistema

Fra i lavori più interessanti che possoo capitare a chi si occupa di sicurezza informatica c’è sicuramente il penetration test.

In pratica bisogna cercare di violare un sistema, fare danni solo virtualmente, per metterne a nudo le debolezze.

Il motivo è finn banale: se si hackera in proprio il sistema, l'azienda ha la possibilità di chiudere il buco prima che un attaccante lo scopra (se invece non si riesce a trovare nulla l'azienda è ancora più felice).

Per diventare un hacker etico il primo passo è avere il permesso documentato dalle persone giuste prima di fare qualsiasi cosa. Non violare la legge è fondamentale per essere un tester professionista. In questo caso il consiglio è seguire il codice etico realizzato dall’Ec Council.

Come si organizza un penetration test

Innanzitutto va definito il campo di applicazione e vanno chiariti gli obiettivi del penetration test. È essenziale porsi una lunga serie di domande.

La prima e più ovvia è quali risorse informatiche sono oggetto del test? Comprende tutti i computer, solo una determinata applicazione o servizio, determinate piattaforme e sistemi operativo, o dispositivi mobili e servizi cloud? Il campo di applicazione include solo un certo tipo di risorse informatiche, come Wb server, server SQL, tutti i computer a livello di sistema operativo host e anche i dispositivi di rete?

Il test può includere la scansione automatizzata della vulnerabilità? È consentita l'ingegneria sociale e, in caso affermativo, quali metodi? In quali date è consentito effettuare il test? Ci sono giorni o ore in cui non si devono provare i test di penetrazione (per evitare interruzioni involontarie o interruzioni del servizio)? I collaudatori dovrebbero fare del loro meglio per evitare di causare interruzioni di servizio o causare qualsiasi tipo di problema che un vero aggressore può fare? Il test di penetrazione sarà una scatola nera (ovvero il tester ha pochi o nessun dettaglio dei sistemi o delle applicazioni coinvolte) o una scatola bianca (ovvero hanno conoscenza dei sistemi attaccati, e coinvolgono il codice sorgente)? I difensori della sicurezza informatica saranno informati del test o parte del test sarà per verificare se i difensori si accorgono di qualcosa? Gli attaccanti professionisti dovrebbero cercare di penetrare senza essere scoperti dai difensori, o dovrebbero usare metodi normali che potrebbero essere usati dai veri intrusi per vedere se si attivano le difese di rilevamento e prevenzione esistenti?

Gli obiettivi del penetration test

Le domande non sono finite e passano a quelle relative agli obiettivi del penetration test.
E' sufficiente dimostrare che si può entrare in un computer o dispositivo?
L'accesso a un particolare computer o l'esfiltrazione dei dati è parte integrante dell'obiettivo, oppure è sufficiente ottenere un accesso privilegiato?
Cosa deve essere presentato come parte della documentazione al termine del test? Dovrebbe includere tutti i metodi di hacking falliti e di successo, o solo i più importanti? Quanto dettaglio è necessario?
Gli hack devono essere catturati su video o screenshot?
È importante che lo scopo e gli obiettivi siano descritti in dettaglio e concordati prima di qualsiasi tentativo di test di penetrazione.

Gli strumenti di prova del penetration test

Il tester di penetrazione di solito ha un set standard di strumenti di hacking, ma potrebbe dover cercare diversi strumenti a seconda del lavoro di hacking. Ad esempio, se gli viene chiesto di attaccare i server Sql e non ha alcuna esperienza pertinente, potrebbe essere utile iniziare a ricercare e testare diversi strumenti di attacco Sql.

La maggior parte dei tester di penetrazione inizia con un sistema operativo Linux "distro" specializzato per queste azioni. Le distro di Linux per l'hacking vengono e vanno avanti nel corso degli anni, ma in questo momento la distro di Kali è quella preferita.

Il punto più importante di qualsiasi strumento di hacking è assicurarsi che non contenga malware o altro codice progettato per attaccare l'hacker.

Ogni tester di penetrazione inizia l’azione imparando a conoscere i target. Si parla di indirizzi Ip, piattaforme Os, applicazioni, numeri di versione, livelli delle patch, porte di rete pubblicizzate, utenti e qualsiasi altra cosa che possa portare a un exploit. È una rarità che un tester non veda un'evidente vulnerabilità potenziale spendendo solo pochi minuti a guardare una risorsa. Per lo meno, anche se non vedono qualcosa di ovvio, possono usare le informazioni apprese alla scoperta per continuare l'analisi e gli attacchi.

Exploitation. Questo è ciò per cui viene pagato l'hacker etico. Utilizzando le informazioni apprese nella fase di scoperta, il penetration tester deve sfruttare una vulnerabilità per ottenere l'accesso non autorizzato (o negare il servizio, se questo è l'obiettivo).

Se il processo di analisi inziale è abbastanza approfondita, la parte di violazione non è così difficile. Essere un buon tester di penetrazione o hacker non significa tanto essere un genio, quanto possedere pazienza e completezza. E la falla si trova praticamente sempre. A seconda dell'ambito di applicazione, la scoperta della vulnerabilità può essere automatizzata utilizzando il software di scansione di sfruttamento o vulnerabilità. Quest' ultimo tipo di software solitamente trova le vulnerabilità, ma non le sfrutta per ottenere un accesso non autorizzato.

Il tester deve redigere e presentare la relazione concordata, compresi i risultati e le conclusioni.

 

Un lavoro sofisticato e in evoluzione

Le aziende sono alla ricerca dell'hacker professionale completo nella pratica e nei set di strumenti utilizzati. Uno degli sviluppi più emozionanti dei test sono proprio gli strumenti che fanno tutto il duro lavoro, dalla scoperta allo sfruttamento, proprio come un aggressore potrebbe fare.

Un esempio di questo tipo di strumento è il Bloodhound opensource che consente agli aggressori di vedere, graficamente, le relazioni tra diversi computer su una rete Active Directory. Se si immette un obiettivo di destinazione desiderato, Bloodhound può aiutare a vedere rapidamente più percorsi di hacking per ottenere da dove si inizia, spesso identificando percorsi sconosciuti.

Non è sufficiente consegnare un elenco delle vulnerabilità riscontrate al resto dell'azienda e considerare il lavoro svolto. I tester di penetrazione professionale di oggi devono lavorare con la gestione It per identificare le minacce più grandi e probabili. I tester fanno ora parte del team di risk management, contribuendo a ridurre in modo efficiente il rischio anche di più di semplici vulnerabilità. Ciò significa che gli hacker etici forniscono un valore ancora maggiore mostrando al management e ai difensori ciò che è più probabile che accada e come, e non solo mostrando loro un hack una tantum che difficilmente si verificherà.

 

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.
CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here