A Mozilla megkezdi a RLBox könyvtárak szigetelési technológiájának bevezetését

A Stanford Egyetem, a San Diego-i Kaliforniai Egyetem és a texasi Austin Egyetem kutatói kifejlesztettek eszközkészlet RLBox, amely további elszigetelési szintként alkalmazható a funkciókönyvtárak sebezhetőségeinek blokkolására. Az RLBox célja a megbízhatatlan külső könyvtárak biztonsági problémájának megoldása, amelyek nincsenek a fejlesztők irányítása alatt, de sebezhetőségeik veszélybe sodorhatják a fő projektet.

A Mozilla vállalat tervez az RLBox alkalmazása a Linux-összeállításokban a Firefox 74 és a macOS-összeállításokban a Firefox 75 számára a könyvtár végrehajtási elszigetelésére Graphite, amely a betűk megjelenítéséért felelős. Az RLBox nem specifikus a Firefox számára, és bármilyen könyvtár elszigetelésére használható tetszőleges projektekben. Fejlesztések RLBox szabadon terjeszthetők MIT licenc alatt. Jelenleg az RLBox támogatja a Linux és macOS platformokat, a Windows támogatása később várható.

Mechanizmus az RLBox munkája a C/C++ kódnak az elszigetelt könyvtár alacsony szintű WebAssembly közbenső kódra való lefordítására korlátozódik, amelyet ezután WebAssembly-modulként formálnak meg, amelynek jogosultságait csak ehhez a modulhoz kötik (például egy karakterlánc-kezelő könyvtár nem tud hálózati socketet vagy fájlt megnyitni). A C/C++ kód WebAssembly-ra való átalakítása a wasi-sdk.

segítségével történik. A WebAssembly modul közvetlen végrehajtásához a modul gépi kódra fordításához a Lucet fordítót használják, és a modul egy külön „nano-processzben” fut, amely el van szigetelve az alkalmazás többi memóriájától. A Lucet fordító ugyanarra a kódra épül, mint a JIT motor Cranelift, amelyet a Firefox WebAssembly végrehajtásához alkalmaz.

A létrehozott modul külön memóriaterületen működik, és nincs hozzáférése a fő memória címtartományához. Ha egy könyvtárban sebezhetőséget kihasználva támadás történik, a támadó korlátozott lesz, és nem férhet hozzá a fő folyamat memória területeihez vagy nem adhat vezérlést a szigetelt környezeten kívül.

A Mozilla megkezdi a RLBox könyvtárak szigetelési technológiájának bevezetését

A fejlesztők számára magas szintű API, amely lehetővé teszi a könyvtár funkcióinak hívását elszigetelt módban. A WebAssembly-kezeltetők szinte nem igényelnek további erőforrásokat, és velük való interakció nem sokkal lassabb, mint a normál funkciók hívása (a könyvtár funkcióit natív kódként hajtják végre, és a költségek csak az adatok átvitelének és ellenőrzésének folyamatában merülnek fel az elszigetelt környezettel való interakció során). Az elszigetelt könyvtár funkcióit nem lehet közvetlenül hívni, és hozzáférésükhöz
az invoke_sandbox_function() réteget kell alkalmazni.

Ha viszont a könyvtárból külső funkciókat kívánunk hívni, ezeket a funkciókat egyértelműen meg kell határozni a register_callback metódus segítségével (alapértelmezés szerint az RLBox hozzáférést biztosít a szabványos könyvtárhoz). A memóriával való biztonságos munkához (memory safety) a kód végrehajtásának elszigetelése nem elegendő, és szükséges a visszatérő adatfolyamok ellenőrzése is.

Az elszigetelt környezetben létrehozott értékeket megbízhatatlannak címkézik, és korlátozzák a tainted címkékkel, és „tiszta” adatokra van szükségük a hitelesítéshez és az alkalmazás memóriájába való átvitelhez.
Tisztítás nélkül a tainted adatok használatának megkísérlése egy olyan kontextusban, amely normál adatokat igényel (és fordítva), fordítási hibákhoz vezet. A kis függvényargumentumokat, visszatérési értékeket és struktúrákat másolással továbbítják a folyamat memóriája és az elszigetelt környezet memóriája között. Nagyobb adathalmaszok esetén a memóriát elszigetelt környezetben osztják ki, és az alapvető folyamat közvetlen „sandbox-reference” mutatót kap.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster