Penetration Testing la base

Mi è capitato di leggere numerosi articoli su tool e sistemi per effettuare dei penetration testing, ma mai nessuno mi ha soddisfatto appieno. Quindi ho deciso di scriver qualche articolo sui criteri base da seguire per effettuare un penetration testing, che possa servire da guida per chi vuole effettuare dell’auditing sul proprio sito o sistema.

Il penetration testing è un analisi eseguita al fine di trovare delle vulnerabilità o altra forma di debolezza  di un sistema / applicativo. Nel nostro percorso esamineremo sia la parte degli applicativi web che quella di servizi o sistemi operativi, ma non ci limiteremo solo a questo. Per eseguire un esame completo, è necessario raccogliere informazioni ed effettuare un reverse engineering, per individuare anche delle falle nel sistema di gestione e conservazione delle informazioni.

Infatti, può capitare che ci venga commissionato un test verso dei sistemi o un sito web di terzi, del quale non vengono fornite informazioni, se non una semplice URL o IP, quindi parleremo di target “back box“. Questo implica quindi una fase iniziale di elaborazione delle informazioni, raccolta ed analisi, e solo in un secondo tempo occuparsi della fase di testing dei sistemi o servizi.

Le conoscenze basi essenziali per poter effettuare un’analisi sono:

  • Conoscenza del sistema Gnu/Linux (io prenderò in considerazione la distribuzione BackBox) e relativi tool (ci faciliteranno l’analisi);
  • Conoscenza di network e del protocollo TCP/IP;
  • Spirito di avventura;
  • Curiosità;
  • Tenacia e MOLTA pazienza;

Per effettuare la nostra analisi, seguiremo l’iter sotto riportato, che ci permetterà di avere uno spettro ad ampio raggio sull’applicativo / sistema in testing.

Information Gathering

Raccolta informazioni sul target, primo step da seguire per un attenta analisi ed avere le idee chiare sul come poter proseguire la fase di testing;

Vulnerability Assessment

Fase di analisi del target al fine di identificare, quantificare e studiare le vulnerabilità presenti nel target.

Explotation

In questa fase sfrutteremo le vulnerabilità individuate per riuscire a violare il sistema target.

Privilege Escalation

Se siamo riusciti a violare il sistema e prenderne il controllo, è necessario riuscire ad ottenere dei privilegi tali da poterci garantire il controllo del sistema o usarlo per infettare altre macchine.

Maintaining Access

Lasciamo un via di accesso, nel caso in cui venga patchata la falla noi continueremo la nostra analisi indisturbati.

Documentation & Reporting

Adesso è necessario produrre una documentazione ed una reportistica, completa di tutta la fase di penetration testing.

 

La fase di penetration testing è una prassi abituale e normale per mettere in sicurezza o semplicemente testare l’ efficienza di sistemi, servizi o applicativi. Ma se viene effettuata su sistemi non di nostra proprietà, o il target scelto non è a conoscenza della nostra analisi, si incorrerà in azioni punibili dalla legge in quanto si sta svolgendo un operazione criminale.

Quindi, verificare sempre che la vostra analisi non coinvolga apparati o applicativi terzi non oggetto della nostra analisi.

Curioso e con tanta voglia di sapere, fui attratto dal mondo dell'informatica, in cui mi ci buttai a capofitto. Dal 2005, ho fatto della mia passione principale, il Networking associato al mondo dei sistemi in ambiente Gnu/Linux, il mio lavoro quotidiano.

Comments are closed.