Vissza a blogba

Az Ansible használata a SCADA-szerverek ellenőrzött módosításaihoz

Az Ansible segítségével szabványosíthatja a SCADA-szervereken végzett módosításokat anélkül, hogy növelné az OT-kockázatot. Ez az útmutató a leltárakat, az idempotens playbookokat, a fokozatos tesz...

Az Ansible szabványosíthatja az ismételhető módosításokat a SCADA-alkalmazáskiszolgálókon, a történetadatbázis-kiszolgálókon, a mérnöki munkaállomásokon és a támogató hálózati eszközökön. Nem szabad úgy tekinteni rá, mint ami felhatalmazást ad a vezérlési eszközök korlátozás nélküli automatizálására. A mérnöki feladat annak meghatározása, hogy mi, hol és hogyan módosítható, valamint hogy a telephely miként tudja igazolni az eredményt.

Ez az útmutató a SCADA-rendszer környezetében végrehajtott, ellenőrzött infrastruktúra-módosításokra összpontosít. Nem javasolja a PLC-logika lecserélését vagy az üzemi eljárások megkerülését. A legbiztonságosabb kiindulópont általában egy tesztkörnyezet és egy szűk körű, szerveroldali feladat.

Az Ansible helye az OT-architektúrában

Az Ansible leltárakat használ a kezelt gépek azonosítására, a playbookok pedig a kívánt feladatokat írják le. A hivatalos Ansible-leltár útmutató ismerteti, hogyan határozzák meg a gépek, csoportok és változók az automatizálási célpontokat.

Egy ipari telephelyen ezek a célpontok lehetnek SCADA-kiszolgálók, ugrógépek, javítási tárházak, biztonsági mentési kiszolgálók és kezelt hálózati berendezések. A PLC-k és a biztonsági rendszerek külön felülvizsgálatot igényelnek. A gyártói támogatás, a protokollok működése és a módosításkezelés eltér a szokásos szerveradminisztrációtól.

A gyakorlatban az Ansible vezérlőcsomópontját kezelt zónában kell elhelyezni. Nem rendelkezhet korlátozás nélküli eléréssel a teljes vezérlőhálózathoz. A tűzfalszabályoknak, a névvel rendelkező fiókoknak és a jóváhagyott hitelesítő adatoknak minden playbookot a rendeltetése szerinti rendszerekre kell korlátozniuk.

A szélesebb architektúrát áttekintő olvasók a PLC ProTech Tudástárát és a Kommunikáció és hálózatépítés gyűjteményét használhatják a kapcsolódó vezérlési és hálózati háttér megismeréséhez.

Kezdje szűk körű, visszafordítható felhasználási esettel

A jó első feladatok egyértelmű bemenetekkel és egyszerű visszaállítással rendelkeznek. Ilyen például egy ellenőrzött konfigurációs fájl másolása, egy szolgáltatás állapotának ellenőrzése, verzióadatok begyűjtése vagy egy biztonsági mentés meglétének megerősítése.

Ne firmware-frissítéssel, vezérlőletöltéssel, biztonsági konfigurációval vagy kiterjedt tűzfalmódosításokkal kezdjen. Ezek a tevékenységek megváltoztathatják az üzemi működést. Emellett erősebb gyártói alátámasztást és a telephelyre jellemző tesztelést igényelnek.

Minden feladathoz határozza meg a várt állapotot, mielőtt megírná a playbookot. Rögzítse, hogy mely fájlok, szolgáltatások, portok, fiókok és függőségek érintettek. Határozza meg azt is, hogy minek kell változatlannak maradnia.

Válassza külön a leltárt funkció és kockázat szerint

Ne helyezze az összes OT-gépet egyetlen, megkülönböztetés nélküli leltárba. Csoportosítsa a rendszereket telephely, funkció, környezet és következmény szerint. A fejlesztési SCADA-kiszolgálók célzási mintája ne legyen azonos az éles kiszolgálókéval.

Használjon kifejezett gépcsoportokat minden jóváhagyott módosítási időablakhoz. A gépváltozókat verziókezelés alatt kell tartani. A leltár módosításait ugyanolyan gondossággal vizsgálja felül, mint a playbookok módosításait. Egy helyes feladat is hibának számít, ha rossz gépre küldik.

A dinamikus leltár hasznos lehet, de újabb adatforrást vezet be. A mérnököknek meg kell erősíteniük, hogyan kerülnek a gépek a leltárba, illetve hogyan kerülnek ki onnan. Egy elavult eszköznyilvántartás az automatizálást kivont vagy újrahasznosított berendezések felé irányíthatja.

Tervezzen idempotens playbookokat

Az idempotens feladat minden futtatáskor eléri a szükséges állapotot anélkül, hogy szükségtelen módosításokat végezne. Ez átláthatóbbá teszi az ismételt végrehajtást, és csökkenti a felesleges újraindításokat.

Használjon célplatformra készült modulokat, ha azok támogatják a kívánt rendszert. A parancsértelmező-parancsok elrejthetik a mellékhatásokat, és kétértelmű eredményeket adhatnak. Ha egy parancs elkerülhetetlen, határozza meg a feltételeit, az elfogadott visszatérési kódokat és a visszaállítás módját.

A kezelők csak akkor indítsák újra a szolgáltatásokat, ha a kapcsolódó konfiguráció módosult. A soros végrehajtás korlátozhatja az érintett csomópontok számát. A kis kötegméret a megfigyelést és a visszaállítást is kezelhetőbbé teszi.

Éles végrehajtás előtt ellenőrizzen

A szintaktikai ellenőrzés kiszűri a szerkezeti hibákat, de nem bizonyítja, hogy egy módosítás biztonságos. Az Ansible ellenőrzési módja szimulálja a támogatott feladatokat, míg a különbségmód megjelenítheti a javasolt fájlmódosításokat. A hivatalos ellenőrzési és különbségmód-dokumentáció azok korlátait is ismerteti.

Egyes modulok nem támogatják teljes mértékben az ellenőrzési módot. A regisztrált változók és a feltételes feladatok szimuláció közben eltérően viselkedhetnek. A különbségkimenet titkokat is felfedhet. Ezeket az eszközöket egy átfogóbb tesztelési folyamat részeként kezelje.

Először egy reprezentatív tesztgépen futtassa a playbookot. Ezután használjon korlátozott éles próbagépet vagy próbacsoportot. Az érintett célcsoport bővítése előtt ellenőrizze az alkalmazás állapotát, a riasztásokat, a kommunikációt, a történetadatok gyűjtését, az időszinkronizálást és a kezelői láthatóságot.

Védje a hitelesítő adatokat és a naplókat

Minimálisan szükséges jogosultságokkal rendelkező, névhez kötött szolgáltatásfiókokat használjon. Kerülje a megosztott rendszergazdai hitelesítő adatokat. A titkokat jóváhagyott titokkezelőben tárolja, és akadályozza meg, hogy a playbook kimenete jelszavakat, tokeneket, tanúsítványokat vagy privát kulcsokat fedjen fel.

A naplóknak azonosítaniuk kell a kérelmezőt, a felülvizsgálót, a playbook verzióját, a leltárt, a kezdési időpontot, az eredményt és a módosított elemeket. A rekordokat védett helyre küldje. A vezérlőcsomóponton tárolt helyi naplók önmagukban nem elegendők, ha az adott csomópont meghibásodik.

Építse be a visszaállítást a módosításba

A visszaállításnak konkrétabbnak kell lennie annál, hogy „állítsa vissza a biztonsági mentést”. A végrehajtás előtt rögzítse a pontos fájlokat, csomagokat, szolgáltatásállapotokat és alkalmazásverziókat. A helyreállítási útvonalat egy reprezentatív rendszeren tesztelje.

Egyes módosítások éles környezetben nem állíthatók vissza biztonságosan. Gyakori példák erre az adatbázisséma-módosítások és a firmware-frissítések. Ezekhez karbantartási leállásra, gyártói útmutatásra és helyreállítási adathordozóra van szükség.

Üzemeltetési ellenőrzőlista

  • Erősítse meg a playbook felelősét, felülvizsgálóját és a jóváhagyott módosítási jegyet.
  • Korlátozza a leltárt a megnevezett gépekre és a megfelelő környezetre.
  • A végrehajtás előtt ellenőrizze a biztonsági mentéseket és a helyreállítási utasításokat.
  • Futtasson szintaktikai ellenőrzést, ellenőrzési módot és – ahol támogatott – próbát tesztgépen.
  • Használjon soros kötegeket és meghatározott leállítási feltételeket.
  • Figyelje a SCADA-szolgáltatásokat, a kommunikációt, a riasztásokat és az adatgyűjtést.
  • Archiválja a playbook verzióját, a naplókat, az eredményeket és a visszaállítás bizonyítékait.

Összegzés

Az Ansible csökkentheti a konfigurációeltéréseket és a kézi munkából eredő változatosságot a SCADA-infrastruktúra környezetében. Értékét az ismételhető bizonyítékok adják, nem az, hogy gyorsabban hajt végre több módosítást. Kezdjen korlátozott szerverfeladatokkal, különítse el a leltárakat kockázat szerint, teszteljen minden playbookot, és őrizzen meg egy kipróbált helyreállítási útvonalat.

Hozzászólás írása

Felhívjuk a figyelmedet, hogy a hozzászólásokat jóvá kell hagyni a közzétételük előtt.