È possibile comunicare solo con un PLC utilizzando il software associato?

3

Chiedo scusa se questo non è il forum giusto, ma sto cercando di capire l'architettura di rete SCADA e in particolare in che modo il virus Stuxnet è stato in grado di modificare la logica di controllo sui PLC. Penso che abbia usato il software STEP 7 in esecuzione su un computer collegato ai PLC per aggiornare la loro logica, mentre allo stesso tempo modifica le routine DLL per il software STEP 7 in modo che chiunque interroga la logica su detti PLC veda la logica originale. Prendo atto che per leggere la logica sul PLC il software STEP 7 deve essere in grado di leggere i blocchi di memoria e quindi 'decompilare il codice', poiché i PLC sembrano essere programmati in codice assembly (o una rappresentazione grafica di esso), e come tale è la mappatura 1-1 con il codice macchina sul PLC. Tutto questo è corretto finora?

La mia domanda principale è se sia possibile modificare la logica su un PLC senza utilizzare software di programmazione, semplicemente inviando un comando su una rete SCADA, e anche se la memoria del PLC può essere letta senza utilizzare detto software. La documentazione per il PLC Siemens S7-400 sembra suggerire che siano necessarie interazioni hardware fisiche per modificare la logica (una manopola sul PLC deve essere ruotata), così Stuxnet ha sfruttato una vulnerabilità nel software di programmazione STEP 7 di Siemens per bypassare questo o questa caratteristica è forse stata introdotta solo dopo Stuxnet come ulteriore misura di sicurezza?

Questa domanda si estende anche ad altri PLC, non solo a Siemens.

Grazie mille.

    
posta Stuxnewt 27.10.2016 - 12:53
fonte

2 risposte

3

Il libro, Hacking Exposed Industrial Control Systems: ICS e SCADA Security Secrets & Soluzioni, copre la scoperta di PLC, scansione, modifica, intrusione, malware e molto bene.

Per i PLC che si collegano a Modbus basati su TCP / IP o alle comunicazioni Step7, in particolare, il libro menziona molti modi per controllare i PLC attraverso la rete senza utilizzare le app fornite dal fornitore.

Ad esempio, con Modbus TCP, si può usare modbus-cli per controllare i PLC inclusa la lettura o la modifica della memoria (ad es. , bobine, registri). Se si desidera scoprire dispositivi Modbus TCP, è possibile utilizzare lo script Nmap NSE, modbus-discover e per condurre operazioni a livello di pacchetto usa Wireshark (o tshark) per l'acquisizione e modbus-vcr per man-in-the-middle attacchi.

Altri strumenti come plcscan scopriranno i dispositivi Modbus TCP e Step7 (s7comm). Lo s7-info script Nmap NSE fornirà ulteriori informazioni sui dispositivi s7comm trovati.

Hacking Exposed Industrial Control Systems copre anche Stuxnet in varie profondità con collegamenti a molti altri documenti come Symantec's w32-Stuxnet Dossier e BlackHat 2011 Talk di Dillon Beresford su Sfruttamento del PLC S7 . Ecco le basi che il libro riassume:

Stuxnet’s total composition consisted of three modules: one worm and two payloads. Stuxnet was traditionally introduced into an environment via a USB flash drive or external hard drive. Immediately on insertion of the infected media, Stuxnet’s worm capability laterally looked for any system with Siemens Step7 software running. Stuxnet performed this search by using techniques such as peer-to-peer RPC (https://en.wikipedia.org/wiki/Peer-to-peer) to help bypass the system’s possibility of not being Internet connected. If Step7 was not found on any laterally connected system, Stuxnet went dormant for a period of time before rescanning the environment. In the event that Step7 was identified, a combination of one or both payloads were executed.

Of the two payloads contained within Stuxnet, one attacked the Siemens S7-315-2 PLC, which was primarily being used in high-frequency drives controlling Iranian centrifuges. The other payload, which is less known, performed a Man-in-The-Middle (MiTM) attack within the PLC. The payload took any input going to the PLC’s I/O modules and faked them so any logic within the PLC worked off incorrect logic. The payload then told the PLC what to do, instead of the PLC listening to the logic on the system itself. This was the first time any known malware hid modified PLC code, making Stuxnet the first “PLC rootkit”

e su Siemens S7comms:

S7comms, or Step 7 communications, is a Siemens protocol implemented on an ISO protocol that is not open and has very tight controls. For the 200/300 families of PLCs, you can find some basic information about the protocol via a Wireshark dissector that is only partially implemented.

includendo una traccia di pacchetti di S7 in azione con Wireshark:

Illibroforniscemoltealtrerisorsechehofornitoquiinsiemeadaltreperulterioreriferimento-

risposta data 27.11.2016 - 01:14
fonte
1

La risposta breve è no, non è necessario il software ufficiale.

Per alcuni fornitori, la comunità ha sviluppato strumenti per interagire direttamente con i PLC.

Per Siemens, hai snap7 che è una libreria di comunicazione open source S7 (la piattaforma di protocollo proprietaria Step7 utilizza). Esiste anche un wrapper python ( python-snap7 ).

È quindi possibile avviare / arrestare la CPU, scaricare / caricare la logica, ecc.

I programmi che manipoli con snap7 sono blocchi di programmazione sotto forma di un bytecode chiamato mc7. Non è leggibile ma esiste una mappatura al linguaggio AWL (Statement List) simile a un assembly, che è uno dei linguaggi di programmazione presenti in Step7.

    
risposta data 27.10.2016 - 14:18
fonte

Leggi altre domande sui tag