Mesterséges intelligencia által vezérelt kibertámadások: Hogyan lehet felismerni, megelőzni és megvédeni az intelligens fenyegetéseket?

Olvassa el most
A helyszíni fordításokhoz mesterséges intelligenciát használunk, és bár törekszünk a pontosságra, nem biztos, hogy mindig 100%-os pontosságúak. Megértését nagyra értékeljük.

OT-rendszerek védelme távoli támadások ellen: Hogyan védi a MetaDefender OT Security™ a Micrologix™ 1400 vezérlőt a CVE-2021-22659-től?

a OPSWAT
Ossza meg ezt a bejegyzést
OPSWAT ösztöndíjprogram résztvevői

Az ipari vezérlőrendszerek és OT-környezetek védelme a távoli támadások ellen kritikusabb, mint valaha, különösen az olyan sebezhetőségek miatt, mint a CVE-2017-14469 és most a CVE-2021-22659, amelyek a Rockwell Automation széles körben használt Micrologix 1400 vezérlőjét célozzák. Az OPSWAT ösztöndíjprogram hallgatói ellenőrzött környezetben tesztelték ezt a sebezhetőséget, rávilágítva a biztonság szükségességére. 

Ebben a blogban azt vizsgáljuk meg, hogyan mutatták be a diákok, hogyan használhatják ki a támadók a sebezhetőséget a rendszerek összeomlásához, és hogyan lehet a megfelelő bemeneti érvényesítés hiányát kihasználni a PLC működésének megzavarására. 

Mi az a PLC? A Rockwell Automation Micrologix 1400 magyarázata

A PLC (programozható logikai vezérlő) egy ipari számítógép, amelyet arra terveztek, hogy automatizáljon folyamatokat a gépek és egyéb ipari műveletek vezérlésével. Kemény környezetben is működik, és úgy van programozva, hogy az érzékelő bemenete alapján meghatározott feladatokat hajtson végre. A Rockwell Automation MicroLogix 1400 vezérlője egy kompakt és moduláris PLC, amelyet általában kis és közepes méretű alkalmazásokban használnak. Költséghatékonyságáról és rugalmasságáról ismert, különböző kommunikációs protokollokat támogat, és digitális és analóg I/O lehetőségeket kínál az eszközökhöz való kapcsolódáshoz.

Egy ipari vezérlőrendszer felügyeletére használt OPSWAT készülék képe

A programozás jellemzően a Rockwell Automation szoftverével történik, létra logikán keresztül, amely lehetővé teszi a felhasználók számára, hogy vezérlési szekvenciákat hozzanak létre. A MicroLogix 1400 sokoldalú, alkalmas például gépvezérlési és folyamatautomatizálási feladatokra. Moduláris felépítése lehetővé teszi a felhasználók számára, hogy a rendszert az adott alkalmazási követelmények alapján bővítsék és testre szabják.

Bevezetés a CVE-2021-22659-be

2021 januárjában a Rockwell Automation jelentést kapott Parul Sindhwadtól és Dr. Faruk Kazitól, az indiai Veermata Jijabai Technológiai Intézet (VJTI) COE-CNDS-től a MicroLogix™ 1400 vezérlőben található sebezhetőségről. A 21.6-os és korábbi verziókban olyan biztonsági hibát azonosítottak, amely lehetővé teszi egy távoli, nem hitelesített támadó számára, hogy speciálisan kialakított Modbus csomagot küldjön, amely lehetővé teszi a támadó számára, hogy lekérje vagy módosítsa a véletlenszerű értékeket a regiszterben. Sikeres kihasználás esetén ez puffer túlcsorduláshoz vezethet, ami szolgáltatásmegtagadási állapotot eredményezhet. A FAULT LED pirosan villog, és a kommunikáció megszakadhat. A szolgáltatásmegtagadási állapotból való helyreállításhoz a felhasználónak kell törölnie a hibát. 

Az NVD ezt a biztonsági sebezhetőséget magas súlyosságúnak értékelte. 

CVSS 3.x metrikák, amelyek a NIST NVD 8,6-os magas súlyossági pontszámát mutatják.

Támadó fázisok

A PLC MicroLogix kibertámadás fázisait szemléltető ábra

Egy távoli, nem hitelesített támadó, aki hálózati hozzáféréssel rendelkezik a sebezhető MicroLogix 1400 PLC-hez, speciálisan kialakított csomagot küldhet a regiszter értékeinek módosítására. Ez potenciálisan szolgáltatásmegtagadási állapotot idézhet elő az eszközön, ami a rendszer sérüléséhez és leálláshoz vezethet. Egy ilyen incidens jelentősen megzavarhatja a gyártási műveleteket és a szervezet egyéb üzleti tevékenységeit.

Modbus protokoll

A Modicon által 1979-ben kifejlesztett Modbus protokoll egy üzenetküldő struktúra, amelyet az intelligens eszközök közötti kliens-szerver kommunikáció létrehozására terveztek. Eredetileg a Modicon PLC-kkel való használatra tervezték, de azóta az ipari elektronikus eszközök közötti kommunikáció szabványos kommunikációs protokolljává vált. 

Léteznek Modbus protokollok Ethernet (Modbus TCP) és soros vonalakhoz (Modbus RTU és Modbus ASCII). A Modbus RTU (Remote Terminal Unit) közvetlenül bináris formában továbbítja az adatokat soros kommunikáción keresztül, a Modbus TCP (Transmission Control Protocol) pedig a Modbus protokoll adatait TCP csomagokba ágyazza a TCP/IP hálózatokon történő továbbításhoz. 

A Modbus stack és az OSI rétegek összehasonlító táblázata a kommunikációs protokollok számára

Modbus üzenetszerkezet

A Modbus egy kérés-válasz protokoll, amelyben az ügyfél kérést küld a Modbus eszköznek, és az eszköz ezt követően választ ad.

Az ügyfél és a kiszolgáló közötti Modbus tranzakció kommunikációját bemutató ábra

Az elsődlegesről a másodlagosnak küldött Modbus üzenet tartalmazza a másodlagos címét, a "parancsot" (pl. "regiszter olvasása" vagy "regiszter írása"), az adatokat és egy ellenőrző összeget (LRC vagy CRC).

A Modbus RTU üzenet felépítése fejlécekkel és funkciókódokkal

Az adatcímeket a Modbus lekérdezési üzenetekben használják az adatok olvasásakor vagy módosításakor. A Modbus négy adattípust határoz meg: Bemeneti állapot, bemeneti regiszter és várakozási regiszter. Ezek közül kettő a tekercseknek és a diszkrét bemeneteknek nevezett on-off (1 bites) értékeket tárolja, kettő pedig a regisztereknek nevezett 16 bites szavakként tárolja a numerikus értékeket. Mindegyik csak olvasható vagy írható/olvasható.

AdattípusHozzáférésLeírás
TekercsÍrható-olvashatóEgybites kimenetek.
Diszkrét bemenetCsak olvashatóEgybites bemenetek.
Bemeneti regiszterCsak olvasható16 bites bemeneti regiszterek.
Holding nyilvántartásÍrható-olvasható16 bites kimeneti regiszterek.

A Modbus funkciókódoknak három kategóriája van:

  • Nyilvános funkciókódok - 1-től 127-ig, kivéve a felhasználó által meghatározott kódokat. 
  • Felhasználó által meghatározott funkciókódok - két tartományban, 65-től 72-ig és 100-tól 110-ig. 
  • Fenntartott funkciókódok - Egyes vállalatok használják a régi termékekhez, és nem állnak rendelkezésre nyilvános használatra.
Funkció típusaFunkció neveFunkció kód
AdathozzáférésBit hozzáférésFizikai diszkrét bemenetekDiszkrét bemenetek olvasása2
Belső bitek vagy fizikai tekercsek

Tekercsek olvasása

Egyetlen tekercs írása

Több tekercs írása

1

5

15

16 bites hozzáférésFizikai bemeneti regiszterekBemeneti regiszterek olvasása4
Belső regiszterek vagy fizikai kimeneti regiszterek

Több holdingregiszter olvasása

Egyetlen holding regiszter írása

Többszörös holding regiszterek írása

Több regiszter olvasása/írása

Maszk írási regiszter

Olvasási FIFO sor

3

6

16

23

22

24

Fájlrekord hozzáférés

Fájlrekord olvasása

Fájl rekord írása

20

21

Diagnosztika

Kivétel állapotának olvasása

Diagnosztikai

Com eseményszámláló lekérése 

Com eseménynapló lekérése 

Slave azonosító jelentése 

Eszközazonosítás olvasása 

7

8

11

12

17

43

EgyébKapszulázott interfész szállítás43
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Bit hozzáférés
Kategória: Fizikai diszkrét bemenetek
Funkció neve:
Funkciókód: Diszkrét bemenetek olvasása: 2
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Bit hozzáférés
Kategória: Kategória: Belső bitek vagy fizikai tekercsek
Funkció neve:
Funkció kódja: Read Coils (tekercsek olvasása): 1
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Bites hozzáférés
Kategória:
Funkció neve:Egyetlen tekercs írása
Funkciókód: : 5
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Bites hozzáférés
Kategória:
Funkció neve: Több tekercs írása
Funkció kódja: 15
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Fizikai bemeneti regiszterek
Funkció neve:
Funkció kódja: Bemeneti regiszterek olvasása: 4
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Kategória: Belső regiszterek vagy fizikai kimeneti regiszterek
Funkció neve:
Funkció kódja: Többszörös Holding regiszterek olvasása: 3
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Kategória: Belső regiszterek vagy fizikai kimeneti regiszterek
Funkció neve: Write Single Holding Register
Funkció kódja: : 6
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Kategória: Belső regiszterek vagy fizikai kimeneti regiszterek
Funkció neve: Write Multiple Holding Registers
Funkció kódja: : 16
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Kategória: Belső regiszterek vagy fizikai kimeneti regiszterek
Funkció neve:
Funkció kódja: Több regiszter olvasása/írása: 23
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória:
Funkcióneve: Mask Write Register
Funkció kódja: : 22
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: 16 bites hozzáférés
Kategória: Kategória: Belső regiszterek vagy fizikai kimeneti regiszterek
Funkció neve:
Funkció kódja: FIFO Queue olvasása: 24
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Fájlrekord-hozzáférés
Funkció neve: Fájlrekord olvasása
Funkciókód: Fájlrekord olvasása: 20
Funkció típusa:
Al-típus: Data Access Al-tí pus: Data Access Al-típus: Data Access Al-típus: Data Access: Fájlrekord-hozzáférés
Funkció neve: Fájlrekord írása
Funkciókód: 21
Funkció típusa:
Funkció neve: Diagnosztika:
Funkció kódja: Read Exception Status: 7
Funkció típusa:
Funkció neve: Diagnosztika
Funkció kódja: 8
Funkció típusa:
Funkció kódja:D iagnosztika
Funkció neve: Get Com Event Counter : 11
Funkció típusa:
Funkció kódja:D iagnosztika
Funkció neve: Com eseménynapló lekérdezése : 12
Funkció típusa:
Funkció neve: Di agnosztika:
Funkciókód: Report Slave ID : 17
Funkció tí pusa:
Funkció neve: Diagno sztika:
Funkció kódja: Read Device Identification: Read Device Ident ification Funkció kódja: Read Device Identification 43
Funkció típusa:
Funkció kódja: Egyéb
Funkció neve: Encapsulated Interface Transport : 43

Kihasználás

Sebezhetőségi elemzés

Az OPSWAT diplomás ösztöndíjasai az elemzés során felfedezték, hogy a Modbus TCP kommunikáció során a protokollból hiányzik a hitelesítés és a titkosítás a továbbított csomagok esetében. Ezenkívül a MicroLogix 1400 PLC-ben a bemeneti érvényesítés nem megfelelően van végrehajtva. Következésképpen egy távoli támadó elemezheti a Modbus TCP csomagot a csomagok szimatolásával, és a Modbus TCP protokollon keresztül hitelesítés nélkül bármilyen kérést küldhet a PLC-nek. A MicroLogix 1400 PLC eszköz bemeneti érvényesítésének hiánya miatt egy távoli hitelesített támadó nagyszámú csomagot küldhet véletlenszerű értékekkel, ami a PLC összeomlását okozhatja.

Regiszter felülírása

Kezdetben a PLC regisztereinek olvasásához vagy írásához használt Modbus TCP csomagok rögzítésére tettünk kísérletet. Ehhez megvizsgáltuk a Modbus Poll nevű alkalmazás által generált csomagokat, amely megkönnyíti a MicroLogix 1400 PLC regisztereinek olvasását és írását.

A Modbus Poll eszköz interfésze az egyes regiszterek írására szolgáló képernyőfotó

A Wireshark segítségével a hálózati interfész összes csomagjának rögzítésével azonosítani tudtuk a Modbus TCP csomagot egyetlen regiszter írásához:

Egyetlen regiszter írására szolgáló funkciókóddal ellátott Modbus tranzakciót mutató csomagfelvétel
A Modbus TCP hasznos terhelés részletes bontása, beleértve a tranzakció- és protokollazonosítókat is

A szippantott csomagok szerkezete alapján egy egyszerű Python szkriptet fejlesztettünk ki, amely TCP csomagokat küld a cél-PLC egy regiszterének írását kérve. Ebben a forgatókönyvben a PLC IP-címe 192.168.93.89.

Python kódpélda egy Modbus TCP kapcsolat kezdeményezésére és egy hasznos teher küldésére

A PLC regisztere a rosszindulatú, nem hitelesített csomagunk fogadása után megváltozott. 

A Modbus/TCP protokollt bemutató csomagfelvétel több regiszter írása funkciókóddal
Pillanatkép egy létra-logikai diagramról egy ADD funkcióblokkal a forrásértékek hozzáadásához

A Micro Logix 1400-ban a legtöbb matematikai utasítás három paramétert használ: Forrás A, Forrás B és Cél

Az A és B forrás értékei két 16 bites regiszterből származhatnak, amelyek neve N13:3 és N13:4. Továbbá, ezekben a 16 bites regiszterekben, mint például az N13:3 és N13:4, az értékek a -32,768 és +32,767 közötti tartományban vannak korlátozva. Ha az N13:3 és az N13:4 értékei nagyok, a megfeleltetési utasítás eredménye meghaladhatja az adattípus maximális tartományát, ami a PLC összeomlását okozhatja. Következésképpen a PLC összeomlásának előidézéséhez nagy véletlen értékeket kell írni az összes regiszterbe, beleértve az N13:3-at és az N13:4-et is. Ennek eléréséhez a Python szkriptünket a következőképpen módosítottuk: 

Python szkript, amely bemutatja egy Modbus TCP payload létrehozását több regiszter írásához

Szimulálja a támadást

Egy valós támadás szimulálása érdekében az OPSWAT diplomás ösztöndíjasai megpróbáltak összeomlást előidézni az OPSWAT CIP Laboratóriumában található MicroLogix 1400 PLC-ben, feltételezve, hogy a támadó és a PLC ugyanazon a hálózaton van, és képes kommunikálni egymással. 

Az OPSWAT Labs MicroLogix 1400 PLC normál működési állapotában, amikor a PLC REMOTE RUN üzemmódban van, minden regiszterérték érvényes, és az adattípusuknak megfelelő tartományba esik, ami azt jelzi, hogy a felhasználói program megfelelően működik. 

Pillanatkép az RSLogix 500 adatfájlról, amely az N13 adatértékeket mutatja tizedes formátumban

A Python szkriptünk végrehajtásakor számos Modbus TCP csomagot küldünk a PLC-nek, amelyek nagy, véletlenszerű értékek írását kérik az összes regiszterbe hitelesítés nélkül:

Csomagfelvétel, amely az ismételt Modbus TCP több regiszteres írási kéréseket mutatja

A rosszindulatú csomagkérések fogadása után az összes regiszter értékei, beleértve az N13:3 és N13:4 regisztereket is, 16,990 értékre kerülnek. Az N13:3 és N13:4 regisztereken végzett ADD művelet eredménye meghaladja a 16 bites regiszterek érvényes tartományát. Ez a probléma egész szám túlcsordulást okoz, ami hibához vezet és megszakítja a PLC működését, amit a FAULTED állapot jelez.

RSLogix 500 hibaállapot és az N13 címek adatértékeinek megjelenítése

OPSWAT diplomás ösztöndíjasaink a CVE-2021-22659 kihasználásával sikeresen megzavarták a MicroLogix 1400 PLC-t.

Helyreállítás

Pillanatkép a PLC sebezhetőségi műszerfaláról, amely a Rockwell Automation MicroLogix CVE részleteit és kritikus sebezhetőségeit mutatja.

A CVE-2021-22659-hez hasonló sebezhetőségekkel szemben az átfogó javítás kulcsfontosságú az OT és a kiberfizikai rendszerek védelme szempontjából. Az alábbiakban bemutatunk néhány kulcsfontosságú stratégiát, amelyekkel megelőzhető a támadások terjedése:

  1. Ismert CVE-k felderítése: A hálózatok rendszeres ellenőrzése a CVE-2021-22659-hez hasonló sebezhetőségek után.
  2. A rendellenes viselkedés megfigyelése: A Micrologix 1400 PLC-vel való kommunikáció szokatlan gyakoriságnövekedésének jelzése, ami egy folyamatban lévő, jogosulatlan adatátvitelre irányuló támadásra utalhat.
  3. Új eszközkapcsolatok azonosítása: A rendszernek észlelnie kell, ha egy új eszköz csatlakozik a PLC-hez. 
  4. Hálózati szegmentáció: Az érintett eszközök elkülönítése segíthet megakadályozni a támadások oldalirányú terjedését, és így minimalizálni a hatást.

Az OPSWAT MetaDefender OT Security megoldja ezeket az igényeket a CVE-k észlelésével, a hálózat szokatlan viselkedésének folyamatos megfigyelésével és a nem engedélyezett kapcsolatok azonosításával. A mesterséges intelligencia segítségével megtanulja a normál forgalmi mintákat, meghatározza az alapszintű viselkedést, és házirendeket vezet be az anomáliák riasztására. Ez lehetővé teszi az azonnali, megalapozott válaszokat a potenciális fenyegetésekre. 

A CVE-2021-22659-et kihasználó támadás esetén a MetaDefender OT Security integrálódik a MetaDefender Industrial Firewall , hogy a beállított szabályok alapján blokkolja a gyanús kommunikációt. A tűzfal a mesterséges intelligencia segítségével megtanulja a rendszeres forgalmi mintákat, és a jogosulatlan kapcsolatok megakadályozása érdekében házirendeket érvényesít. 

Ezen észlelési, riasztási és hálózati szegmentációs képességek kombinálásával a MetaDefender OT Security ideális védelmi mechanizmussá válik az ipari környezetek számára, jelentősen csökkentve a kiberfenyegetések kockázatát és hatását az operatív technológiai környezetekben.

Fedezze fel, hogy az OPSWATmélységében védekező kiberbiztonsági platformja hogyan javíthatja és fejlesztheti ki az Ön védelmi helyzetét. Beszéljen még ma egy szakértővel egy ingyenes demóért.

Maradjon naprakész az OPSWAT oldalon!

Iratkozzon fel még ma, hogy értesüljön a vállalat legfrissebb híreiről, történetekről, eseményinformációkról és sok másról.