AppArmor («Application Armor») — это модуль безопасности ядра Linux , который позволяет системному администратору ограничивать возможности программ с помощью профилей для каждой программы. Профили могут разрешать такие возможности, как сетевой доступ, доступ к сырым сокетам и разрешение на чтение, запись или выполнение файлов по соответствующим путям. AppArmor дополняет традиционную модель дискреционного управления доступом (DAC) Unix, предоставляя обязательный контроль доступа (MAC). Он был частично включен в основное ядро Linux с версии 2.6.36, и его разработка поддерживается Canonical с 2009 года.
В дополнение к ручному созданию профилей AppArmor включает режим обучения, в котором нарушения профиля регистрируются, но не предотвращаются. Этот журнал затем может быть использован для создания профиля AppArmor на основе типичного поведения программы.
AppArmor реализован с использованием интерфейса ядра Linux Security Modules (LSM).
AppArmor предлагается частично как альтернатива SELinux , которую критики считают сложной для настройки и обслуживания администраторами. [3] В отличие от SELinux, который основан на применении меток к файлам, AppArmor работает с путями к файлам. Сторонники AppArmor утверждают, что он менее сложен и прост в освоении для обычного пользователя, чем SELinux. [4] Они также утверждают, что AppArmor требует меньше модификаций для работы с существующими системами. [ необходима цитата ] Например, SELinux требует файловой системы, которая поддерживает «метки безопасности», и, таким образом, не может обеспечить контроль доступа для файлов, смонтированных через NFS . AppArmor не зависит от файловой системы.
AppArmor представляет собой один из нескольких возможных подходов к проблеме ограничения действий, которые может выполнять установленное программное обеспечение.
Система SELinux в целом использует подход, аналогичный AppArmor. Одно важное отличие: SELinux идентифицирует объекты файловой системы по номеру inode, а не по пути. В AppArmor недоступный файл может стать доступным, если на него создана жесткая ссылка . Это отличие может быть менее важным, чем когда-то, поскольку Ubuntu 10.10 и более поздние версии смягчают это с помощью модуля безопасности Yama, который также используется в других дистрибутивах. [5] Модель SELinux на основе inode всегда изначально запрещала доступ через вновь созданные жесткие ссылки, поскольку жесткая ссылка указывала бы на недоступный inode.
SELinux и AppArmor также существенно различаются по способу администрирования и интеграции в систему.
Изоляция процессов также может быть достигнута с помощью таких механизмов, как виртуализация; например, проект «Один ноутбук на ребенка » (OLPC) изолирует отдельные приложения в облегченном Vserver .
В 2007 году было представлено ядро упрощенного обязательного контроля доступа .
В 2009 году в Linux 2.6.30 было включено новое решение под названием Tomoyo ; как и AppArmor, оно также использует контроль доступа на основе путей.
AppArmor впервые был использован в Immunix Linux 1998–2003. В то время AppArmor был известен как SubDomain, [6] [7] что означало возможность сегментации профиля безопасности для определенной программы на различные домены, между которыми программа могла динамически переключаться. AppArmor впервые появился в SLES и openSUSE и впервые был включен по умолчанию в SLES 10 и openSUSE 10.1.
В мае 2005 года Novell приобрела Immunix и переименовала SubDomain в AppArmor, а также начала очистку и переписывание кода для включения в ядро Linux . [8] С 2005 по сентябрь 2007 года AppArmor поддерживался Novell. Novell была поглощена SUSE , которая теперь является законным владельцем торговой марки AppArmor. [9]
AppArmor был впервые успешно портирован/упакован для Ubuntu в апреле 2007 года. AppArmor стал пакетом по умолчанию, начиная с Ubuntu 7.10, и вошел в состав выпуска Ubuntu 8.04, защищая по умолчанию только CUPS . Начиная с Ubuntu 9.04 больше элементов, таких как MySQL, имеют установленные профили. Усиление защиты AppArmor продолжило улучшаться в Ubuntu 9.10, поскольку он поставляется с профилями для своего гостевого сеанса, виртуальных машин libvirt , средства просмотра документов Evince и дополнительного профиля Firefox. [10]
AppArmor был интегрирован в релиз ядра 2.6.36 от октября 2010 года. [11] [12] [13] [14]
AppArmor был интегрирован в DSM компании Synology с версии 5.1 Beta в 2014 году. [15]
AppArmor был включен в Solus Release 3 15.08.2017. [16]
AppArmor включен по умолчанию в Debian 10 (Buster) , выпущенном в июле 2019 года. [17]
AppArmor доступен в дополнительном репозитории Arch Linux . [18]