Разграничение доступа пользователей в ОС Linux. ПАК СЗИ НСД «Аккорд-X» (3/3)

Настройка и использование комплекса

Здравствуйте!

В данной лекции мы рассмотрим как функционирует программно-аппаратный комплекс защиты информации от НСД «Аккорд-X» производства компании ОКБ САПР, предназначенный для разграничения доступа пользователей в ОС Linux. Поговорим о том, как происходит регистрация аппаратных идентификаторов для пользователей, как работает дискреционный механизм управления доступом и динамический контроль целостности, научимся просматривать события в журнале работы комплекса и выполнять настройку разграничения доступа сервисов ОС.

Начнем с регистрации аппаратных идентификаторов для пользователей.

Для корректной работы комплекса необходимо первоначально создать всех псевдо-пользователей системы (так называемые, пользователи типа shadow), от имени которых функционируют системные сервисы/демоны ОС. Сделать это можно в "мягком" режиме работы «Аккорд-X», в котором комплекс работает в режиме сбора информации и не прерывает работу пользователя при возникновении НСД. Сначала посмотрим, какие пользователи типа shadow у нас уже есть. Для этого введем следующую команду:

acx-admin db show -vv

Необходимо обратить внимание на наличие всего одного субъекта с типом shadow.

Введем команду для создания пользователей типа shadow:

acx-admin log makeshadows /var/log/accordx/shadow_root_***

где *** - дата и время в формате UTC

Просмотрим еще раз всех имеющихся пользователей при помощи следующей команды:

acx-admin db show -vv

Можно убедиться, что создались несколько новых пользователей shadow.

При этом необходимо понимать, что для такого "автосоздания" псевдо-пользователей в мягком режиме необходимо проделать наиболее специфичные действия, которые в ОС планируется делать в дальнейшем (например, зайти с помощью сессии удаленного доступа ssh для создания псевдо-пользователя sshd и т.д.).

Далее для пользователя root и toor необходимо назначить аппаратные TM-USB идентификаторы и назначить пароль. Для этого выполним сначала команду:

acx-admin user edit -t '' -p 1q2w3e root

Потом  следующую команду:

acx-admin user edit -t '' -p 1q2w3e toor

В итоге у нас создано 2 пользователя, им назначены идентификаторы и пароли.

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

Для включения дискреционного механизма управления доступом необходимо выполнить следующую команду:

acx-admin config set discr-acl true

Для учета изменений необходимо выполнить перезагрузку. Перезагрузимся.

Для загрузки необходимо использовать первый сценарий загрузки загрузчика GRUB (подписан "accordx"). По ходу мелькания строчек с информацией о ходе загрузки можно увидеть строки из initrd вида:

Starting AccordX security module...

acx-core: starting

acx-core: started

...

То есть дискреционная политика управления доступом «Аккорд-X» уже действует с этапа ранней загрузки ОС.

Зайдем в ОС пользователем toor, предъявив при этом соответствующий аппаратный идентификатор и введя пароль.

В нашей ОС имеется каталог «test», перейдем в него: cd /test/ (или откроем Computer -> test в файловом менеджере). Для  пользователей «Аккорд-X» root и toor уже заданы следующие права доступа в дискреционной политике управления доступом для подкаталогов данного каталога:

  • Каталог /test/noexec - в данном каталоге отсутствует право выполнения (например, тестового скрипта 1.sh)
  • Каталог /test/noread - в данном каталоге отсутствует право чтения
  • Каталог /test/nowrite - в данном каталоге отсутствует право записи

У всех объектов-каталогов вложенная структура - dir/1/2, все ПРД заданы на 1 подкаталог вниз, то есть в последнем подкаталоге доступы на выполнение/чтение/запись уже будут разрешены.

Необходимо отметить, что у всех объектов права доступа максимальны в рамках ОС, они являются общедоступными. Посмотреть это можно с помощью следующей команды:

ls -la /test/

Мы увидим rwxrwxrwx.

Владельцем каталогов является пользователь toor и группа toor.

Проведем ряд экспериментов с попытками чтения/записи/исполнения в указанных каталогах от имени пользователя toor.

Напомню, мы зашли в ОС пользователем toor.

Проверим, что в каталоге /test/noroot/ ему разрешено читать/редактировать данные, создавать каталоги и выполнять другие действия.

В каталоге /test/noread он не может читать данные.

А в каталоге /test/nowrite он не может записывать что-либо в файл.

Завершим сеанс пользователя toor и войдем в ОС пользователем root, предъявив при этом соответствующий аппаратный идентификатор и введя пароль.

Для пользователя root войдем в каталог /test/noroot/ и проверим, что ему запрещено выполнять любые действия в данном каталоге.

Далее в каталоге /test/noread проверим, что root не может читать данные.

А в каталоге /test/nowrite  пользователь root не может записывать что-либо в файл. Перечисленные правила доступа для пользователя root можно просмотреть с помощью следующей команды:

acx-admin acl show -u root

А для пользователя toor с помощью следующей команды:

acx-admin acl show -u toor

В списках для обоих пользователей будут перечислены объекты доступа, а справа – разрешенные атрибуты доступа:

RWXOCDNLMEnG - это полный набор атрибутов доступа в дискреционной политике (доступы на чтение, запись, исполнение, O - не используется, создание/удаление/переименование файлов, создание жестких ссылок, создание/удаление/переименование каталогов, переход в каталоги соответственно).

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

/test/1.sh

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

После успешного выполнения скрипта можно либо внести в него изменения, либо скопировать на его место вариант "зловредного" скрипта /test/1.sh.bad

Скопируем "зловредный" скрипт при помощи следующей команды:

cp /test/1.sh.bad /test/1.sh

Далее повторно запустим скрипт и убедимся, что измененный вариант не выполняется.

При этом, если обратить изменения или скопировать эталонный вариант /test/1.sh.good в /test/1.sh, то скрипт снова начинает выполняться, так как целостность восстанавливается.

Необходимо отметить, что динамический КЦ работает глобально для всей системы (для пользователей toor, root и всех остальных субъектов).

Список динамического контроля целостности можно посмотреть с помощью следующей команды:

'acx-admin icl show -d'

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

Все события НСД можно отобразить при помощи следующей команды:

acx-admin log show -m /var/log/accordx/shadow_root_*** | grep –e discr –e mand

Все события нарушения целостности можно отобразить при помощи команды:

acx-admin log show -m /var/log/accordx/shadow_root_*** | grep int

Все события входа пользователей можно отобразить при помощи команды:

      acx-admin log show -m /var/log/accordx/shadow_root_*** | grep login

Еще один момент, на котором я бы хотел остановиться – это настройка разграничения доступа сервисов ОС.

В нашей ОС установлен Apache-сервер, доступ к которому можно получить, открыв браузер и набрав в адресной строке "localhost".

Есть также вторая страница, доступная при изменении адреса на "localhost/1.html" с текстом "apache web server".

Предположим, что каким-то неизвестным образом, в домашнем каталоге сервера /var/www/html/ возникли объекты-ссылки log и passwd, позволяющие по соответствующей строке в браузере выводить содержимое /etc/passwd (со списком всех пользователей и их идентификаторами) и /var/log/access.log (с информацией об обращениях к Apache-серверу). Перед нами стоит задача ограничения доступа сервиса Apache средствами «Аккорд-X».  При этом следует иметь в виду, что:

  1. Разграничивать доступ необходимо субъекту типа shadow с именем httpd.
  2. Доступ разграничивать нужно не только к файлам /etc/passwd или /var/log/access.log. Желательно дать веб-серверу только минимально необходимый набор прав доступа – можно ограничить доступ в каталог с настройками ОС /etc и в каталог с журналами - /var/log. Сделаем это при помощи следующих команд:

acx-admin acl add -s httpd -r S '' /etc/

acx-admin acl add -s httpd -r S '' /var/log/

Если ограничить Apache-сервер слишком сильно - он не сможет запуститься или писать в свой журнал информацию об обращениях.  В соответствии с этим, субъекту httpd нужно как минимум дать права на чтение /etc/httpd/ и запись в /var/log/httpd (дозапись, без возможности чтения). Это настраивается с помощью следующих команд:

acx-admin acl add -s httpd -r S 'R' /etc/httpd/

acx-admin acl add -s httpd -r S 'W' /var/log/httpd/

После этого необходимо перезагрузить ОС, войти пользователем root и проверить недоступность страниц в браузере по следующим адресам  localhost/passwd и localhost/log.

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

cat /var/log/httpd/access_log.

Мы рассмотрели только некоторые возможности программно-аппаратного комплекса «Аккорд-X», а как мы знаем из первой лекции по данной теме – их гораздо больше. Ознакомиться с ними можно в методических материалах к лекции – «Руководстве администратора» на комплекс.  

Подведем итог, в данной лекции мы рассмотрели как функционирует программно-аппаратный комплекс защиты информации от НСД «Аккорд-X», предназначенный для разграничения доступа пользователей в ОС Linux. Поговорили о том, как происходит регистрация аппаратных идентификаторов для пользователей, как работает дискреционный механизм управления доступом и динамический контроль целостности, а также научились просматривать события в журнале работы комплекса и выполнять настройку разграничения доступа сервисов ОС.

На этом заканчивается тема, посвященная разграничению доступа пользователей в ОС Linux.

Спасибо за внимание, до встречи на следующей лекции!

Кнопка связи