Hacking: Pentest con un PLC
Last updated
Last updated
La protezione di un ambiente ICS, inclusi i PLC, non è banale, poiché questi sistemi non sono progettati per essere resistenti ad attacchi cyber. Ciò significa che bisogna in qualche modo integrare le misure di resilienza della cybersicurezza all'interno e intorno all'ICS. Tali misure includono, ad esempio:
la difesa perimetrale come i firewall per ridurre il rischio di traffico di rete indesiderato;
il monitoraggio della rete e preferibilmente di tipo non intrusivo, specifico per ICS, basato su anomalie in modo da non creare alcun carico aggiuntivo sulle reti ICS;
ultimo ma non meno importante, la protezione e il monitoraggio degli endpoint per ridurre l'esposizione dei PLC agli attacchi tramite connessioni remote.
Ma un altro aspetto molto importante è identificare e comprendere i rischi. Quali sono le superfici di attacco, i metodi attuati, le vulnerabilità e le potenziali conseguenze? Inoltre, è importante valutare e rivalutare continuamente la probabilità di potenziali attacchi.
Un metodo per ottenere informazioni dettagliate sull'esposizione al rischio è il test di penetrazione, il cui l'obiettivo è identificare i vettori di attacco e simulare un vero e proprio attacco al sistema, controllato e consapevole. Tuttavia, i test di penetrazione in un ambiente ICS richiedono un approccio attento significativamente diverso rispetto alle tecniche di test di penetrazione standard per i sistemi IT. I sistemi ICS contengono apparecchiature delicate, come i PLC, dodate di un'unità di elaborazione sensibile, che può causare congelamenti, ripristini della configurazione e guasti se sollecitati a causa della bassa gestione dello stack.
Test di penetrazione standard come una semplice scansione delle porte eseguita da strumenti come Nmap potrebbero essere sufficienti per sovraccaricare l'unità di elaborazione. A causa della debole gestione dello stack di rete, alcuni dispositivi non sono in grado di sopportare il numero di pacchetti di rete generati da Nmap e strumenti simili. Pertanto, è consigliabile non eseguire test di penetrazione in un ambiente ICS live, ma eseguirli solo in un ambiente di laboratorio controllato o durante fermi macchina programmati.
Ci sono molte metodologie di test di penetrazione tra cui scegliere, anche se poche su misura per ICS. Una metodologia compatibile con ICS è la metodologia "zero entry" per i test di penetrazione. Essa comprende quattro fasi: reconnaissance, scanning, exploitation e post-exploitation.
Il post-exploitation potrebbe comportare il mantenimento dell'accesso al sistema, che è ciò che fa un APT quando stabilisce un percorso per la comunicazione del centro di controllo e comando, che viene utilizzato per inviare informazioni di intelligence sul sistema di destinazione e per caricare nuovi exploit/malware. Inoltre, coprire le tracce per nascondere i passi dell'attacco rappresenta il quinto step.
La reconnaissance si concentra sulla raccolta di informazioni sulla destinazione, come ad esempio l'indirizzo IP e i record DNS (Domain Name System) e la lettura delle vulnerabilità comuni per i PLC di destinazione. Lo scanning prevede la scansione attiva del target alla ricerca di porte aperte, il rilevamento del sistema operativo e l'esecuzione dei servizi.
Nmap, incluso Nmap Script Engine (NSE), è un esempio di uno strumento che viene spesso utilizzato per la scansione. Nel caso in cui venga rilevata una vulnerabilità, la fase di attacco passa all'exploitation. Nella maggior parte dei casi, tali vulnerabilità vengono utilizzate per ottenere l'accesso al sistema attraverso diversi servizi in esecuzione sul PLC. Dopo aver sfruttaSploitkitto la vulnerabilità, è preferibile rendere persistente l'accesso. Tuttavia, non tutti i servizi offrono l'opportunità di creare una backdoor persistente.
Per molti PLC, è possibile estrarre dettagli sul sistema usando una scansione Nmap controllata verso il PLC stesso. Questo deve essere eseguito con cura per evitare di interromperne il funzionamento. Abbiamo una configurazione di laboratorio in cui eseguiamo test di penetrazione controllata su PLC e altre apparecchiature ICS, appartenenti a diversi produttori al fine di avere un campione rappresentativo di quanto presente sul mercato.
In uno dei test di penetrazione la scansione Nmap con l'uso di script in Nmap Script Engine (NSE) ha rivelato l'indirizzo MAC, le informazioni hardware e firmware, le porte aperte 80, 102 e 443 e altro ancora. Queste informazioni dettagliate possono essere utilizzate per sviluppare exploit e indagare le vulnerabilità verso le serie PLC specifiche.
Molte di queste vulnerabilità sono segnalate e discusse nel National Vulnerability Database. Sfruttando la loro presenza in molti casi è possibile decifrare la password e ottenere l'accesso al PLC (e spegnerlo).
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.