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.

A CVE-2023-33733 sebezhetőség elemzése a MetaDefender Core

a OPSWAT
Ossza meg ezt a bejegyzést
Vezető biztonsági kutatók a CVE-2023-33733 sebezhetőségről beszélgetnek
OPSWAT ösztöndíjprogram résztvevői

A technológia gyors fejlődése nagy keresletet teremtett a képzett fejlesztők iránt. A nyílt forráskódú szoftverek (OSS) létfontosságú eszközzé váltak e növekvő munkaerő számára. Ma már több százezer jól bevált OSS csomag létezik különböző programozási nyelveken. A fejlesztők több mint 90%-a használja ezeket a nyílt forráskódú komponenseket saját fejlesztésű alkalmazásaiban, ami rávilágít az OSS hatékonyságára és értéknövelő hatására. Fontosságát tovább hangsúlyozza, hogy az OSS globális piaca 2030-ra várhatóan eléri a 80,7 milliárd dollárt, ami évi 16,7%-os növekedési ütemet jelent. 

Az OSS széles körű elterjedése azonban a komplexitás egy új rétegét is bevezeti: a biztonsági sebezhetőségeket. Az egymással összekapcsolt OSS-összetevők nagy száma szélesebb támadási felületet teremt a rosszindulatú szereplők számára. A különböző OSS-csomagok közötti függőségek kezelése összetett lehet, ami megnehezíti a sebezhetőségek gyors azonosítását és javítását. Emellett az OSS biztonsága gyakran a fejlesztői közösség éberségén és hozzájárulásán múlik. Ez a sebezhetőségek javításának késedelméhez vezethet, különösen a kevésbé népszerű projektek esetében.  

Ebben a cikkben OPSWAT diplomás ösztöndíjasai a CVE-2023-33733 biztonsági hibát vizsgálják, amelyet a népszerű nyílt forráskódú ReportLab könyvtárban fedeztek fel. Elemzésüket egy szimulált támadással párosítják, amely kihasználja a MetaDefender Core a Software Bill of Materials (SBOM) képességek segítségével azonosítja a sebezhetőségeket az alkalmazás függőségeiben, beleértve a sebezhető ReportLab könyvtárat is. 

Reportlab Könyvtár Bevezetés

ReportLab illusztráció

A ReportLab, egy hatékony és nyílt forráskódú Python-könyvtár, amely lehetővé teszi a felhasználók számára, hogy Python-kódból funkciókban gazdag PDF-eket hozzanak létre. A fejlesztőknek nyerő kombinációt kínál: rugalmasságot, egyszerű használatot és széleskörű testreszabási lehetőségeket a dinamikus dokumentumok létrehozásához. A könyvtár a fejlesztők számára fokozott ellenőrzést biztosít a PDF-jeik felett, lehetővé téve a szöveg, képek, táblázatok és diagramok aprólékos pontossággal történő beépítését. Ez a testreszabási szint teszi a ReportLabot értékes eszközzé a dinamikus dokumentumok, például számlák és adatvezérelt jelentések létrehozásához. 

CVE-2023-33733 Háttér

A CVE-2023-33733 a ReportLab könyvtárban található biztonsági résre hívja fel a figyelmet, amely a ReportLab könyvtár több verzióját is érinti.

  • A ReportLab 3.6.13 verzió előtti verziókról kiderült, hogy sebezhetőek a sandbox megkerülésével szemben, különösen a 'rl_safe_eval' funkció. A kihasználás a HTML-címkék szín attribútumán keresztül történt, amelyet közvetlenül Python-kifejezésként értékeltünk ki, a eval() funkciót, ami végül távoli kódfuttatáshoz vezet. 
  • Az NVD elemzői 7,8 HIGH CVSS pontszámot adtak a CVE-2023-33733-nak. 
A CVSS 3.x súlyossági és mérőszámok alapján a CVE-2023-33733 esetében a CVE-2023-33733 7,8-as alappontszámot mutat, ami magas kockázatúnak minősül.

A ReportLab biztonsági sebezhetőségének elemzése

OPSWAT diplomás ösztöndíjasai mélyreható elemzést végeztek a ReportLab munkafolyamatáról, és azonosították a CVE-2023-33733 biztonsági rés kiváltó okát.

A ReportLab könyvtár munkafolyamata 

A ReportLab lehetővé teszi a fejlesztők számára a PDF-ek hatékony létrehozását. A könyvtár lehetővé teszi a könnyed integrációt: importálja a könyvtárat, határozza meg a HTML-tartalmat, és egyetlen sor kóddal generálja a PDF-et az eredményfüggvény segítségével. 

Egy egyszerű dokumentum sablon létrehozását bemutató Python kód a ReportLab könyvtár segítségével

Végzett ösztöndíjasaink felfedtek egy 5 lépésből álló folyamatot, amelynek segítségével a ReportLab segítségével HTML-ből PDF-eket készíthetünk. 

A ReportLab és a kapcsolódó funkciók segítségével a bemeneti HTML-ből a kimeneti PDF-be történő átmenetet szemléltető ábra

A ReportLab segítségével HTML-ből PDF-eket készítő 5 lépéses folyamaton belül három fő folyamat emelkedik ki: a bekezdésfeldolgozás, a paraparser-feldolgozás és a HTML-kezelési folyamat. 

Pillanatkép egy hibakeresési folyamatról, amely kiemeli a HTML-kezelést, a bekezdéskezelési folyamatot és a paraparser folyamatot egy Python szkriptben.

Ahogy a fenti ábra is mutatja, a ReportLab HTML-kezelési folyamata a eval() funkciót kifejezetten a szín attribútumra. A rosszindulatú kód fókuszpontjaként szolgálva a rosszindulatú kód végrehajtásához, a eval() funkció arra ösztönzi a kutatókat, hogy az alkalmazás kihasználása érdekében keressék a bemenet feletti ellenőrzést. Ez azonban kihívást jelent a homokozó által kikényszerített sandbox miatt. __rl_safe_eval__ funkciót a ReportLabban. 

Kódrészlet egy biztonságos kiértékelő függvényről, amely ellenőrzi az engedélyezett módszereket és az időkorlátokat.
Biztonsági sebezhetőség a ReportLab elemzésben 

A ReportLab bevezetett egy sandbox nevű __rl_safe_eval__. Ez a homokozó kizárja az összes beépített Python függvényt, és számos felülírt beépített függvényt tartalmaz. Ez a korlátozás lehetővé teszi a biztonságos kód végrehajtását a könyvtáron belül, miközben megakadályozza a veszélyes függvényekhez és könyvtárakhoz való hozzáférést, amelyek rosszindulatú célokra használhatók (pl. fájlrendszer-hozzáférés, hálózati kommunikáció). 

A rl_safe_eval sandbox függvény különböző feltételeket valósít meg annak biztosítására, hogy a meghívott attribútum biztonságos legyen, mielőtt a Python beépített getattr() függvényt, hogy lekérje és visszaadja az eredményt. 

Kódpélda egy olyan függvény bemutatására, amely ellenőrzi, hogy a metódusnevek engedélyezettek-e egy biztonsági kontextusban

A safe eval funkció célja a környezet védelme a veszélyes funkciók kizárásával és a rosszindulatú műveletek megakadályozásával. Ha azonban módot találunk arra, hogy megkerüljük a feltételeit, és hozzáférjünk egy erős beépített függvényhez, akkor ez kihasználható.  

Erre az ötletre építve a biztonsági kutatók megpróbálták megkerülni a korlátozásokat. Kezdetben objektum injekciót használtak ki a type() függvény egy objektum létrehozására és attribútumainak és metódusainak újradefiniálására, hogy megkerülje az ellenőrzéseket a __rl_safe_eval__. Továbbá, mivel a ReportLab könyvtár felülírja a beépített függvényeket, és azokat globálisan az eval kontextusba helyezi, a kutató kihasználhatja ezt a megvalósítást, hogy hozzáférjen az eredeti beépített függvények egyikéhez. Ez lehetővé teheti a sandbox környezet megkerülését és rosszindulatú kód futtatását. 

A beépített függvények újradefiniálását bemutató kódrészlet

A hasznos terhet a következőképpen készítik elő: 

Kódpélda egy támadó osztály és egy globális attribútum kihasználására

Mindazonáltal egy többsoros kifejezés végrehajtása eval-kontextusban nem lehetséges. Azonban egy listamegértési trükköt lehet alkalmazni, és a CVE kihasználásához szükséges hasznos teher a következő: 

A CVE-2023-33733 kihasználását szemléltető összetett kódstruktúra

ReportLab Exploitation szimuláció 

A kutatók a CVE-2023-33733-ra vonatkozó Proof of Conceptet (POC) tettek közzé, amely bemutatja, hogy a ReportLab sebezhető verzióival épített alkalmazások kibertámadásoknak lehetnek kitéve. E potenciális fenyegetés felmérése érdekében az OSPWAT diplomás ösztöndíjasai szimulált támadást hajtottak végre egy webes alkalmazás ellen. A MetaDefender Core SBOM képességekkel használták fel az alkalmazás szoftverfüggőségein belüli biztonsági sebezhetőségek azonosítására, beleértve az érintett ReportLab könyvtár jelenlétét is. 

A biztonsági sebezhetőség szimulálása 

E kihasználás valós forgatókönyvként történő szimulálása érdekében OPSWAT diplomás ösztöndíjasai Python és a ReportLab könyvtár sebezhető verziójának felhasználásával webes alkalmazást fejlesztettek ki. Ez az alkalmazás egy tipikus felhasználási esetet imitál: a felhasználók feltölthetnek egy HTML-fájlt, és átalakíthatják azt PDF-fájllá. 

Pillanatkép egy rosszindulatú fájlfeltöltő felületéről, amely egy feltölthető fájl böngészésére szólít fel

Egy támadó rosszindulatú HTML fájlt készíthet, amely a következő kódot tartalmazza 33733. Ez a kód megkerülheti a homokozót és kompromittálhatja a webkiszolgálót a fordított shell indításával a eval() funkció.  

Kódrészlet egy folyamatban lévő parancsinjekciós támadásról

A rosszindulatú fájl sikeres feltöltése lehetővé tenné a támadó számára, hogy átvegye az irányítást az alkalmazáskiszolgáló felett az elavult ReportLab könyvtár sebezhetőségének köszönhetően. 

Rosszindulatú fájlfeltöltő, amely a feltöltött evil.html fájlt jeleníti meg
Aktív reverse shell-t megjelenítő terminál

A SBOM és a proaktív biztonság fontossága 

Az OPSWAT diplomás ösztöndíjasainak a CVE-2023-33733-mal kapcsolatos kutatása kiemeli az OSS-sel kapcsolatos potenciális biztonsági kockázatokat. Bár az OSS tagadhatatlan előnyöket kínál a fejlesztés hatékonysága és költséghatékonysága szempontjából, a ReportLabban talált sérülékenységekhez hasonló sebezhetőségek kiszolgáltatottá tehetik a szervezeteket a kibertámadásoknak. 

OPSWAT SBOM 

OPSWAT SBOM a forráskód és a konténerek átfogó komponensleltárának biztosításával biztosítja a szoftverellátási láncot. Több mint 10 nyelvet támogat, köztük a Java, JavaScript, Go, PHP és Python nyelveket, több mint 5M+ harmadik féltől származó nyílt forráskódú szoftverkomponenseket, és egy több mint 17K sebezhetőséget tartalmazó adatbázist használ, amely a National Vulnerability Database (NVD) és a GitHub (GHSA) adatbázisából származik. 

MetaDefender Core biztonsági műszerfal, amely egy blokkolt fájlt és annak sebezhetőségi elemzését jeleníti meg

Az OPSWAT MetaDefender Core integrált SBOM funkcióival képessé teszi a szervezeteket arra, hogy proaktívan kezeljék ezeket a kockázatokat. A MetaDefender Core átvizsgálja a szoftveralkalmazásokat és függőségeket, és azonosítja az olyan ismert sebezhetőségek jelenlétét, mint a CVE-2023-33733 a felsorolt összetevőkben. Ez lehetővé teszi a fejlesztők és a biztonsági csapatok számára a javítási erőfeszítések rangsorolását és a biztonsági kockázatok mérséklését, mielőtt azok kihasználhatók lennének. 

MetaDefender Core biztonsági műszerfal, amely a CVE-2023-33733 biztonsági rés vizsgálatának részletes eredményeit mutatja.

Záró gondolatok

Az OPSWAT diplomás ösztöndíjasainak a ReportLab sebezhetőséggel (CVE-2023-33733) kapcsolatos kutatása értékes emlékeztetőül szolgál a proaktív biztonsági intézkedések fontosságára a szoftverfejlesztés életciklusában. Az olyan eszközök, mint az OPSWAT MetaDefender Core kihasználásával a szervezetek döntő fontosságú betekintést nyerhetnek szoftverfüggőségeikbe, és azonosíthatják a potenciális sebezhetőségeket, mielőtt azokat a támadók kihasználnák. 

Az OPSWAT emellett a sebezhetőségi vizsgálatokon túlmenően átfogó kiberbiztonsági megoldásokat is kínál. Ezek a megoldások valós idejű fenyegetésérzékelést, adatbiztonságot és végpontvédelmet biztosítanak, megvédve a szervezeteket a kiberfenyegetések széles körétől. A MetaDefender Core hasonló eszközöket is tartalmazó többszintű biztonsági megközelítés elfogadásával a szervezetek kihasználhatják az OSS előnyeit, miközben minimalizálhatják a kapcsolódó biztonsági kockázatokat. 

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.