Архитектура LSM
Архитектура LSM (Linux Security Modules)
LSM — это фреймворк в ядре Linux, который позволяет интегрировать различные модели безопасности (SELinux, AppArmor, Smack, TOMOYO) без изменения основного кода ядра. Это ключевой компонент для построения защищённых систем.
Как работает LSM
LSM добавляет хуки (hooks) в критические точки ядра:
- Доступ к файлам (open, read, write)
- Создание процессов (fork, exec)
- Работа с сетью (socket, bind)
- Операции с памятью
Каждый модуль безопасности реализует свои политики через эти хуки.
Основные модули
- SELinux: мандатный контроль доступа (MAC) с детальными политиками
- AppArmor: профильная модель, проще в настройке
- Smack: упрощённый MAC для встраиваемых систем
- TOMOYO: обучение на основе поведения
Пример политики SELinux
# Политика для веб-сервера
httpd_sys_content_t -- доступ к контенту
httpd_sys_script_t -- для скриптов
# Проверка контекста
ls -Z /var/www/html
ps -eZ | grep httpd
Когда использовать LSM
- Production-серверы с высокими требованиями к безопасности
- Многопользовательские системы
- Встраиваемые устройства
- Среды с compliance-требованиями (PCI DSS, HIPAA)
Рекомендации
- Выбирайте модуль под задачу: AppArmor для простоты, SELinux для максимальной безопасности
- Начинайте с permissive режима
- Тестируйте политики перед внедрением
- Документируйте все исключения