RLBox, новата технология за изолиране на библиотеки, използвана от Mozilla

Firefox лого

Изследователи от Станфордския университет, The Университет на Калифорния в Сан Диего y la Тексаски университет в Остин Те са се развили набор от инструменти, на които те дадоха името "RLBox", че може да се използва като допълнително ниво на изолация за блокиране на уязвимости във функционалните библиотеки.

RLBox има за цел да реши проблема със сигурността на библиотеките на трети страни ненадеждни, които не се контролират от разработчиците, но уязвимости, при които основният проект може да компрометира.

Mozilla планира да използва RLBox във Firefox 74 компилации за Linux и компилациите на macOS във Firefox 75 за да изолира изпълнението на библиотеката Graphite, която е отговорна за представянето на източниците.

В същото време RLBox не е специфичен за Firefox и може да се използва за изолиране на всяка библиотека в произволни проекти.

Относно RLBox

Механизмът на работа RLBox се свежда до компилиране на C / C ++ код от изолирана библиотека в междинен WebAssembly код ниско ниво, което след това се издава като модул WebAssembly, чийто орган е настроен да се обвързва само с този модул (например библиотека за обработка на низове не може да отвори сокет или мрежов файл) C / C ++ преобразуване на код a WebAssembly се извършва с помощта на wasi-sdk.

За директно изпълнение, модулът WebAssembly се компилира в машинен код с помощта на компилатора Lucet и се изпълнява в "нанопроцес", отделен от останалата част от паметта на приложението. Компилаторът Lucet се основава на същия код като двигателя на Cranelift JIT, използван във Firefox за стартиране на WebAssembly.

Сглобеният модул работи в отделна област на паметта и няма достъп до останалото адресно пространство. В случай на експлоатация на уязвимостта в библиотеката, нападателят ще бъде ограничен и няма да има достъп до областите на паметта на основния процес или контрол на трансфера извън пясъчника.

За разработчиците е осигурен API на високо ниво, който ви позволява да извиквате библиотечни функции в режим на изолация.

Лос Контролерите WebAssembly не изискват почти никакви допълнителни ресурси и взаимодействието с тях не е много по-бавно от извикването на обикновени функции (библиотечните функции се изпълняват под формата на собствен код и претоварването се случва само при копиране и проверка на данни в процеса на взаимодействие с изолирана среда).

Функциите на изолирана библиотека не могат да бъдат извикани директно и за достъп до тях трябва да използвате слоя invoke_sandbox_function().

На свой ред, ако трябва да извикат външни функции от библиотеката, тези функции трябва да бъдат изрично дефинирани с помощта на метода register_callback (по подразбиране RLBox осигурява достъп до стандартни библиотечни функции).

За да осигурите безопасна работа с памет, изолирането на изпълнение на код не е достатъчно и също трябва да осигурите проверка на върнатите потоци от данни.

Стойностите, генерирани в изолирана среда, са маркирани като ненадеждни, ограничени от опетнени маркери и изискват проверка и копиране в паметта на приложението за "почистване".

Без почистване опитът да се използват замърсени данни в контекст, който изисква редовни данни (и обратно) води до генериране на грешки на етапа на компилация.

Аргументи за малки функции, връщани стойности и структури се предават чрез копиране между паметта на процеса и паметта на пясъчника. За големи набори от данни паметта се разпределя в изолирана среда и директният указател „препратка към пясъчника“ се връща към основния процес.

Разработките на RLBox се разпространяват под лиценза на MIT. Понастоящем RLBox поддържа Linux и macOS и се очаква да бъде съвместим с Windows по-късно.

Ако искате да научите повече за тази нова технология, която Mozilla планира да внедри във Firefox, можете да се консултирате с нейното разработване, както и да тествате API В следващия линк.


Съдържанието на статията се придържа към нашите принципи на редакторска етика. За да съобщите за грешка, щракнете върху тук.

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван.

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.