Még a nyáron futottam bele Sarah Fluchs cikkébe a medium.com-on, amiben a szerző arról ír, hogy a PLC programozás során is meg kell honosítani a biztonságos fejlesztési gyakorlatot.
Ahogy Sarah is ír erről, a PLC programozással foglalkozók az első, tapogatózó biztonsági kérdésekre még nagyon magabiztosan szokták azt válaszolni, hogy ők aztán nem programoznak, de ahogy tovább folyik a beszélgetés, viszonylag gyorsan eljut társalgás oda, hogy PLC-ket azért programoznak és időnként el is bizonytalanodnak, hogy vajon a PLC programozás számít-e?
A válasz egyértelmú igen, de tudomásul kell venni, hogy az IT programozás egészen más környezetben fejlődött azzá, amit ma ismerünk. Lévén az IT hálózatok már hosszú évtizedek óta egyre meghatározóbbak az IT fejlesztők gondolkodását és fejlesztési gyakorlatait illetően, ez pedig azt is magával hozta (kb. a 2000-es évektől egyre gyorsuló ütemben), hogy az IT fejlesztők (akár tetszett nekik, akár nem) szépen lassan hozzászoktak a biztonságos(abb) fejlesztési módszertanok alkalmazásához.
Ezzel szemben a PLC programozás nagyon eltérő prioritások mentén fejlődött azzá, ami ma. A PLC működése során a legfontosabb prioritás (a safety biztosítása mellett) a valós idejű műveletek elvégzésének megbízható garantálása (ez ugye az OT/ICS biztonsági célok közül a másik a safety mellett, amire korábban már hivatkoztunk a CIA-hármason túl, vagyis a reliability). Ráadásul nagyon sokáig (igazából az elmúlt 8-10 évet nem számolva) a PLC-k jellemzően nem vagy nem igazán kommunikáltak IP hálózatokon, az I/O moduljaikon, néhány környező PLC-n és a folyamatirányító rendszereiken kívül mással jellemzően nem volt kapcsolatuk (ez az a történelmi alap, amire az OT/ICS mérnökök mind a mai napig gyakran hivatkoznak, amikor amellett érvelnek, hogy a kiberbiztonsági kérdések miért is nem vonatkoznak az általuk üzemeltetett rendszerekre - épp csak azt felejtik el vagy arról nem tudnak, hogy a rendszereik és berendezéseik egyre inkább részei egy IP hálózatnak, jobb esetben megfelelő logikai szeparáltság mellett, rosszabb esetben a vállalat ügyviteli hálózatából, legrosszabb esetben pedig külső hálózatokból és az Internetről is elérhető módon működnek).
A cikk két hibás feltételezést is megcáfol:
1. A PLC-k esetén nincs szükség biztonságos fejlesztési eljárásokra
2. A PLC programozásra nem lehet alkalmazni a biztonságos fejlesztés eljárásokat
A PLC-k működési sajátosságai adnak néhány olyan pluszt a biztonságos PLC programozáshoz, amire elsőre nem is gondolna az ember. Ezeket és néhány példát is a cikkben lehet megtalálni: https://medium.com/swlh/the-top-20-secure-plc-coding-practices-project-32729f6d4814