Повышение безопасности Linux-ядра через использование страниц памяти, доступных только для чтения

9 ноября 2010 года

Кэйс Кук (Kees Cook), главный сисадмин kernel.org и лидер Ubuntu Security Team, предложил в списке рассылки разработчиков Linux-ядра с целью повышения безопасности расширить области использования в ядре страниц памяти, переведённых в режим "только чтение". Данная мера позволит реализовать упреждающую защиту от эксплуатации уязвимостей, связанных с возможностью перезаписи областей памяти ядра, вследствие ошибок.

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

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

С общим планом переноса в основное Linux-ядро различных улучшений из проектов PaX и grsecurity можно ознакомиться на данной странице. Кроме вышеотмеченных функций можно упомянуть проведение чистки файловой системы /proc на предмет возможной утечки важной для проведения атак информации; добавление возможностей для контроля автозагрузки модулей; поддержка пометки процессов как только 32- или 64-разрядных; ограничение доступа к системным вызовам, связанным с режимом vm86; скрытие служебных символьных таблиц ядра; рандомизация стека ядра и сегментирование памяти (PAX_RANDKSTACK, PAX_MEMORY_UDEREF); поддержка битовой маски для ограничения доступа к определённым классам системных вызовов.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Повышение безопасности Linux-ядра через использование страниц памяти, доступных только для чтения», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.