Che cos’è una Vulnerabilità e il Vulnerability assessment

Che cos’è una Vulnerabilità e il Vulnerability assessment

Vulnerabilità

La vulnerabilità, in particolare a livello informatico, consiste in una parte o componente del sistema preso in esame, in corrispondenza del quale le misure di sicurezza messe a protezione di esso sono assenti, ridotte o ancor peggio compromesse. Il termine sicurezza però non deve essere mal interpretato e solo in senso stretto del termine, esso rappresenta un concetto più ampio. La vulnerabilità di un software, anche definita bug, è spesso rappresentato da un difetto di progettazione, d’implementazione o dello stesso sviluppo a causa di una procedura di debug incompleta, errata o peggio ancora inesistente. Le principali cause di questo funzionamento incorretto sono dovute a operazioni di input per il quale il software assume comportamenti non previsti. Nella maggior parte dei casi queste operazioni sono dovute a inserimenti di dati parziali o volutamente incorretti oppure da inserimenti di dati su cui non sono presenti controlli.

Che cos'è una Vulnerabilità e il Vulnerability assessment

Sfruttare la vulnerabilità di un software quindi permette all’attaccante di usare a proprio beneficio i mutamenti di comportamento che si vengono a creare in presenza di un certo input (buffer overflow), da un semplice crash dell’applicazione a un ben peggiore stack overflow, procedura che consentirebbe di sovrascrivere l’area dati del processo con nuovi dati.
La ricerca delle vulnerabilità di un software è spesso effettuata sia dagli attaccanti che dagli stessi produttori ed entrambi utilizzano le medesime metodologie.

Esistono specifici software prefissi a questo scopo, capaci di monitorare il comportamento a basso livello del sistema preso in esame, a seconda del vario tipo di input inserito. Anche se parliamo di programmi specifici, ciò non implica che questa sia una procedura automatica. Per prima cosa bisogna studiare attentamente la struttura del campione e verificare gli input standard. In secondo luogo, verificare il comportamento su input alterati fino a raggiungere l’obbiettivo desiderato. Questa è solo una soluzione necessaria, ma non sufficiente, non sempre la vulnerabilità può essere presente, tutto sta nell’abilità delle due parti, il programmatore e il ricercatore.

Naturalmente per tutti i mali c’è una cura, quando una vulnerabilità viene trovata e resa pubblica, ed esiste un gruppo di sviluppo dedicato al software, questi cercheranno di sviluppare una patch correttiva a finché la falla sia tappata. Non a caso, le più importanti compagnie software, per fare un nome Google con il suo Chrome, stanziano premi in denaro a chiunque riesca a trovare le vulnerabilità dei propri software ed a spiegare quali siano e come sanarli. Cedere una piccola quantità di denaro è ben piccola cosa di fronte a quanti danni potrebbero essere causati da un attaccante che sfrutti le vulnerabilità di un software distribuito a livello mondiale e usato da milioni di utenti.

Vulnerability assessment

Il vulnerability assessment è da considerarsi il primo passo di ogni penetration test e non rappresenta uno strumento, ma bensì una metodologia di lavoro atta alla valutazione del grado di sicurezza di un sistema.

Questa valutazione delle vulnerabilità consiste in un processo volto a valutare l’efficacia dei meccanismi di sicurezza ed all’individuazione, quantificazione ed all’assegnazione di livelli di priorità riguardo eventuali falle di sistema.
I principali strumenti di cui si fregia questa metodologia sono scanner oltre che l’esperienza di chi li usa. Gli scanner si possono dividere in invadenti e non, differendo solo dal potenziale risultato provocabile all’oggetto d’analisi. I gli scanner che effettuano azioni invasive, cercando di rilevare la presenza di una possibile vulnerabilità andando direttamente a verificare se essa persiste con la possibilità di provocare una reazione nel sistema in esame. Diversamente, gli scanner non invasivi cercano l’esclusiva raccolta di informazioni riguardanti il bersaglio, dal modello del sistema operativo a quasi servizi possiede, che versione essi siano ed a che tipo di porta sono associati e così via dicendo. Questo tipo d’operazione risulta innocua e non arreca danni oltre che essere quasi totalmente invisibili ai sistemi di sicurezza utilizzati. Gli scanner invasivi si differenziano anche per questo secondo fattore: possono essere rilevati e bloccati da un buon sistema di sicurezza o ancor peggio allarmare i responsabili.

Questi mezzi sono innumerevoli e disponibili in rete anche gratuitamente. Sono disponibili programmi prefissi esclusivamente a determinare un tipo di vulnerabilità o di più completi, che consentono una visione complessiva, attraverso mezzi invasivi che non a seconda delle necessità. Solitamente un buon Vulnerability Assessment dovrebbe essere svolto esclusivamente con mezzi non invasivi.

Un esempio di scanner è il software open source Nmap, soluzione che sfrutta l’utilizzo di pacchetti grezzi (raw) per la raccolta delle informazioni sia su singoli host che su intere reti di grandi dimensioni.
Oltre ai singoli programmi di scanner, esistono vulnerabilty scan completi e quasi automatici atti al mondo professionale, che consentono grazie a comode interfacce grafiche di effettuare in modo automatico una scansione completa di un intera rete e di rilevarne le principali minacce a livello software. Questi potenti strumenti anche se disponibili in versione gratuita, sono effettivamente efficaci ed efficienti solo se acquistati nella loro versione completa a pagamento, per le stesse motivazioni precedentemente fatte per i sistemi antivirus. Le aziende fornitrici non sono disposte a cedere gratuitamente tutti gli aggiornamenti sulle più recenti vulnerabilità, in particolare su quelle ancora da sanare, a un pubblico non pagante, oltre che a offrire servizi ben più efficienti.

Pubblicato da Vito Lavecchia

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

Lascia un commento

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