RLBox, a Mozilla által használt új könyvtárszigetelési technológia

Firefox logó

Stanford Egyetem kutatói-ban University of California in san diego y la Texasi Egyetem Austinban Kialakultak egy sor eszköz, aminek a nevét adták "RLBox", hogy további szigetelési szintként használható a függvénykönyvtárak sebezhetőségének blokkolásához.

Az RLBox célja a harmadik féltől származó könyvtárak biztonsági problémájának megoldása nem megbízhatóak, amelyeket nem a fejlesztők irányítanak, hanem azok a biztonsági rések, amelyekben a fő projekt veszélybe kerülhet.

A Mozilla az RLBox használatát tervezi a Firefox 74-es verzióiban Linux és összeállításai macOS a Firefox 75-ben a Graphite könyvtár végrehajtásának elkülönítésére, amely felelős a források képviseletéért.

Ugyanakkor az RLBox nem Firefox-specifikus, és tetszőleges projektekben bármely könyvtár elkülönítésére használható.

Az RLBox-ról

A működési mechanizmus Az RLBox abból áll, hogy az elszigetelt könyvtárból származó C / C ++ kódot közbenső WebAssembly kódba állítja össze alacsony szintű, amelyet ezután WebAssembly modulként adnak ki, és amelynek jogosultsága csak ehhez a modulhoz van kötve (például a karakterláncok feldolgozására szolgáló könyvtár nem nyithat meg socketet vagy hálózati fájlt) C / C ++ kód konverzió a webes összeállítás a wasi-sdk használatával történik.

Közvetlen végrehajtáshoz, a WebAssembly modult gépkódba fordítják a Lucet fordító segítségével és az alkalmazás többi memóriájától elkülönülő "nanoprocesszorban" fut. A Lucet fordító ugyanazon a kódon alapszik, mint a Cranelift JIT motor, amelyet a Firefox használ a WebAssembly futtatásához.

Az összeszerelt modul külön memóriaterületen működik és nincs hozzáférése a címtér többi részéhez. A könyvtár sérülékenységének kihasználása esetén a támadó korlátozott lesz, és nem lesz képes hozzáférni a fő folyamat memóriaterületeihez, vagy átadni a vezérlést a homokozón kívül.

A fejlesztők számára biztosított egy magas szintű API, amely lehetővé teszi a könyvtárfunkciók izolált módban történő meghívását.

sok A WebAssembly vezérlők szinte nem igényelnek további erőforrásokat és a velük való interakció nem sokkal lassabb, mint a közönséges függvények meghívása (a könyvtárfunkciókat natív kód formájában hajtják végre, és a túlterhelés csak az adatok másolásakor és ellenőrzésénél jelentkezik a homokozóval való interakció során). .

Az elszigetelt könyvtár funkcióit nem lehet közvetlenül meghívni, és ezek eléréséhez a fóliát kell használni invoke_sandbox_function().

Viszont ha külső függvényeket kell meghívniuk a könyvtárból, ezeket a függvényeket kifejezetten meg kell határozni a register_callback módszerrel (alapértelmezés szerint az RLBox hozzáférést biztosít a szokásos könyvtárfunkciókhoz).

A memória biztonságos működése érdekében a kódfuttatás elkülönítése nem elég és meg kell adnia a visszaküldött adatfolyamok ellenőrzését.

Az elszigetelt környezetben létrehozott értékeket megbízhatatlannak, szennyezett címkékkel korlátozzák, és a "tisztításhoz" ellenőrizni és az alkalmazás memóriájába kell másolni.

Tisztítás nélkül a szennyezett adatok felhasználásának megkísérlése olyan körülmények között, amelyek rendszeres adatokat igényelnek (és fordítva), hibákat generálnak az összeállítás szakaszában.

A kis funkció argumentumokat, visszatérési értékeket és struktúrákat a folyamatmemória és a sandbox memória közötti másolással adják át. Nagy adathalmazok esetén a memóriát egy elszigetelt környezetben osztják ki, és egy közvetlen "homokozó referencia" mutató kerül vissza a fő folyamatba.

Az RLBox fejlesztéseket az MIT licenc alatt terjesztik. Az RLBox jelenleg támogatja a Linuxot és a macOS-t és várhatóan később kompatibilis lesz a Windows rendszerrel.

Ha többet szeretne megtudni erről az új technológiáról, amelyet a Mozilla a Firefoxban tervez bevezetni, konzultálhat a fejlesztésével és tesztelheti az API-t A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.