Il Penetration Test è un attacco informatico simulato e autorizzato su un computer, destinato a valutare la sicurezza di un sistema. I test vengono eseguiti per identificare tutti i punti deboli (noti anche come vulnerabilità), inclusa la possibilità che soggetti non autorizzati accedano a funzionalità e dati del sistema, nonché i punti di forza che consentono a soggetti non autorizzati di accedere a funzionalità e dati del sistema.
Cos'è il Penetration Test?
Cos'è il Penetration Test?
Il Penetration Test, noto anche come pen test, pentest o hacking etico, è un attacco simulato a un sistema informatico per verificare le vulnerabilità che possono essere sfruttate. Nella sicurezza delle applicazioni web, il Penetration Testing viene spesso utilizzato per rafforzare i firewall delle applicazioni web (Web Application Firewall - WAF).
Il pen test può comportare il tentativo di violare un numero qualsiasi di sistemi applicativi (ad esempio interfacce di protocollo applicativo - API, server frontend/backend) per scoprire vulnerabilità, come input non convalidati che sono vulnerabili all'iniezione di codice dannoso.
Gli approfondimenti forniti dai test di penetrazione possono essere utilizzati per perfezionare le policy di sicurezza WAF e correggere le vulnerabilità scoperte.
Fasi del Penetration Test
Il processo di pen test può essere suddiviso in 5 fasi.
1. Raccolta e tracciamento passivo delle informazioni
Nella prima fase del penetration testing e del bug bounty testing, i tester devono raccogliere informazioni sul sistema di destinazione. Poiché esistono numerosi metodi di attacco e test, i penetration tester devono stabilire le priorità in base alle informazioni raccolte per determinare il metodo più adatto.
Questo passaggio prevede l'estrazione di dettagli preziosi sull'infrastruttura del sistema di destinazione, come nomi di dominio, blocchi di rete, router e indirizzi IP nel suo ambito. Inoltre, è necessario raccogliere tutte le informazioni rilevanti che potrebbero favorire il successo dell’attacco, come i dati dei dipendenti e i numeri di telefono.
I dati ottenuti da fonti aperte durante questo periodo possono fornire dettagli sorprendentemente importanti. Per raggiungere questo obiettivo, gli hacker white hat devono sfruttare una varietà di fonti, con particolare attenzione al sito Web dell'organizzazione target e alle piattaforme di social media. Raccogliendo meticolosamente queste informazioni, i tester getteranno le basi per uno sforzo di bug bounty di successo.
Tuttavia, la maggior parte delle organizzazioni impone regole diverse ai penetration tester durante il processo di bug bounty. È necessario da un punto di vista legale non discostarsi da queste regole.
2. Raccogli e scansiona le informazioni in modo proattivo
Un penetration tester rileverà quali dispositivi attivi e passivi sono attivi all'interno dell'intervallo IP, solitamente effettuato tramite raccolta passiva durante il bug bounty. Con l'aiuto delle informazioni ottenute durante questo processo di raccolta passiva, il pentester deve determinare il proprio percorso: deve stabilire le priorità e determinare esattamente quali test sono necessari.
Durante questo periodo gli hacker non possono evitare di ottenere informazioni sul sistema operativo, sulle porte aperte e sui servizi, nonché informazioni sulla versione dei sistemi attivi.
Inoltre, se l'organizzazione richiede legalmente di consentire ai penetration tester di monitorare il traffico di rete, è possibile raccogliere, almeno il più possibile, informazioni critiche sull'infrastruttura del sistema. Tuttavia, la maggior parte delle organizzazioni non desidera concedere questa autorizzazione. In una situazione del genere, il penetration tester non deve andare oltre le regole.
3. Fase di analisi e test
In questa fase, il penetration tester, dopo aver capito come reagirà l'applicazione target ai vari tentativi di intrusione, cerca di stabilire connessioni funzionanti con i sistemi che rileva attivi e cerca di soddisfare le richieste dirette. In altre parole, questa è la fase in cui l'hacker white hat interagisce con il sistema preso di mira utilizzando in modo efficace servizi come FTP, Netcat e Telnet.
Nonostante il fallimento in questa fase, lo scopo principale è quello di verificare i dati ottenuti durante le fasi di raccolta delle informazioni e prendere appunti.
4. Tentativi di manipolazione e sfruttamento
Fase di attacco del penetration test
I penetration tester raccolgono tutti i dati raccolti nei processi precedenti per un obiettivo: provare ad accedere al sistema di destinazione nello stesso modo in cui farebbe un vero hacker malintenzionato. Ecco perché questo passaggio è così importante. Perché quando partecipano a programmi di bug bounty, i penetration tester dovrebbero pensare come veri hacker.
In questa fase il penetration tester tenta di penetrare nel sistema, utilizzando il sistema operativo in esecuzione sul sistema di destinazione, aprendo porte e servizi che servono su queste porte nonché eventuali exploit che possono essere applicabili a seconda della versione. Poiché i portali e le applicazioni basati sul Web sono costituiti da molto codice e molte librerie, gli hacker malintenzionati hanno una maggiore portata per attaccare. A questo proposito, un buon penetration tester dovrebbe considerare tutte le possibilità e schierare tutti i possibili vettori di attacco consentiti dalle regole.
Ciò richiede competenza ed esperienza serie per poter utilizzare con successo e in modo flessibile gli exploit esistenti, senza danneggiare il sistema e senza lasciare tracce durante la presa del controllo del sistema. Pertanto, questa fase di test di penetrazione è il passo più importante.
5. Sforzi per aumentare i privilegi
La forza di un sistema è determinata dal suo anello più debole. Se un hacker white hat riesce ad accedere a un sistema, in genere accede al sistema come utente con bassa autorità. In questa fase, i penetration tester devono avere diritti di amministratore, sfruttando le vulnerabilità nel sistema operativo o nell’ambiente.
Mireranno quindi a prendere il controllo di altri dispositivi nell'ambiente di rete utilizzando i privilegi aggiuntivi che hanno ottenuto ed eventualmente i privilegi utente di livello superiore come amministratore di dominio o amministratore di database.
6. Reporting e presentazione
I penetration tester riportano i risultati della ricerca dei bug e ricevono ricompense
Una volta completati i passaggi di test di penetrazione e bug bounty, il penetration tester o il cacciatore di bug devono presentare le vulnerabilità di sicurezza scoperte nel sistema di destinazione, i passaggi successivi e come possono sfruttare queste vulnerabilità per l'organizzazione con un rapporto dettagliato. Ciò dovrebbe includere informazioni come screenshot, codice di esempio, fasi dell'attacco e come potrebbe verificarsi questa vulnerabilità.
Il rapporto finale deve includere anche raccomandazioni sulle soluzioni su come chiudere ciascuna vulnerabilità della sicurezza. La sensibilità e l'indipendenza dei test di penetrazione rimangono un mistero. Gli hacker white hat non dovrebbero mai condividere informazioni riservate ottenute in questa fase e non dovrebbero mai abusare di queste informazioni fornendo informazioni false, poiché di solito è illegale.
Metodi di test di penetrazione
Test esterno (test di penetrazione esterna)
I test di penetrazione esterni prendono di mira le "risorse" di un'azienda visibili su Internet, come l'applicazione Web stessa, il sito Web dell'azienda, la posta elettronica e i server dei nomi di dominio (DNS) . L’obiettivo è ottenere l’accesso ed estrarre dati preziosi.
Test interno (test di penetrazione dall'interno)
Nei test di penetrazione interna, un tester con accesso a un'applicazione protetta da un firewall simula un attacco da parte di un interno. Questo attacco non solo avverte della possibilità che un dipendente interno possa essere un hacker, ma ricorda anche agli amministratori di impedire che un dipendente dell'organizzazione subisca il furto delle informazioni di accesso, dopo un attacco di phishing .
Test in cieco (test “alla cieca”)
In un test cieco, al tester viene fornito solo il nome dell'azienda presa di mira. Ciò offre al personale di sicurezza una visione in tempo reale di come si svolgerebbe nella pratica un attacco alle applicazioni.
Test in doppio cieco
In un test in doppio cieco, il responsabile della sicurezza non ha alcuna conoscenza preliminare dell'attacco simulato. Proprio come nel mondo reale, non sempre è possibile conoscere in anticipo gli attacchi per migliorare le difese.
Test mirati
In questo scenario, sia il tester che il responsabile della sicurezza lavoreranno insieme e valuteranno continuamente le reciproche azioni. Si tratta di un prezioso esercizio di formazione, che fornisce al team di sicurezza un feedback in tempo reale dal punto di vista dell'hacker.
Test di penetrazione e firewall per applicazioni web
I test di penetrazione e il WAF sono misure di sicurezza indipendenti, ma offrono vantaggi complementari.
Per molti tipi di pen test (ad eccezione dei test cieco e doppio cieco), i tester possono utilizzare i dati WAF, come i log, per individuare e sfruttare i punti deboli dell'applicazione.
A loro volta, gli amministratori WAF possono trarre vantaggio dai dati dei pen test. Una volta completato il test, la configurazione WAF può essere aggiornata per proteggerla dai punti deboli scoperti durante il test.
Infine, i pen test soddisfano una serie di requisiti di conformità dei test di sicurezza, tra cui PCI DSS e SOC 2. Alcuni standard, come PCI-DSS 6.6, possono essere soddisfatti solo attraverso l'uso di un WAF certificato.
Kit di strumenti per hacker dal cappello bianco
Gli hacker white hat utilizzano i pen testing per individuare errori e vulnerabilità
L’hacking etico non è un lavoro che richiede solo competenze. La maggior parte degli hacker white hat (hacker etici) utilizza sistemi operativi e software specializzati per semplificare il proprio lavoro, evitando errori manuali.
Allora per cosa usano questi hacker i test con penna? Di seguito sono riportati alcuni esempi.
Parrot Security è un sistema operativo basato su Linux progettato per test di penetrazione e valutazione delle vulnerabilità. È cloud-friendly, facile da usare e supporta vari software open source.
Sistema operativo di hacking dal vivo
Essendo anche un sistema operativo Linux, Live Hacking è una scelta adatta per chi fa pentesting, perché è leggero e non richiede hardware elevato. Live Hacking viene fornito preconfezionato con strumenti e software per test di penetrazione e hacking etico.
Nmap è uno strumento di intelligence open source (OSINT) che monitora le reti, raccogliendo e analizzando i dati sugli host e sui server dei dispositivi, rendendolo prezioso per gli hacker black, grey e white hat.
Nmap è anche multipiattaforma e funziona con Linux, Windows e macOS, quindi è l'ideale per gli hacker etici principianti.
WebShag
WebShag è anche uno strumento OSINT. Si tratta di uno strumento di test del sistema che esegue la scansione dei protocolli HTTPS e HTTP e raccoglie dati e informazioni relativi. Viene utilizzato dagli hacker etici per eseguire test di penetrazione esterna attraverso siti Web pubblici.
Dove andare per i test di penetrazione?
Il test penna della tua rete non è l'opzione migliore, poiché potresti non aver accumulato una conoscenza sufficientemente approfondita al riguardo, rendendoti difficile pensare in modo creativo e trovare vulnerabilità nascoste. Dovresti assumere un hacker white hat indipendente o i servizi di un'azienda che fornisce servizi di pen testing.
Tuttavia, assumere persone esterne per hackerare la tua rete può essere molto rischioso, soprattutto se fornisci loro informazioni riservate o accesso interno. Questo è il motivo per cui dovresti utilizzare fornitori di terze parti affidabili. Ecco alcuni suggerimenti come riferimento:
HackerOne.com
HackerOne è una società con sede a San Francisco che fornisce servizi di test di penetrazione, valutazione delle vulnerabilità e test di conformità dei protocolli.
ScienceSoft.com
Con sede in Texas, ScienceSoft fornisce servizi di valutazione delle vulnerabilità, pen test, conformità e test delle infrastrutture.
Raxis.com
Con sede ad Atlanta, Georgia, Raxis fornisce servizi preziosi, dai pen test e dalle revisioni dei codici di sicurezza alla formazione sulla risposta agli incidenti, alle valutazioni delle vulnerabilità e alla formazione sulla prevenzione degli attacchi di ingegneria sociale .