Tuesday, October 15, 2013

Особенности встраивания в ключевые механизмы ядра Linux с использованием LSM

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

Среди способов встраивания в ядро 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: Inline images 1