Caratteristiche, fasi e scenari del Penetration Testing in informatica

Caratteristiche, fasi e scenari del Penetration Testing in informatica

Penetration Testing

Il Penetration Testing è un test di sicurezza in cui vengono imitati attacchi reali per identificare i possibili metodi per aggirare le funzionalità di sicurezza di un’applicazione, di un sistema o della rete. Il test può anche essere utile per determinare:

  • quanto bene il sistema tollera modelli di attacco in stile reale
  • il livello di sofisticazione che un utente malintenzionato deve possedere per compromettere il sistema
  • contromisure aggiuntive che potrebbero mitigare le minacce

I PT richiedono molto lavoro e una grande esperienza per ridurre al minimo il rischio per i sistemi testati: durante l’analisi infatti i sistemi possono essere danneggiati o resi inutilizzabili; i PT includono spesso metodi di attacco non tecnici. Ad esempio un penetration tester può violare i controlli e le procedure di sicurezza fisica per connettersi a una rete, rubare apparecchiature, acquisire informazioni sensibili o interrompere le comunicazioni. Un altro mezzo di attacco non tecnico è l’uso del social engineering, come fingersi un agente dell’helpdesk e chiamare un utente per richiedergli le password, o al contrario chiamare l’help desk fingendosi un utente e chiedere la reimpostazione della propria password.

Caratteristiche, fasi e scenari del Penetration Testing in informatica

Fasi Penetration Testing

La Figura seguente rappresenta un esempio di quattro fasi che compongono il PT.

Le quattro fasi del Penetration Testing
Le quattro fasi del Penetration Testing

La prima fase, quella di pianificazione, consiste nel fissare le regole, ottenere e documentare l’approvazione della direzione e vengono stabiliti gli obiettivi del test. La fase di pianificazione è di fondamentale importanza per ottenere un test di penetrazione utile e di successo.

La fase di Discovery si divide in due parti: la prima è l’inizio dei test effettivi e copre la raccolta delle informazioni e la scansione dei target. Per identificare potenziali obiettivi viene condotta un’attività di Network Port and Service Identification. Oltre all’identificazione di porte e servizi, vengono utilizzate altre tecniche per raccogliere informazioni sulla rete di destinazione:

  • Il nome host e le informazioni sull’indirizzo IP possono essere raccolte attraverso molti metodi, tra cui interrogazioni DNS, query InterNIC (WHOIS) e sniffing di rete (generalmente solo durante test interni)
  • I nomi dei dipendenti e le informazioni di contatto possono essere ottenuti effettuando una ricerca nei server Web o nei server di directory dell’organizzazione
  • Le informazioni di sistema, come nomi e condivisioni, possono essere trovate attraverso metodi come l’enumerazione NetBIOS e Network Information System (NIS) (generalmente entrambi usati solo durante i test interni)
  • Le informazioni sulle applicazioni e i servizi, come i numeri di versione, possono essere registrate mediante l’acquisizione di banner.

La seconda parte della fase di scoperta è l’analisi delle vulnerabilità, che prevede il confronto dei servizi, delle applicazioni e dei sistemi operativi degli host scansionati con i database delle vulnerabilità (un processo automatizzato attraverso gli scanner di vulnerabilità).

L’esecuzione di un attacco è al centro di qualsiasi test di penetrazione. Se un attacco ha esito positivo, la vulnerabilità viene verificata e vengono identificate le protezioni per mitigare l’esposizione alla sicurezza associata. Se si riesce a sfruttare una vulnerabilità, si possono installare più strumenti sul sistema o sulla rete di destinazione per facilitare il processo di test. Questi strumenti vengono utilizzati per accedere a sistemi o risorse sulla rete e ottenere l’accesso alle informazioni sensibili dell’organizzazione.

Mentre gli scanner di vulnerabilità verificano solo la possibile esistenza di una vulnerabilità, la fase di attacco di un test di penetrazione sfrutta la vulnerabilità per confermarne l’esistenza. La maggior parte delle vulnerabilità sfruttate dai test di penetrazione rientrano nelle seguenti categorie:

  • Errori di configurazione
  • Difetti del kernel
  • Overflow del buffer: si verifica quando i programmi non controllano adeguatamente la lunghezza dell’input. Quando ciò si verifica, un codice arbitrario può essere introdotto nel sistema ed eseguito con gli stessi privilegi del programma in esecuzione
  • Validazione dell’input insufficiente
  • Symbolic Links: consiste in un file che punta a un altro file. Se programmi che possono modificare le autorizzazioni concesse a un file vengono esegiuti con privilegi amministrativi, un utente può creare strategicamente Symbolic Links per ingannare questi programmi e fare modifiche a file di sistema critici.
  • File Descriptor Attacks. I descrittori di file sono numeri utilizzati dal sistema per tenere traccia dei file al posto dei nomi dei file. Tipi specifici di descrittori di file hanno usi impliciti. Quando un programma privilegiato assegna un descrittore di file inappropriato, espone tale file.
  • Race Conditions
  • Autorizzazioni errate per file e directory

La fase di Reporting avviene simultaneamente alle altre tre fasi del test di penetrazione. Nella fase di pianificazione, viene sviluppato il piano di valutazione o ROE. Nelle fasi di individuazione e attacco, i registri scritti vengono generalmente conservati e vengono forniti report periodici agli amministratori di sistema e/o alla direzione. Alla conclusione del test, viene generalmente sviluppato un report per descrivere le vulnerabilità identificate, presentare una valutazione del rischio e fornire indicazioni su come mitigare le debolezze scoperte.

Logistica e scenari dei Penetration Test

I PT dovrebbero concentrarsi sull’individuazione dei difetti sfruttabili nella progettazione e nell’implementazione di un’applicazione, di un sistema o di una rete. I test possono essere disegnati per imitare le azioni di attaccanti esterni alla rete o interni, nel caso siano eseguiti entrambi è preferibile iniziare da quello esterno, per poter avere anche un report del funzionamento delle contromisure dai log stessi. Nel caso di uno scenario outsider viene simulato un attaccante esterno che ha poca o nessuna conoscenza specifica del bersaglio. Non vengono quindi fornite informazioni reali sull’ambiente di destinazione, se non indirizzi IP raggiungibili dall’esterno, e tutte le informazioni reperibili da pagine Web pubbliche, newsgroup e siti simili. In questo caso il traffico degli scanner solitamente passa attraverso un firewall, quindi la quantità di informazioni ottenute è ampiamente inferiore rispetto a quella ricavata da una scansione interna.

Gli scenari interni simulano le azioni di un membro dell’organizzazione malintenzionato. Un PT interno è simile a quello esterno, tranne per il fatto che i tester si trovano sulla rete interna (cioè dietro il firewall) e hanno un certo livello di accesso alla rete o a specifici sistemi di rete. Utilizzando questo accesso, i tester cercano di ottenere un maggiore livello di accesso alla rete e ai sistemi attraverso privilege escalation.

Anche i test di penetrazione rappresentano un rischio elevato per le reti e i sistemi dell’organizzazione perch´e utilizzano exploit reali e attacchi ai sistemi e ai dati di produzione. A causa del loro alto costo e del potenziale impatto, i test di penetrazione in un’organizzazione vengono solitamente svolti su base annua. Le organizzazioni dovrebbero prendere in considerazione l’esecuzione di attività di test meno intensive in termini di manodopera su base regolare per garantire il mantenimento del livello di sicurezza richiesto. Un programma ben progettato di scansione periodica della rete e delle vulnerabilità pianificata regolarmente, intervallato da test di penetrazione periodici, può aiutare a prevenire molti tipi di attacchi.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *