7/4/2022
Cybersicurezza

Un approccio pratico alle vulnerabilità zero day: l'importanza del virtual patching

Normalmente, quando si pensa ai modi in cui una azienda possa essere danneggiata, si immagina subito ad una minaccia di tipo finanziario. Ed in effetti così è stato, per lungo tempo: il tipo di sicurezza cercato da grandi e piccole aziende è sempre stato di tipo finanziario.

Ma i tempi cambiano e così, ai giorni nostri, sono tante le minacce da cui le aziende devono difendersi. Minacce che potrebbero portare ad una perdita finanziaria qualora dovessero verificarsi.

Tra tutte, quelle sicuramente più emergenti sono le minacce legate alla sfera della sicurezza informatica.

Sappiamo bene cosa significa subire una violazione delle proprie infrastrutture: potremmo ritrovarci con i nostri dati in ostaggio da parte di un ransomware, oppure vedere trafugati i nostri dati riservati o, forse ancor peggio, essere derubati dei dati dei nostri clienti. Comunque vada, una violazione non si risolve mai come se non fosse mai avvenuta. Nella migliore delle ipotesi, sarà necessario un intervento per ripristinare e rimettere in sicurezza l’infrastruttura, con una conseguente discontinuità del lavoro, impiego di ore lavoro extra e comunque un certo investimento economico. Chiunque abbia subito un furto in casa sa bene di cosa parliamo: anche se non è stato portato via nulla di prezioso, ciò che resta sono sempre danni da riparare e quella spiacevole sensazione di essere stati violati nel proprio spazio privato.

Ma come può avvenire una intrusione?

Qualsiasi attacco informatico (ma lo stesso vale per gli attacchi “tradizionali”) sfrutta una vulnerabilità nella propria infrastruttura. Le debolezze possono essere innumerevoli: assenza di una strategia di sicurezza, sistemi esposti pubblicamente senza crittografia o con password poco sicure, errore umano (ad esempio l’apertura inconsapevole di un malware contenuto in una mail), software obsoleti e non aggiornati, infrastrutture hardware di sicurezza non correttamente configurate o del tutto inadeguate.

In questo articolo vogliamo parlarli di una particolare vulnerabilità che, non essendo direttamente dipendente da scelte aziendali, può manifestarsi anche in ambienti dotati di una buona politica di sicurezza.
Stiamo parlando delle vulnerabilità software ed in particolare delle vulnerabilità Zero-Day.

Che vuol dire?

Nessun software è esente da bug. Neppure il software professionale che usiamo in azienda, dai programmi per la gestione della contabilità ai firmware che comandano le nostre macchine a controllo numerico. Ogni nuovo rilascio di un software può portare un certo numero di bug. Alcuni possono essere di scarsa importanza e avere un basso impatto sulle funzionalità del programma. Altri bug, invece, possono costituire delle vere e proprie minacce perché possono essere utilizzati per effettuare delle intrusioni o costringere il programma ad eseguire funzioni non previste e dannose. Immaginate di avere la serratura di casa vostra che potrebbe, per via di un difetto, aprire una seconda chiave non autorizzata, oltre alla vostra. Ed immaginate anche che di questo difetto non ne sia a conoscenza nessuno, a parte il malintenzionato. In pratica state facendo affidamento su un dispositivo compromesso senza neppure esserne a conoscenza.

Nel mondo software succede qualcosa di simile. Ogni programma potrebbe contenere al suo interno dei bug e potenzialmente delle vulnerabilità di sicurezza. I produttori software correggono i bug riscontrati e rilasciano una patch di sicurezza che risolve quel problema. L’utente finale installa gli aggiornamenti e tutta l’infrastruttura è ora più sicura.

Tuttavia, affinché questo avvenga, si devono verificare tre condizioni:

  1. Il produttore del software deve aver individuato il bug
  2. Il produttore del software deve aver rilasciato una patch di sicurezza
  3. L’utente del software deve aver installato l’aggiornamento di sicurezza che comprende la patch

Nella realtà pratica le cose vanno in modo diverso.

Dal momento in cui una certa vulnerabilità viene scoperta (una vulnerabilità a questo stadio si chiama “Zero Day”) alla sua effettiva risoluzione passano in media circa 60 giorni se si tratta di una vulnerabilità su un software standard, fino ad arrivare ad alcuni mesi per correggere problemi su software personalizzati (tempi stimati da Trend Micro nel report “Trend Micro Annual Security Roundup: Vulnerabilities enable ransomware, targeted attacks, and VPN exploits in 2020” accessibile qui). Durante questa finestra temporale, l’infrastruttura nella quale il software è in esecuzione è in uno stato di potenziale minaccia: la vulnerabilità è nota al produttore ma anche ai cybercriminali che potenzialmente possono sfruttarla per i loro obiettivi. In attesa di una patch, l’utente potrebbe optare per due alternative:

  • Non utilizzare il software compromesso, al costo di una discontinuità operativa per le attività a cui il software è destinato
  • Continuare ad utilizzare il software compromesso, correndo i relativi rischi.

Possiamo dire sin da subito che quest’ultima è la strada più seguita, sia perché difficilmente le aziende vogliono (giustamente) interrompere o rallentare le loro funzioni operative, sia per via di un problema di grandezze. In effetti, considerando il numero di software che impieghiamo e le vulnerabilità che ogni software porta con sé, mettere in pausa un software vulnerabile o anche solo tenere traccia di ogni potenziale vulnerabilità diventa un lavoro realisticamente applicabile solo a pochissime realtà fortemente strutturate in chiave cybersecurity.

In ogni caso, le difficoltà che si incontrano quando si vuole attuare un piano di gestione delle patch e delle vulnerabilità rientrano in questi ambiti:

  • Continuità operativa. L’abbiamo detto: “patchare” continuamente può portare a delle discontinuità operative, oltre che a dei costi extra (ecco perché molte aziende, semplicemente, non aggiornano mai).
  • Quantità delle vulnerabilità. Più è grande l’infrastruttura, più software ci sono e più vulnerabilità si presenteranno. Trend Micro, nell’ambito del suo Zero Day Initiative, ha stimato che le vulnerabilità scoperte sono aumentate del 40% negli ultimi anni. Ciò è dovuto al progressivo aumento della complessità dei software.
  • Bassa visibilità. Più è grande l’infrastruttura, più c’è il rischio che sia frammentata. Il che significa avere in esecuzione software e sistemi operativi di diverse versioni nello stesso ambiente. Ogni versione necessiterà di una sua specifica operazione di installazione della patch (in questo scenario, occorre ribadire l’importanza di adottare un piano di omologazione della propria infrastruttura IT).
  • Sistemi non più supportati. Se nella propria infrastruttura abbiamo dispositivi o software datati, è possibile che non vengano più rilasciate patch da parte dei produttori. Non è raro che questi sistemi siano ancora adottati in ambienti critici, come i POS, i dispositivi IoT o i sistemi di controllo industriale. Che facciamo in questi casi, buttiamo tutto e ricompriamo nuovi sistemi? Si, forse dovremmo, ma nel frattempo?

Esiste una terza via alla gestione delle vulnerabilità software?

Risposta breve: si, si chiama Virtual Patching.

Risposta lunga: La terza via è quella di adottare tecnologie di Virtual Patching (o Vulnerability Protection), molto apprezzate negli ultimi anni perché costituiscono una difesa immediata alle potenziali vulnerabilità, e proteggono da rischi come compromissioni delle policy di rete e degli endpoint, esposizioni di dati sensibili e vulnerabilità di dispositivi non aggiornati, anche quelli usati in ambienti mission critical. Inoltre hanno il vantaggio di essere facilmente implementabili su praticamente qualsiasi infrastruttura IT (indipendentemente dalla estensione, frammentazione e tipologia dei dispositivi coinvolti).

Il funzionamento è semplice: si tratta di soluzioni di sicurezza che si frappongono tra il software  e la rete e che permettono di proteggere le applicazioni vulnerabili senza modificarne il codice, ovvero senza installare alcun aggiornamento. Questo approccio offre svariate piacevoli conseguenze. In primo luogo, la protezione avviene al Zero Day, quando cioè la vulnerabilità viene riscontrata, riducendo a zero la finestra temporale di esposizione al rischio di cui parlavamo prima. Ma non solo: un ambiente in cui è implementata una soluzione di patch virtuale è virtualmente sempre protetto fino al rilascio delle patch ufficiali e soprattutto anche in assenza di una patch ufficiale. Prendiamo ad esempio il caso di un dispositivo di controllo industriale ormai datato ma la cui sostituzione comporterebbe un costo in termini economici e di discontinuità operativa: in questo caso una virtual patch ci permette di proseguire con la nostra infrastruttura dandoci tutto il tempo di pianificare il rinnovamento nella nostra infrastruttura. In pratica, le aziende tornano ad essere padrone dei propri strumenti operativi e l’eventuale dismissione può avvenire per motivazioni legate alla produttività e non alla sola sicurezza (voce di spesa spesso indigesta a molti financial officer).

In linguaggio tecnico queste soluzioni vengono definite IPS ( Intrusion Prevention System ) host based e cioè ospitati all'interno dell PC o del server e si differenziano dagli IPS classici che sono appliance fisiche o hardware che lavorano a livello perimetrale . Rispetto agli IPS perimetrali, queste soluzioni sono in grado di proteggere le risorse anche da attacchi interni  e dalla proppagazione di un eventuale malware tramite movimenti laterali all'interno della rete aziendale.

Vediamo in dettagli i vantaggi:

  1. La gestione delle patch avviene secondo i nostri ritmi e non secondo i ritmi di rilascio delle patch.
  2. L’intera gestione delle vulnerabilità viene centralizzata in una unica suite di prodotti, perfettamente calibrata sulla nostra infrastruttura IT.
  3. Vengono ridotte a zero le finestre di esposizione alla vulnerabilità e le discontinuità operative.
  4. Si può mantenere una conformità con regolamenti in materia di sicurezza e protezione dei dati (ad esempio GDPR e PCI), in quanto ogni modifica di normativa viene immediatamente eseguita sull’infrastruttura.

Tra le aziende che forniscono soluzioni di questo genere, sicuramente Trend Micro è tra quelle che propone una suite di prodotti più avanzati. In particolare abbiamo:

Trend Micro Deep Security, che utilizza la tecnologia di Virtual Patching negli ambienti Datacenter e Hybrid Cloud, per i server e i container nel cloud, proteggendoli dalle minacce che sfruttano le vulnerabilità di sistemi operativi critici (kernel Linux, AIX, Solaris e Windows - compresi Windows Server 2008 e Server 2003 -) e piattaforme come Docker e Kubernetes.

Trend Micro Apex One offre la protezione dalle vulnerabilità per gli endpoint, inclusi i dispositivi point-of-sale (PoS), i dispositivi Internet of Things (IoT) e i sistemi nello stato di end-of-support (EoS).

Trend Micro TippingPoint fornisce patch virtuali contro le vulnerabilità sfruttabili in rete tramite i filtri Digital Vaccine.

Trend Micro Deep Discovery fornisce rilevamento, analisi approfondita e risposta proattiva agli attacchi che utilizzano exploit e altre minacce simili.