Если у вас возникли вопросы, или появилось предложение, напишите нам
Разграничение доступа пользователей в ОС 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». При этом следует иметь в виду, что:
- Разграничивать доступ необходимо субъекту типа shadow с именем httpd.
- Доступ разграничивать нужно не только к файлам /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.
Спасибо за внимание, до встречи на следующей лекции!