AppArmor

Учебное пособие по Debian AppArmor

Учебное пособие по Debian AppArmor
AppArmor - это система обязательного контроля доступа для Linux. В системе обязательного контроля доступа (MAC) ядро ​​накладывает ограничения на пути, сокеты, порты и различные механизмы ввода / вывода. Он был разработан Immunex и сейчас поддерживается SUSE. Он был частью ядра Linux с версии 2.6.36.

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

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

Монтаж

Чтобы установить AppArmor в Debian, запустите (как root):

apt установить apparmor apparmor-utils auditd

Вы можете опустить аудит, если вам не нужны инструменты для создания профилей.

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

apt установить apparmor-profiles apparmor-profiles-extra

Поскольку AppArmor является модулем ядра Linux, вы должны включить его с помощью следующих команд:

mkdir -p / и т. д. / по умолчанию / grub.d

Создайте файл / etc / default / grub.d / apparmor.cfg со следующим содержимым:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 security = apparmor"

Сохраните и выйдите, затем запустите:

update-grub

Затем перезагрузите.

Ведутся споры о том, следует ли это делать автоматически. Вы можете просмотреть конец этого отчета об ошибке, чтобы узнать, изменилось ли это с момента написания этой статьи.

После перезагрузки вы можете проверить, включен ли AppArmor, запустив:

аа-статус

Эта команда выведет список загруженных профилей AppArmor и их текущее состояние соответствия (принудительно, жалоба и т. Д.).)

Если вы запустите:

ps auxZ | grep -v '^ неограниченный'

Вы увидите список программ, которые ограничены профилем AppArmor. Ограниченная программа - это программа, на которую влияет и ограничивается (пассивно, в режиме жалоб или активно в принудительном режиме) AppArmor.

Изменение режимов / отключение AppArmor

Если вы хотите отключить AppArmor, потому что программа не работает, вы можете рассмотреть возможность помещения профиля в режим жалобы вместо принудительного режима. Для этого запустите (как root или через sudo):

аа-жалоба / путь / к / программе

Например, если ping не работает правильно, используйте:

аа-жаловаться / usr / bin / ping

Когда профиль находится в режиме жалоб, вы можете проверить ведение журнала через / var / log / syslog или с помощью journalctl -xe в системах systemd (Debian 8.x, Jessie и выше).

После того, как вы отредактировали профиль, чтобы удалить или отрегулировать ограничение, вы можете снова включить принудительный режим для двоичного файла с помощью:

aa-enforce / путь / к / программе

В приведенном выше примере замените / path / to / program на полный путь к двоичному файлу, на который влияет данный профиль.

Если у вас есть проблема с программой, и она находится в режиме жалобы, в журналах будет представлена ​​конкретная информация о том, какое действие было отклонено. Поле операции объяснит, что программа пыталась сделать, поле профиля - конкретный профиль, на который повлиял, имя будет указывать цель действия (i.е. какой файл был остановлен из-за операции чтения или записи), а запрошенная и отклоненная маски указывают, была ли операция, запрошенная программой и отклоненная в соответствии с профилем, была прочитана или прочитана-записана.

Вы можете полностью отключить профиль, запустив:

aa-disable / путь / к / программе

Или вы можете полностью отключить AppArmor, отредактировав файл: / etc / default / grub.d / apparmor.cfg содержать:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0"

Затем запускаем:

update-grub

И перезагружаем вашу систему.

Работа с профилями AppArmor

Профили AppArmor находятся в каталоге / etc / apparmor.d / каталог. Если вы установите пакет пакетов apparmor-profiles и apparmor-profiles-extra, вы найдете профили в / usr / share / doc / apparmor-profiles и / usr / share / doc / apparmor-profiles / extra. Чтобы активировать их, скопируйте файлы в / etc / apparmor.d, затем отредактируйте их, чтобы они содержали нужные вам значения, сохраните и запустите:

перезагрузка сервисного оборудования

Если вы хотите перезагрузить только один профиль, запустите:

apparmor_parser -r / etc / apparmor.д / профиль

Где «профиль» - это имя рассматриваемого профиля.

Не рекомендуется просто копировать профили и дополнительные профили в / etc / apparmor.d, не редактируя их вручную. Некоторые профили могут быть старыми, а некоторые наверняка не будут содержать нужных вам значений. Если вы все-таки скопируете их все, по крайней мере, настройте их на жалобы, чтобы вы могли отслеживать нарушения, не нарушая производственные программы:

cd / etc / apparmor.d
для f в *.*; жаловаться / etc / apparmor.d / $ f; Выполнено

Вы можете использовать команду aa-enforce индивидуально, чтобы включить профили, которые вы хотите сохранить, настроить те, которые вызывают проблемы, и применить их, или удалить ненужные, запустив aa-disable или удалив файл профиля из / etc / apparmor.d.

Создание профиля AppArmor

Прежде чем создавать собственный профиль, вам нужно будет выполнить поиск в файле / etc / apparmor.d и / usr / share / doc / apparmor-profiles каталоги для существующего профиля, который охватывает рассматриваемый двоичный файл. Чтобы найти их, запустите:

найти / usr / share / doc / apparmor-profiles | grep «программа» -i

Заменять программа с программой, которую вы хотите защитить с помощью AppArmor. Если вы найдете его, скопируйте его в / etc / apparmor.d, а затем отредактируйте файл в своем любимом текстовом редакторе.

Каждый профиль состоит из трех основных разделов: включает, возможности и пути. Вы можете найти полезную ссылку в документации SuSE.

Включает

Включает синтаксис, который можно использовать внутри файла. Они используют синтаксис C / C ++ #include <> и обычно ссылаются на абстракции, найденные в файле / etc / apparmor.d / каталог абстракций.

Возможности

В разделе возможностей, который обычно находится после включений, перечислены конкретные возможности, которые программа может выполнять. Например, вы можете позволить программе выполнять операцию setuid с помощью:

setuid возможности

Возможность net_bind_service позволяет программе подключаться к сетевому порту. Если вы не предоставите это, демон сервера, такой как Apache, не сможет открыть порт 80 и прослушать. Однако отсутствие этой возможности может обеспечить отличную безопасность для процессов, которым вы не доверяете в сети.

Пути

Вы можете указать пути, которые программа может читать (и, возможно, записывать). Например, если вы хотите разрешить программе доступ к файлу / etc / passwd, добавьте:

/ etc / passwd r

В профиле. Обратите внимание на букву «r» - это означает только чтение. Если вы измените это значение на «w», запись в этот путь или файл будет разрешена.

Даже если вы разрешите путь в AppArmor, на него по-прежнему распространяются ограничения файловой системы Linux (i.е. устанавливается с помощью chmod, chgrp и chown). Однако AppArmor по-прежнему будет обеспечивать дополнительный уровень защиты, если эти механизмы будут скомпрометированы.

Заключение

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

Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...
Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...
Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...