Penetration Test

Tipi di pen test

Tutti i test di penetrazione comportano un attacco simulato contro i sistemi informatici di un’azienda. Tuttavia, diversi tipi di pen test sono destinati a diversi tipi di asset aziendali.

  1. Pen test delle applicazioni
  2. Pen test di rete
  3. Pen test hardware
  4. Pen test del personale

Pen test delle applicazioni

I pen test delle applicazioni sono alla ricerca di vulnerabilità nelle app e nei sistemi correlati, tra cui applicazioni web e siti web, app mobili e IoT, app cloud e application programming interface (API).

Spesso i pen tester iniziano cercando le vulnerabilità elencate in Open Web Application Security Project (OWASP) Top 10 (link esterno a ibm.com). OWASP Top 10 è un elenco delle vulnerabilità più critiche nelle applicazioni Web. L’elenco viene aggiornato periodicamente per riflettere il landscape mutevole della cybersecurity, ma le vulnerabilità comuni includono iniezioni di codice nocivo, errori di configurazione e di autenticazione. Oltre alla OWASP Top 10, i pen test delle applicazioni cercano anche difetti di sicurezza e vulnerabilità meno comuni che potrebbero essere specifici dell’app in questione.

Pen test di rete

I pen test di rete attaccano l’intera rete di computer dell’azienda. In generale, esistono due tipi di pen test: test esterni e test interni.

Nei test esterni, i pen tester imitano il comportamento degli hacker esterni per individuare problemi di sicurezza negli asset connessi a Internet come server, router, siti Web e computer dei dipendenti. Sono chiamati “test esterni” perché i pen tester cercano di entrare nella rete dall’esterno.

Nei test interni, i pen tester imitano il comportamento di insider malevoli o hacker con credenziali rubate. L’obiettivo è di rilevare le vulnerabilità che una persona potrebbe utilizzare dall’interno della rete, ad esempio, l’abuso dei privilegi di accesso per rubare i dati sensibili. 

Pen test hardware

Questi test di sicurezza cercano le vulnerabilità nei dispositivi connessi alla rete, come laptop, dispositivi mobili e IoT e tecnologia operativa (OT).

I pen tester possono cercare difetti del software, come un exploit del sistema operativo che consente agli hacker di ottenere l’accesso remoto a un endpoint. Possono cercare vulnerabilità fisiche, come un data center protetto in modo improprio in cui potrebbero intrufolarsi malintenzionati. Il team di test può anche valutare in che modo gli hacker potrebbero passare da un dispositivo compromesso ad altre parti della rete.

Pen test del personale

Il pen test personale cerca debolezze nell’igiene della cybersecurity dei dipendenti. In altre parole, questi test di sicurezza valutano la vulnerabilità di un’azienda agli attacchi di social engineering.

I pen tester del personale utilizzano phishing, vishing (phishing vocale) e smishing(phishing via SMS) per indurre i dipendenti a divulgare informazioni sensibili. I pen test del personale possono anche valutare la sicurezza fisica dell’ufficio. Ad esempio, i pen tester potrebbero cercare di intrufolarsi in un edificio travestendosi da fattorini. Questo metodo, chiamato “tailgating”, è comunemente usato dai criminali del mondo reale.

 
Il processo dei test di penetrazione

Prima che inizi un pen test, il team di test e l’azienda stabiliscono l’ambito del test. L’ambito delinea quali sistemi verranno testati, quando avverrà il test e i metodi che i pen tester possono utilizzare. L’ambito determina anche la quantità di informazioni che i pen tester avranno in anticipo:

  • In un test black box, i pen tester non hanno informazioni sul sistema di destinazione. Devono basarsi sulle proprie ricerche per sviluppare un piano di attacco, come farebbe un hacker del mondo reale. 

  • In un test white-box, i pen tester hanno totale trasparenza nel sistema di destinazione. L’azienda condivide dettagli come diagrammi di rete, codici sorgente, credenziali e altro ancora. 

  • In un test gray-box, i pen tester ottengono alcune informazioni, ma non molte. Ad esempio, l’azienda potrebbe condividere gli intervalli IP per i dispositivi di rete, ma i pen tester devono sondare tali intervalli IP alla ricerca di vulnerabilità per conto proprio.

Con un ambito impostato, inizia il test. I pen tester possono seguire diverse metodologie. Tra le più comuni figurano le linee guida per il collaudo della sicurezza delle applicazioni dell’OWASP (link esterno a ibm.com), il Penetration Testing Execution Standard (PTES)(link esterno a ibm.com) e il National Institute of Standards and Technology (NIST) SP 800-115 (link esterno a ibm.com).

Indipendentemente dalla metodologia utilizzata da un team di test, il processo solitamente segue gli stessi passaggi generali.

1. Ricognizione

Il team di test raccoglie informazioni sul sistema di destinazione. I pen tester utilizzano metodi di ricognizione diversi a seconda dell’obiettivo. Ad esempio, se l’obiettivo è un’app, i pen tester potrebbero studiarne il codice sorgente. Se il target è un’intera rete, i pen tester potrebbero utilizzare un analizzatore di pacchetti per ispezionare i flussi di traffico di rete.

I pen tester spesso attingono anche all’open source intelligence (OSINT). Leggendo la documentazione pubblica, le notizie e i social media e gli account GitHub dei dipendenti, i pen tester possono raccogliere informazioni preziose sui loro obiettivi.

2. Individuazione e sviluppo del target

I pen tester utilizzano le conoscenze acquisite nella fase di ricognizione per individuare le vulnerabilità sfruttabili nel sistema. Ad esempio, i pen tester possono utilizzare un’utilità di scansione di porte come Nmap per cercare porte aperte in cui inviare malware. Per un pen test di ingegneria sociale, il team di test potrebbe sviluppare una storia falsa, o il “pretesto”, da usare in un’e-mail di phishing per rubare le credenziali dei dipendenti.

Nell’ambito di questo passaggio, i pen tester possono verificare come le funzioni di sicurezza reagiscono alle intrusioni. Ad esempio, potrebbero inviare traffico sospetto al firewall dell’azienda per vedere cosa accade. I pen tester utilizzeranno ciò che apprendono per evitare il rilevamento durante il resto del test.

3. Sfruttamento

Il team di test inizia l’attacco vero e proprio. I pen tester possono provare diversi attacchi a seconda del sistema di destinazione, delle vulnerabilità rilevate e dell’ambito del test. Alcuni degli attacchi più comunemente testati includono:

  • Iniezioni SQL: i pen tester cercano di far sì che una pagina web o un’applicazione riveli dati sensibili inserendo codice dannoso nei campi di input. 

  • Cross-site scripting: i pen tester provano a inserire codice dannoso nel sito web di un’azienda. 

  • Attacchi denial-of-service: i pen tester tentano di mettere offline server, app e altre risorse di rete inondandoli di traffico.

  • Ingegneria sociale: i pen tester utilizzano il phishing, l’adescamento, il pretesto o altre tattiche per indurre i dipendenti a compromettere la sicurezza della rete.

  • Attacchi Brute force: i Pen tester tentano di entrare in un sistema eseguendo script che generano e testano potenziali password fino a quando una non funziona.

  • Attacchi man-in-the-middle: i pen tester intercettano il traffico tra due dispositivi o utenti per rubare informazioni sensibili o installare malware.

4. Escalation

Una volta che i pen tester hanno sfruttato una vulnerabilità per ottenere un punto d’appoggio nel sistema, cercano di spostarsi e ampliare la falla. Questa fase è talvolta chiamata “concatenamento delle vulnerabilità” perché i pen tester si spostano da una vulnerabilità all’altra per entrare più in profondità nella rete. Ad esempio, potrebbero iniziare installando un keylogger sul computer di un dipendente. Usando quel keylogger, possono acquisire le credenziali del dipendente. Usando queste credenziali, possono accedere a un database sensibile.

In questa fase, l’obiettivo del pen tester è mantenere l’accesso e aumentare i privilegi eludendo le misure di sicurezza. I pen-tester fanno tutto questo per imitare le minacce persistenti avanzate (APT), che possono nascondersi in un sistema per settimane, mesi o anni prima di essere scoperte.

5. Pulizia e reportistica

Al termine dell’attacco simulato, i pen tester eliminano ogni traccia lasciata, ad esempio i trojan backdoor che hanno installato o le configurazioni modificate. In questo modo, gli hacker del mondo reale non possono utilizzare gli exploit dei pen tester per violare la rete.

Quindi, i pen tester preparano un report sull’attacco. Il report in genere delinea le vulnerabilità che hanno trovato, gli exploit che hanno utilizzato, i dettagli su come hanno evitato le funzionalità di sicurezza e le descrizioni di ciò che hanno fatto mentre si trovavano all’interno del sistema. Il report può anche includere raccomandazioni specifiche sulla correzione delle vulnerabilità. Il team di sicurezza interno può utilizzare queste informazioni per rafforzare le difese contro gli attacchi nel mondo reale.

 
Strumenti per i test di penetrazione

I pen tester utilizzano vari strumenti per condurre ricognizioni, rilevare vulnerabilità e automatizzare le componenti chiave del processo di pen test. Alcuni degli strumenti più comuni includono:

  1. Sistemi operativi specializzati
  2. Strumenti per il cracking delle credenziali
  3. Strumenti di scansione delle porte
  4. Strumenti di scansione delle vulnerabilità
  5. Analizzatori di pacchetti
  6. Metasploit

Sistemi operativi specializzati: la maggior parte dei pen tester utilizza sistemi operativi progettati per i test di penetrazione e l’hacking etico. Il più popolare è Kali Linux, una distribuzione Linux open source preinstallata con strumenti di pen test come Nmap, Wireshark e Metasploit.

Strumenti di cracking delle credenziali: questi programmi possono scoprire le password rompendo le crittografie o lanciando attacchi di forza bruta, che utilizzano bot o script per generare e testare automaticamente potenziali password finché non trovano quella giusta. Tra gli esempi vi sono Medusa, Hyrda, Hashcat e John the Ripper.

Strumenti di scansione delle porte: consentono ai pen tester di testare in remoto i dispositivi per individuare porte aperte e disponibili, utilizzabili per violare una rete. Nmap è lo strumento più utilizzato, ma sono comuni anche masscan e ZMap.

Strumenti di scansione delle vulnerabilità: cercano nei sistemi le vulnerabilità note, consentendo ai pen tester di trovare rapidamente potenziali ingressi in un bersaglio. Gli esempi includono Nessus, Core Impact e Netsparker.

Gli strumenti di scansione delle vulnerabilità Web sono un sottoinsieme della stessa famiglia di strumenti che valutano applicazioni e siti Web. Gli esempi comprendono Burp Suite e Zed Attack Proxy (ZAP) di OWASP.

Analizzatori di pacchetti: chiamati anche sniffer di pacchetti, consentono ai pen tester di analizzare il traffico di rete acquisendo e ispezionando pacchetti. I pen tester possono capire da dove proviene il traffico, dove sta andando e, in alcuni casi, quali dati contiene. Wireshark e tcpdump sono tra gli analizzatori di pacchetti più utilizzati.

Metasploit: è un framework di test di penetrazione con una serie di funzioni. Soprattutto, Metasploit consente ai pen tester di automatizzare gli attacchi informatici. Metasploit dispone di una libreria integrata di codici di exploit e payload prescritti. I pen tester possono selezionare un exploit, assegnargli un payload da consegnare al sistema di destinazione e lasciare che Metasploit gestisca il resto.