В ядро Linux 5.4 приняты патчи для ограничения доступа root к внутренностям ядра

Понедельник, 30 сентября 2019 г.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e

Линус Торвальдс принял в состав будущего выпуска ядра Linux 5.4 набор патчей «lockdown», предложенный Дэвидом Хоуэллсом (David Howells, работает в Red Hat) и Мэтью Гарретом (Matthew Garrett, работает в Google) для ограничения доступа пользователя root к ядру. Связанная с «lockdown» функциональность вынесена в опционально загружаемый LSM-модуль (Linux Security Module), устанавливающий барьер между UID 0 и ядром, ограничивая определённую низкоуровневую функциональность.

Если злоумышленник в результате атаки добился выполнения кода с правами root, то он может выполнить свой код и на уровне ядра, напирмер, через замену ядра при помощи kexec или чтения/записи памяти через /dev/kmem. Наиболее очевидным следствием подобной активности может стать обход UEFI Secure Boot или извлечение конфиденциальных данных, хранящихся на уровне ядра.

Изначально функции ограничения root развивались в контексте усиления защиты верифицированной загрузки и в дистрибутивах уже достаточно давно для блокирования обхода UEFI Secure Boot применяются сторонние патчи с ограничениями. При этом в основной состав ядра подобные ограничения не включались из-за разногласий в их реализации и опасений нарушения работы существующих систем. Модуль «lockdown» вобрал в себя уже используемые в дистрибутивах патчи, которые были переработаны в форме отдельной подсистемы, не привязанной к UEFI Secure Boot.

В режиме lockdown ограничивается доступ к /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, отладочному режиму kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), некоторым интерфейсам ACPI и MSR-регистрам CPU, блокируются вызовы kexec_file и kexec_load, запрещается переход в спящий и ждущий режимы, лимитируется использование DMA для PCI-устройств, запрещается импорт кода ACPI из переменных EFI, недопускаются манипуляции с портами ввода/вывода, в том числе изменение номера прерывания и порта ввода/вывода для последовательного порта.

По умолчанию модуль lockdown не активен, собирается при указании в kconfig опции SECURITY_LOCKDOWN_LSM и активируется через параметр ядра «lockdown=», управляющий файл »/sys/kernel/security/lockdown» или сборочные опции LOCK_DOWN_KERNEL_FORCE_*, которые могут принимать значения «integrity» и «confidentiality». В первом случае блокируются возможности, позволяющие вносить изменения в работающее ядро из пространства пользователя, а во втором случае отключается функциональность, которую можно использовать для извлечения конфиденциальной информации из ядра.

При этом важно отметить, что lockdown лишь ограничивает штатные возможности доступа к ядру, но не защищает от модификаций в результате эксплуатации уязвимостей. Для блокирования внесения изменений в работающее ядро при применении эксплоитов проектом Openwall развивается отдельный модуль LKRG (Linux Kernel Runtime Guard).

Источник: http://www.opennet.ru/opennews/art.shtml? num=51591

Следите за нами в ВКонтакте, Facebook'e и Twitter'e


Просмотров: 340
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003