Jump to content

Изоляция таблицы страниц ядра

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

Изоляция таблицы страниц ядра ( KPTI или PTI , [ 1 ] ранее назывался KAISER ) [ 2 ] [ 3 ] — это функция ядра Linux которая смягчает уязвимость безопасности Meltdown (затрагивающую в основном Intel , x86 процессоры ). [ 4 ] и улучшает защиту ядра от попыток обойти рандомизацию структуры адресного пространства ядра (KASLR). Он работает за счет лучшей изоляции пользовательского пространства и памяти пространства ядра. [ 5 ] [ 6 ] KPTI был объединен с ядром Linux версии 4.15. [ 7 ] и перенесен на ядра Linux 4.14.11, 4.9.75 и 4.4.110. [ 8 ] [ 9 ] [ 10 ] Окна [ 11 ] и macOS [ 12 ] выпустил аналогичные обновления. KPTI не устраняет связанную уязвимость Spectre . [ 13 ]

Справочная информация о компании KAISER

[ редактировать ]

Патчи KPTI были основаны на KAISER (сокращение от Kernel Address Isolation для эффективного удаления побочных каналов ), [ 6 ] техника, задуманная в 2016 году [ 14 ] и опубликован в июне 2017 года, когда о Meltdown еще не было известно. KAISER усложняет победу над KASLR — смягчением гораздо менее серьезной проблемы, принятым в 2014 году.

В 2014 году ядро ​​Linux приняло рандомизацию расположения адресного пространства ядра (KASLR). [ 15 ] что затрудняет эксплуатацию других уязвимостей ядра, [ 16 ] который основан на сопоставлении адресов ядра, остающихся скрытыми от пользовательского пространства. [ 17 ] Несмотря на запрет доступа к этим сопоставлениям ядра, оказывается, что в современных процессорах существует несколько атак по побочным каналам , которые могут привести к утечке местоположения этой памяти, что позволяет обойти KASLR. [ 6 ] [ 18 ] [ 19 ] [ 20 ]

KAISER решил эти проблемы в KASLR, устранив некоторые источники утечки адресов. [ 6 ] В то время как KASLR просто предотвращает утечку сопоставлений адресов, KAISER также предотвращает утечку данных, тем самым охватывая случай Meltdown. [ 21 ]

КПТИ основан на KAISER. Без включения KPTI при каждом выполнении кода пользовательского пространства (приложений) Linux также будет отображать всю свою память ядра в таблицах страниц , хотя и будет защищен от доступа. Преимущество состоит в том, что когда приложение выполняет системный вызов ядра или получает прерывание , таблицы страниц ядра всегда присутствуют, поэтому большинства накладных расходов, связанных с переключением контекста ( очистка TLB , замена таблиц страниц и т. д.). можно избежать [ 5 ]

Уязвимость Meltdown и KPTI

[ редактировать ]

В январе 2018 года была опубликована уязвимость Meltdown , которая, как известно, затрагивает процессоры Intel x86 и ARM Cortex-A75 . [ 22 ] [ 23 ] Это была гораздо более серьезная уязвимость, чем обход KASLR, который изначально намеревался исправить KAISER: было обнаружено, что утечка может также осуществляться содержимым памяти ядра, а не только местами сопоставления памяти, как считалось ранее.

KPTI (концептуально основанный на KAISER) предотвращает Meltdown, предотвращая отображение наиболее защищенных мест в пользовательском пространстве.

AMD x86 воздействию Meltdown, и для их смягчения не требуется KPTI. На данный момент неизвестно, подвержены ли процессоры [ 13 ] [ 24 ] Однако процессоры AMD по-прежнему подвержены обходу KASLR, когда KPTI отключен. [ 20 ]

Выполнение

[ редактировать ]

KPTI устраняет эти утечки, полностью разделяя таблицы страниц пользовательского пространства и пространства ядра. Один набор таблиц страниц включает в себя адреса как пространства ядра, так и пространства пользователя, как и раньше, но он используется только тогда, когда система работает в режиме ядра. Второй набор таблиц страниц для использования в пользовательском режиме содержит копию пользовательского пространства и минимальный набор отображений пространства ядра, который предоставляет информацию, необходимую для входа или выхода из системных вызовов, прерываний и исключений. [ 5 ]

На процессорах, поддерживающих идентификаторы контекста процесса (PCID), буфера резервной трансляции (TLB). можно избежать очистки [ 5 ] но даже в этом случае это приводит к значительному снижению производительности, особенно в рабочих нагрузках с большим количеством системных вызовов и прерываний. [ 25 ]

По оценкам первоначальных авторов KAISER, накладные расходы составили 0,28%; [ 6 ] разработчик Linux оценил его как примерно 5% для большинства рабочих нагрузок и до 30% в некоторых случаях, даже с оптимизацией PCID; [ 5 ] для ядра базы данных PostgreSQL влияние на тесты только чтения на процессоре Intel Skylake составило 7–17% (или 16–23% без PCID), [ 26 ] в то время как полный бенчмарк потерял 13–19% ( Coffee Lake против Broadwell-E ). [ 27 ] Многие тесты были проведены компанией Phoronix . [ 28 ] [ 29 ] [ 1 ] Redis замедлился на 6–7%. [ 27 ] замедлилась на 5% Компиляция ядра Linux на Haswell . [ 30 ]

KPTI можно частично отключить с помощью опции загрузки ядра nopti. Также были созданы условия для отключения КПТИ, если новые процессоры устранят утечку информации. [ 2 ]

  1. ^ Jump up to: а б Ларабель, Майкл (3 января 2018 г.). «Дальнейший анализ проблемы процессора Intel x86 PTI на других системах» . Фороникс .
  2. ^ Jump up to: а б Корбет, Джонатан (20 декабря 2017 г.). «Текущее состояние изоляции таблицы страниц ядра» . LWN.net .
  3. ^ Чимпану, Каталин (3 января 2018 г.). «Производители ОС готовят исправления для устранения секретной ошибки безопасности процессора Intel» . Пипящий компьютер .
  4. ^ «Spectre, Meltdown: объяснение критических недостатков безопасности процессора – ExtremeTech» . ЭкстримТех . 04.01.2018 . Проверено 5 января 2018 г.
  5. ^ Jump up to: а б с д и Корбет, Джонатан (15 ноября 2017 г.). «KAISER: скрытие ядра из пользовательского пространства» . LWN.net .
  6. ^ Jump up to: а б с д и Привет, Дэниел; Липп, Мориц; Блэк, Майкл; Феллнер, Ричард; Морис, Клементина; Мангард, Стефан (24 июня 2017 г.). KASLR мертв: да здравствует KASLR (PDF) . Инженерное безопасное программное обеспечение и системы 2017.
  7. ^ Корбет, Джонатан (20 декабря 2017 г.). «Изоляция таблицы страниц ядра объединена» . LWN.net .
  8. ^ Кроа-Хартман, Грег (2 января 2018 г.). «Журнал изменений Linux 4.14.11» . ядро.орг .
  9. ^ Кроа-Хартман, Грег (5 января 2018 г.). «Журнал изменений Linux 4.9.75» . ядро.орг .
  10. ^ Кроа-Хартман, Грег (5 января 2018 г.). «Журнал изменений Linux 4.4.110» .
  11. ^ @aionescu (14 ноября 2017 г.). «Изоляция ядра Windows 17035 ASLR/VA на практике» ( твит ) – через Twitter .
  12. ^ «Apple уже частично реализовала в macOS исправление уязвимости безопасности процессора Intel KPTI» . AppleInsider . 3 января 2018 года . Проверено 03 января 2018 г.
  13. ^ Jump up to: а б Колдьюи, Девин (4 января 2018 г.). «Паника ядра! Что такое Meltdown и Spectre, ошибки, затрагивающие почти каждый компьютер и устройство?» . ТехКранч .
  14. ^ Грусс, Дэниел (03 января 2018 г.). «#ЗабавныйФакт: мы отправили #KAISER на #bhusa17 и получили отказ» . Архивировано из оригинала 08 января 2018 г. Проверено 8 января 2018 г. - через Twitter.
  15. ^ «Ядро Linux 3.14, раздел 1.7. Рандомизация адресного пространства ядра» . kernelnewbies.org . 30 марта 2014 г. Проверено 2 апреля 2014 г.
  16. ^ Бхаттачарджи, Абхишек; Люстиг, Дэниел (29 сентября 2017 г.). Архитектурная и операционная поддержка виртуальной памяти . Издательство Морган и Клейпул. п. 56. ИСБН  978-1-62705-933-6 .
  17. ^ Кернер, Шон Майкл (3 января 2018 г.). «Дефект чипа Intel KPTI представляет угрозу безопасности» . еНЕДЕЛЯ .
  18. ^ Чан, Ёнджин; Ли, Санго; Ким, Тэсу (2016). «Нарушение рандомизации макета адресного пространства ядра с помощью Intel TSX» (PDF) . Материалы конференции ACM SIGSAC 2016 г. по компьютерной и коммуникационной безопасности . ККС '16. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 380–392. дои : 10.1145/2976749.2978321 . ISBN  978-1-4503-4139-4 .
  19. ^ Грусс, Дэниел; Морис, Клементина; Фог, Андерс; Липп, Мориц; Мангард, Стефан (2016). «Атаки по побочным каналам с предварительной выборкой» (PDF) . Материалы конференции ACM SIGSAC 2016 г. по компьютерной и коммуникационной безопасности . ККС '16. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 368–379. дои : 10.1145/2976749.2978356 . ISBN  978-1-4503-4139-4 . S2CID   15973158 .
  20. ^ Jump up to: а б Хунд, Р.; Виллемс, К.; Хольц, Т. (май 2013 г.). «Практические атаки по побочным каналам по времени на ASLR ядра» (PDF) . Симпозиум IEEE 2013 по безопасности и конфиденциальности . стр. 191–205. дои : 10.1109/sp.2013.23 . ISBN  978-0-7695-4977-4 . S2CID   215754624 .
  21. ^ «Крах» (PDF) .
  22. ^ «Spectre, Meltdown: объяснение критических недостатков безопасности процессора – ExtremeTech» . ЭкстримТех . 04.01.2018 . Проверено 5 января 2018 г.
  23. ^ Колдьюи, Девин (4 января 2018 г.). «Паника ядра! Что такое Meltdown и Spectre, ошибки, затрагивающие почти каждый компьютер и устройство?» . ТехКранч .
  24. ^ «Обновление безопасности процессоров AMD» . АМД . 04.01.2018.
  25. ^ Лейден, Джон; Уильямс, Крис (2 января 2018 г.). «Ошибка конструкции процессора Intel, связанная с утечкой памяти ядра, вынуждает перепроектировать Linux и Windows» . Регистр .
  26. ^ Фройнд, Андрес (2 января 2018 г.). «Внимание: исправление аппаратной ошибки Intel приведет к снижению производительности» . Список рассылки разработчиков PostgreSQL (pgsql-hackers) .
  27. ^ Jump up to: а б Ларабель, Майкл (2 января 2018 г.). «Первоначальные тесты влияния на производительность в результате изменений безопасности x86 в Linux» . Фороникс .
  28. ^ Ларабель, Майкл (2 января 2018 г.). «Работа PTI x86 не влияет на игровую производительность Linux» . Фороникс .
  29. ^ Ларабель, Майкл (3 января 2018 г.). «Производительность виртуальной машины демонстрирует неоднозначное влияние патчей KPTI для Linux 4.15 – Phoronix» . Фороникс .
  30. ^ Вельвиндрон, Логанаден (4 января 2018 г.). «Производительность Linux KPTI снижается при реальных рабочих нагрузках» . Логанаден Велвиндрон . Проверено 5 января 2018 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9d62301fc6c7e5040b2b538c2eed7f2e__1723702380
URL1:https://arc.ask3.ru/arc/aa/9d/2e/9d62301fc6c7e5040b2b538c2eed7f2e.html
Заголовок, (Title) документа по адресу, URL1:
Kernel page-table isolation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)