Google відкрив систему для створення середовищ пісочниці для C / C ++

Google

Кілька днів тому Google оголосив про відкриття проекту Sandboxed APIЩо Дозволяє автоматизувати процес створення пісочниці для ізольованого виконання довільних бібліотек на C та C ++.

Ізоляція коду з бібліотек дозволяє захистити від можливих атак на ручки, надані бібліотеками, створюючи додатковий бар’єр на випадок, якщо у вашому коді є вразливості, які можна використати за допомогою маніпуляцій із зовнішніми даними, що надходять у бібліотеку. Код відкритий за ліцензією Apache 2.0.

Ізоляціяабо це робиться за допомогою середовища виконання Sandbox2, в якому використовуються простори імен, cgroups та seccomp-bpf.

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

Процеси отримують доступ лише до можливостей системи, які безпосередньо потрібні для виконання ізольованого коду.

Sandbox2 визначає компоненти для запуску процесуабо застосуйте правила ізоляції та підтримайте подальше виконання.

Пісочниця2 його можна використовувати окремо від API Sandbox для ізоляції не лише бібліотек, а й довільних процесів.

На додаток до підвищення захисту, позитивним моментом усунення коду в окремих процесах є можливість окремого регулювання обмежень на споживання пам'яті бібліотеки та центрального процесора, а також захист від збоїв: Бібліотека не викликає збій усього додатка.

Про Sandboxed API

Sandboxed API - це плагін Sandbox2 що спрощує транспорт існуючих бібліотек для роботи в ізольованому режимі.

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

Se отримує доступ до ізольованої бібліотеки через спеціалізований RPC на основі протоколу ProtoBuffs.

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

sapi-огляд

Коли бібліотека програмного забезпечення, яка аналізує такі дані, є досить складною, вона може стати жертвою певних типів вразливостей системи безпеки: помилок пошкодження пам’яті чи інших типів проблем, пов’язаних з логікою аналізу (наприклад, проблеми обходу шляху). Ці уразливості можуть мати серйозні наслідки для безпеки.

Крім того, Застосовується API для моніторингу роботи ізольованих процесів і перезапуску їх у разі збоїв.

Для ізольованої бібліотеки код анотацій ізольованих функцій автоматично генерується для системи збірки Bazel та програмного інтерфейсу (SAPI) для взаємодії між основними та ізольованими процесами.

Розробник також повинен створити заголовочний файл із правилами ізоляції, які визначають усі дозволені системні виклики та операції (читання, запис, відкриття файлів, доступ до часу, можливість встановлення обробників сигналів, підтримка виділення пам’яті через malloc тощо).

Файли та каталоги, до яких повинна мати доступ бібліотека, визначаються окремо.

Встановлення

В даний час проект доступний лише для Linux, але в майбутньому вони обіцяють додати підтримку для систем macOS і BSD, а в перспективі і для Windows. Так Ви хочете встановити API із захищеною середовищем, ви можете слідувати наведеним інструкціям за цим посиланням.

З планів це також зазначається можливість ізолювати бібліотеки мовами, відмінними від C та C ++, додаткова підтримка виконання для ізоляції (наприклад, на основі апаратної віртуалізації) та можливість використання CMake та інших монтажних систем (підтримка зараз обмежена системою збірки Bazel).

Фуенте: https://security.googleblog.com


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

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

*

*

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