6.4 Conclusione
7.1.2 Falsificazione del CRC
In questa analisi sperimentale si vuole simulare, mediante la falsificazione del CRC, l’errore di comunicazione Corruption (si veda la Figura 3.5 di pag. 31), relativo alla corruzione del contenuto di un messaggio.
La falsificazione del CRC può essere simulata modificando arbitrariamente uno o più dei campi SID, consecutive number e lo stesso CRC, di un frame sniffato durante la comunicazione fra i dispositivi e iniettandolo nella rete.
Dal momento che la struttura interna del messaggio safe è ridondata, verranno distinti due casi: nel primo, chiamato parziale falsificazione, verrà modificato, in-direttamente o in-direttamente, soltanto il CRC di una delle due ripetizioni mentre nel secondo, chiamato totale falsificazione quelli di entrambe.
116 7. Analisi sperimentale dei meccanismi di protezione del black channel ATTACCO
Frame CDC SPDO corrotto
MITTENTE : scheda eth0 PC DESTINATARIO : PSSu I/O
H VER LGTH PID L SAFE DATA1 SID 1 C.N CRC 160 01 00 18 00 00 14 18 D8 02 01 00 01 24 91 41 70 51 SAFE DATA2 SID 2 C.N. CRC 2 D8 02 01 00 01 24 91 41 70 51
Frame CDC SPDO corrotto
MITTENTE : scheda eth0 PC DESTINATARIO : PSSu I/O
H VER LGTH PID L SAFE DATA1 SID 1 C.N CRC 160 01 00 18 00 00 14 18 D8 02 01 XX XX XX XX XX XX XX
SAFE DATA2 SID 2 C.N. CRC 2
D8 02 01 YY YY YY YY YY YY YY
Figura 7.5: frame utilizzato per la falsificazione del CRC
Per questa analisi, facendo riferimento alla configurazione dell’apparato speri-mentale di Figura 7.1, è stata sniffata la comunicazione del sistema da cui è stato estratto un unico frame utilizzato dal PSSu PLC per comunicare al nodo PSSu I/O i dati di processo safe. Successivamente, tale frame, la cui struttura è ripor-tata in Figura 7.5, è stato modificato in base al caso da simulare e inoltrato nella rete. Mediante packETH, sono stati, inoltre, aggiornati gli indirizzi IP e MAC del mittente del frame, inserendo quelli relativi alla scheda di rete eth0 nell’Ethernet Header.
Totale falsificazione
Il frame sniffato durante lo svolgimento della comunicazione è stato corrotto me-diante la modifica del CRC relativo a entrambe le repliche, indicate in Figura 7.5 con XX e YY, che sono presenti affiancate all’interno del messaggio safe. La modi-fica di anche uno solo dei campi di queste ripetizioni altera il CRC in quanto non è più coerente con i dati su cui è calcolato. Da ulteriori analisi si è provato che il risultato ottenuto modificando singolarmente i campi SID, consecutive number, CRC o combinazioni di essi, è lo stesso in qualsiasi caso.
In seguito all’iniezione del frame corrotto, con i campi modificati in modo che il CRC delle due repliche sia errato, lo stato dei dispositivi è rappresentato in Figura 7.6. PSSu I/O LED Colore - verde rosso MBUS # SDCARD # DIAG # ST SNp # FS SNp # out1 FS # out2 ST # PSSu PLC LED Colore - verde rosso MBUS # SDCARD # DIAG # ST SNp # FS SNp # FS RUN #
Figura 7.6: stato dei LED dei dispositivi dopo iniezione frame corrotto
Come si può notare, lo stato dei LED e dei dispositivi è restato inalterato rispetto alla normale condizione di comunicazione; le due tipologie di uscite restano attive e i LED di stato non lampeggiano ne vengono spenti, ad indicare che non è stato rilevato alcun errore sulla rete.
Da ulteriori prove sperimentali, qui brevemente descritte, si è constatato come il valore del PID di un messaggio sia un fattore discriminante la validità o meno del frame ricevuto. Ad esempio, se al dispositivo PSSu I/O, che utilizza il PID 0x00 00 14 per ricevere il dato safe, viene inviato un frame corrotto per falsificazione del consecutive number utilizzando un PID diverso, esso non verrà considerato perchè associato ad un PID che non riguarda i dati da lui sottoscritti. Nel caso in analisi, la presenza di entrambi i CRC sbagliati non permette di discriminare in quale dei campi, su cui essi sono calcolati (PID, len, safe data, SID e consecutive number ), si sia verificato l’errore. Potendo essere sbagliato anche il PID, il frame corrotto non viene considerato. Dall’analisi del valore del consecutive number dei frame ricevuti immediatamente dopo il dispositivo sarà eventualmente portato nello stato failsafe se si riscontrerà di aver tralasciato dei dati destinati a tale nodo. In questo modo, la segnalazione di un errore di corruption è tutelata dal consecutive number, che provvede a verificare la correttezza della decisione effettuata.
Parziale falsificazione
A differenza del caso precedente, il frame sniffato durante lo svolgimento della comunicazione è stato corrotto mediante la modifica del CRC relativo ad una soltanto delle repliche di contromisure che sono affiancate all’interno del messaggio safe, indicate in Figura 7.5 con XX e YY. La modifica di anche uno solo dei campi di questa ripetizione altera il CRC in quanto non è più coerente con i dati su cui è calcolato. Da ulteriori analisi si è provato che il risultato ottenuto modificando singolarmente i campi SID, consecutive number, CRC o combinazioni di essi, è lo stesso in qualsiasi caso. Questo perchè non è possibile capire quale sia quello alterato ma solo determinare la presenza di un errore sull’integrità dei dati.
Lo stato dei dispositivi in seguito all’iniezione del frame corrotto, con i cam-pi modificati in modo che il CRC di una sola delle due repliche sia errato, è rappresentato in Figura 7.7. PSSu I/O LED Colore - verde rosso MBUS G# SDCARD # DIAG G# ST SNp # FS SNp G# out1 FS out2 ST PSSu PLC LED Colore - verde rosso MBUS # SDCARD # DIAG G# ST SNp # FS SNp # FS RUN #
Figura 7.7: stato dei LED dei dispositivi dopo iniezione frame corrotto
A differenza del caso di falsificazione del consecutive number, in entrambi i di-spositivi viene generato un errore interno che disabilita non solo le uscite safe ma anche quelle standard. Questo errore interno è espresso dallo stato rosso lampeg-giante dei LED MBUS, DIAG e FS SNp. Essi indicano rispettivamente la presenza di un grave errore in stato di stop nel bus del modulo FS, che almeno una parte
118 7. Analisi sperimentale dei meccanismi di protezione del black channel
del sistema FS è interessata da un messaggio di errore grave e che il collegamento FS a SafetyNET p ha un grave errore FS e ST ed è in stato di stop.
Il dispositivo PSSu I/O, che presenta tutti questi LED rossi lampeggianti, è stato portato nello stato di stop mentre il PSSu PLC è mantenuto nello stato operativo perchè i LED FS RUN, ST RUN e MBUS sono verdi ed è alterato solo il DIAG per comunicare che l’invio dei dati non può essere correttamente effettuato, dato che uno dei dispositivi della rete è in stop.
In base alla replica in cui viene falsificato il CRC, i LED dei dispositivi impiega-no un tempo differente per cambiare lo stato del DIAG e FS SNp mentre nel impiega-nodo PSSu I/O, appena inviato il frame, l’MBUS diventa subito rosso lampeggiante ed entrambe le uscite vengono disabilitate. In particolare, nel caso in cui vengano modificati i valori della prima doppietta, contrassegnata con XX, si è verificato che i LED impiegano circa 2 minuti per cambiare di stato mentre modificando quelli contrassegnati con YY impiegano circa 20 secondi. Il risultato fondamentale è che, in entrambi i casi, vengano spente tutte le tipologie di uscite mediante la disabilitazione dell’MBUS del dispositivo PSSu I/O.