Под встраиванием в программную систему понимается процесс внедрения в неё дополнительных (сторонних) программных элементов осуществляемый таким образом, чтобы с одной стороны сохранялось её функционирование, а с другой — расширялись или изменялись её функциональные возможности.
Среди способов встраивания в ядро Linux стоит отметить способ, основанный на использовании фреймворка Linux Security Modules (далее, LSM), предназначенного для интеграции различных моделей безопасности, служащих целью расширения базовой дискреционной модели безопасности Linux (DAC).
О реализации LSM в ядре Linux
Особенности реализации LSM, о которых будет сказано далее, позволяют использовать данную подсистему для встраивания в ключевые механизмы ядра Linux. При этом, необходимо иметь в виду, что основное назначение LSM состоит в том, чтобы предоставить пользователю унифицированный интерфейс расширения действующей модели безопасности Linux и, следовательно, имеет связанные с этим ограничения.
Архитектура подсистемы LSM отличается своей простотой. Технически она представляет собой набор установленных в ядре ОС хуков, которые предоставляют интерфейс для внедрения собственных обработчиков, вызываемых системой в ходе выполнения различных операций. Базовой структурой-описателем модели безопасности является структура security_operations, описание которой можно найти в файле include/linux/security.h:
struct security_operations {
char name[SECURITY_NAME_MAX + 1];
...
int inode_permission(struct inode * inode, int mask);
...
}
Read more: Habrahabr.ru
QR: