Введение

Модуль безопасности ядра Linux AppArmor ("Application Armor") — это модуль безопасности ядра Linux, позволяющий системному администратору ограничивать возможности программ с помощью профилей для каждой программы. Профили могут предоставлять такие возможности, как доступ к сети, доступ к сырым сокетам, а также разрешение на чтение, запись или выполнение файлов по соответствующим путям. AppArmor дополняет традиционную модель дискреционного контроля доступа Unix (DAC), обеспечивая принудительный контроль доступа (MAC). Он частично включен в основное ядро Linux начиная с версии 2.6.36, а его разработка поддерживается Canonical с 2009 года.

Подробности

В дополнение к ручному созданию профилей, AppArmor включает режим обучения, в котором нарушения профиля регистрируются, но не блокируются. Этот журнал затем можно использовать для генерации профиля AppArmor, основанного на типичном поведении программы. AppArmor реализован с использованием интерфейса ядра Linux Security Modules (LSM). AppArmor предлагается отчасти как альтернатива SELinux, которую критики считают сложной в настройке и обслуживании для администраторов. В отличие от SELinux, который основан на применении меток к файлам, AppArmor работает с путями к файлам. Сторонники AppArmor утверждают, что он менее сложен и легче в освоении для обычного пользователя, чем SELinux. Они также утверждают, что AppArmor требует меньше изменений для работы с существующими системами. Например, SELinux требует файловой системы, поддерживающей "метки безопасности", и поэтому не может обеспечить контроль доступа к файлам, смонтированным через NFS. AppArmor не зависит от типа файловой системы.

Другие системы

AppArmor представляет собой один из нескольких возможных подходов к проблеме ограничения действий, которые может выполнять установленное программное обеспечение. Система SELinux обычно использует аналогичный подход. Одно важное отличие: SELinux идентифицирует объекты файловой системы по номеру inode, а не по пути. В AppArmor недоступный файл может стать доступным, если будет создана жесткая ссылка на него. Однако это различие может быть менее значимым, поскольку начиная с Ubuntu 10.10 и более поздних версий, эта проблема смягчается благодаря модулю безопасности Yama, который также используется в других дистрибутивах. Модель SELinux, основанная на inode, изначально всегда запрещала доступ через вновь созданные жесткие ссылки, поскольку такая ссылка указывала бы на недоступный inode. SELinux и AppArmor также существенно различаются в способах администрирования и интеграции в систему. Изоляция процессов также может быть реализована с помощью механизмов, таких как виртуализация; например, проект One Laptop per Child (OLPC) использует песочницу для отдельных приложений в легковесной Vserver. В 2007 году было представлено упрощенное ядро обязательного контроля доступа. В 2009 году в Linux 2.6.30 было включено новое решение под названием Tomoyo, которое, как и AppArmor, использует контроль доступа на основе пути.

Доступность

AppArmor впервые был использован в Immunix Linux в период с 1998 по 2003 год. В то время AppArmor был известен как SubDomain, что отражало возможность сегментирования профиля безопасности конкретной программы на различные домены, между которыми программа могла динамически переключаться. AppArmor впервые стал доступен в SLES и openSUSE и был впервые включен по умолчанию в SLES 10 и openSUSE 10.1. В мае 2005 года Novell приобрела Immunix и переименовала SubDomain в AppArmor, начав очистку и переработку кода для включения в ядро Linux. С 2005 по сентябрь 2007 года AppArmor поддерживался Novell. Novell была приобретена SUSE, которая теперь является законным владельцем товарного знака AppArmor. AppArmor был впервые успешно портирован и упакован для Ubuntu в апреле 2007 года. AppArmor стал пакетом по умолчанию, начиная с Ubuntu 7.10, и вошел в состав релиза Ubuntu 8.04, обеспечивая защиту только CUPS по умолчанию. Начиная с Ubuntu 9.04, профили были установлены для большего числа компонентов, таких как MySQL. Усиление безопасности AppArmor продолжалось в Ubuntu 9.10, поскольку он поставлялся с профилями для гостевой сессии, виртуальных машин libvirt, просмотрщика документов Evince и необязательного профиля Firefox. AppArmor был интегрирован в релиз ядра 2.6.36, выпущенный в октябре 2010 года. AppArmor интегрирован в DSM от Synology, начиная с бета-версии 5.1 в 2014 году. AppArmor был включен в Solus Release 3 15 августа 2017 года. AppArmor включен по умолчанию в Debian 10 (Buster), выпущенном в июле 2019 года. AppArmor доступен в дополнительном репозитории Arch Linux.