RLBox, нова технологія ізоляції бібліотек, що використовується Mozilla

Firefox логотип

Дослідники Стенфордського університету, то Університет Каліфорнії у Сан-Дієго 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 високого рівня, що дозволяє викликати функції бібліотеки в режимі ізоляції.

L Контролери WebAssembly майже не вимагають додаткових ресурсів і взаємодія з ними відбувається не набагато повільніше, ніж виклик звичайних функцій (функції бібліотеки виконуються у формі власного коду, а перевантаження виникають лише при копіюванні та перевірці даних у процесі взаємодії з середовищем із захищеною середовищем) .

Функції ізольованої бібліотеки не можна викликати безпосередньо, і для доступу до них потрібно використовувати шар invoke_sandbox_function().

У свою чергу, якщо їм потрібно викликати зовнішні функції з бібліотеки, ці функції повинні бути чітко визначені за допомогою методу register_callback (за замовчуванням RLBox надає доступ до стандартних функцій бібліотеки).

Щоб забезпечити безпечну роботу пам'яті, ізоляції виконання коду недостатньо а також вам потрібно надати перевірку повернутих потоків даних.

Значення, сформовані в ізольованому середовищі, позначені як ненадійні, обмежені забрудненими тегами і вимагають перевірки та копіювання в пам'ять програми для "очищення".

Без очищення спроба використовувати забруднені дані в контексті, який вимагає регулярних даних (і навпаки) призводить до генерації помилок на етапі компіляції.

Аргументи невеликих функцій, повернені значення та структури передаються шляхом копіювання між пам’яттю процесу та пам’яттю пісочниці. Для великих наборів даних пам’ять виділяється в ізольованому середовищі, а прямий вказівник «посилання на пісочницю» повертається в основний процес.

Розробки RLBox поширюються за ліцензією MIT. На даний момент RLBox підтримує Linux та macOS і, як очікується, вона буде сумісна з Windows пізніше.

Якщо ви хочете дізнатись більше про цю нову технологію, яку Mozilla планує впровадити у Firefox, ви можете проконсультуватися з її розробкою, а також протестувати API У наступному посиланні.


Будьте першим, щоб коментувати

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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