Scopri di più sul libro di Benny Czarny “Cybersecurity Upside Down”

Per saperne di più
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 dei sistemi OT dagli attacchi remoti: Come MetaDefender OT Security™ protegge il controllore Micrologix™ 1400 da CVE-2021-22659

Di OPSWAT
Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20
Partecipanti al programma di borse di studio OPSWAT

La sicurezza dei sistemi di controllo industriale e degli ambienti OT dagli attacchi remoti è più che mai critica, soprattutto con vulnerabilità come CVE-2017-14469 e ora CVE-2021-22659 che hanno come obiettivo il controllore Micrologix 1400 di Rockwell Automation, ampiamente utilizzato. Gli studenti dell'OPSWAT Fellowship Program hanno testato questa vulnerabilità in un ambiente controllato, evidenziando la necessità di sicurezza.

In questo blog esploriamo il modo in cui gli studenti hanno dimostrato come gli aggressori potrebbero sfruttare la vulnerabilità per causare il blocco dei sistemi e come la mancanza di un'adeguata convalida degli input potrebbe essere sfruttata per interrompere le operazioni del PLC.

Che cos'è un PLC? Spiegazione di Micrologix 1400 di Rockwell Automation

Un PLC (Programmable Logic Controller) è un computer industriale progettato per automatizzare i processi controllando macchinari e altre operazioni industriali. Funziona in ambienti difficili ed è programmato per eseguire compiti specifici in base agli input dei sensori. Il controllore MicroLogix 1400 di Rockwell Automation è un PLC compatto e modulare comunemente utilizzato in applicazioni di piccole e medie dimensioni. Noto per la sua economicità e flessibilità, supporta diversi protocolli di comunicazione e offre opzioni di I/O digitali e analogici per l'interfacciamento con i dispositivi.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

La programmazione avviene tipicamente tramite il software di Rockwell Automation attraverso la logica ladder, che consente agli utenti di creare sequenze di controllo. MicroLogix 1400 è versatile e adatto a compiti quali il controllo delle macchine e l'automazione dei processi. La sua modularità consente agli utenti di espandere e personalizzare il sistema in base a requisiti applicativi specifici.

Introduzione a CVE-2021-22659

Nel gennaio 2021, Rockwell Automation ha ricevuto una segnalazione da parte di Parul Sindhwad e del dott. Faruk Kazi del COE-CNDS presso il Veermata Jijabai Technological Institute (VJTI), in India, relativa a una vulnerabilità nel controllore MicroLogix™ 1400. Hanno individuato una falla di sicurezza nella versione 21.6 e nelle versioni precedenti che consente a un aggressore remoto non autenticato di inviare un pacchetto Modbus appositamente modificato, permettendo all’aggressore di recuperare o modificare valori casuali nel registro. Se sfruttata con successo, questa vulnerabilità potrebbe portare a un overflow del buffer, con conseguente condizione di denial-of-service. Il LED FAULT lampeggerà in ROSSO e le comunicazioni potrebbero interrompersi. Il ripristino dalla condizione di denial-of-service richiede che l’errore venga risolto dall’utente.

NVD ha valutato questa vulnerabilità di sicurezza come di gravità elevata.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Fasi di attacco

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Un aggressore remoto non autenticato con accesso alla rete del PLC MicroLogix 1400 vulnerabile potrebbe inviare un pacchetto appositamente creato per modificare i valori del registro. Ciò potrebbe causare una condizione di denial-of-service per il dispositivo, con conseguente corruzione del sistema e tempi di inattività. Un incidente di questo tipo può interrompere in modo significativo le operazioni di produzione e altre attività commerciali dell'organizzazione.

Protocollo Modbus

Sviluppato da Modicon nel 1979, il protocollo Modbus è una struttura di messaggistica progettata per stabilire una comunicazione client-server tra dispositivi intelligenti. Originariamente progettato per l'uso con i PLC di Modicon, da allora è diventato un protocollo di comunicazione standard per la comunicazione tra dispositivi elettronici industriali.

Esistono protocolli Modbus per Ethernet (Modbus TCP) e per linee seriali (Modbus RTU e Modbus ASCII). Il Modbus RTU (Remote Terminal Unit) trasmette direttamente i dati in forma binaria attraverso la comunicazione seriale, mentre il Modbus TCP (Transmission Control Protocol) incorpora i dati del protocollo Modbus in pacchetti TCP per la trasmissione su reti TCP/IP.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Struttura dei messaggi Modbus

Modbus è un protocollo richiesta-risposta in cui il client trasmette una richiesta a un dispositivo Modbus e il dispositivo fornisce successivamente una risposta.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Un messaggio Modbus inviato da un primario a un secondario contiene l'indirizzo del secondario, il "comando" (ad esempio "read register" o "write register"), i dati e una somma di controllo (LRC o CRC).

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Gli indirizzi dei dati sono utilizzati nei messaggi di interrogazione Modbus quando si leggono o modificano i dati. Modbus definisce quattro tipi di dati: Coil, Input Status, Input Register e Holding Register. Due di questi memorizzano valori on-off (1 bit), chiamati Coil e Discrete Inputs, e due memorizzano valori numerici come parole a 16 bit, chiamati Registers. Ciascuno di essi è di sola lettura o di lettura/scrittura.

Tipo di dati

Accesso

Descrizione

Bobina

Lettura-scrittura

Uscite a bit singolo.

Ingresso discreto

Solo lettura

Ingressi a bit singolo.

Registro di ingresso

Solo lettura

Registri di ingresso a 16 bit.

Registro di mantenimento

Lettura-scrittura

Registri di uscita a 16 bit.

Esistono tre categorie di codici funzione Modbus:

  • Codici funzione pubblica - Da 1 a 127, ad eccezione dei codici definiti dall'utente.
  • Codici funzione definiti dall'utente - in due intervalli, da 65 a 72 e da 100 a 110.
  • Codici funzione riservati - Utilizzati da alcune aziende per i prodotti legacy e non disponibili per l'uso pubblico.

Tipo di funzione

Nome della funzione

Codice funzione

Accesso ai dati

Accesso ai bit

Ingressi discreti fisici

Lettura degli ingressi discreti

2

Bit interni o bobine fisiche

Leggere le bobine

Scrivere la bobina singola

Scrivere più bobine

1

5

15

Accesso a 16 bit

Registri di ingresso fisico

Lettura dei registri di ingresso

4

Registri interni o registri di uscita fisici

Lettura di più registri di mantenimento

Scrittura di un singolo registro di mantenimento

Scrittura di più registri di mantenimento

Lettura/Scrittura di più registri

Registro di scrittura della maschera

Coda FIFO di lettura

3

6

16

23

22

24

Accesso ai record dei file

Leggere il record del file

Scrivere il record del file

20

21

Diagnostica

Leggere lo stato di eccezione

Diagnostica

Ottenere il contatore di eventi Com

Ottenere il registro eventi Com

Segnala l'ID dello slave

Leggere l'identificazione del dispositivo

7

8

11

12

17

43

Altro

Trasporto di interfaccia incapsulata

43

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai bit
Categoria: Ingressi fisici discreti
Nome della funzione: Lettura ingressi discreti
Codice funzione: 2

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai bit
Categoria: Bit interni o bobine fisiche
Nome della funzione: Lettura bobine
Codice funzione: 1

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai bit
Categoria: Bit interni o bobine fisiche
Nome della funzione: Scrittura su singola bobina
Codice funzione: 5

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai bit
Categoria: Bit interni o bobine fisiche
Nome della funzione: Scrittura su più bobine
Codice funzione: 15

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri di ingresso fisici
Nome della funzione: Lettura dei registri di ingresso
Codice funzione: 4

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Lettura di più registri di temporizzazione
Codice funzione: 3

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Scrittura in un singolo registro di temporizzazione
Codice funzione: 6

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Scrittura su più registri di temporizzazione
Codice funzione: 16

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Lettura/scrittura di più registri
Codice funzione: 23

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Registro di scrittura maschera
Codice funzione: 22

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso a 16 bit
Categoria: Registri interni o registri di uscita fisici
Nome della funzione: Lettura coda FIFO
Codice funzione: 24

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai record di file
Nome della funzione: Lettura record di file
Codice funzione: 20

Tipo di funzione: Accesso ai dati
Sottotipo: Accesso ai record di file
Nome della funzione: Scrivi record di file
Codice funzione: 21

Tipo di funzione: Diagnostica
Nome della funzione: Lettura stato di eccezione
Codice funzione: 7

Tipo di funzione: Diagnostica
Nome della funzione: Diagnostica
Codice funzione: 8

Tipo di funzione: Diagnostica
Nome della funzione: Ottieni contatore eventi COM
Codice funzione: 11

Tipo di funzione: Diagnostica
Nome della funzione: Ottieni registro eventi COM
Codice della funzione: 12

Tipo di funzione: Diagnostica
Nome della funzione: Segnala ID slave
Codice funzione: 17

Tipo di funzione: Diagnostica
Nome della funzione: Lettura identificativo dispositivo
Codice funzione: 43

Tipo di funzione: Altro
Nome della funzione: Trasporto tramite interfaccia incapsulata
Codice funzione: 43

Sfruttamento

Analisi delle vulnerabilità

Attraverso l'analisi, i nostri borsisti OPSWAT hanno scoperto che durante la comunicazione Modbus TCP, il protocollo manca di autenticazione e crittografia per i pacchetti trasmessi. Inoltre, la convalida dell'input nel PLC MicroLogix 1400 non è implementata correttamente. Di conseguenza, un aggressore remoto può analizzare il pacchetto Modbus TCP tramite packet sniffing e inviare qualsiasi richiesta al PLC senza autenticazione tramite il protocollo Modbus TCP. A causa della mancanza di convalida dell'input del dispositivo PLC MicroLogix 1400, un aggressore remoto autenticato potrebbe inviare un gran numero di pacchetti con valori casuali, causando potenzialmente un arresto anomalo del PLC.

Sovrascrittura del registro

Inizialmente, abbiamo cercato di catturare i pacchetti Modbus TCP utilizzati per leggere o scrivere i registri del PLC. A tal fine, abbiamo esaminato i pacchetti generati da un'applicazione denominata Modbus Poll, che facilita la lettura e la scrittura dei registri sul PLC MicroLogix 1400.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Utilizzando Wireshark per catturare tutti i pacchetti dall'interfaccia di rete, è stato possibile identificare il pacchetto Modbus TCP per la scrittura di un singolo registro:

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20
Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Sulla base della struttura dei pacchetti sniffati, abbiamo sviluppato un semplice script Python per inviare pacchetti TCP che richiedono la scrittura di un registro sul PLC di destinazione. In questo scenario, l'indirizzo IP del PLC è 192.168.93.89.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Il registro del PLC è stato modificato dopo aver ricevuto il nostro pacchetto malevolo non autenticato.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20
Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

In Micro Logix 1400, la maggior parte delle istruzioni matematiche utilizza tre parametri: Sorgente A, Sorgente B e Destinazione

I valori per le sorgenti A e B possono provenire da due registri a 16 bit denominati N13:3 e N13:4. Inoltre, i valori di questi registri a 16 bit, come N13:3 e N13:4, sono limitati all'interno di un intervallo compreso tra -32.768 e +32.767. Se i valori di N13:3 e N13:4 sono grandi, il risultato dell'istruzione match può superare l'intervallo massimo del tipo di dati, causando potenzialmente un arresto anomalo del PLC. Di conseguenza, per indurre un crash nel PLC, è necessario scrivere valori casuali di grandi dimensioni in tutti i registri, compresi N13:3 e N13:4. Per ottenere questo risultato, abbiamo modificato il nostro script Python come segue:

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Simulare l'attacco

Per simulare un attacco reale, i nostri borsisti OPSWAT hanno cercato di indurre un crash nel PLC MicroLogix 1400 situato nei laboratori CIP OPSWAT , partendo dal presupposto che sia l'attaccante che il PLC siano sulla stessa rete e in grado di comunicare tra loro.

Nello stato operativo normale del PLC MicroLogix 1400 presso i laboratori OPSWAT , con il PLC in modalità REMOTE RUN, tutti i valori dei registri sono validi e rientrano nell'intervallo designato per i rispettivi tipi di dati, a indicare che il programma utente funziona correttamente.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

All'esecuzione del nostro script Python, verranno inviati numerosi pacchetti Modbus TCP al PLC, richiedendo la scrittura di grandi valori casuali in tutti i registri senza autenticazione:

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Dopo aver ricevuto queste richieste di pacchetti malevoli, i valori di tutti i registri, compresi N13:3 e N13:4, vengono impostati a 16.990. Il risultato dell'operazione ADD sui registri N13:3 e N13:4 supera l'intervallo valido di un registro a 16 bit. Questo problema causa un overflow di numeri interi, che provoca un errore e interrompe il funzionamento del PLC, come indicato dallo stato FAULTED.

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

I nostri borsisti OPSWAT sono riusciti a bloccare il PLC MicroLogix 1400 sfruttando CVE-2021-22659.

Bonifica

Protezione dei sistemi OT dagli attacchi remoti: come la soluzione OT Security™ di MetaDefender protegge il controller Micrologix™ 1400 dalla vulnerabilità CVE-20

Di fronte a vulnerabilità come CVE-2021-22659, una bonifica completa è fondamentale per proteggere i sistemi OT e cyber-fisici. Di seguito sono riportate alcune delle strategie chiave che possono essere impiegate per prevenire la diffusione degli attacchi:

  1. Rilevamento di CVE note: Eseguire regolarmente una scansione delle reti alla ricerca di vulnerabilità come CVE-2021-22659.
  2. Monitoraggio di comportamenti anomali: Segnalazione di aumenti insoliti della frequenza di comunicazione con il PLC Micrologix 1400, che potrebbero suggerire un attacco in corso di trasferimento non autorizzato di dati.
  3. Identificazione delle connessioni di nuovi dispositivi: Il sistema deve rilevare quando un nuovo dispositivo si collega al PLC.
  4. Segmentazione della rete: L'isolamento dei dispositivi colpiti può aiutare a prevenire la diffusione laterale degli attacchi, riducendo così al minimo l'impatto.

MetaDefender OT Security di OPSWATrisponde a queste esigenze rilevando i CVE, monitorando continuamente la rete per individuare comportamenti insoliti e identificando le connessioni non autorizzate. Utilizzando l'intelligenza artificiale, il sistema apprende i normali modelli di traffico, stabilisce un comportamento di base e implementa criteri per segnalare le anomalie. Ciò consente di reagire in modo istantaneo e consapevole alle potenziali minacce.

Nel caso di un attacco che sfrutta CVE-2021-22659, MetaDefender OT Security si integra con MetaDefender Industrial Firewall per bloccare le comunicazioni sospette in base alle regole impostate. Il firewall utilizza l'intelligenza artificiale per apprendere i modelli di traffico regolari e applicare le policy per impedire le connessioni non autorizzate.

Grazie alla combinazione di queste funzionalità di rilevamento, allerta e segmentazione della rete, MetaDefender OT Security diventa il meccanismo di difesa ideale per gli ambienti industriali, riducendo in modo significativo il rischio e l’impatto delle minacce informatiche negli ambienti di tecnologia operativa.

Scoprite come la piattaforma di cybersecurity di OPSWATpuò migliorare e maturare la vostra postura. Parlate con un esperto oggi stesso per una demo gratuita.

Rimanete aggiornati con OPSWAT!

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