Egy irodai IT-rendszerben a felhasználói fiók jellemzően egy emberhez tartozik, egy központi címtárban él, és távozáskor letiltják. Egy üzemi hálózatban ennél jóval vegyesebb a kép. A vezérlőn egy hozzáférési jelszó van, a HMI-n egy „operator” nevű fiók, amelyet mindhárom műszak használ, a historian egy évek óta változatlan jelszavú szolgáltatásfiókkal olvassa az adatokat, a gépsor szállítója pedig a saját fiókjával lép be karbantartáskor.
Ezek a fiókok mögött többnyire egy üzemi ok áll, és ezt az okot meg kell érteni, mielőtt bárki hozzányúl.
Honnan jönnek az OT-fiókok
Egy OT-környezet fiókjai sok forrásból gyűlnek össze, és ritkán van olyan hely, ahol mind együtt látszik:
- A vezérlők és terepi eszközök. Sok PLC nem ismer felhasználókat, csak hozzáférési szinteket (például olvasás, írás, programletöltés), szintenként egy jelszóval. Ezt a jelszót mindenki ismeri, aki a vezérlőn dolgozik.
- Az operátori panelek és a SCADA-szoftver. A HMI-alkalmazásnak saját felhasználókezelése van szerepkörökkel, alatta pedig egy asztali vagy beágyazott operációs rendszer a maga helyi fiókjaival, gyakran automatikus bejelentkezéssel.
- A mérnöki munkaállomások. A mérnöki munkaállomáson fut a programozószoftver, itt vannak a projektfájlok és sokszor a vezérlők jelszavai is, egy táblázatban vagy a projektben elmentve.
- A hálózati eszközök. Ipari kapcsolók, routerek, soros átjárók, vezeték nélküli hidak, mindegyik webes vagy parancssori felülettel és saját adminisztrátori fiókkal.
- A kiszolgálók és a címtár. Historian, adatgyűjtő, mentés, ha van, egy külön OT-tartomány. Itt élnek a szolgáltatásfiókok.
- A beszállítói eszközök. A gépsorral együtt érkező ipari PC-k, távelérési szoftverek és mobilhálózati routerek, a szállító által beállított fiókokkal.
A fiókok jellemzően a telepítéskor jönnek létre, az üzembe helyező mérnök vagy az integrátor keze nyomán, és utána senki nem nézi át őket. Egy gépsor évtizedekig is működhet, a fiókjai ennyi ideig maradhatnak érintetlenül, akkor is, ha az integrátor cég vagy a mérnök már rég nincs kapcsolatban az üzemmel.
Gyári jelszavak és beégetett hitelesítő adatok
A gyári (alapértelmezett) jelszó az, amellyel az eszköz a dobozból kikerül. Ugyanaz a típus minden példányán, és többnyire benne van a nyilvános kézikönyvben. Ha senki nem változtatja meg, az eszközre bárki be tud lépni, aki eléri a hálózaton, és tudja, mit keres. A MITRE hibakatalógusa ezt külön kategóriaként tartja nyilván (CWE-1392, Use of Default Credentials).
2023 decemberében az amerikai CISA és partnerügynökségei közös figyelmeztetést adtak ki (AA23-335A) vízügyi és más létesítményekben működő vezérlők elleni támadásokról: az internetről elérhető eszközöknél a támadók valószínűleg a gyenge, sok esetben gyári jelszót és az internetes elérhetőséget használták ki. Ugyanebben a hónapban a CISA a gyártóknak szóló Secure by Design figyelmeztetésben azt kérte, hogy a termékek ne gyári jelszóval kerüljenek forgalomba, hanem például példányonként egyedi kezdeti jelszóval vagy a telepítéskor kötelezően megadandó jelszóval.
Miért marad meg mégis a gyári jelszó? A leggyakoribb okok:
- Az üzembe helyezés határidőre megy, és a jelszócsere senkinek nem szerepel a feladatlistáján.
- A szerviztechnikus a gyári jelszóra számít, és a csere után nem tud belépni.
- Egy másik rendszer (a SCADA, egy adatgyűjtő, egy mentőszkript) a gyári jelszóval kapcsolódik, és a csere után leállna.
- Senki nem tudja biztosan, hogy a csere után az eszköz újraindul-e vagy sem, és ezt egy futó gépsoron nem akarják kipróbálni.
Beégetett hitelesítő adatok
A beégetett (hard-coded) hitelesítő adat egy lépéssel rosszabb: a firmware-be vagy a szoftverbe fordított fiók és jelszó, amelyet az üzemeltető nem tud megváltoztatni, sokszor nem is tud róla. Jellemzően gyártói szervizbelépésnek vagy két szoftverkomponens egymás közti hitelesítésének készül. A MITRE CWE-798 kategóriája (Use of Hard-coded Credentials) írja le, és rendszeresen szerepel az ipari eszközökre kiadott sebezhetőségi figyelmeztetésekben.
Ha egy ilyen adat nyilvánosságra kerül, minden példány érintett, és a javítás, ha a gyártó kiad ilyet, egy firmware-frissítés, amely egy OT-környezetben nem egyik napról a másikra történik meg. Addig kompenzáló intézkedések maradnak: az érintett szolgáltatás elérését a hálózaton csak a szükséges gépekre szűkíteni, a belépési kísérleteket figyelni, és a gyártótól megkérdezni, milyen fiókok vannak a termékben. Új eszköz beszerzésénél ez a kérdés már a beszerzési feltételek közé is bekerülhet.
Közös fiókok a műszakban: miért nehéz megszüntetni
A közös fiók az, amelyet több ember ugyanazzal a névvel és jelszóval használ. Az operátori pultnál ez a megszokott működés: a HMI egy fiókkal fut, a műszakváltáskor az új operátor átveszi a nyitott képernyőt, és senki nem jelentkezik ki.
A folyamat felügyelete nem szakadhat meg egy kijelentkezés miatt. Riasztásnál nincs idő jelszót gépelni, ráadásul kesztyűben, érintőképernyőn. Egy pultnál egymás után többen is beavatkoznak egy órán belül. A régebbi HMI-szoftverekben a felhasználóváltás lassú, vagy újraindítja a kijelzést.
A naplóban viszont az áll, hogy „operator” módosított egy alapjelet, de hogy ki volt az, csak a műszaknaplóból és emlékezetből derül ki. A jelszó minden kilépett munkatárs és minden kölcsönzött dolgozó fejében is megmarad, és a cseréje mindenkit érint, ezért ritkán történik meg. Az IEC 62443 rendszerkövetelményeket leíró része (62443-3-3, SR 1.1) a 2-es biztonsági szinttől minden emberi felhasználó egyedi azonosítását és hitelesítését kéri, ezt egy közös fiók nem teljesíti.
Ami a közös fiók helyére tehető
A megoldás ritkán az, hogy mindenkinek jelszót kell gépelnie minden kattintás előtt. Ami a gyakorlatban működik:
- Szétválasztott jogosultsági szintek. A folyamat megtekintése és a megszokott kezelőműveletek mehetnek a pult saját, korlátozott fiókjával. Az alapjel-módosítás, a recept átírása, a riasztás tiltása és a beállítási képernyők személyes bejelentkezéshez kötődnek.
- Gyors felhasználóváltás. Ahol a HMI-szoftver támogatja, a beléptetőkártya vagy egy rövid PIN a pultnál pár másodperc alatt átváltja a felhasználót, a kijelzés megszakítása nélkül.
- Időkorlát a magasabb szinten. A személyes bejelentkezés néhány perc tétlenség után visszaesik a megtekintő szintre, így a következő operátor nem a kolléga jogaival dolgozik tovább.
- Az operációs rendszer elválasztása. Az automatikusan bejelentkező helyi fiók ne legyen rendszergazda, és ne nyisson asztalt, fájlkezelőt vagy böngészőt, csak a HMI-alkalmazást.
A mérnöki munkaállomáson és a hálózati eszközökön a közös fióknak kevesebb indoka van. Itt a személyes fiók és a szerepkör szerinti jogosultság a cél, a legkisebb jogosultság elve szerint.
Beszállítói és szervizfiókok
Két, gyakran összemosott fióktípusról van szó. A szolgáltatásfiók egy programé: a historian ezzel kérdezi le a SCADA-kiszolgálót, a mentőszoftver ezzel másolja a projektfájlokat, az OPC-kiszolgáló ezzel fut. A beszállítói fiók egy külső cégé vagy szerviztechnikusé, aki karbantartáskor belép a rendszerbe.
Szolgáltatásfiókok
A szolgáltatásfiók jelszavát jellemzően a telepítéskor adják meg, beállítják, hogy soha ne járjon le, és onnantól senki nem nyúl hozzá. Gyakran a szükségesnél jóval több joga van, mert a telepítés idején így volt egyszerű: helyi rendszergazda, tartományi rendszergazda, vagy minden vezérlőre írási jog. Ha egy ilyen fiók jelszava kiszivárog, a támadó egy olyan fiókkal mozoghat, amelynek a forgalma megszokott, és amelyet senki nem figyel.
A szolgáltatásfiók jelszavának cseréje azért kockázatos, mert több helyen is be lehet írva: egy szolgáltatás beállításában, egy ütemezett feladatban, egy konfigurációs fájlban, egy másik gépen futó kliensben. Ha csak az egyik helyen frissül, az adatgyűjtés csendben leáll. Ezért a csere előtt fel kell deríteni, hol használják a fiókot, és ehhez a bejelentkezési naplók is segítenek.
Beszállítói fiókok
A beszállítói fióknál a jellemző minta, hogy a szállító egy fiókkal dolgozik az összes technikusával, sokszor minden telepítésénél ugyanazzal a jelszóval, és a fiók akkor is aktív marad, ha a szerződés már lejárt. Ehhez gyakran egy saját távelérési csatorna is tartozik: egy telepített távelérési szoftver vagy a gépszekrényben elhelyezett mobilhálózati router.
Szűkíteni itt úgy lehet, hogy minden technikus saját, név szerinti fiókot kap. A fiók alapállapotban tiltott, és csak egy jóváhagyott munkához, korlátozott időre kapcsol be, ami a just-in-time hozzáférés elve. A belépés egy közös, naplózott hozzáférési ponton át történik a beszállítónkénti külön csatornák helyett. Ennek felépítéséről a beszállítói távoli hozzáférésről szóló cikk ír részletesen. A szerződés végén vagy a technikus távozásakor a fiók megszűnik, és minden olyan jelszó cserélődik, amelyet ő ismert.
Leltár és felelős minden fiókhoz
A fiókokat csak akkor lehet szűkíteni, ha tudjuk, melyek vannak. A leltárhoz a forrásokat egyenként kell végigjárni: a címtár és a helyi fiókok listája minden munkaállomáson és kiszolgálón, a HMI- és SCADA-szoftver felhasználói, a vezérlőprojektek védelmi beállításai, a hálózati eszközök konfigurációja, a távelérési szoftverek felhasználói és a beszállítói dokumentáció. Ha van passzív hálózati megfigyelés, abból kiderül, mely gépek mely kiszolgálókhoz kapcsolódnak, és sok protokollnál az is, milyen fióknévvel.
Fiókonként érdemes legalább ezeket rögzíteni:
| Adat | Mire való |
|---|---|
| Rendszer és fióknév | Hol él a fiók: melyik vezérlőn, panelen, kiszolgálón vagy eszközön. |
| Típus | Személyes, közös, szolgáltatás-, beszállítói vagy gyári fiók. A típus határozza meg, milyen szabály vonatkozik rá. |
| Felelős | Egy név szerinti belső munkatárs, aki tudja, mire kell a fiók, és dönt a módosításáról. |
| Használók | Kik vagy mely programok használják, és honnan jelentkeznek be. |
| Jogosultság | Mit tehet a fiók: olvas, ír, programot tölt le, rendszergazda. |
| Függőségek | Hol van még beírva a jelszó, mi áll le, ha megváltozik. |
| Utolsó jelszócsere | Mikor cserélték utoljára, és cserélhető-e egyáltalán (beégetett adatnál nem). |
A legfontosabb oszlop a felelős. Egy fiók, amelyhez senki nem tartozik, nem fog megváltozni, mert senki nem meri vállalni a következményét. Ha a felmérés során nem derül ki, mire való egy fiók, az is eredmény: ez a fiók a későbbi letiltás első jelöltje, egy előre bejelentett próbaidőszak után.
A leltárral együtt a jelszavak tárolását is rendezni kell. A vezérlők és eszközök jelszavai egy hozzáférés-védett jelszókezelőbe valók, a projektfájlokba vagy egy megosztott táblázatba nem. Vészhelyzetre, amikor a hálózat vagy a jelszókezelő sem érhető el, kell egy lezárt, offline példány is, amelynek felbontását rögzítik, és felbontás után a jelszavakat cserélik.
Lépésenkénti szűkítés a termelés zavarása nélkül
Egy üzemben a fiókok rendbetétele hónapokig tartó munka, és csak úgy halad, ha egyetlen lépés sem okoz leállást. Egy lehetséges sorrend, a kockázat és a végrehajthatóság szerint:
- A kívülről elérhető eszközök. Ami az internetről vagy az irodai hálózatról elérhető (távelérési pontok, routerek, webes felületek), azon a gyári jelszó cseréje az első. Ezek cseréje általában nem érinti a folyamatot.
- A hálózati eszközök és a mérnöki munkaállomások. Itt a jelszócsere szintén ritkán hat a termelésre, a nyereség viszont nagy, mert ezekről lehet a vezérlőkhöz jutni.
- A beszállítói fiókok. Alapállapotban tiltva, név szerint, jóváhagyáshoz kötve. A szállítóval előre egyeztetve, hogy a következő szervizlátogatás már így induljon.
- A szolgáltatásfiókok. Csak a függőségek feltérképezése után, karbantartási ablakban, a fiók minden használati helyén egyszerre cserélve, és utána ellenőrizve, hogy az adatgyűjtés fut. A felesleges jogok elvétele külön lépés, nem ugyanabban az ablakban.
- A vezérlők jelszavai. A programletöltés és az írás védelmét a vezérlő gazdájával és a karbantartással egyeztetve, cellánként vagy zónánként haladva érdemes bekapcsolni vagy cserélni.
- A közös műszakfiókok. Ez a legtöbb embert érintő változás, ezért egy pulton induló próbával és a műszakok betanításával a végére marad.
Minden lépéshez tartozzon visszaállási terv. A régi jelszót a csere idejére lezárt példányban meg kell őrizni, és a csere után ellenőrizni kell, hogy minden kapcsolódó rendszer működik. Ha valami leáll, vissza lehessen állni, és a hiba okát a következő ablakig ki lehessen deríteni. A változtatás a meglévő változáskezelési folyamaton menjen át, ugyanúgy, mint egy programmódosítás.
A szűkítés eredménye akkor marad meg, ha a fiókok változásait is figyelik. Új helyi fiók egy panelen, egy beszállítói fiók belépése jóváhagyott munka nélkül, egy szolgáltatásfiók bejelentkezése olyan gépről, ahol korábban nem látszott, vagy egy gyári fióknévvel próbálkozó belépés: ezek mind kivizsgálást érdemelnek. A leltárt pedig minden új gépsornál és minden beszállítóváltásnál frissíteni kell, különben néhány év alatt visszaáll a kiinduló állapot.
Kapcsolódó szolgáltatás: Biztonságos távoli karbantartói hozzáférés →