Hacking: Profibus/Profinet
Last updated
Last updated
Una delle sfide del pentesting in ambito OT/ICS è data dai protocolli impiegati che possono essere anche molto diversi da quelli dell'IT. Le installazioni ICS utilizzano un'ampia varietà di protocolli che spesso condividono hanno ben poco in comune con gli standard Ethernet e TCP/IP.
Questa differenza è stata per anni il punto di forza delle installazioni OT, proteggendole attraverso il meccanismo della "sicurezza per oscurità". Ora che questi protocolli stanno diventando sempre più conosciuti e compresi, le preoccupazioni di sicurezza in queste strutture sono state accentuate.
In questo articolo vediamo le principali caratteristiche di uno di questi protocolli: il Profibus.
Profibus (Process Fieldbus) è uno standard aperto per la comunicazione industriale originariamente sviluppato in Germania. È iniziato da un gruppo di 21 aziende e istituzioni denominate "Central Association for Electrical Industry" (ZVEI), guidato dal gigante industriale Siemens. Per questa ragione Profibus è ampiamente utilizzato nei prodotti Siemens ed è il bus di comunicazione sfruttato dal malware Stuxnet nella centrale nucleare iraniana di Natanz durante il famoso attacco informatico.
Profibus è un protocollo intelligente e bidirezionale multipunto, in cui tutti i dispositivi Profibus sono interoperabili. I dati possono rappresentare valori analogici o digitali. È un protocollo economico, semplice e ad alta velocità. Profibus utilizza una connessione a due fili per alimentazione e dati.
La tipologia del protocollo è master-slave, come molti altri protocolli SCADA/ICS, che supporta i nodi master mediante l'uso della condivisione di un token. Simile al protocollo token-ring di IBM, solo quando il master ha il token può comunicare con gli slave. Lo slave Profibus può comunicare solo con un master. Il nodo Profibus master è in genere un PLC o RTU e gli slave sono sensori, motori o altri dispositivi di controllo.
La famiglia dei protocolli Profibus si divide principalmente in due due categorie: Profibus DP e ProfiNet. Gli impieghi cambiano sensibilmente: mentre il primo è un tradizionale fieldbus master-slave con trasmissione seriale con rete ad anello, il secondo ne è la sua evoluzione e permette la comunicazione tra segmenti diversi di bus utilizzando Ethernet.
Questo era il protocollo Profibus iniziale. È stato progettato per comunicare tra PLC e PC. Sfortunatamente questo semplice protocollo non era molto flessibile e, di conseguenza, non poteva funzionare in una rete più complessa e complicata. Sebbene sia ancora in uso, la stragrande maggioranza delle reti Profibus utilizza una delle versioni più recenti.
Profibus DP è probabilmente il più comune dei protocolli Profibus. È più semplice e veloce rispetto agli altri tipi. È disponibile in tre versioni separate: DP-V0 (scambio ciclico di dati), DP-V1 (scambio aciclico di dati) e DP-V2 (modalità slave-to-slave isocrono e scambio di dati) con ogni nuova versione che offre funzionalità aggiuntive.
Profibus PA, come suggerisce il nome, è stato sviluppato per Process Automation. Questa versione del protocollo standardizza il processo di trasmissione dei dati misurati. Inoltre, è stato progettato per l'uso in ambienti pericolosi utilizzando la tecnologia Manchester Bus Powered (MBS) che utilizza una potenza inferiore e quindi riduce la possibilità di scintille ed esplosioni.
ProfiNet (Process Field Net) è un altro standard aperto per l'automazione industriale progettato per la scalabilità. Invece di scambiare dati utilizzando il bus di campo (seriale), utilizza Ethernet (IEEE802.3) come supporto. È incluso come parte di IEC-61158 e IEC-61784. Inizialmente utilizzava pacchetti TCP/IP standard.
ProfiNet ha come punto di forza il fornire dati con vincoli di tempo ristretti. Esso utilizza standard IT come TCP/IP e XML per comunicare, configurare e diagnosticare macchine e dispositivi. Può funzionare fino a 100 Mbit/s su cavi a doppino intrecciato o fibra ottica.
ProfiNet NON è Profibus su Ethernet, ma sono compatibili con l'uso di specifici proxy per collegarli.
ProfiNet ha due classi di funzioni:
ProfiNet I/O (input/output)
ProfiNet CBA (automazione basata su componenti)
Collega i dispositivi di campo distribuiti e utilizza comunicazioni real-time (RT) e standard (TCP/IP).
Il canale real-time (RT) viene utilizzato per dati critici che richiedono tempi di scambio ridottissimi, come dati di processo ciclici, allarmi e monitoraggio delle comunicazioni ed è in grado di eseguire cicli di 10 ms.
Il canale standard viene utilizzato per il download di configurazione e parametri, diagnostica, informazioni sulla gestione del dispositivo e altre comunicazioni non critiche con tempi di scambio nell'intervallo di 100 ms.
Appartenente sempre alla famiglia I/O esiste poi il ProfiNet IRT (Isochronous Real-Time), che viene utilizzato nei sistemi di azionamento con tempi di ciclo inferiori a 1 ms. Poiché ProfiNet IRT è una tecnologia Layer 2 basata su hardware non è instradabile.
Profibus I/O utilizza le porte TCP/UDP numero 34962, 34963 e 34964.
E' progettato per applicazioni di automazione industriale distribuita. ProfiNet CBA è basato sullo standard DCOM (Distributed Component Model) e RPC (Remote procedure Call). Questo significa anche che ne eredita quindi le vulnerabilità di DCOM e RPC.
ProfiNet CBA utilizza la porta standard TCP numero 135.
Come molti protocolli OT/ICS, anche Profibus DP manca di autenticazione. Ciò significa che qualsiasi nodo può falsificare un nodo master. Poiché solo quest'ultimo può controllare gli slave, questa è una delle maggiori vulnerabilità del sistema. Un nodo master contraffatto sarebbe in grado di acquisire il token, interrompere le funzioni del nodo e persino causare un Denial of Service (DoS). Dal momento che la maggior parte dei nodi master in una rete Profibus DP sono collegati a una rete Ethernet, questo li rende sensibili a quasi tipo di attacco basato su Ethernet.
La stessa cosa vale per ProfiNet. Poiché esistono diverse tecnologie in questa suite il rischio dipende da quella utilizzata. Fa eccezione, almeno in parte, il protocollo ProfiNet IRT che utilizza indirizzi non instradabili e quindi risulta immune alle vulnerabilità IP.
Lo scopo di questo articolo è unicamente didattico e informativo. Ogni azione non autorizzata verso qualunque sistema di controllo presente su una rete pubblica o privata è illegale! Le informazioni contenute in questo ed altri articoli hanno lo scopo di far comprendere quanto sia necessario migliorare i sistemi di difesa, e non di fornire strumenti per effettuarne l'attacco. Violare un sistema informatico è perseguibile penalmente e può causare gravi danni a cose e persone, in modo particolare se si parla di ICS. Tutti i test che vengono illustrati nei tutorials sono stati effettuati in laboratori isolati, sicuri, o autorizzati dal produttore.
Stay safe, stay free.