Sono state corrette con un update le 15 vulnerabilità del sistema di gestione e configurazione della rete SINEC NMS di Siemens. Potevano permettere a un attaccante di condurre attacchi Living-Off-The-Land.
I sistemi di controllo industriale sono da tempo sotto ai riflettori, a causa delle commistioni sempre più strette fra IT e OT, necessarie all’industria 4.0 per operare in maniera competitiva. In particolare, al centro dell’Industria 4.0 ci sono i sistemi di gestione e configurazione della rete (NMS – Network Management System) che monitorano e mantengono gli elementi della rete industriale.
Uno degli NMS più popolari è SINEC NMS di Siemens: viene usato dagli operatori per capire come funzionano i sistemi di controllo e le operazioni sulla rete, come sono collegati e dipendenti l'uno dall'altro, nonché il loro stato. La diagnostica e la topologia di rete generate da questo strumento consentono agli operatori di “vedere” e “rispondere” agli eventi, migliorare le configurazioni, monitorare lo stato del dispositivo ed eseguire aggiornamenti del firmware e modifiche alla configurazione.
Una visualizzazione della topologia di rete generata da Siemens SINEC NMS
Come appare chiaro dall’immagine qui sopra, SINEC si colloca in una posizione centrale all'interno della topologia di rete. Per funzionare richiede l'accesso alle credenziali, alle chiavi crittografiche e ad altri secrets che gli concedono l'accesso di amministratore per gestire i dispositivi. In particolare, i servizi di amministrazione di SINEC sono principalmente due: control e operation. Il primo è un servizio finalizzato all'impostazione delle preferenze, alla creazione e gestione degli utenti, alla gestione delle versioni e altro. Operation soprassiede invece al funzionamento, alla scansione e all'aggiornamento dei dispositivi di rete.
Negli attacchi alle realtà produttive, l’interesse maggiore degli attaccanti è condurre attacchi Living-Off-The-Land che permettono loro di abusare di credenziali legittime e strumenti di rete con l’obiettivo di perpetrare attività dannose. In questo, le caratteristiche di SINEC riassunte sopra possono essere di supporto.
Se una o più vulnerabilità consentissero all’attaccante di prendere il controllo di SINEC, potrebbe abusarne a scopo di ricognizione (SINEC ha una mappa di rete di tutti i dispositivi edge connessi, comprese le informazioni di sistema e di configurazione dei dispositivi stessi), per attuare movimenti laterali (SINEC è autorizzato ad accedere e gestire tutti i dispositivi edge in rete) e/o per l’escalation di privilegi (SINEC detiene le credenziali e le chiavi degli amministratori per tutti i dispositivi perimetrali gestiti).
Inventario dei dispositivi gestiti da SINEC NMS
Fin qui la teoria. Purtroppo il prosieguo della storia riguarda proprio le vulnerabilità di SINEC. I ricercatori del Team82 di Claroty ne hanno individuate 15: sfruttandole singolarmente o in combinazione un attaccante potrebbe effettivamente ottenere diritti amministrativi sul sistema, prelevare informazioni sensibili, causare un denial of service sulla piattaforma, finanche eseguire codice remoto sulla macchina di hosting.
In particolare, gli esperti hanno creato un exploit PoC che dimostra un account-takeover da parte di un utente senza privilegi, aumentando i suoi privilegi a quelli di amministratore ed eseguendo successivamente codice in remoto su SINEC NMS.
Per realizzarlo hanno sfruttato le due più gravi vulnerabilità rilevate. La prima, monitorata con la sigla CVE-2021-33723 e con un punteggio CVSS di 8.8, ha permesso di aumentare i propri privilegi nel sistema e ottenere l'accesso come amministratori. Il secondo bug, monitorato con la sigla CVE-2021-33722 e con un punteggio CVSS di 7.2, ha consentito di scrivere una webshell dannosa sulla directory principale del sistema e di richiamarla per accedervi, ottenendo così una vulnerabilità RCE.
L'escalation dei privilegi
In relazione a queste due falle ci sono alcuni punti da attenzionare. Per quanto riguarda la CVE-2021-33723, SINEC controlla correttamente che l'utente che esegue le azioni importanti (creazioni di account, visualizzazione e modifica dei dettagli di un account) sia un amministratore. Tuttavia, tutti gli utenti sono autorizzati a modificare i propri dettagli: un utente può quindi fornire un payload JSON contenente informazioni sul proprio account per indurre il server a cambiare i dettagli dell'account. Sfruttando questo piccolo dettaglio è possibile variare gli attributi utente e contestualmente fornire alcuni campi che il server non intendeva modificare, come la password. Inoltre, il server non controlla se l'utente che esegue la richiesta è effettivamente il legittimo intestatario dell’account.
È da sottolineare che entrambe tutte le falle sono risolte con l'ultimo aggiornamento per SINEC NMS alla release V1.0 SP2 Update 1 o successiva. Le altre vulnerabilità, che portano il conto totale di quelle scoperte a 15, sono elencate nel blog ufficiale sulla pagina ufficiale della ricerca e sul sito ufficiale del supporto Siemens.