Tudjon meg többet Benny Czarny „Cybersecurity Upside Down” című könyvéről

Bővebben
A nem angol nyelvű oldalak fordításokhoz AI-t használunk, és bár törekszünk a pontosságra, nem biztos, hogy mindig 100%-os az eredmény. Megértését nagyra értékeljük.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Írta: OPSWAT
A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core
A diákok részt vettek az OPSWAT ösztöndíjprogramban

A technológia gyors fejlődése hatalmas keresletet teremtett a képzett fejlesztők iránt. A nyílt forráskódú szoftverek (OSS) elengedhetetlen eszközzé váltak ennek a növekvő munkaerőnek. Jelenleg 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 jól mutatja az OSS hatékonyságát és értékét. Ennek fontosságát tovább hangsúlyozza, hogy a globális nyílt forráskódú szoftverpiac várhatóan 2030-ra eléri a 80,7 milliárd dollárt, ami éves szinten 16,7%-os növekedési ütemet jelent.

A Software világszerte szerves részét képezik az üzleti tevékenységeknek, ezért gyakran kerülnek a fenyegetések célpontjai közé. Az alkalmazásbiztonságra fordított kiadások 2023-ban megközelítőleg 5,76 milliárd dollárt tettek ki, és az előrejelzések szerint 2024-ben elérik a 6,67 milliárd dollárt. Az AppSec-en belül a szoftverellátási lánc biztonsága az elmúlt három évben egyre nagyobb hangsúlyt kapott, és a leggyorsabban növekvő támadási kategóriát képviseli, a nagyobb szabálysértések és kihasználások rendszeresen a címlapokra kerülnek.

A szervezetek gyakran feltételezik, hogy a legtöbb kockázat a nyilvános webes alkalmazásokból ered. Ez a szemlélet azonban az elmúlt években megváltozott. Mivel minden alkalmazásban több tucat apró komponens található, a kockázatok ma már a kódbázis bármely pontjáról eredhetnek. Minden eddiginél fontosabb, hogy a szervezetek megismerkedjenek a szoftverfejlesztés életciklusában meglévő és felmerülő biztonsági hibákkal. Ebben a blogbejegyzésben diplomás ösztöndíjasaink közelebbről megvizsgálják a CVE-2023-23924-et, egy kritikus biztonsági hibát, amelyet a széles körben használt dompdf könyvtárban fedeztek fel - egy olyan hatékony PHP-eszközben, amely lehetővé teszi a PDF-dokumentumok dinamikus generálását HTML- és CSS-ből.

Átfogó elemzésen keresztül feltárjuk ennek a sebezhetőségnek a technikai részleteit, a kapcsolódó technológiákat, amelyek döntő szerepet játszanak, valamint a kihasználási folyamat szimulációját. Azt is megvizsgáljuk, hogy OPSWAT MetaDefender Core, különösen annak Software Bill of Materials (SBOM) motorja, felhasználható e sebezhetőség felismerésére és csökkentésére, lehetővé téve a szoftverfejlesztők és a biztonsági csapatok számára, hogy egy lépéssel a potenciális fenyegetések előtt járjanak.

A CVE-2023-23924 háttere

A dompdf 2.0.1-es verziójában biztonsági rést fedeztek fel, amelyet 2023 elején hoztak nyilvánosságra:

  • A dompdf 2.0.1 URI-érvényesítés megkerülhető az SVG elemzése során, ha átadjuk a <image> címkék nagybetűkkel. Ez lehetővé teszi a támadó számára, hogy tetszőleges URL-eket hívjon meg tetszőleges protokollokkal, ami tetszőleges objektum unializálásához vezet a 8.0.0 előtti PHP verziókban. A PHAR URL wrapper-en keresztül ez a sebezhetőség tetszőleges fájl törlést és akár távoli kódfuttatást is okozhat, az elérhető osztályoktól függően.
  • Az NVD elemzői 9,8 CRITICAL CVSS pontszámot adtak a CVE-2023-23924-hez.
A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

A Dompdf sebezhetőség megértése

A dompdf-ben található CVE-2023-23924 sebezhetőség teljes megértéséhez elengedhetetlen, hogy megismerkedjünk két, egymással szorosan összefüggő technológiával: Scalable Vector Graphics (SVG) és PHAR fájlok.

SVG (skálázható vektorgrafika)

Az SVG (Scalable Vector Graphics, skálázható vektorgrafika) egy sokoldalú képformátum, amely széles körű népszerűségre tett szert, mivel képes kiváló minőségű grafikákat megjeleníteni a weben, miközben könnyű és skálázható marad. A raszteres képekkel ellentétben az SVG-k XML-jelölésen alapulnak, ami lehetővé teszi az olyan elemek, mint a vonalak, alakzatok és szöveg pontos vezérlését. Az SVG-k egyik legfontosabb előnye, hogy zökkenőmentesen méretezhetők a képminőség romlása nélkül, így ideálisak a reszponzív webdesignhoz és a nagy felbontású kijelzőkhöz.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

PHAR fájl

A PHAR (PHP Archive) a JAR-fájl koncepcióhoz hasonló, de a PHP számára. Egyszerű telepítést tesz lehetővé azáltal, hogy az összes PHP kódot és erőforrásfájlt egyetlen archív fájlba csomagolja.

A PHAR fájl 4 szakaszból áll:

  • Stubs: tartalmazza az archívum bootstrapeléséhez szükséges kódot.
  • Manifest: az archívum metaadatait tartalmazza. A metaadatokat szerializált formátumban tárolja, ami felhasználható a PHP deserializált támadás kiváltására egy rosszindulatú PHAR fájlban.
  • Fájltartalom: az archívum tartalmát tartalmazza, beleértve a PHP-kódot, erőforrásfájlokat.
  • Aláírás (nem kötelező): a fájl sértetlenségét igazoló adatokat tartalmazza.

Mivel a metaadatokat szerializált formátumban tárolják, a PHAR wrapper és a PHAR fájl metaadatainak kombinációja potenciálisan deserializációs támadást válthat ki, amikor a PHP függvények bemenetként használják, mint például a file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime(), vagy filesize(). Ez a biztonsági hiányosság lehetővé teheti a támadók számára, hogy távoli kódot hajtsanak végre egy PHAR fájlon keresztül.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Hogyan generál a Dompdf PDF fájlt

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

az OPSWAT diplomás ösztöndíjasai elemzéssel azonosították, hogy a dompdf-en a konvertálási folyamat három szakaszból áll. Egy HTML-fájl PDF-formátumba való konvertálásához a dompdf könyvtár először a bemeneti fájlt egy DOM-fává elemzi, és tárolja az egyes objektumok pozicionálási és elrendezési információit. Ezután a CSS stíluselemek elemzése és alkalmazása következik minden egyes objektumra. Végül az objektumok átrendeződnek, hogy illeszkedjenek az oldalra, és megjelenítik a végleges PDF-fájlban.

Biztonsági rés a Dompdf-ben

A biztonság fokozása érdekében a dompdf validálást hajt végre az URI-bemenetek biztonságának biztosítása érdekében, mielőtt a következő lépésre lépne. Ez az érvényesítési folyamat nyilvánvaló az SVG fájl feldolgozása során az értéken belül a xlink:href attribútum.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Ha az SVG bemeneti fájl tartalmazza a <image> címke alatt a <svg> címke, egy olyan feltétel van bevezetve, amely csak bizonyos protokollokat engedélyez, mint például a http://, https:// és file://, a xlink:href mező.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

A resolve_url() függvény validálja az URI-t, mielőtt feldolgozza a drawImage() funkció. Ha az URI-ban szereplő séma nem szerepel az engedélyezett protokollok között, a resolve_url() függvény egy kivételt küld vissza az alkalmazásnak.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Ha az URI átmegy az érvényesítésen, akkor az átadásra kerül a drawImage() függvény, amely a file_get_contents() függvényt az URI érték kezelésére a xlink:href attribútum. A biztonsági sebezhetőség ezen a ponton merül fel: PHAR deserializációs támadás indulhat, ha a támadó megkerülheti az érvényesítést, és egy PHAR wrappert adhat át az URI-ban.

Az elemzés után kiderült, hogy az érvényesítés csak a pontos névképet tartalmazó címkékre érvényes.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Következésképpen ez könnyen megkerülhető, ha egy vagy több karaktert nagybetűvel írunk a címke nevében, például Image. Ennek eredményeképpen egy speciálisan kialakított SVG fájl, amely Image helyett Image-t használ, megkerülheti ezt az érvényesítést.

A következő lépésben a drawImage() függvényt hívja meg, átadva az URI-t az SVG fájlból a file_get_contents() funkció. Ezért az érvényesítés megkerülése és a PHAR-fájl deserializációs támadásának kombinációja lehetővé teszi a támadó számára, hogy távoli kódvégrehajtást hajtson végre. Ez a sebezhetőség megnyitja a lehetőséget egy rosszindulatú támadó számára, hogy egy SVG-fájlon keresztül veszélyeztesse az alkalmazáskiszolgálót, ha azt a dompdf sebezhető verziója kezeli.

Dompdf Exploitation szimuláció

Sebezhető alkalmazás

az OPSWAT végzős ösztöndíjasai egy valós forgatókönyvként szimulálták ezt a kihasználást, és kifejlesztettek egy webes alkalmazást, amely a dompdf könyvtár 2.0.1-es verzióját használva HTML-ből PDF-be konvertál. Ez az alkalmazás lehetővé teszi a felhasználók számára, hogy olyan fájltípusokat töltsenek fel, mint a HTML, XML vagy SVG, majd PDF-fájlokká konvertálják őket.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Egy támadó a következő lépéseket követi, hogy kihasználja ezt a sebezhetőséget egy sebezhető dompdf verziót (2.0.1 verzió) használó alkalmazásban:

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core
A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Exploitation Flow

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Először is, a támadó létrehoz egy rosszindulatú objektumot, amely a destruktor meghívásakor fordított héjat hoz létre.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Másodszor, a támadó létrehoz egy PHAR fájlt, amely tartalmazza a rosszindulatú metaadat-objektumot. Amikor a PHAR fájlt a PHAR wrapper meghívja a PHAR-csomagolóban a file_get_content() függvény hatására a metaadatok nem kerülnek digitalizálásra, és a megadott objektum feldolgozása megtörténik. A deserializálási folyamat során elindítja a destruktorokat, és végrehajtja a fordított héjat.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Végül a támadó a PHAR wrapper-t tartalmazó URI linket beágyazza a PHAR wrapper értékébe. xlink:href attribútumot az Image tagben, hogy megkerülje az érvényesítést, rosszindulatú kódot hajtson végre, és feltöltse ezt a rosszindulatú fájlt az alkalmazásba.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

A feltöltött rosszindulatú SVG-fájl feldolgozása során az alkalmazás fordított kapcsolatot létesít a támadóval, lehetővé téve számára, hogy veszélyeztesse az alkalmazáskiszolgálót.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core
A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core
A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

Nyílt forráskódú komponensek biztosításaz OPSWAT MetaDefender Core

A dompdf-ben található CVE-2023-23924 sebezhetőség észleléséhez és mérsékléséhez diplomás munkatársaink az OPSWAT MetaDefender Core , egy többrétegű kiberbiztonsági terméket használtak, amely fejlett rosszindulatú programok megelőzési és észlelési technológiákat kínál, beleértve az SBOM-ot is.

OPSWAT Az 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. A dompdf könyvtár és függőségeinek elemzésével az OPSWAT SBOM gyorsan azonosítja a sebezhető 2.0.1-es verzió jelenlétét, és figyelmezteti a felhasználókat a potenciális kockázatra.

az OPSWAT SBOM emellett képes felismerni a kapcsolódó technológiákat, például az SVG és PHAR fájlokat, amelyek elengedhetetlenek a CVE-2023-23924 sebezhetőség megértéséhez és enyhítéséhez. Az alkalmazás szoftverkomponenseinek ez a holisztikus áttekintése lehetővé teszi a biztonsági csapatok számára, hogy megalapozott döntéseket hozzanak, és megfelelő intézkedéseket tegyenek az azonosított kockázatok kezelésére.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

A sebezhető dompdf-verzió észlelésén túl az OPSWAT SBOM értékes információkat nyújt az érintett komponensekről, azok verzióiról és az elérhető frissítésekről vagy javításokról is. Ez az információ lehetővé teszi a biztonsági csapatok számára, hogy prioritást adjanak a javítási erőfeszítéseiknek, és biztosítsák, hogy az alkalmazást a dompdf biztonságos verziójára frissítsék, hatékonyan kezelve a CVE-2023-23924 sebezhetőséget.

A Dompdf könyvtár sebezhetőségének feltárása és elhárítása az OPSWAT MetaDefender Core

A MetaDefender Core oldalon található SBOM motor segítségével a szervezetek proaktívan nyomon követhetik szoftverellátási láncukat, azonosíthatják a nyílt forráskódú komponensek potenciális sebezhetőségeit, és időben alkalmazhatnak enyhítési stratégiákat, biztosítva ezzel alkalmazásaik általános biztonságát és integritását.

Záró gondolatok

A CVE-2023-23924 felfedezése a dompdf könyvtárban aláhúzza az éberség kritikus szükségességét az alkalmazásbiztonság dinamikus tájékán. Az ebben a blogbejegyzésben felvázolt meglátások és stratégiák felhasználásával a biztonsági csapatok hatékonyan észlelhetik, mérsékelhetik és védhetik alkalmazásaikat az ilyen sebezhetőségekkel szemben, biztosítva ezzel a szoftver ökoszisztémájuk általános biztonságát és integritását.

Maradjon naprakész az OPSWAT oldalon!

Iratkozzon fel még ma, hogy megkapja a legfrissebb vállalati híreket, történeteket, rendezvényinformációkat és egyebeket.