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.
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.
14469
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.
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.
Analisi delle vulnerabilità
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.
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.
- Modalità inattiva, utilizzata per scaricare e modificare i programmi.
- Risponde ai messaggi sulla porta di comunicazione
- Esecuzione interrotta e nessun risultato
- Consente a una sessione di software di controllare il dispositivo.
- Risponde ai messaggi sulla porta di comunicazione
- Esecuzione e uscita normali
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:
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 |
0x0F | 80 | Modalità di modifica |
0x0F | 0xAA | Scrittura logica dattiloscritta protetta con tre campi di indirizzo |
0x0F | 0xA2 | Lettura 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 |
84 | 02 | 0x1d | File di stato - Numero della routine di errore dell'utente |
84 | 02 | 06 | File di stato - Codice di errore maggiore |
84 | 02 | 05 | File 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.
- Stabilire una connessione al dispositivo tramite Ethernet/IP per ottenere l'handle di sessione.
- Inviare la richiesta dannosa per sovrascrivere il numero della routine di errore.
- Creare un pacchetto CIP dannoso per riportare il PLC in modalità Run e attivare il guasto.
- Il dispositivo riscontra un errore e interrompe l'esecuzione.
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:
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.
Nell'ultima fase, viene inviato un altro pacchetto CIP per commutare il dispositivo in modalità di funzionamento e attivare il guasto.
Come illustrato nell'immagine, l'esecuzione del PLC viene interrotta e la vulnerabilità viene sfruttata con successo.
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:
- Scoprite e costruite rapidamente l'inventario degli asset con la profilazione intelligente degli asset.
- Monitoraggio attivo e passivo di minacce e anomalie.
- Gestione remota delle patch con funzionalità di auto-patching centralizzato
- Flusso di lavoro strutturato e semplificato per gli avvisi di rischio, gestito da un dashboard completo e personalizzabile
- Rapporti di conformità alle normative globali, regionali e di settore
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.