Trend Micro e il Politecnico di Milano hanno presentato una nuova ricerca dalla quale emergono alcune pericolose funzionalità nei linguaggi di programmazione per i robot industriali. Oltre ad evidenziare tale situazione, gli esperti di sicurezza hanno redatto una guida pratica per ridurre la superficie di attacco grazie a un codice più sicuro, limitando così le interruzioni di business negli ambienti OT.
Ecco i punti deboli
La ricerca, dal titolo “Rogue Automation: Vulnerable and Malicious Code in Industrial Programming”, vede come autore principale il ricercatore italiano Federico Maggi di Trend Micro Research ed è stata condotta in collaborazione con Marcello Pogliani del gruppo di sicurezza informatica del Politecnico di Milano. La ricerca descrive come alcune caratteristiche — poco discusse nel mondo della cybersecurity — dei linguaggi di programmazione per robotica industriale possano portare a programmi di automazione vulnerabili e, d’altra parte, possono permettere a un aggressore di creare nuove tipologie di malware persistente. Questi punti deboli possono consentire agli attaccanti di prendere il controllo dei robot industriali e simili macchinari al fine di danneggiare linee di produzione o impossessarsi di proprietà intellettuale. In base alla ricerca, il mondo dell’automazione potrebbe essere impreparato a rilevare e prevenire queste criticità, perché finora non sono mai state affrontate. Inoltre, è fondamentale che il settore inizi ad adottare e seguire le best practice, per mettere in sicurezza il codice, che sono state condivise con gli industry leader come risultato di questa ricerca.
Quasi impossibile applicare le patch
“Una volta che i sistemi OT sono collegati alla rete, applicare patch o aggiornamenti è quasi impossibile ed è per questo che una sicurezza a priori diventa un fattore critico”. Ha affermato Bill Malik, vice president of infrastructure strategies for Trend Micro. “Al giorno d’oggi, la spina dorsale dell’automazione industriale si basa su tecnologie legacy che troppo spesso contengono vulnerabilità latenti come Urgent/11 e Ripple20, o varietà di difetti nell’architettura come ad esempio Y2K. Non vogliamo limitarci a sottolineare queste sfide, ma ancora una volta assumere la guida della security nell’Industry 4.0, offrendo una guida concreta per la progettazione, la scrittura del codice, la verifica e la manutenzione attraverso strumenti in grado di scansionare e bloccare codici maligni e vulnerabilità”.
Linguaggi di programmazione che possiamo considerare “legacy”—in quanto cuore delle moderne catene di produzione — come ad esempio RAPID, KRL, AS, PDL2 e PacScript sono stati progettati senza considerare un aggressore attivo. Sviluppati decenni fa, sono ora diventati essenziali per le attività critiche di automazione nei settori automotive come nelle filiere alimentari e nell’industria farmaceutica, ma non possono essere messi al sicuro facilmente.
I pericoli arrivano dalla Rete
Le vulnerabilità non sono l’unica preoccupazione nei programmi di automazione che utilizzano questi linguaggi. I ricercatori hanno dimostrato come una nuova tipologia di malware in grado di auto-propagarsi potrebbe essere creata utilizzando uno di questi linguaggi come esempio.
Trend Micro Research ha lavorato a stretto contatto con il Robotic Operating System (ROS) Industrial Consortium — un’autorità internazionale in campo di robotica industriale — per proporre delle raccomandazioni con l’obiettivo di ridurre l’impatto delle criticità identificate[.
“Molti robot industriali sono progettati per reti di produzione isolate e utilizzano linguaggi di programmazione legacy”. Ha affermato Christoph Hellmann Santos, Program Manager, ROS-Industrial Consortium Europe. “Possono essere vulnerabili agli attacchi nel momento in cui sono connessi a una rete IT. Per questa ragione, ROS-Industrial e Trend Micro hanno collaborato per sviluppare delle line guida per un corretto e sicuro settaggio delle reti per il controllo dei robot idustriali, attraverso il Robotic Operating System”.
Pericoli già superati dall’IT
“Lavorare con questi sistemi è un po’ come fare un tuffo nel passato: vulnerabilità adesso rare nei tradizionali sistemi IT (come le applicazioni web, ad esempio), si ripresentano attraverso questi linguaggi di programmazione, poco conosciuti ma estremamente critici”. Afferma Federico Maggi, e continua: “Nei prossimi anni il mondo dell’automazione industriale dovrà affrontare le sfide delle vulnerabilità che il mondo IT ha gestito negli ultimi 20 anni.”
Come dimostrano le linee guida, i programmi di automazione industriale, seppur basati su linguaggi “legacy”, possono essere scritti in diversi modi per ridurne i rischi.
Di seguito la checklist essenziale che Trend Micro e Politecnico di Milano propongono per la scrittura di programmi di automazione industriale sicuri:
- Trattare i macchinari industriali come se fossero computer e i task program come codice sorgente potenzialmente pericoloso
- Autenticare ogni comunicazione
- Implementare policy per il controllo degli accessi
- Eseguire sempre la validazione degli input
- Eseguire sempre la sanificazione degli output
- Implementare una gestione degli errori senza esporre i dettagli
- Implementare una configurazione appropriata e procedure di deployment
Inoltre, Trend Micro Research e Politecnico di Milano hanno sviluppato uno strumento per rilevare codice maligno o vulnerabilità all’interno dei task program, prevenendo eventuali danni al momento della loro esecuzione.
Come risultato di questa ricerca, sono state identificate feature critiche per la sicurezza nelle principali otto piattaforme di programmazione di robot industriali e un totale di 40 istanze di vulnerabilità di codice open source. Un vendor ha rimosso il proprio programma di automazione vulnerabile e altri due sono stati avvisati, dando il via a discussioni per migliorare i propri strumenti. I dettagli delle vulnerabilità sono stati condivisi anche dal ICS-CERT alla propria community, attraverso un alert.
I risultati di questa ricerca sono stati presentati il 5 agosto al Black Hat USA e verranno illustrati anche alla conferenza ACM AsiaCCS conference a Taipei nel mese di ottobre