![Могут ли модули безопасности полностью переопределить модель доступа ядра Linux?](https://rvso.com/image/178482/%D0%9C%D0%BE%D0%B3%D1%83%D1%82%20%D0%BB%D0%B8%20%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8%20%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%20%D1%8F%D0%B4%D1%80%D0%B0%20Linux%3F.png)
Я знаю оApparmorи, в частности, как это можно использоватьпределправа доступа программы, которые в противном случае допускают разрешения файловой системы. Что мне менее ясно, так это то, может ли Apparmor или любой подобный модуль безопасности полностью переопределить права доступа программы. Могут ли онигрантпрограммный доступ для чтения/записи/выполнения файлов, к которым у пользователя в противном случае нет доступа.
Я спрашиваю о том, что ядро Linux позволит делать такому модулю безопасности, а не о том, на какие действия можно настроить существующие модули безопасности.
Могут ли модули безопасности полностью переопределить модель доступа ядра Linux?
решение1
Кажется, об этом не упоминаетсядокументация LSM ядра, но нет, модули безопасности не могут полностью переопределить модель доступа ядра, они дополняют ее.
Например, проверки перед исполнением включают в себя те, которые указаны вdo_open_execat
, который проверяет разрешения; LSM-хуки вызываются позже (ищите security_
). Другие примеры включают все функции вfs/namei.c
которые вызывают функции типаmay_delete
перед соответствующими хуками LSM.