La metodologia del Penetration Testing

Penetration testing

Il Penetration Testing o semplicemente Pentesting è la pratica con cui si individuano problemi e falle di sicurezza in sistemi o web application. Oggi la figura del penetration tester è molto importante dal momento che ormai tutto è presente sulla rete, da piccole aziende a società internazionali che basano interamente il loro business online. Anche piccole società hanno un loro sito web, page sui social, contatti e magari anche uno store online, per tale necessità è dovere testare la sicurezza delle proprie infrastrutture. Un qualsiasi hacker malintenzionato potrebbe penetrare all’interno del sistema e creare caos, rubare dati sensibili, trasferire denaro su conti di terzi e altre simili amenità.

Basti pensare ad una grande azienda internazionale, con sede centrale a Bologna, che ha subito un attacco ransomware (un malware che cifra i dati e richiede un riscatto per poterli decifrare) tale da bloccare le linee di produzione di alcuni stabilimenti. La cifra richiesta per rimettere le cose a posto era di 2,4 milioni di euro in bitcoin. I sistemisti non hanno ceduto e hanno ripristinato le infrastrutture nel giro di qualche giorno. In seguito l’azienda investì milioni di euro in antivirus, firewall ecc.

Ma per effettuare un test su sistemi che non si posseggono è ovviamente necessario ottenere il consenso del proprietario. Infatti queste attività sono considerate illegali quando non regolamentate da un contratto.

 

Tipologie di Penetration Test

Black Box

Un’attività di test del genere consiste nel condividere come unica informazione l’indirizzo internet (del cliente proprietario): questa tipo di attività risulta molto efficace, ma dipende soprattutto dalle “skills” del penetration tester e dal tempo investito. In genere quest’attività è utile per capire a quali risorse potrebbe accedere un eventuale attaccante esterno.

 

Grey-White Box

In questo caso, invece, si condividono più informazioni, riguardanti singoli server e dispositivi di sicurezza: così facendo è possibile avere una panoramica maggiore sull’intero sistema ottendendo risultati migliori in quanto il penetration tester si concentrerà su singole risorse. Avere accesso diretto alle tecnlogie utilizzate dal cliente proprietario permette un’analisi più precisa e più approfondita. C’è una sottile differenza tra un’attivita “grey box” e “white box”, nella prima il tester possiede un account con i massimi privilegi all’interno del network mentre nella seconda si ha contatto diretto con le tecnologie in uso.

 

Fasi di un Penetration Test

Il penetration test si compone di 6 fasi, che non devono necessariamente essere eseguite nell ordine in cui verranno enumerate, ma ovviamente consentono di ottenere risultati migliori qualora ciò avvenga. È evidente infatti che la fase di reporting debba essere conclusiva dell’analisi. Ogni fase ha la sua importanza ed è utile per la fase successiva:

  • Information Gathering (raccolta delle informazioni)
  • Network Scanning (scansione della rete)
  • Vulnerability Assessment (ricerca vulnerabilità)
  • Exploitation (accesso al sistema)
  • Post Exploitation (mantenere l’accesso)
  • Report (report finale)

Information Gathering

Prima di iniziare a scroprire falle di sicurezza all’interno del sistema è dovere ricavare più informazioni possibili sul nostro bersaglio: orari di lavoro, aziende coinvolte, contatti… Informazioni che sembrano inutili ma che in realtà ci ritorneranno utili in un secondo momento. In questa fase si inizia a raccogliere più informazioni possibili sulle tecnologie in uso, le infrastrutture di rete, le risorse coinvolte e così via. È importante evidenziare il fatto che dobbiamo cercare di ottenere queste informazioni senza avere contatto diretto con il nostro bersaglio ma affidarsi ad alcuni servizi di network engineering, tra cui:

  • Ricerca Whois
  • Google dorks
  • Social Media
  • Annunci di lavoro
  • DNS
  • Metadati
  • Tool come Maltego e Recon-ng
  • Shodan

Network Scanning

In questa fase ci troviamo a contatto diretto con il bersaglio, pertanto occorre prendere le giuste precauzioni prima di ritrovarsi coinvolti in questioni legali. Le informazioni precedentemente ricavate ci tornano utili per iniziare ad effettuare una scansione di rete, il cui obiettivo è quello di scoprire le eventuali porte aperte sul bersaglio ed i servizi ospitati:

  • NMAP e ZenMAP
  • DNSMAP

Vulnerability Asessment

Una volta ottenute abbastanza informazioni su quali porte siano aperte e quali servizi sono in esecuzione su di esse, si prosegue con la ricerca di eventuali vulnerabilità. Spesso ci si affida a tool automatici, ma una analisi e ricerca manuali risultano spesso più attendibili:

  • OpenVAS
  • Nikto
  • Nessus

Exploitation

Non basta identificare le varie falle di sicurezza, bisogna saperle sfruttare per ottenere l’accesso diretto al sistema bersaglio. Diciamo che questo è un mondo piuttosto ampio e le variabili in gioco crescono in maniera esponenziale. Non sempre sarà possibile. Il nostro compito è quello di trovare ogni punto di accesso non sicuro alla rete e avvertire il proprietario il prima possibile, fornendo delle soluzioni per porre rimedio a tali mancanze:

  • Metasploit
  • Armitage (Metasploit GUI)
  • BeEF

Post Exploitation

Dopo aver ottenuto l’accesso alla risorsa lo si dovrà mantenere, nel senso che in ogni momento ci dovrà esser possibile riguadagnarne l’accesso. Ciò è garantito dall’installazione di backdoor sulla macchina bersaglio, che come suggerisce la parola stessa, ci garantirà nuovamente un accesso incondizionato. Un’altra attività che si esegue, è quella di scalare i privilegi, cioè ottenere i privilegi massimi (admin, root, amministratore…) per poter eseguire qualsiasi comando, senza alcuna limitazione:

  • Weevely
  • Powersploit
  • Webshells

Report

Infine viene stilato un report delle attività svolte e le possibili soluzioni per il miglioramento della rete, da consegnare al cliente. Esistono tool automatici/manuali che ci permettono di effettuare un report finale:

  • Dradis
  • Maltego

Alcuni dei Tools precedentemente elencati sono stati ampiamente descritti in un nostro precedente articolo, dateci un’occhiata 😉

Nato in un paese di provincia, curioso, ambizioso e con la voglia di viaggiare per il mondo. Giuseppe Pio Granatiero è nato nel 2004 ed è un appassionato del mondo tech in ogni sua forma. Mostra uno spiccato interesse per la sicurezza informatica e l'ethical hacking. Potete spesso trovarlo immerso in un libro o nascosto tra i bit nel traffico continuo della Rete!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.