Что такое apparmor?

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

  • Что такое apparmor?
  • Как работает apparmor?
92
задан 30 July 2014 в 04:39

3 ответа

Вот цитата из Apparmor wiki :

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

0
ответ дан 30 July 2014 в 04:39

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 & amp; Ubuntu 12.10

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

0
ответ дан 30 July 2014 в 04:39

Что это такое

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.name cat /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 - Выполнение дискретного профиля - очистка environment
  • ix - Наследовать выполнить
  • m - разрешить PROT_EXEC с mmap(2) вызовами
  • l - ссылка

Источники

0
ответ дан 30 July 2014 в 04:39

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

Похожие вопросы: