Модули безопасности ядра: i_security в struct inode - PullRequest
1 голос
/ 11 апреля 2011

мой вопрос, вероятно, снова довольно прост, но я ничего не нашел. Я пишу модуль безопасности Linux. Как вы, возможно, знаете, struct inode в ядре содержит одно поле i_security для сохранения соответствующей информации о безопасности для LSM. Теперь просто чтобы убедиться: безопасно ли предположить, что ни один пользователь (даже root) не сможет прочитать или записать это значение, т. Е. Действительно ли это значение доступно только из пространства ядра?

Причина моего вопроса в том, что очевидно, что к некоторым данным inode можно получить доступ из пользовательского пространства (я думаю, через системные вызовы, но при использовании chmod и т. Д. Вы можете изменить некоторые значения в inode), и теперь мне интересно если это не означает, что ко всем данным inode (в том числе и к i_security) можно как-то получить доступ из пользовательского пространства.

Приветствия

1 Ответ

1 голос
/ 11 апреля 2011

Да.Вы можете использовать grep или ack для проверки кода ядра на i_security, и вы можете обнаружить, что он изменяется только файлами в каталоге security/ и не может быть изменен пользовательскими приложениями, так как они не имеют прямого доступа к i_securityполе.

...