Matek Kamilló, a KPMG CyberLab csapatának senior etikus hackere, a nemzetközi sztenderdnek számító CVSS módszertan szerint 1-től 10-es skálán, 9.8 súlyosságúra értékelt sérülékenységet publikált a Pandora FMS nevű monitorozó rendszerben. 

A sérülékenység besorolását egy nemzetközi szervezet (MITRE) végzi, aminek fő feladata egy sérülékenységi adatbázis (NVD) karbantartása, a feltárt sérülékenységek elemzése és publikálása. Ez az adatbázis mindenki számára hozzáférhető, így a biztonsági szakemberek – de akár laikusok is – ellenőrizni tudják, hogy az általuk használt szoftverek mennyire biztonságosak. A szakemberek nagyon sok hibát bejelentenek ezen a felületen, így a nemzetközileg elterjedt informatikai rendszerek biztonságossága átláthatóvá válik, erősödik a minőségi verseny, amivel minden felhasználó jól jár. 

Az átláthatóság érdekében a MITRE feladatához tartozik a hibák súlyosságának besorolása és ennek publikálása is, ami egy 1-10-es skálán történik. A sérülékenység súlyosságának megállapításához a legfontosabb szempont, hogy a sérülékenységet kihasználva a támadó milyen mértékben tudja befolyásolni a rendszer működését, a tárolt adatokat és az elérhetőséget. A Pandora FMS egy nemzetközi szinten is jegyzett monitorozó szoftver, amit számos multinacionális vállalat is használ, de több kormányzati rendszeren is futtatják szerte a világban.

A rosszul védett vendégkönyv

Egy nagy szervezet rengeteg számítógéppel és szolgáltatással rendelkezik, ezek üzemeltetése és felügyelete hatalmas feladat, ami csak valamilyen monitorozó rendszerrel lehetséges. Utóbbiakat és azok funkcióit úgy kell elképzelni, mint egy atomerőmű vezérlőközpontját. Egy központi felület valós időben mutatja az adott szervezet rendszereinek, szolgáltatásainak és szoftvereinek állapotát, riasztást ad a rendkívüli eseményekről. Ez lehet hardware meghibásodás, szoftveres probléma vagy akár biztonsági incidens is, a lényeg, hogy az üzemeltető személyzet értesül róla, és lefutnak az automatikus védelmi intézkedések. Ha ez nem elég, akkor az informatikai személyzet alkalmazza az adott helyzetre előre definiált lépéssorozatot, megkezdi a probléma javítását és az okok felderítését.

A monitorozó rendszerek természetes módon hozzáférnek a felügyelt rendszerekhez és rengeteg érzékeny információt tartalmazhatnak, például belépési adatokat, hálózati információkat, biztonsági beállításokat. Egy hacker számára ezek az információk kulcsfontosságúak lehetnek, és sok esetben a monitorozó rendszer tartalma maga a „kulcs az egész szervezet rendszereihez”.

Ilyen rendszer a Pandora FMS is, amelyen a magyar hacker több, kisebb-nagyobb sérülékenység együttes felhasználásával, úgynevezett hibalánc alkalmazásával ütött rést.

Az alaphiba egy Cross Site Scripting, röviden XSS volt. Ennek lényege, hogy a rendszer bizonyos esetekben nem ellenőrzi megfelelően a felhasználótól érkező beviteli adatokat és megbízható szűrés nélkül elmenti őket az adatbázisba. Ilyenkor előfordulhat, hogy egy felhasználó nem egy másiknak szóló üzenetet helyez el egy chat-ben, hanem egy programkódot, amit a másik felhasználó böngészője gond nélkül lefuttat.

Képzeljünk el egy rosszul védett vendégkönyvet, amibe valaki a kiszolgálás értékelése helyett kártékony kódot helyez el! A többi vendég, és a rendszer üzemeltetője rendszeresen megnyitják az oldalt, és a gépük máris futtatja a kódot. Ez történt a Pandora FMS esetében is. A hacker egy alapszintű hozzáféréssel a „visual console” definiálásához használt beviteli mezőjében helyezte el a JavaScript nyelven írt kártékony kódot. Fontos, hogy ez az egyetlen lépés, amit maga a támadó hajt végre, minden más automatikusan történik.

Bármit megcsinálni, bármihez hozzáférni

A Pandora esetében a kódot egy a Visual Console event felületén helyezte el a hacker, és már csak várnia kellett, hogy ezt a felületet webes admin jogosultsággal rendelkező felhasználó megnyissa, ami a „visual console” esetében gyakran megtörténik. A megnyitással a támadó által elhelyezett kód figyelmeztetés nélkül letöltődött és lefutott, mégpedig az admin felhasználó nevében és az admin felhasználó böngészőjében. Ez a támadás szépsége: a támadó jó eséllyel rejtve marad, hiszen kívülről nézve egy arra jogosult személy végzett műveleteket a rendszerben.

Az XSS igazi erőssége a következő lépésben mutatkozik meg. A támadó kódja most már webes adminisztrátori funkciókhoz is hozzáfér, nem csak felhasználói funkciókhoz. Amit egy admin felhasználó képes a böngészőjével elvégezni, azt a JavaScript kód is képes megtenni. Ha az adminisztrátori fájlfeltöltő funkció hibát és sérülékenységet tartalmaz – itt kezdődik a hibák láncba szervezése – akkor a JavaScript kód kihasználhatja ezeket a hibákat, sérülékenységeket is. Jelen esetben feltöltött és lefuttatott egy PHP nyelven írt újabb támadó kódot. Ez a kód már a kiszolgáló infrastruktúrán, a webszerveren fut, és végső lépésként parancssori hozzáférést biztosít a támadónak.

A parancssori hozzáféréssel a támadó tetszőleges műveletet hajthat végre a kiszolgáló infrastruktúrán, hozzáfér az adatbázishoz, a kapcsolati adatokhoz és a szerveren található érzékeny információkhoz. A hozzáférés birtokában a támadó műveleteket hajthat végre a rendszerben, módosíthatja és manipulálhatja a felügyelt rendszereket, védelmi intézkedéseket.

Gyors javítás

Az etikus hacker a forráskódot saját maga által készített eszközökkel vizsgálva fedezte fel a különböző sérülékenységeket. Ezeket összekötve és együtt kihasználva szerzett egyre magasabb hozzáférést a környezetben. A sérülékenységeket etikus hacker lévén bejelentette a szoftver gyártójának és a MITRE-nek is. Ezzel egy időben elküldte az analizáláshoz és javításhoz szükséges technikai információkat a gyártónak, egy példa támadó kódot (Proof Of Concept), valamint egy demonstrációs videót is. A gyártó a sérülékenységeket megvizsgálta és kijavította. A javítások publikálása után, a hacker nyilvánosságra hozta a sérülékenységeket a saját honlapján, a MITRE pedig publikálta és megvizsgálta a bejelentést, amit 9.8-as súlyosságúnak, azaz kritikus besorolású sérülékenységnek minősített. 

A legtöbb szoftveren sajnálatos módon egyáltalán nem végeznek biztonsági forráskód vizsgálatokat. Ha végeznek is, a forráskód vizsgálatát csak automata eszközökkel végzik el, mert az viszonylag gyors és olcsó. Ezek az eszközök azonban – bár számos sérülékenységet és hibát feltárnak – nem képesek pótolni az emberi hozzáértést. Olyan ez, mint a helyesírás ellenőrző, vagy a fordítóprogramok: a rosszul leírt szavakat kiszúrják, a lefordított szavakat több-kevesebb sikerrel egymás mellé rakják, de ma még így sem születnek nyelvtanilag hibátlan, stilisztikailag vagy akár tartalmilag kifogásolhatatlan szövegek.

A Pandora FMS szoftvere nyílt forráskódú és több alkalommal egymástól függetlenül végeztek rajta forráskód elemzést, ennek ellenére egyes feltárt biztonsági hiányosságok hosszú évek óta megtalálhatók voltak a rendszerben, és ilyenek összekötése tette lehetővé a magyar etikus hacker számára is a hozzáférés megszerzését.

Névjegy

Matek Kamilló 36 éves, az ELTE-n végzett programtervező informatikusként. Később elvégezte az Etikus Hacker képzést (KCEH), majd autodidakta módon tovább képezte magát. Igy magáénak tudhatja a nemzetközileg elismert OSWP, OSCP, OSWE tanúsítványokat is. Van, aki matchboxokat gyűjt vagy sorozatokat néz, ő szabadidejében is rendszereket vizsgál és támadó kódokat készít. Az elmúlt pár évben ezzel együtt 11 db, a MITRE által elfogadott, közepes, magas, vagy kritikus besorolású sérülékenységet tárt fel.

Kamilló 2020-ban csatlakozott a KPMG CyberLab csapatához, ahol sérülékenységvizsgálatokat, penetrációs teszteket, forráskód elemzéseket, phising kampányokat, illetve ezekkel kapcsolatos tevékenységeket végez.