Что такое apparmor?

87

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

  • Что такое apparmor?
  • Как работает apparmor?
задан Alvar 05.01.2013 в 02:09
источник

3 ответа

84

Что это такое

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 . Вы получите список всех профилей *, загруженных, всех профилей в режиме принудительного исполнения, всех профилей в режиме подачи жалобы, какие процессы определены в принудительном порядке / жалобы и т. Д.

  • Чтобы разместить профиль в режиме complain , вы используете sudo aa-complain /path/to/bin , где /path/to/bin - это папка программ bin . Например, запуск: sudo aa-complain /usr/bin/firefox помещает Firefox в режим жалобы.

  • Вы используете sudo aa-enforce /path/to/bin для принудительного применения профиля программы.

  • Вы можете загружать профили all в режим подачи жалоб / принудительного исполнения с 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

Чтобы отключить профиль, вы link на /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. Записи
  3. Capability определяют, какие привилегии могут использовать процессы.

Давайте рассмотрим профиль для 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 предоставляет привилегии read для приложения /etc/modules.conf

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

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

  • r - читать

  • w - написать

  • ux - Unconstrained Execute

  • Ux - Unconstrained Execute - скраб среды

  • px - Выполнение дискретного профиля

  • Px - Выполнение дискретного профиля - скраб среды

  • ix - Наследовать выполнение

  • m - разрешить PROT_EXEC с mmap(2) calls

  • l - link

ИСТОЧНИКИ:

Ссылка

Ссылка

Ссылка

Ссылка

    
ответ дан Seth 05.01.2013 в 03:17
источник
6
  

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

     

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

     

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

Я получил немного Больше полезной Ссылки на вас: Wiki.Ubuntu.com Ubuntuforums.org

Руководство для апартологов для Ubuntu 12.04 и amp; Ubuntu 12.10

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

    
ответ дан Ten-Coin 05.01.2013 в 03:13
3

Вот цитата из вики-страницы Apparmor :

  

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

    
ответ дан Adeline Dale 09.01.2013 в 07:09