Örömmel mutatunk be egy technikai elemző blogsorozatot, amely a különböző közös sebezhetőségekre és kitettségekre (CVE-k) összpontosít, amelyeket fejlett fenyegetés-felismerő technológiáinkkal azonosítottunk és orvosoltunk.Minden kutatást a 2023 szeptemberében induló OPSWAT Cybersecurity Fellowship programban részt vevő végzős hallgatók végeznek.
Ebben a blogban ismertetjük a Google Chrome CVE-2019-13720 kódot és azt, hogy a szervezetek hogyan védekezhetnek a CVE-2019-13720 kódot kihasználó támadások ellen.
Mi a Google Chrome és mikor alapították?
A Google Chrome a Google által kifejlesztett, platformokon átívelő webböngésző, amelyet hivatalosan 2008. szeptember 2-án adtak ki. A Google azon törekvésének részeként fejlesztette ki, hogy egy jobb, modernebb böngészőt hozzon létre. Akkoriban számos új funkciót kínált, többek között a füles böngészést, az adatvédelmi módot és a Google szolgáltatásokkal való szinkronizálást. Megjelenése óta világszerte az egyik legnépszerűbb webböngészővé vált. A becslések szerint 2021-ben a Google Chrome-nak mintegy 3,2 milliárd felhasználója lesz.
A Google Chrome népszerűségének köszönhetően a kutatás és a támadások középpontjába került, és egyaránt vonzza az etikus és a rosszindulatú hackereket. A Google Chrome-ban azonosított gyakori sebezhetőségek közé tartozik többek között a szolgáltatások megtagadása (DoS), információszivárgás és távoli kódfuttatás. Ami a távoli kódvégrehajtási sebezhetőséget illeti, a Google Chrome-ban kétféle probléma létezik: a homokozóból való menekülés és a nem menekülés.
Mi a CVE-2019-13720?
A CVE-2019-13720 a Google Chrome 78.0.3904.87 verzió előtti verziójában a WebAudio egy UAF (Use After Free) sebezhetőségét jelenti, amely lehetővé teszi egy távoli támadó számára, hogy kihasználja a halom sérülését egy szerkesztett HTML-oldalon keresztül. Ha az áldozat rosszindulatú weboldalt ér el, vagy egy sebezhető Google Chrome böngészőn megnyit egy szerkesztett HTML-oldalt, a rosszindulatú kód végrehajtódik az áldozat végpontján. Ezt a CVE-t először Anton Ivanov és Alexey Kulaev jelentette 2019-ben.
Technikai szempontból a Qt WebEngine audiokomponensének Render és Audio szálai közötti versenyfeltétel miatt kihasználható egy use-after-free sebezhetőség, amely lehetővé teszi távoli támadók számára, hogy WebAssembly shell kódot hajtsanak végre, ami az áldozat eszközének veszélyeztetéséhez vezet. A probléma megoldása az, hogy minden Qt WebEngine felhasználó frissítsen a legújabb verzióra.
A támadási fázisok
A támadók egy speciális URL-t hoznak létre a rosszindulatú HTML-címmel, és a linket tartalmazó adathalász e-mailt küldenek az áldozatnak. Amikor az áldozat megnyitja az e-mailt, és rákattint a linkre, a rosszindulatú kód végrehajtódik, és lehetővé teszi a támadó számára, hogy átvegye a hatalmat az érintett rendszer felett. A HTML-dokumentumban megjelenő távoli kódtaktika részleteire itt lehet hivatkozni.
Mik azok a Use After Free (UAF) és heap spray sebezhetőségek?
Az UAF sebezhetőség egy olyan biztonsági hiba, amely akkor jelentkezik, amikor egy program továbbra is használja a memóriát, miután az már felszabadult. Ez különböző káros következményekhez vezethet, beleértve az adatrongálást, a tetszőleges kódfuttatást és a rendszer összeomlását.
A halomszórás egy olyan hasznos teherszállítási technika, amely több bájt írását jelenti a halom különböző helyein. Ennek lényege, hogy a memóriakupacba hamisított hasznos terhet (azaz káros adatokat) juttatunk, biztosítva, hogy a végrehajtási folyamat az alkalmazás eredeti kódja helyett a permetezett memóriába ugrik. E támadás célja jellemzően az EIP-regiszter feletti ellenőrzés megszerzése.
Mi az a WebAssembly?
A WebAssembly, gyakran rövidítve Wasm, egy új bináris utasításformátum, amely hordozható célként szolgál a magas szintű nyelvek, például a C/C++ fordításához, lehetővé téve, hogy közel natív sebességgel fussanak a webböngésző JavaScript motorjában.
Mivel azonban a WebAssembly olyan nyelvekből is fordítható, amelyek nem memóriabiztosak, mint például a C/C++, a keresztkompilált WebAssembly binárisokba olyan gyakori kódolási sebezhetőségek kerülhetnek, mint a puffer túlcsordulás vagy a formázott karakterlánc sebezhetőségek. A WebAssembly modulokba beépülő sebezhetőségek lehetősége megnövelte a kortárs webes alkalmazások támadási felületét.
Mi az a versenyfeltétel sebezhetőség?
Egy szoftverben a versenyfeltétel sebezhetőség akkor keletkezik, amikor több folyamat vagy szál egyszerre próbál hozzáférni egy megosztott erőforráshoz, ami a hozzáférés időzítése miatt kiszámíthatatlan eredményeket vagy működési zavarokat okoz. Ha egy programban versenyfeltétel sebezhetőség van, az különböző problémákhoz vezethet, például az alkalmazás összeomlásához, adatrongáláshoz, helytelen eredményekhez vagy következetlenségekhez. A támadók kihasználhatják ezt a sebezhetőséget arra, hogy jogosulatlan hozzáférést szerezzenek, információt szivárogtassanak ki, jogosultságokat növeljenek, vagy rendszerösszeomlást idézzenek elő.
A TOCTTOU sebezhetőség a versenyfeltétel sebezhetőség kategóriájába sorolható, és az erőforrás ellenőrzése és használata közötti időbeli eltérést használja ki.
Hogyan működik a CVE-2019-13720?
A sebezhetőség kihasználásához a kutató JavaScript kódot csatol egy HTML fájlhoz. Amikor a felhasználó elindítja a HTML-fájlt, a szkript megpróbálja megtalálni a kiszivárgott címet két szál (fő szál és audió szál) létrehozásával, amelyek ugyanazt a pufferadatot kezelik. A ReverbConvolverStage-ben lévő temporary_buffer_object kiszivárgott címét ezután az IIRFilterNode-ban lévő feedforward_array mutatójának megszerzésére használja (amely ugyanazon a szuperoldalon osztozik a Convolverrel). Ezt követően a kutató megpróbálja megszerezni a feedforward_array mutatóját a második trigger UAF-ban.
A WebAssembly kezeli a héjkód végrehajtását. A héjkód végrehajtásának lehetővé tételéhez a kutató megpróbálja felszabadítani az IIRFiltert, és addig ír a GCPreventerbe, amíg nem szereznek ellenőrzést arról, hogy az új allokációk hol készülnek el a permetezés nélkül. Végül a kutató a shellcode-ot a memóriában lévő Just-In Time (JIT) régióba írja. Következésképpen a fájlolvasó hibaeseményének hozzáadásakor a WebAssembly modul végrehajtja a shellkódot.
A sebezhetőséghez kapcsolódó shell kód végrehajtásához a felhasználónak ki kell kapcsolnia a homokozót a Chrome sebezhető verziójában.
A shell kód végrehajtása után automatikusan megnyitja a Notepad szolgáltatást az áldozat eszközén.
Szanálási módszer
MetaDefender AzEndpoint, az OPSWAT által kifejlesztett végpontbiztonsági megoldás lehetővé teszi a felhasználók számára, hogy észleljék és megvédjék rendszereiket ezekkel a támadásokkal szemben. Miután a felhasználó kikapcsolja az Adatvédelem Sandbox funkciót (--no-sandbox), a MetaDefender Endpoint képes a CVE-k felismerésére és a Google Chrome legújabb javításainak alkalmazására. Ezt követően a felhasználó manuálisan frissítheti a Google Chrome-ot a legújabb verzióra, vagy aktiválhatja az "automatikus frissítés" funkciót a Patch Management lapon, hogy az OPSWAT MetaDefender Végpont automatikusan frissítse a böngészőt, amint új javítások válnak elérhetővé.
A rosszindulatú kódoknak való kitettség megelőzése érdekében a felhasználóknak e-mail szűrőeszközöket kell használniuk az adathalász-támadások felismerésére, és kerülniük kell az ismeretlen URL-címekre való kattintást az e-mailekben.
MetaDefender Endpoint A termék legfontosabb jellemzői és előnyei
- A veszélyeztetett alkalmazások felülvizsgálata és helyreállítása. A sebezhető vagy elavult alkalmazások megtekinthetők a MetaDefender Endpoint felhasználói felületen.
- Ellenőrizze, hogy a rosszindulatú programok elleni védelem megfelelően van-e beállítva az operációs rendszeren.
- A szervezet biztonsági szabványainak való megfelelés biztosítása.
- A merevlemez titkosításának biztosítása.
- Az operációs rendszer javításainak ellenőrzése.
- Többféle lehetőség a rosszindulatú programok vizsgálatára és a rosszindulatú programoktól mentes bejelentések készítésére a végpontokon.
A MetaDefender Endpoint for Endpoint Vulnerability and Application Patching letölthető innen.
Hivatkozás
- https://nvd.nist.gov/vuln/detail/CVE-2019-13720
- https://bugs.chromium.org/p/chromium/issues/detail?id=1019226
- https://www.w3.org/TR/webaudio/
- https://security.gentoo.org/glsa/202004-04
- https://www.cve.org/CVERecord?id=CVE-2019-13720
- https://packetstormsecurity.com/files/167066/Google-Chrome-78.0.3904.70-Remote-Code-Execution.html
- https://devopedia.org/race-condition-software
- https://webassembly.org/
- https://www.researchgate.net/figure/WebAssembly-high-level-architecture_fig1_360232889
- https://www.researchgate.net/publication/331990070_Native_Web_Audio_API_Plugins
- https://whitehat.vn/threads/gioi-thieu-ky-thuat-khai-thac-exploit-heap-spray.5056/
- https://www.opswat.com/