Модуль принудительного разграничения доступа АppАrmor

Автор: | 29.11.2018

В Unix мандатные механизмы разграничения являются дополнительными и активируются по желанию пользователя или дистрибьютора. Так, например, в Ubuntu Unux по умолчанию устанавливается и активируется модуль принудительного разграничения доступа apparmor.

Модуль принудительного разграничения доступа АppАrmor

Модуль W: [АppАrmor] имеет некоторое количество готовых к употреблению наборов мандатных правил (называемых профилями) для ограничения (англ, confine) доступа субъектов — программ к объектам операционной системы — файлам, сетевым протоколам, портам TCP/UDP и пр.

Правила АppАrmor идентифицируют программы и файлы на основе их полных путевых имен.

При этом каждый профиль описывает ограничения для одной определенной запускаемой программы (а так же для других, запускаемых этой программой, т. е. «подчиненных» программ), а программы, для которых профили не определены, никак не ограничиваются (англ, uniconfined).

В примере из листинга ниже проиллюстрировано использование команды aa-status, показывающей статус модуля принудительного контроля доступа АppАrmor.

В распоряжении модуля имеется профиль программы skype в режиме принуждения (enforce) и профиль в программы firefox в режиме оповещения (complain).

Более того, процесс skype с идентификатором зет принуждается (enforce) модулем контроля к выполнению правил профиля, а процесс ftrefox с идентификатором 10335 только отслеживается (complain) на предмет нарушений правил.

Модуль мандатного разграничения доступа АppАrmor

john@ubuntu:-*$ sudo aa-status

apparmor module is loaded.

50 profiles are loaded.

26 profiles are in enforce mode.

/usr/bin/skype

. . .                  . . .                             . . .
24 profiles are in complain mode.

. . .                  . . .                             . . .
/usr/lib/firefox/firefox{,*[^s][^h]}

. . .                  . . .                             . . .
18 processes have profiles defined.

3 processes are in enforce mode.

. . .                  . . .                             . . .

/usr/bin/skype (30173)
6 processes are in complain mode.

/usr/lib/firefox/firefox{,*[^s][^h]} (10335)

. . .                  . . .                             . . .

processes are unconfined but have a profile defined.

Нарушения мандатных правил процессами, находящимися в режиме оповещения (complain), приводят только к журналированию сообщений аудита об обнаруженных нарушениях.

Попытки нарушения мандатных правил процессами, находящимися в режиме принуждения (enforce), пресекаются модулем контроля доступа в виде отказа в доступе к тому или иному запрашиваемому объекту.

Выполненный  при помощи команды apparmor_parser анализ полного (-p) набора правил профиля программы /usr/bin/firefox показывает, что обращения к любым файлам каталога .ssh явно запрещены указанием deny и подлежат обязательному аудиту согласно указанию audit.

При помощи команды aa-enforce профиль переводится в режим enforce, в результате чего доступ firefox к ключам пользователя оказывается запрещенным.

Мандатные правила профиля firefox

john@ubuntu:~$ apparmor_parser -p /etc/apparmor.d/usr.bin.firefox

. . .                          . . .                              . . .                             . . .                             . . .

john@ubuntu:~$ apparmor.parser -p /etc/apparmor.d/usr.bin.firefox

. . .                          . . .                              . . .                             . . .                             . . .
audit deny @{H0ME}/.ssh/** mrwkl,

. . .                          . . .                              . . .                             . . .                             . . .

john@ubuntu:~$ firefox ~/.ssh/id_rsa

——BEGIN RSA PRIVATE KEY——

. . .                          . . .                              . . .                             . . .                             . . .

——END RSA PRIVATE KEY ——

johnn@ubuntu:~$ sudo aa-enforce firefox

Setting /etc/apparmor.d/usr.bin.firefox to enforce mode.

john@ubuntu:~$ firefox ~/.ssh/id_rsa

Стоит отметить, что команды aa-enforce и aa-status выполняются от лица суперпользователя, единолично управляющего модулем принудительного контроля доступа AppArmor, но детальное рассмотрение синтаксиса правил и процедур управления модулем относится к задачам администрирования операционной системы, которые выходят за рамки этой статьи.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *