Что такое apparmor?

Я слышу много разговоров о apparmor, я хочу знать следующее:

  • Что такое apparmor?
  • Как работает apparmor?

3 ответа

Решение

Что это

Apparmor - это система обязательного контроля доступа (или MAC). Он использует улучшения ядра LSM, чтобы ограничить программы определенными ресурсами. AppArmor делает это с профилями, загруженными в ядро ​​при запуске системы. Apparmor имеет два типа режимов профиля: принудительное применение и жалоба. Профили в принудительном режиме обеспечивают соблюдение правил этого профиля и сообщают о попытках нарушения в syslog или же auditd, Профили в режиме жалоб не применяют никакие правила профиля, только регистрируют попытки нарушения.

В Ubuntu Apparmor устанавливается по умолчанию. Он ограничивает приложения профилями, чтобы определить, к каким файлам и разрешениям программа должна иметь доступ. Некоторые приложения будут иметь свои собственные свойства, и другие могут быть найдены в apparmor-profiles пакет.

Вы можете установить apparmor-profiles запустив sudo apt-get install apparmor-profiles,

Я нашел хороший пример Apparmor на форумах Ubuntu, который я переписал для этого поста.

Apparmor - это структура безопасности, которая предотвращает превращение приложений во зло. Например: если я запускаю Firefox и посещаю плохой сайт, который пытается установить вредоносное ПО, которое удалит мой home В папке Apparmor есть ограничения на Firefox, но он запрещает делать то, что я не хочу (например, доступ к моей музыке, документам и т. д.). Таким образом, даже если ваше приложение взломано, никакого вреда не может быть.

Как это устроено

apparmor-utils Пакет содержит инструменты командной строки для настройки Apparmor. С его помощью вы можете изменить режим выполнения Apparmor, узнать статус профиля, создать новые профили и т. Д.

Это наиболее распространенные команды:

Примечание. Профили хранятся в /etc/apparmor.d/

  • Вы можете проверить статус Apparmor с sudo apparmor_status, Вы получите список всех загруженных профилей *, все профили в принудительном режиме, все профили в режиме жалоб, какие процессы определены в принудительном / жалобе и т. Д.
  • Для перевода профиля в режим жалоб вы используете sudo aa-complain /path/to/bin, где /path/to/bin это программы bin папка. Например, работает: sudo aa-complain /usr/bin/firefox переведет Firefox в режим жалоб.
  • Ты используешь sudo aa-enforce /path/to/bin для обеспечения профиля программы.
  • Вы можете загрузить все профили в режим жалоб / принудительного применения с sudo aa-complain /etc/apparmor.d/* а также sudo aa-enforce.d/* соответственно.

Для загрузки профиля в ядро ​​вы бы использовали apparmor_parser, Вы можете перезагрузить профили, используя -r параметр.

  • Для загрузки профиля используйте: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a, который эффективно печатает содержимое profile.name в парсер Apparmor.
  • Для перезагрузки профиля вы используете -r параметр, вот так: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Для перезагрузки всех профилей Apparmor используйте: sudo service apparmor reload

Чтобы отключить профиль, на который вы ссылаетесь /etc/apparmor.d/disable/ с помощью ln как это: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ затем запустите: sudo apparmor_parser -R /etc/apparmor.d/profile.name,

Примечание: не путайте apparmor_parser -r с apparmor_parser -R ОНИ НЕ ЖЕ ВЕЩЬ!

  • Чтобы снова включить профиль, удалите символическую ссылку на него в /etc/apparmor.d/disable/ затем загрузите его, используя -a параметр. sudo rm /etc/apparmor.d/disable/profile.namecat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Вы можете отключить Apparmor с sudo service apparmor stop и удалите модуль ядра, используя sudo update-rc.d -f apparmor defaults
  • Запустите Apparmor с sudo service apparmor start и загрузить модули ядра с sudo update-rc.d apparmor defaults

профили

Профили хранятся в /etc/apparmor.d/ и названы в честь полного пути к исполняемому ими профилю, заменив '/' на '.'. Например /etc/apparmor.d/bin.ping это профиль для ping в /bin,

В профилях используются два основных типа записей:

  1. Записи пути определяют, к каким файлам может обращаться приложение.

  2. Записи возможностей определяют, какие привилегии может использовать процесс.

Давайте посмотрим на профиль для ping, находится в etc/apparmor.d/bin.ping, В качестве примера.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global> Включает файл global в каталоге tunables это позволяет размещать в одном файле операторы, относящиеся к нескольким приложениям.

/bin/ping flags=(complain) устанавливает путь к профилируемой программе и устанавливает режим подачи жалоб.

capability net_raw позволяет приложению доступ к CAP_NET_RAW Posix.1e возможность.

/bin/ping mixr позволяет приложению читать и выполнять доступ к файлу.

/etc/modules.conf r, r дает приложению права на чтение для /etc/modules.conf

Примечание. После создания / редактирования профиля необходимо перезагрузить профиль, чтобы изменения вступили в силу.

Вот список разрешений, которые вы можете использовать:

  • r - читать
  • w - записывать
  • ux - Неограниченное выполнение
  • Ux - Неограниченное выполнение - очистка среды
  • px - Дискретный профиль выполнения
  • Px - Дискретный профиль выполнить - очистить окружающую среду
  • ix - унаследовать выполнение
  • m - разрешать PROT_EXEC с mmap(2) звонки
  • l - ссылка на сайт

источники

AppArmor - это система обязательного контроля доступа (MAC), которая является усовершенствованием ядра (LSM) для ограничения программ ограниченным набором ресурсов. Модель безопасности AppArmor заключается в привязке атрибутов контроля доступа к программам, а не к пользователям. Ограничение AppArmor обеспечивается через профили, загруженные в ядро, обычно при загрузке. Профили AppArmor могут работать в одном из двух режимов: принудительное исполнение и жалоба. Профили, загруженные в режиме принудительного применения, приведут к принудительному выполнению политики, определенной в профиле, а также к сообщениям о попытках нарушения политики (с помощью syslog или auditd). Профили в режиме жалоб не будут применять политику, а сообщать о попытках нарушения политики.

AppArmor отличается от некоторых других систем MAC в Linux тем, что он основан на путях, позволяет смешивать профили принудительного применения и режима жалоб, использует включаемые файлы для упрощения разработки и имеет гораздо более низкий барьер для входа, чем другие популярные системы MAC.

AppArmor - признанная технология, впервые появившаяся в Immunix, а затем интегрированная в Ubuntu, Novell/SUSE и Mandriva. Основные функциональные возможности AppArmor находятся в основном ядре Linux начиная с версии 2.6.36; AppArmor, Ubuntu и другие разработчики продолжают работу по слиянию дополнительных функций AppArmor с основным ядром.

У меня есть несколько более полезных ссылок на вас: Wiki.Ubuntu.com Ubuntuforums.org

Руководства по Apparmor для Ubuntu 12.04 и Ubuntu 12.10

Надеюсь, что это поможет вам.

Вот цитата из Apparmor вики:

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

Другие вопросы по тегам