Я слышу много разговоров о apparmor, я хочу знать следующее:
Вот цитата из Apparmor wiki :
AppArmor - эффективная и простая в использовании система безопасности приложений Linux. AppArmor активно защищает операционную систему и приложения от внешних или внутренних угроз, даже атак нулевого дня, путем обеспечения хорошего поведения и предотвращения использования даже неизвестных недостатков приложений. Политики безопасности AppArmor полностью определяют, к каким системным ресурсам могут обращаться отдельные приложения и с какими привилегиями. Ряд политик по умолчанию включен в AppArmor, и благодаря сочетанию усовершенствованного статического анализа и инструментов, основанных на обучении, политики AppArmor для даже очень сложных приложений могут быть успешно развернуты в считанные часы. BLOCKQUOTE>
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 с основным ядром.
blockquote>У меня есть несколько полезных ссылок: Wiki.Ubuntu.com Ubuntuforums.org
Руководства по Apparmor для Ubuntu 12.04 & amp; Ubuntu 12.10
Надеюсь, что это поможет вам.
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/
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
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
sudo service apparmor stop
и удалить модуль ядра с помощью sudo update-rc.d -f apparmor defaults
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
- Выполнение дискретного профиля - очистка environment ix
- Наследовать выполнить m
- разрешить PROT_EXEC
с mmap(2)
вызовами l
- ссылка