banner

Notizia

May 06, 2023

I ricercatori estraggono la chiave di crittografia principale dai PLC Siemens

Di Lucian Constantin

Scrittore senior CSO, CSO |

I ricercatori di sicurezza hanno trovato un modo per estrarre una chiave di crittografia globale codificata nelle CPU di diverse linee di prodotti di controllori logici programmabili (PLC) Siemens, consentendo loro di compromettere le loro comunicazioni sicure e l'autenticazione. Siemens consiglia a tutti i clienti di aggiornare sia il firmware dei dispositivi interessati sia il software TIA Portal che gli ingegneri utilizzano per comunicare con loro e distribuire i loro programmi.

Secondo i ricercatori di sicurezza di Claroty, Siemens ha introdotto la crittografia asimmetrica nelle CPU dei PLC SIMATIC S7-1200/1500 quasi dieci anni fa per proteggerne la configurazione, i programmi e le comunicazioni. Tuttavia, l’azienda ha scelto di farlo utilizzando una chiave privata globale codificata per tutti i dispositivi di quelle famiglie di prodotti perché allora la distribuzione e la gestione dinamica delle chiavi non erano una pratica comune e un potenziale onere per i clienti.

"Da allora, tuttavia, i progressi nella tecnologia, nella ricerca sulla sicurezza e un panorama delle minacce in rapida evoluzione hanno reso tali chiavi crittografiche codificate un rischio inaccettabile", hanno affermato i ricercatori nel loro rapporto. "Un malintenzionato in grado di estrarre una chiave globale codificata potrebbe compromettere la sicurezza dell'intera linea di prodotti in modo irreparabile."

Secondo Claroty, i PLC Siemens S7-1200 e S7-1500 utilizzano più tasti. Una chiave "per famiglia" è condivisa da tutti i dispositivi di una linea di prodotti e una chiave "per modello/firmware" viene utilizzata per crittografare le configurazioni e mantenere l'integrità del codice, nonché una chiave di connessione utilizzata nel processo di autenticazione, nonché per crittografare le comunicazioni con i client. La chiave di connessione deriva dalle chiavi di configurazione e viene utilizzata per la crittografia basata su curva ellittica.

Ciò significa che gli aggressori ottengono la chiave di configurazione, possono potenzialmente decrittografare la password dell'utente dalla configurazione di un PLC e lanciare attacchi man-in-the-middle anche se non hanno accesso per leggere la configurazione crittografata.

Il problema è che questa chiave di configurazione a livello di famiglia non è memorizzata nel firmware del dispositivo – il sistema operativo in esecuzione sul dispositivo – ma nella CPU stessa, quindi la sua lettura richiede l’accesso per interagire direttamente con la CPU tramite codici operativi. Deve essere eseguito solo una volta su un dispositivo perché tutti condividono la chiave.

L’anno scorso, i ricercatori di Claroty hanno scoperto una vulnerabilità legata all’esecuzione di codice in modalità remota (CVE-2020-15782) che interessava i PLC S7 che consentiva loro di eseguire codice nativo sui dispositivi. Normalmente, i programmi o la logica che gli ingegneri scrivono e distribuiscono ai PLC tramite il software di ingegneria specializzato vengono eseguiti all'interno di una sandbox nel sistema operativo del PLC. CVE-2020-15782 ha consentito ai ricercatori di aggirare quel livello di sicurezza e leggere e scrivere direttamente su qualsiasi indirizzo di memoria normalmente protetto sul PLC.

"Utilizzando il permesso di lettura DA [accesso diretto alla memoria] che abbiamo ottenuto, siamo stati in grado di estrarre l'intero firmware PLC crittografato (SIMATIC S7-1500) e mapparne le funzioni", hanno detto i ricercatori. "Durante il processo di mappatura abbiamo trovato una funzione che legge la chiave privata sul PLC. Una volta ottenuto l'indirizzo della funzione, abbiamo riscritto la funzionalità di specifici codici operativi dell'MC7+ con il nostro codice shell, costringendoli a chiamare la funzione nativa che legge la chiave privata . Abbiamo quindi copiato la chiave su un indirizzo di memoria noto e l'abbiamo letta da lì. L'esecuzione della funzione sovrascritta ci ha fornito la chiave privata completa del PLC."

L'interazione con i PLC Siemens richiede una password, ma i permessi concessi al client sul dispositivo sono definiti da quattro livelli di protezione configurabili. Se il livello di protezione è inferiore a tre, un utente malintenzionato può estrarre la configurazione dal PLC senza alcun permesso speciale. Questa configurazione contiene l'hash della password ma è crittografata. Tuttavia, se dispongono della chiave privata globale, gli aggressori possono decrittografare l'hash della password e utilizzarlo per autenticarsi sul PLC con privilegi più elevati.

CONDIVIDERE