Vulnerability Management

Published by Lello on

Questo è il primo di una serie di tutorial che parleranno del ciclo di vulnerability management (dalla scoperta delle vulnerabilità, all’assegnazione di una priorità/stima, all’eventuale rimozione e/o isolamento).

Di seguito si farà riferimento al sistema informativo di un’azienda (non solo al sistema informatico, che ne rappresenta solo una parte).

Il sistema informativo raggruppa come caratteristiche essenziali:

  • dati e informazioni
  • persone
  • strumenti
  • processi e procedure

Per vulnerability management si farà riferimento a un processo e non ad uno strumento o un prodotto; spesso le aziende sottovalutano questo aspetto che considero importantissimo. Ho sentito molte volte la frase “noi siamo sicuri perchè abbiamo comprato il prodotto XYZ che fa questo e quest’altro“; queste sono le aziende che più di tutte devono crescere dal punto di vista della sicurezza informatica ( ͡° ͜ʖ ͡°).

Possiamo avvicinare il vulnerability management ad un processo cognitivo in cui le aziende prendono coscienza delle loro vulnerabilità; come definizione potremmo dire che  il vulnerability management è un processo ciclico di identificazione, definizione, classificazione e assegnazione di priorità alle vulnerabilità dei sistemi informativi delle aziende, necessario all’organizzazione per fornirsi di conoscenze, consapevolezza e background di rischio atti a prevenire o eventualmente reagire in modo opportuno al verificarsi di determinati eventi di sicurezza informatica.

Vulnerability Management Lifecycle

Spesso l’obiettivo principale da raggiungere non è lo scovare problemi di vulnerabilità, ma rendere consapevoli le aziende dei rischi a cui vanno incontro se venissero sfruttate le eventuali falle presenti nei loro sistemi informativi (che spesso credono di non avere …. o non vogliono credere di avere); e per ottenere tale obiettivo, occorre coinvolgere tutti gli stakeholder aziendali.

Solo una valutazione completa ed oggettiva della situazione porterà l’azienda a prendere consapevolezza del problema e dotarsi degli strumenti necessari a migliorare la sicurezza dei propri sistemi e processi.

Quello che vogliamo ottenere è dunque uno screenshot del sistema informativo dell’azienda volto a evidenziarne i punti deboli. Per aiutarci in questo studio si utilizzano strumenti di vulnerability scanner e penetration test, che fanno parte della Fase 1 – Identificazione delle vulnerabilità. Tale analisi non è uno studio effettuato “one-shot”, ma come visto prima, un ciclo  in perenne evoluzione.

Il vulnerability scanner da solo non è sintomatico della presenza o assenza di sicurezza, ma è solo uno strumento a supporto del vulnerability management di cui fa parte integrante; possiamo tranquillamente affermare che se la fase di scansione non trova vulnerabilità, allora potremmo essere in presenza di un “falso positivo” (mancanza di sicurezza latente), in quanto una vulnerabilità potrebbe anche essere ottenuta come combinazione di fattori diversi.

I penetration test sono dei test approfonditi effettuati su vulnerabilità scovate (o da scovare, non evidenziate in maniera evidente dallo scanner). I penetration test possono essere distruttivi, nel senso che possono portare al blocco del servizio oggetto dello studio o alla cancellazione di dati da un database; pertanto va pianificato e verificato accuramente l’uso di tali strumenti, soprattutto su sistemi in produzione.

Il vulnerability scanner si effettua su quelli che potrebbero rappresentare i principali punti deboli del sistema informatico:

  • i processi e le policy;
  • il backbone telematico (reti cablate/fisiche/WiFi): il backbone nelle aziende è spesso il ramo su si investe in maniera minore, per cui è facile trovare apparati di rete obsoleti e che includono falle di sicurezza facilmente sfruttabili; nel WiFi, oltre a trovare apparati obsoleti, spesso si trovano bug di sicurezza legati all’uso di password non sicure o addirittura legati al (non) utilizzo di qualunque accorgimento basilare di sicurezza (una password impostata come “pippopippo” configurata inizialmente e “tanto poi si cambia”, ne è la prova);
  • gli host: i server spesso ospitano servizi (DNS/HTTP/DHCP/….) in cui vale la regola “funziona, quindi non si tocca”; su tali sistemi si trovano dunque servizi non aggiornati e/o falle del sistema operativo ospite;
  • programmi di terze parti: sui server vengono installati programmi che spesso hanno bug di sicurezza lato programmazione così banali da essere evidenti anche senza ricorrere all’uso di strumenti di penetration test (l’ultima debacle del sito dell’INPS ne è un lampante esempio);
  • siti web basati su CMS mai patchati e/o con plugins obsoleti;
  • database: i database rappresentano il portafoglio di un’azienda, in cui i dati (anche quelli sensibili) sono raccolti; pertanto sono quelli che devono essere controllati maggiormente. Rappresentano la parte più importante dell’azienda da mettere e tenere in sicurezza.

Grazie alla fase di vulnerability scanner, è possibile mappare le vulnerabilità di sistema; con tale mappa, con il contributo dei responsabili aziendali e con quello dei security analyst, si procede alla Fase 2 in cui vengono analizzate le vulnerabilità e viene assegnata loro un livello di criticità. Questa è la fase in cui l’azienda prende coscienza della possibile minaccia e del pericolo che essa può rappresentare. In questa fase vengono studiate le vulnerabilità identificate nella fase precedente e si cerca di capire se tali vulnerabilità possono rappresentare realmente un problema (una falla di sicurezza su un sistema isolato può avere un livello di criticità molto basso), se possono essere corrette o possono essere isolate (controllo latente della vulnerabilità).

La fase 3 è la Remediation, ossia la fase in cui vengono messe in pratica le soluzioni da adottare per ripristinare la sicurezza, relativamente ai problemi evidenziati nelle fasi precedenti. Una possibile soluzione (o combinazione di soluzioni) potrebbe essere rappresentata dall’applicazione di una patch, dalla riscrittura di parte di codice sorgente, nella modifica dei permessi in file e directory del file-system, nelle riscrittura dell procedure da seguire per pubblicare determinate informazioni, …. .

A volte, non è possibile applicare nell’immediato una soluzione alla vulnerabilità identificata (pensiamo a certi server coinvolti in sistemi di produzione aziendali: fermali vorrebbe dire fermare la produzione e questo potrebbe costare anche centinaia di migliaia di euro); per tali sistemi si potrebbe trovare una soluzione di mitigation, ossia un modo per cui la vulnerabilità non possa venire sfruttata senza toccare direttamente la macchina ma intervenendo sull’ambiente circostante (ad esempio, installando un firewall a monte, mettendo la macchina in una determinata VPN, isolando fisicamente i sottosistemi di cui fa parte, ….).

La fase 4 di re-assessment prevede una nuova valutazione delle criticità, per verificare di aver eliminato (od effettivamente mitigato) le vulnerabilità scoperte; in tale fase possono venire scoperte nuove vulnerabilità, ed è per questo che il ciclo può ricominciare; in ogni caso è meglio effettuare dei test schedulati ed automatizzati alla ricerca di nuove vulnerabilità, al fine di valutare il “grado” di sicurezza del sistema informativo.

 

Di seguito vedremo alcuni strumenti che ci aiutano nel vulnerability management, assessment e nei penetration test.

Vulnerability Assessment – GCE/GSM →