Cyberattacchi alimentati dall'intelligenza artificiale: Come individuare, prevenire e difendersi dalle minacce intelligenti

Leggi ora
Per le traduzioni dei siti utilizziamo l'intelligenza artificiale e, sebbene ci sforziamo di essere accurati, non sempre le traduzioni sono precise al 100%. La vostra comprensione è apprezzata.

Protezione contro gli attacchi OT ai PLC di Rockwell Automation 

da OPSWAT
Condividi questo post

Siamo lieti di presentare una serie di blog di analisi tecnica incentrati su varie CVE (Vulnerabilità ed esposizioni comuni) che possono essere identificate e corrette con le nostre tecnologie avanzate di rilevamento delle minacce.Tutte le ricerche sono svolte da studenti laureati che hanno partecipato al programmaOPSWAT Cybersecurity Fellowship, avviato nel dicembre 2023. 

Luan Pham e Viet Tran, studenti laureati dell'Università di Scienze di Ho Chi Minh
Gli studenti hanno partecipato al programma di borse di studio OPSWAT .

In questo blog spiegheremo la CVE-2017-14469 di Rockwell Micrologix e come le aziende possono difendersi dagli attacchi di sfruttamento della CVE-2017-14469.

Controllore MicroLogix 1400 di Rockwell Automation 

Un PLC (Programmable Logic Controller) è un computer progettato specificamente per controllare i processi di produzione industriale. Viene utilizzato in settori infrastrutturali critici, come le catene di montaggio, il monitoraggio delle macchine, il controllo dei processi, ecc. Il controllore MicroLogix 1400 di Rockwell Automation è un PLC modulare ed estensibile dotato di un elevato numero di I/O, di un veloce contatore ad alta velocità e di un supporto di rete avanzato, che lo rendono adatto a un'ampia gamma di applicazioni.

Foto del prodotto dei controllori MicroLogix 1400 di Rockwell Automation
Controllori MicroLogix 1400 di Rockwell Automation

14469

Descrizione

Una vulnerabilità nel dispositivo Rockwell Automation MicroLogix 1400 Series B FRN 21.2 e versioni precedenti consente a un utente malintenzionato di leggere e scrivere/sovrascrivere dati sensibili sul dispositivo. Un pacchetto non autenticato e appositamente creato contenente un comando può portare alla modifica del numero di routine di errore definito dall'utente, con conseguente arresto imprevisto dell'esecuzione del dispositivo.

diagramma che illustra uno scenario di sicurezza con un aggressore che prende di mira un dispositivo MicroLogix 1400, portando a molteplici risultati potenziali
Impatto 

Il National Vulnerability Database (NVD) ha classificato questa vulnerabilità come "Critica" con un punteggio massimo CVSS (Common Vulnerability Scoring System). Il suo impatto può compromettere in modo significativo la riservatezza, l'integrità e la disponibilità di un dispositivo senza richiedere ulteriori autenticazioni. La disponibilità del sistema è fondamentale, soprattutto nei sistemi di infrastrutture critiche, dove qualsiasi interruzione o tempo di inattività può portare a ingenti perdite finanziarie o addirittura a danni fisici. Questo CVE può portare a un arresto delle funzioni del PLC innescando un "guasto di sistema" all'interno del controllore, con il rischio di interrompere i sistemi di infrastrutture critiche. 

valutazioni di gravità per una vulnerabilità di cybersecurity CVE-2017-14469, con punteggi CVSS dettagliati da NIST NVD e Talos con punteggi di base critici
Informazioni su CVE-2017-14469 su NIST NVD 

Analisi delle vulnerabilità

Che cos'è l'errore e la routine di errore?

Il concetto di errore è molto simile a quello di eccezione nella programmazione. Quando si verifica un errore, l'esecuzione dell'istruzione viene interrotta, portando il dispositivo in uno stato di errore. I guasti possono essere classificati in due tipi: guasti utente e guasti non utente.  

Esistono due meccanismi per l'eliminazione dei guasti: l'eliminazione automatica mediante un ciclo di alimentazione del controllore o l'eliminazione manuale mediante una routine di errore dell'utente, che è una procedura che può essere impostata per essere eseguita automaticamente in risposta a un errore dell'utente. La CVE-2017-14469 riguarda il secondo meccanismo. Per evitare che il sistema si spenga o interrompa l'esecuzione inaspettatamente a causa di un errore dell'utente, viene definita una routine di errore dell'utente per gestire gli errori assegnati in base al loro numero di errore e viene eseguita quando si verifica l'errore corrispondente. Se non esiste una routine per la gestione dell'errore, il dispositivo interrompe l'esecuzione e visualizza il numero di errore. Il valore della routine di errore utente è impostato su 0x00 quando il dispositivo funziona normalmente e deve essere configurato solo nell'intervallo da 0x03 a 0xFF per la gestione degli errori.

diagramma di flusso che spiega la procedura di gestione dei guasti del dispositivo, compresi il rilevamento dei guasti, i controlli di routine e la visualizzazione dei codici di errore
Meccanismo di eliminazione degli errori dell'utente tramite la routine di errore dell'utente.
Modalità di funzionamento MicroLogix 1400 di Rockwell Automation

Nel MicroLogix 1400 di Rockwell Automation sono disponibili tre posizioni del selettore di modalità: PROGRAM, REMOTE e RUN. Entrambe le modalità PROGRAMMA e REMOTO consentono di scaricare il programma sul dispositivo e di accettare e gestire le richieste in arrivo. Tuttavia, in modalità RUN, il dispositivo accetta solo richieste limitate. Nel contesto di questa vulnerabilità, lo sfruttamento non è possibile se il dispositivo è in modalità RUN.

Programma
  • Modalità inattiva, utilizzata per scaricare e modificare i programmi.
  • Risponde ai messaggi sulla porta di comunicazione
  • Esecuzione interrotta e nessun risultato
Remoto
  • Consente a una sessione di software di controllare il dispositivo.
  • Risponde ai messaggi sulla porta di comunicazione
  • Esecuzione e uscita normali
Correre
  • Esegue programmi in ciclo continuo
  • Risponde solo ai messaggi riservati
Come funziona CVE-2017-14469

Il dispositivo comunica tramite CIP (Common Industrial Protocol) con estensione PCCC. Il protocollo CIP si basa su Ethernet/IPIndustrial Protocol). La struttura di un pacchetto è illustrata nella figura seguente:

rappresentazione schematica della struttura dei pacchetti Ethernet/IP e degli oggetti CIP per la comunicazione di protocollo industriale
Meccanismo di eliminazione degli errori dell'utente tramite la routine di errore dell'utente.

Come si può vedere dall'immagine precedente, non c'è un campo designato per l'autenticazione. Ciò rappresenta una sfida significativa, poiché il dispositivo non è in grado di distinguere tra le richieste di un aggressore e il normale traffico di un utente. 

In genere, un operatore può monitorare e aggiornare la configurazione del dispositivo tramite un software di controllo. Per comunicare con il dispositivo, il Software di controllo invia una richiesta corrispondente con un comando logico di scrittura o lettura di tipo protetto, compilando l'Oggetto CIP PCCC. Nel formato del protocollo CIP PCCC, un comando è identificato dal codice di comando e dal codice funzione. 

Codice di comando
Codice funzione
Descrizione
0x0F80Modalità di modifica
0x0F0xAAScrittura logica dattiloscritta protetta con tre campi di indirizzo
0x0F0xA2Lettura logica dattiloscritta protetta con tre campi di indirizzo

Il comando di scrittura logica digitata protetta viene utilizzato per scrivere su file sensibili, come il file di stato, il file dei bit, il file dei contatori e altre configurazioni del dispositivo.  

Il dispositivo utilizza tre campi di indirizzo nel pacchetto CIP per identificare la posizione di lettura e scrittura: tipo di file, numero di file e numero di elemento. Di seguito sono riportati alcuni valori di esempio per identificare le posizioni dei file di configurazione interessate dal comando: 

Tipo di file
Numero di file
Numeri dell'elemento
Descrizione
84020x1dFile di stato - Numero della routine di errore dell'utente
840206File di stato - Codice di errore maggiore
840205File di stato - Codice di errore maggiore

Tuttavia, quando il dispositivo gestisce la richiesta, manca la convalida dell'input; i dati inviati nel comando di scrittura non vengono convalidati e possono essere impostati su qualsiasi valore non valido. 

La vulnerabilità è causata da due motivi principali. In primo luogo, il dispositivo non è in grado di autenticare le richieste in entrata, consentendo a un utente malintenzionato di inviare una richiesta non autenticata per modificare le impostazioni sensibili. In secondo luogo, il dispositivo non convalida in modo corretto i dati in entrata, portando alla modifica delle impostazioni in uno stato non valido. 

Per sfruttare con successo la vulnerabilità, un utente malintenzionato invia una richiesta dannosa, abusando del comando di scrittura logica digitato protetto per sovrascrivere il numero della routine di errore nel file di stato con un valore non valido, come 0x01 o 0x02. Quando il numero della routine di errore viene sovrascritto con un valore non valido e il dispositivo passa in modalità RUN tramite un altro pacchetto CIP, si attiva un errore e si interrompe l'esecuzione. 

Sfruttamento delle vulnerabilità

L'attacco può essere suddiviso in 4 fasi.

  1. Stabilire una connessione al dispositivo tramite Ethernet/IP per ottenere l'handle di sessione.
  2. Inviare la richiesta dannosa per sovrascrivere il numero della routine di errore.
  3. Creare un pacchetto CIP dannoso per riportare il PLC in modalità Run e attivare il guasto.
  4. Il dispositivo riscontra un errore e interrompe l'esecuzione.
frammento di codice python per una connessione socket, la registrazione di una sessione e l'invio di comandi per modificare la routine di errore di un dispositivo e lo stato della CPU, contrassegnato come exploit
Il codice mostra le funzioni passo-passo per sfruttare la vulnerabilità. 
Passo 1

Per comunicare con il dispositivo, un utente malintenzionato deve avviare una connessione registrando una sessione con il dispositivo per ottenere l'handle di sessione e utilizzarlo per la comunicazione in corso. Il codice seguente mostra una richiesta di registrazione di sessione standard:

funzione python per registrare una sessione con dati byte grezzi, inviarli su un socket e decodificare la risposta dell'handle di sessione
Passo 2

Successivamente, un utente malintenzionato effettua una richiesta utilizzando l'handle di sessione precedentemente ottenuto e include un payload con un comando di scrittura logica di tipo protetto per sovrascrivere il numero della routine di errore, incapsulato in un pacchetto CIP.

codice python che definisce una funzione per inviare un'istruzione su un socket di rete e ricevere una risposta, parte di uno script di comunicazione di rete
Passo 3

Nell'ultima fase, viene inviato un altro pacchetto CIP per commutare il dispositivo in modalità di funzionamento e attivare il guasto.

funzione python che imposta lo stato della CPU di un dispositivo in modalità run o program inviando specifici payload di comando
Passo 4

Come illustrato nell'immagine, l'esecuzione del PLC viene interrotta e la vulnerabilità viene sfruttata con successo.

rappresentazione dell'interfaccia utente del sistema e del funzionamento di Rockwell Automation MicroLogix 1400 in condizioni normali
Il sistema funziona in condizioni normali
rappresentazione dell'interfaccia utente del sistema e di Rockwell Automation MicroLogix 1400 disattivato dopo aver sfruttato la vulnerabilità
Il sistema è inattivo dopo aver sfruttato questa vulnerabilità

Bonifica

OPSWATI prodotti per la sicurezza ICS sono progettati per resistere a questi tipi di attacchi. MetaDefender OT Security è uno strumento di rilevamento delle minacce e di intelligence alimentato dall'intelligenza artificiale che rileva qualsiasi richiesta anomala da parte degli aggressori, consentendo agli amministratori di identificare le potenziali minacce. 

MetaDefender OT Security ha le seguenti funzionalità per migliorare la sicurezza degli ambienti OT: 

  1. Scoprite e costruite rapidamente l'inventario degli asset con la profilazione intelligente degli asset.
  2. Monitoraggio attivo e passivo di minacce e anomalie.
  3. Gestione remota delle patch con funzionalità di auto-patching centralizzato
  4. Flusso di lavoro strutturato e semplificato per gli avvisi di rischio, gestito da un dashboard completo e personalizzabile
  5. Rapporti di conformità alle normative globali, regionali e di settore
dashboard che visualizza una valutazione dettagliata delle vulnerabilità per un dispositivo PLC MicroLogix 1400 di Rockwell Automation, compresi gli elenchi CVE e i punteggi CVSS

Inoltre, MetaDefender OT Security può essere integrato con MetaDefender Industrial Firewall per impedire alle richieste dannose di colpire i dispositivi rilevati da OT Security. MetaDefender Industrial Firewall è l'ultima linea di difesa per proteggere PLC, VFD, RTU e altri asset industriali mission-critical. Applica criteri di accesso ai dispositivi altamente granulari e fa rispettare le zone di accesso ai dispositivi, garantendo che nessun accesso o modifica non autorizzata possa avere un impatto sull'hardware critico.  

Insieme creano un IDPS (sistema di rilevamento e prevenzione delle intrusioni) senza soluzione di continuità che rileva e impedisce che connessioni di rete, richieste, comunicazioni ecc. anomale influiscano sulla rete.

MetaDefender OT Security fornisce una protezione cruciale per le infrastrutture critiche grazie alla visibilità degli asset e al rilevamento delle minacce. Al di là delle sue capacità tecnologiche, OPSWAT offre interessanti opportunità di carriera a persone appassionate di cybersecurity. Unitevi a noi per plasmare il futuro della sicurezza e proteggere ciò che conta di più. Scoprite i diversi ruoli e i progetti d'impatto di OPSWAT, dove le vostre competenze possono fare la differenza. Insieme, salvaguardiamo i sistemi più vitali del mondo.

Rimanete aggiornati con OPSWAT!

Iscriviti oggi stesso per ricevere gli ultimi aggiornamenti sull'azienda, storie, informazioni sugli eventi e altro ancora.