Gravi bug nel framework CODESYS per l’automazione industriale

Le vulnerabilità, risolte dal vendor, esponevano i dispositivi industriali a cyberattacchi potenzialmente distruttivi e ben celati, da remoto o locali

Il team di ricerca del Kaspersky ICS CERT hanno rilevato numerosi bug all’interno di un popolare framework CODESYS per lo sviluppo di dispositivi industriali, come i controllori logici programmabili (PLC) e le interfaccia uomo-macchina (HMI). Questi dispositivi sono il cuore di quasi tutti gli impianti industriali automatizzati, dalle infrastrutture critiche ai processi di produzione.

Le vulnerabilità scoperte avrebbero potuto consentire ad un potenziale attaccante di portare avanti cyberattacchi distruttivi e ben celati, da remoto o locali, nei confronti dell’organizzazione nella quale vengono utilizzati i PLC sviluppati proprio attraverso il framework vulnerabile. Le vulnerabilità del framework sono state risolte dal vendor, CODESYS, proprio dopo la segnalazione fatta da Kaspersky.

I PLC (Programmable Logic Controllers) sono dispositivi che rendono automatici processi che prima dovevano essere eseguiti manualmente o con l’ausilio di dispositivi elettromeccanici complessi. Per un corretto funzionamento di un PLC, questi dispositivi devono essere programmati. Tale programmazione viene eseguita tramite uno speciale “framework software” che aiuta gli ingegneri a codificare e caricare le istruzioni del programma di automazione di processo nel PLC. Questo software fornisce anche un ambiente di esecuzione runtime per il codice del programma del PLC e può essere utilizzato in vari ambiti, come, ad esempio, la produzione, la creazione di energia, le infrastrutture delle smart city e molti altri ancora. I ricercatori di Kaspersky hanno scoperto che questo software potrebbe presentare delle vulnerabilità e quindi essere a rischio di attacco.

I ricercatori hanno studiato un tool sofisticato e potente, progettato proprio per lo sviluppo e il controllo dei programmi PLC. In questo modo hanno potuto identificare più di una dozzina di problemi di sicurezza nel protocollo di rete principale e nel runtime del framework, quattro dei quali sono stati riconosciuti come particolarmente gravi e hanno ricevuto codici identificativi separati: CVE-2018-10612, CVE-2018-20026, CVE-2019-9013 e CVE-2018-20025.

A seconda del tipo di vulnerabilità sfruttato, un aggressore avrebbe potuto intercettare e falsificare comandi di rete e dati telemetrici, rubare e riutilizzare le password e altre informazioni utili ai processi di autenticazione, iniettare codici dannosi nel runtime o aumentare i privilegi dell’attaccante all’interno del sistema, così come permettere altre azioni non autorizzate – il tutto nascondendo efficacemente la propria presenza all’interno della rete attaccata. I cybercriminali avrebbero potuto compromettere la funzionalità dei PLC di una particolare struttura o ottenerne il pieno controllo, senza destare l’attenzione del personale addetto all’Operation Technology (OT) della struttura attaccata. Tra i principali pericoli, anche il blocco delle operazioni o il furto di dati sensibili, come la proprietà intellettuale e altre informazioni riservate (dalla capacità produttiva di una realtà industriale fino alla produzione di nuovi prodotti). Non solo: un attacco di questo genere consentirebbe anche di supervisionare le operazioni all’interno dell’impianto e di raccogliere ulteriori informazioni, che potrebbero rivelarsi sensibili per l’organizzazione attaccata.

Dopo la scoperta, Kaspersky ha segnalato subito queste problematiche al vendor del software interessato. Tutte le vulnerabilità rilevate sono già state risolte e le patch sono disponibili per tutti gli utilizzatori del framework.

“Le vulnerabilità che abbiamo scoperto stavano fornendo agli attaccanti una superficie di attacco estremamente ampia, ideale per azioni potenzialmente dannose; considerata la larga diffusione del software in questione, siamo grati al vendor per la pronta risposta e per la capacità di risolvere rapidamente i problemi riscontrati. Sarebbe bello pensare che, grazie alla nostra ricerca, siamo stati in grado di rendere il lavoro degli attaccanti molto più difficile. Molte di queste vulnerabilità, in realtà, sarebbero state scoperte tempo prima, se la community della sicurezza informatica fosse stata coinvolta nello sviluppo del protocollo di comunicazione di rete fin dalle fasi iniziali. Riteniamo che la collaborazione con l’intero settore della cybersecurity dovrebbe diventare una “best practice” per gli sviluppatori di importanti componenti dedicati ai sistemi industriali, che si tratti di hardware o di software. Soprattutto se si considera che la cosiddetta industria 4.0, che si basa in gran parte sulle moderne tecnologie automatizzate, è ormai una realtà”, commenta Alexander Nochvay, Security Researcher del Kaspersky ICS CERT.

“La sicurezza delle soluzioni è un tema di grande importanza per il Gruppo CODESYS. Abbiamo apprezzato molto i risultati completi della ricerca fornita da Kaspersky, ci hanno aiutato a rendere CODESYS uno strumento ancora più sicuro. Da molti anni facciamo grandi sforzi dal punto di vista tecnico e amministrativo per migliorare costantemente le feature di sicurezza di CODESYS. Tutte le vulnerabilità rilevate vengono subito analizzate, valutate, classificate in ordine di priorità e segnalate all’interno di un avviso di sicurezza. Le correzioni, sotto forma di aggiornamenti software, vengono prontamente sviluppate e messe a disposizione di tutti gli utilizzatori di CODESYS all’interno dello Store”, ha dichiarato Roland Wagner, Head of Product Marketing di CODESYS Group.

Per affrontare al meglio i potenziali rischi correlati ad uno sfruttamento di questo tipo di vulnerabilità, gli specialisti Kaspersky consigliano di adottare le seguenti misure:

  • Gli sviluppatori che utilizzano il framework sono invitati a richiedere l’update e ad aggiornare il firmware per i dispositivi programmati con l’aiuto di questo framework.
  • Gli ingegneri industriali dovrebbero prestare sempre attenzione all’eventuale aggiornamento del firmware dei loro dispositivi, facendo attenzione alle procedure di gestione delle patch aziendali, nel caso in cui un dispositivo sia stato programmato con l’aiuto del framework o nel caso in cui lo sviluppatore abbia rilasciato aggiornamenti rilevanti per i suoi prodotti.
  • I dispositivi impiegati all’interno di ambienti di sviluppo e/o SCADA dovrebbero essere dotati di una soluzione di protezione adeguata.
  • I dispositivi utilizzati in ambienti industriali dovrebbero funzionare su una rete isolata e regolamentata.

Fino a quando i firmware non vengono patchati, i team che si occupano della cybersecurity dei network industriali dovrebbero prendere in considerazione l’implementazione di misure di sicurezza specifiche (come le soluzioni per rilevare eventuali attacchi mirati, per monitorare la rete industriale, per formare regolarmente il personale IT e OT sulla cybersecurity) e di altre misure necessarie per la protezione dal punto di vista informatico, anche in caso di minacce informatiche più sofisticate.

Maggiori informazioni sulla ricerca di Kaspersky sono disponibili online sul sito di Kaspersky ICS CERT.