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