Huawei пропонує запустити новий “режим пісочниці” для ядра Linux, щоб підвищити безпеку пам’яті

huawei growth 1200x675

Китайський технологічний гігант Huawei запропонував новий режим “SandBox Mode” для ядра Linux, щоб підвищити безпеку пам’яті. Кінцева мета режиму SandBox полягає у виконанні власного коду ядра в середовищі, яке дозволяє доступ до пам’яті лише за заздалегідь визначеними адресами. Таким чином, вразливості не можуть бути використані або не матимуть впливу на решту ядра. Ця серія патчів додає до ядра API та архітектурно-незалежну інфраструктуру режиму SandBox. Вона запускає цільову функцію на vmalloc() копії всіх вхідних і вихідних даних. Це лише запобігає деяким доступам за межі дозволеного завдяки захисним сторінкам. API режиму SandBox дозволяє запускати кожен компонент в ізольованому середовищі виконання.

SandBox Mode for Linux Kernel

Зокрема, області пам’яті, що використовуються як вхідні та/або вихідні дані, ізольовані від решти ядра та оточені захисними сторінками. Без аркових хуків ця загальна база забезпечує слабку ізоляцію. На архітектурах, які реалізують необхідні аркові хуки, режим SandBox використовує апаратні засоби підкачки та рівні привілеїв процесора, щоб забезпечити використання лише цих попередньо визначених областей пам’яті. Завдяки підтримці арки, SBM також може відновлюватися після порушень захисту. Це означає, що SBM примусово завершує роботу пісочниці та повертає код помилки (наприклад, -EFAULT) тому, хто її викликав, щоб продовжити виконання. Така реалізація забезпечує надійну ізоляцію.

Електронні листи Linux показують, що Петро Тесарик з Huawei Cloud випустив серію патчів з “запитом на коментарі” про новий режим пісочниці. Петро описав режим пісочниці наступним чином:

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

Ця серія патчів додає до ядра API у режимі пісочниці та архітектурно-незалежну інфраструктуру. Вона запускає цільову функцію на копії vmalloc() усіх вхідних і вихідних даних. Це дозволяє запобігти деяким випадкам несанкціонованого доступу через захищену сторінку.

Пропозиція щодо режиму пісочниці

Петро Тесарик з Huawei розіслав серію патчів “запит на коментарі” щодо нового режиму пісочниці. Документ про режим пісочниці містить додаткові описи, наведені нижче:

Основною метою режиму пісочниці (SBM) є зменшення впливу потенційних помилок безпеки пам’яті у коді ядра шляхом розбиття ядра на частини. API SBM дозволяє запускати кожен компонент в ізольованому середовищі виконання. Зокрема, області пам’яті, що використовуються як входи та/або виходи, ізольовані від решти ядра та оточені захисними сторінками.

На архітектурі, яка реалізує необхідні хуки арки, режим пісочниці використовує апаратні засоби підкачки та рівні привілеїв процесора для примусового використання лише цих попередньо визначених областей пам’яті. Завдяки підтримці Arch, SBM також може відновлюватися після порушень захисту. Це означає, що SBM примусово завершує роботу пісочниці і повертає код помилки (наприклад, “-EFAULT”) користувачеві, щоб виконання могло продовжитися. Така реалізація забезпечує *сильну ізоляцію*.

Huawei logo

Пропозиція GMEM

У вівторок інженер Huawei Вейсі Чжу оголосив про початок роботи над GMEM, сподіваючись уникнути дублювання коду. Пропозиція GMEM досить добре підсумовує поточну проблему/виклик. Орієнтований на пропускну здатність прискорювач не буде терпіти виконання важких завдань доступу до пам’яті з хостовим MMU/IOMMU через віддалений доступ. Тому пристрої все одно матимуть власний MMU і обиратимуть простіший формат таблиці сторінок для зниження накладних витрат на трансляцію адрес, що вимагає зовнішніх підсистем MM.

У запропонованому коді GMEM підсистема управління пам’яттю Linux (MM) розширена, щоб ділитися своїм машинно-незалежним кодом, забезпечуючи при цьому лише високу продуктивність. Своєю чергою, GMEM повинен дозволити більше повторного використання драйверами без винайдення колеса. GMEM було протестовано з драйвером нейронного процесора Huawei. Перехід на GMEM дозволив лише драйверу Huawei NPU скоротити 26 тис. рядків коду. Існують й інші переваги, викладені в пропозиції GMEM. Пропозицію GMEM можна знайти в повному обсязі на dri-devel, поки вона чекає на розгляд та відгуки від інших драйверів пристроїв Linux.

Висновок

На завершення, запропонований Huawei SandBox Mode для ядра Linux спрямований на підвищення безпеки пам’яті шляхом виконання власного коду ядра в середовищі, яке дозволяє доступ до пам’яті лише за заздалегідь визначеними адресами. API SandBox Mode дозволяє запускати кожен компонент в ізольованому середовищі виконання. На архітектурах, які реалізують необхідні аркові хуки, SandBox Mode використовує апаратні засоби підкачки. Він також використовує рівні привілеїв процесора, щоб забезпечити використання лише цих попередньо визначених областей пам’яті. Завдяки підтримці арки, SBM також може відновлюватися після порушень захисту. Це означає, що SBM примусово завершує роботу пісочниці. Після цього він повертає код помилки (наприклад, -EFAULT) користувачеві, щоб продовжити виконання. Така реалізація забезпечує надійну ізоляцію.

What’s your Reaction?
Cool
3
Cool
Happy
2
Happy
Shaking
2
Shaking
Interesting
2
Interesting
Sad
1
Sad
Angry
0
Angry
Читайте Gizchina в Google News

Сподобалась стаття? Подякуй редакції!

Джерело
Поділитися з друзями

Постійна авторка сайту gizchina.com.ua

Оцініть автора
( 2 оцінки, середнє 2 з 5 )
GizChina.net

Huawei предлагает запустить новый “режим песочницы” для ядра Linux, чтобы повысить безопасность памяти

huawei growth 1200x675

Китайский технологический гигант Huawei предложил новый режим “SandBox Mode” для ядра Linux, чтобы повысить безопасность памяти. Конечная цель режима SandBox заключается в выполнении собственного кода ядра в среде, которая позволяет доступ к памяти только по заранее определенным адресам. Таким образом, уязвимости не могут быть использованы или не будут иметь влияния на остальную часть ядра. Эта серия патчей добавляет в ядро API и архитектурно-независимую инфраструктуру режима SandBox. Он запускает целевую функцию на vmalloc() копии всех входных и выходных данных. Это только предотвращает некоторые доступы за пределы разрешенного благодаря защитным страницам. API режима SandBox позволяет запускать каждый компонент в изолированной среде выполнения.

SandBox Mode for Linux Kernel

В частности, области памяти, используемые в качестве входных и/или выходных данных, изолированы от остальной части ядра и окружены защитными страницами. Без арковых хуков эта общая база обеспечивает слабую изоляцию. На архитектурах, которые реализуют необходимые арковые хуки, режим SandBox использует аппаратные средства подкачки и уровни привилегий процессора, чтобы обеспечить использование только этих предварительно определенных областей памяти. Благодаря поддержке арки, SBM также может восстанавливаться после нарушений защиты. Это означает, что SBM принудительно завершает работу песочницы и возвращает код ошибки (например, -EFAULT) тому, кто ее вызвал, чтобы продолжить выполнение. Такая реализация обеспечивает надежную изоляцию.

Электронные письма Linux показывают, что Петр Тесарик из Huawei Cloud выпустил серию патчей с “запросом комментариев” о новом режиме песочницы. Петр описал режим песочницы следующим образом:

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

Эта серия патчей добавляет в ядро API в режиме песочницы и архитектурно-независимую инфраструктуру. Она запускает целевую функцию на копии vmalloc() всех входных и выходных данных. Это позволяет предотвратить некоторые случаи несанкционированного доступа через защищенную страницу.

Предложение по режиму песочницы

Петр Тесарик из Huawei разослал серию патчей “запрос на комментарии” по новому режиму песочницы. Документ о режиме песочницы содержит дополнительные описания, приведенные ниже:

Основной целью режима песочницы (SBM) является уменьшение влияния потенциальных ошибок безопасности памяти в коде ядра путем разбиения ядра на части. API SBM позволяет запускать каждый компонент в изолированной среде выполнения. В частности, области памяти, используемые как входы и/или выходы, изолированы от остального ядра и окружены защитными страницами.

На архитектуре, которая реализует необходимые хуки арки, режим песочницы использует аппаратные средства подкачки и уровни привилегий процессора для принудительного использования только этих предварительно определенных областей памяти. Благодаря поддержке Arch, SBM также может восстанавливаться после нарушений защиты. Это означает, что SBM принудительно завершает работу песочницы и возвращает код ошибки (например, “-EFAULT”) пользователю, чтобы выполнение могло продолжиться. Такая реализация обеспечивает *сильную изоляцию*.

Huawei logo

Предложение GMEM

Во вторник инженер Huawei Вэйси Чжу объявил о начале работы над GMEM, надеясь избежать дублирования кода. Предложение GMEM достаточно хорошо суммирует текущую проблему/вызов. Ориентированный на пропускную способность ускоритель не будет терпеть выполнения тяжелых задач доступа к памяти с хостовым MMU/IOMMU через удаленный доступ. Поэтому устройства все равно будут иметь собственный MMU и выбирать более простой формат таблицы страниц для снижения накладных расходов на трансляцию адресов, что требует внешних подсистем MM.

В предлагаемом коде GMEM подсистема управления памятью Linux (MM) расширена, чтобы делиться своим машинно-независимым кодом, обеспечивая при этом только высокую производительность. В свою очередь, GMEM должен позволить большее повторное использование драйверов без изобретения колеса. GMEM был протестирован с драйвером нейронного процессора Huawei. Переход на GMEM позволил только драйверу Huawei NPU сократить 26 тыс. строк кода. Существуют и другие преимущества, изложенные в предложении GMEM. Предложение GMEM можно найти в полном объеме на dri-devel, пока оно ждет рассмотрения и отзывов от других драйверов устройств Linux.

Заключение

В заключение, предложенный Huawei SandBox Mode для ядра Linux направлен на повышение безопасности памяти путем выполнения собственного кода ядра в среде, которая позволяет доступ к памяти только по заранее определенным адресам. API SandBox Mode позволяет запускать каждый компонент в изолированной среде выполнения. На архитектурах, которые реализуют необходимые арковые хуки, SandBox Mode использует аппаратные средства подкачки. Он также использует уровни привилегий процессора, чтобы обеспечить использование только этих предварительно определенных областей памяти. Благодаря поддержке арки, SBM также может восстанавливаться после нарушений защиты. Это означает, что SBM принудительно завершает работу песочницы. После этого он возвращает код ошибки (например, -EFAULT) пользователю, чтобы продолжить выполнение. Такая реализация обеспечивает надежную изоляцию.

What’s your Reaction?
Cool
1
Cool
Happy
1
Happy
Shaking
0
Shaking
Interesting
0
Interesting
Sad
0
Sad
Angry
2
Angry
Читайте Gizchina в Google News

Сподобалась стаття? Подякуй редакції!

Джерело
Поділитися з друзями

Постійна авторка сайту gizchina.com.ua

Оцініть автора
( 2 оцінки, середнє 2 з 5 )
GizChina.net