Защита от записи в кодовом пространстве ядра Linux - PullRequest
0 голосов
/ 27 февраля 2011

У меня было несколько вопросов по защите записи на странице памяти ядра Linux.

  1. Как я могу выяснить, защищен ли код ядра (текстовый сегмент) от записи или нет.Я могу посмотреть на /proc/<process-id>/map, чтобы увидеть карту памяти для различных процессов.Но не уверен, где искать карту памяти кода ядра.

  2. Если сегмент кода ядра защищен от записи, тогда возможно, что страницы сегмента кода будут перезаписаны любым другим ядромкод уровня.Другими словами, защищает ли защита от записи на странице текстового сегмента защиту от записи только кода пользовательского пространства или она предотвращает запись даже из кода пространства ядра.

Спасибо

Ответы [ 2 ]

1 голос
/ 27 февраля 2011
  1. Код, работающий в ядре, имеет прямой доступ к таблицам страниц для текущего адресного пространства, поэтому он может проверить доступ на запись, изучив их. Вероятно, есть функции, которые помогут вам с этой проверкой, но я недостаточно знаком с кодом mm, чтобы указать на них. Есть ли более простой способ? Я не уверен.

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

0 голосов
/ 14 апреля 2011

Об этом говорит одна газета.По сути, он использует небольшой гипервизор для защиты ядра ОС.

SecVisor: крошечный гипервизор для обеспечения целостности кода ядра на протяжении всей жизни для товарных ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...