Quali sono le migliori tecniche di Information Gathering?

Information Gathering Hacker

Il Penetration Test è il processo attraverso cui viene valutata la sicurezza di un sistema, applicazione o di una rete simulando, in differenti modalità, attacchi che un utente con fini malevoli potrebbe mettere in atto.

L’obiettivo è rilevare e mettere in evidenza le debolezze e le falle del sistema fornendo un report al cliente, con la descrizione dettagliata di tali vulnerabilità e le loro possibilità di utilizzo da parte di eventuali attaccanti.

Tale test viene eseguito secondo la metodologia OSSTMM (Open Source Security Testing Methodology Manual) di ISECOM (Institute for Security and Open Methodologies), specialmente nel caso di Penetration Test infrastrutturali, e fornisce una visione completa dell’efficacia delle misure di sicurezza, sia a livello di rete interna che esterna.

La metodologia OWASP viene invece tipicamente utilizzata nel caso in cui il sistema in esame sia una Web Application o una applicazione mobile.

Indipendentemente dal fatto che il target sia prettamente infrastrutturale oppure applicativo, le fasi svolte nel corso di un Penetration Test sono praticamente le medesime ad eccezione della fase di Maintaining Access, maggiormente pertinente ad un Penetration Test infrastrutturale.

Di seguito vengono mostrate graficamente tutte le fasi del Penetration Testing.

tecniche di Information Gathering

Che cosa rappresenta la fase di Information Gathering?

L’Information Gathering è la fase di raccolta delle informazioni che consente all’attaccante di acquisire dati utili in merito al sistema in esame.

Nonostante sia spesso sottovalutata, essa costituisce una delle fasi più importanti di un Penetration Test, e rappresenta la base fondamentale tramite la quale vengono tipicamente individuate nuove vulnerabilità.

In ambito di Bug Bounty Program essa viene spesso definita fase di Recon, riprendendo un gergo comunemente utilizzato in ambito militare, ed è la fase su cui i Bug Hunter di successo si concentrano maggiormente.

Quali sono le migliori tecniche di Information Gathering?

Innanzitutto sono da chiarire le differenze tra tecniche di Information Gathering attive e quelle passive.

Le tecniche di Information Gathering passive si riferiscono al raccogliere quante più informazioni possibili senza stabilire alcun contatto diretto e riconoscibile con il target.

Le tecniche di Information Gathering attive, come è facile immaginare, riguardano invece step più invasivi e che, per questo motivo, potrebbero essere individuati dal target. L’organizzazione attaccata potrebbe quindi eventualmente rivalersi anche legalmente sull’attaccante qualora questo non possieda le autorizzazioni necessarie.

Se non si è ottenuto un permesso esplicito per testare un sistema è assolutamente illegale l’utilizzo di tecniche di Information Gathering attive!

Un esempio di tecnica di Information Gathering attiva è rappresentata dall’utilizzo di port scanner quali Nmap, tipicamente utilizzati per individuare porte aperte o applicazioni web deployate sul target.

Un esempio invece di tecnica di Information Gathering passiva è rappresentata dalla navigazione del sito web dell’azienda cercando di ottenere informazioni sul tipo di tecnologie utilizzate, tramite l’esaminazione dei banner presenti negli header di risposta o restituiti da pagine dell’applicazione.

Di seguito vengono elencate, e brevemente descritte, alcune delle tecniche di Information Gathering passive più diffuse:

  • Subdomain Enumeration, ovvero una tecnica che a partire da un target specificato in modo non completo, come ad esempio *.example.com, consente di individuare tutti i sottodomini effettivamente esistenti tramite l’esecuzione di query verso servizi che raccolgono questo genere di informazioni;
  • Whois Lookup che aiuta ad individuare il proprietario di una applicazione o di un range di IP;
  • Identificazione delle tecnologie utilizzate, tramite ad esempio applicazioni quali Netcraft o plugin per browser come Wappalyzer;
  • Utilizzo di Google Dork, ovvero query avanzate disponibili su Google che consentono di individuare pagine indicizzate ma eventualmente non più direttamente linkate dall’applicazione;
  • Utilizzo di Wayback Machine, per individuare endpoint utilizzati in precedenti versioni dell’applicazione;
  • Utilizzo di Shodan, ovvero un motore di ricerca che consente di individuare tutti gli asset connessi ad Internet in modo da individuare in modo completo l’infrastruttura IT di un’organizzazione.

Alcune invece delle tecniche di Information Gathering attive, oltre al già citato utilizzo di Nmap, sono le seguenti:

  • Utilizzo di strumenti di Content Discovery come Dirsearch o Ffuf per ampliare la superficie di attacco di una web application;
  • Subdomain Enumeration basato su bruteforce tramite l’utilizzo di una wordlist customizzata;
  • Utilizzo di Network / Application Security Scanner quali ad esempio Nessus.

Conclusioni

Come si evince dall’articolo, esistono diversi metodi e risorse che un Penetration Tester ha a disposizione per eseguire la fase di Information Gathering, ovvero una delle fasi più importanti e significative del processo di Penetration Test nel suo insieme.

Dunque, qualunque azienda che ponga attenzione alla sicurezza dei propri sistemi dovrebbe almeno conoscere quali informazioni sono disponibili pubblicamente sul proprio business in modo da diminuire la probabilità di subire attacchi proprio a causa della presenza, specialmente se pubblica, di tali dati.

Scopri la nostra proposta di corsi sulla sicurezza informatica di Dgroove: corsi specialistici sulle tecnologie e la cultura della sicurezza informatica, dal secure coding alla certificazione per Ethical Hacker.