Если у вас возникли вопросы, или появилось предложение, напишите нам
Задание к Занятию 3
Изучение работы настроенного СПО «Аккорд-X»
Внимание!!! Задание выполняется с использованием виртуальной машины (ВМ) с установленным и настроенным СПО «Аккорд-Х», выложенной по ссылке. Сначала необходимо распаковать архив с ВМ. Для запуска ВМ рекомендуется использовать среду виртуализации VMware Workstation Player. Данное СПО, в отличие от ПАК СЗИ НСД «Аккорд-X», не включает «Аккорд-АМДЗ», функционирует без него.
В задании не требуется выполнения установки, настройки и выполнения слишком большого числа команд в консоли (для некоторых это может быть первым опытом использования такого интерфейса работы с ОС). Большинство действия из блока I можно выполнять с помощью файлового менеджера Files вместо выполнения команд в приложении Terminal (в последнем требуется выполнять команды acx-admin*).
План работы
Комплекс изначально функционирует в, так называемом, «мягком» режиме, когда политики управления доступом «Аккорд-X» неактивны и работают только встроенные средства защиты ОС.
I. Состав комплекса и особенности его настройки
- Войти пользователем root (опционально будет запрошен аппаратный идентификатор, но на данный момент нужно подождать и войти с использованием пароля: 1q2w3e).
- Открыть приложение Terminal.
- Просмотреть состав СПО «Аккорд-X», выполнив:
ls -la ~/accordx-centos7.2-x86_64
# можно набрать первые символы каталога и двойным нажатием Tab дозавершать ввод существующего каталога
- acx-admin - консольные утилиты администрирования
- acx-amdz - драйверы и библиотеки для поддержки «Аккорд-АМДЗ»
- acx-core/acx-core-remote - монитор разграничения доступа (МРД) + PAM-модули идентификации и аутентификации в локальном или варианте с возможным удаленным подключением (ssh/telnet)
- acx-gui/acx-wui - GUI и webUI приложения для администирования комплекса (в представленной ОС работают не совсем корректно, необходимо использовать консольные утилиты)
- acx-print - подсистема контроля печати
- acx-remote - клиентская часть для удаленного подключения к ПК с «Аккорд-X» и удаленного проброса идентификатора (ssh/telnet)
- acx-tmid-amdz - библиотеки и драйверы TM-идентификаторов для Аккорд-5.5+ (внутренний интерфейс Аккорд, не USB)
- acx-tmid-cards - библиотеки по поддержке карт в качестве идентификаторов (acos, mifare)
- acx-tmid-shipka - библиотеки и драйверы для поддержки устройств ШИПКА в качестве идентификаторов
- acx-tmid-tokens - библиотеки по поддержке токенов в качестве идентификаторов (etoken, laser)
- acx-tmid-usb - библиотеки и драйверы TM-USB идентификаторов
Минимальный набор пакетов для работы «Аккорд-X»/«Аккорд-X К»:
- acx-admin
- acx-amdz [только «Аккорд-X»]
- acx-core или acx-core-remote
- один из пакетов по поддержке идентификаторов
На предоставленной ВМ уже установлены необходимые пакеты: acx-core, acx-gui, acx-tmid-usb, acx-admin (результат вывода команды "rpm -qa | grep acx")
- Первоначальная настройка «Аккорд-X» на ВМ уже выполнена, создан файл конфигурации и БД пользователей. Можно просмотреть их, выполнив команды:
acx-admin config show
acx-admin db show -vv
Для просмотра возможных консольных команд по администрированию комплекса можно выполнить "acx-admin"
- В файле конфигурации обратить внимание на следующие поля:
# данные сверху - служебные (какой хэш используется в ОС и т.п.)
acx-core flags - флаги acx-core (МРД)
permissive-acl - использовать или нет разрешительные правила разграничения доступа (ПРД) вместо запретительных (когда то, что не указано в ПРД «Аккорд-X», разрешено)
discr-acl - включать или нет дискреционную политику управления доступом
mand-acl - включать или нет мандатную политику безопасности (в рамках данной практики включать не нужно!)
star-property - включить или нет *-свойство в мандатной политике (невозможность писать "вниз")
soft-mode - включить или выключить мягкий режим (обычно включен при создании нового файла конфигурации)
mpl - использовать или нет списки контроля монтирования
icl - включить или нет динамический контроль целостности
print-control - включить или нет контроль печати
memory-cleaning - включить или нет очистку оперативной памяти
default-log-level - уровень детальности журнала (по умолчанию err - регистрация login/logout, setuid и всех попыток НСД)
clearance-transcipt - расшифровка уровней доступа в штампах при контроле печати
authentication settings:
authentication-type - типаутентификации (локально, удаленноит.п.)
pam-retries - максимальное количество неверных попыток сделать логин в ОС
block-multilogin - блокировка множества сессий одного и того же пользователя (несовместимо с блокировкой СВТ при "заставке")
password-length - минимальная длина пароля пользователей
- В файле БД пользователей:
По умолчанию при создании БД создается 1 пользователь типа shadow (с именем root, псевдо-пользователь от имени которого функционируют все системные сущности, кроме сервисов ОС) и 1 пользователь типа user (с именем root - реальный администратор ОС). На ВМ еще создан пользователь toor (непривилегированный пользователь).
- Демонстрация точки встраивания комплекса в ядро ОС
МРД «Аккорд-X» встраивается в образ начальной загрузки ОС Linux -- initrd (initramfs), то есть осуществляется в момент ранней загрузки ОС. Если дополнительно к этому контролировать целостность initrd (например, с помощью аппаратного модуля доверенной загрузки), то комплекс будет нельзя отключить несанкционированным образом (само собой для этого требуются организационно-технические мероприятия по физической охране СВТ и помещения, а также настройка загрузчика ОС Linux).
Важно, что комплекс встраивается в ОС до монтирования корневой файловой системы (и всех других файловых систем) на запись - перед, так называемой, операцией switchroot! Конкретную точку встраивания в предоставленной ВМ можно посмотреть в распакованном образе начальной загрузки для целей данного занятия:
cat /boot/.initrd-tmp/fs/usr/lib/systemd/system/initrd-switch-root.service
...
ExecStart=/bin/startacx
...
Здесь просто осуществляется вызов на выполнения скрипта /bin/startacx перед монтированием файловых систем на запись.
cat /boot/.initrd-tmp/fs/bin/startacx
#################################################################
#echo "Loading Accord-AMDZ drivers"
#/sbin/insmod /lib/accord-le.ko
#/sbin/insmod /lib/tmdevice.ko
echo "Starting AccordX security module"
/sbin/insmod /lib/acx-core.ko
echo "Loading AccordX license"
/bin/acx-license-send /sysroot/etc/accordx/license.accordx
echo "Loading AccordX config"
/bin/acx-config-send /sysroot/etc/accordx/acx-config.json
echo "Loading AccordX database"
/bin/acx-db-send /sysroot/etc/accordx/db.json
#################################################################
В самом скрипте /bin/startacx происходит загрузка МРД в ядро ОС, проверка лицензии, загрузка файла конфигурации и БД пользователей в пространство ядра.
- Демонстрация настроек загрузчика GRUB:
cat /boot/grub2/grub.cfg
В первом сценарии загрузки (с дописанными символами "accordx") прописывается initrd, который рассмотрен на предыдущем шаге.
Дополнительно для доверенной загрузки ОС (кроме использования аппаратных модулей доверенной загрузки) необходимо ограничивать сценарии загрузки и удалять лишние модули загрузчика GRUB (для поддержки неиспользуемых файловых систем и т.п.), а также задавать grub-password, чтобы сценарии нельзя было изменить в динамике при загрузке GRUB (в загрузчиках Windows это невозможно принципиально). Только при выполнении этих условий можно обеспечить доверенную загрузку ОС Linux.
- Демонстрация настройки PAM модулей идентификации и аутентификации:
cat /etc/pam.d/system-auth
cat /etc/pam.d/password-auth
Модуль идентификации и аутентификации «Аккорд-X» pam_acx_local.so встраивается перед штатным модулем pam_unix.so (который запрашивает пароль Linux). В дальнейшем будет продемонстрировано, что кроме запроса пароля pam_acx_local.so может запрашивать аппаратные идентификаторы и, если аутентификация пройдена, передавать необходимые данные в стандартный модуль pam_unix.so
Важно, чтобы пароли в ОС и в БД у пользователей «Аккорд-X» были одинаковыми! UID у пользователей в /etc/passwd и в БД у пользователей «Аккорд-X» также должны быть одинаковыми! Этого можно достичь с использованием соответствующих опций утилит командной строки acx-admin.
II. Регистрация аппаратных идентификаторов для пользователей и включение дискреционной политики управления доступом
- Для корректной работы комплекса необходимо первоначально создать всех псевдо-пользователей системы (так называемые, пользователи типа shadow), которые работают как системные сервисы/демоны и никогда не совершают действий по идентификации/аутентификации или интерактивной работе с системой. Сделать это можно в "мягком" режиме работы «Аккорд-X» (в котором он сейчас и работает):
acx-admin db show -vv
Необходимо обратить внимание на наличие всего одного субъекта с типом 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
- После этого можно переключиться из "мягкого" режима и включить дискреционную политику управления доступом:
acx-admin config set discr-acl true
- Для учета изменений необходимо выполнить перезагрузку.
- Для загрузки также использовать первый сценарий загрузки загрузчика GRUB (подписан "accordx"). По ходу мелькания строчек с информацией о ходе загрузки можно увидеть строки из initrd вида:
Starting AccordX security module...
acx-core: starting
acx-core: started
...
То есть уже с этапа ранней загрузки ОС действует дискреционная политика управления доступом «Аккорд-X».
- В ОС необходимо войти пользователем toor, предъявив при этом соответствующий аппаратный идентификатор. Можно завершить сеанс и поэкспериментировать с различными параметрами входа: предъявить идентификатор пользователя root, предъявить неправильный пароль пользователя и т.п. (не более 10 неправильных попыток входа).
- Для пользователей «Аккорд-X» root и toor уже заданы следующие права доступа в дискреционной политике управления доступом (в каталоге /test/ или Computer -> test в файловом менеджере):
Каталог /test/noexec - в данном каталоге отсутствует право выполнения (например, тестового скрипта 1.sh)
Каталог /test/noread - в данном каталоге отсутствует право чтения
Каталог /test/nowrite - в данном каталоге отсутствует право записи
У всех объектов-каталогов вложенная структура - dir/1/2, все ПРД заданы на 1 подкаталог вниз, то есть в последнем подкаталоге доступы на выполнение/чтение/запись уже будут разрешены. Необходимо отметить, что у всех объектов права доступа максимальны в рамках ОС, они являются общедоступными (rwxrwxrwx в выводе ls -la /test/), а владельцем является пользователь toor и группа toor.
Необходимо провести ряд экспериментов с попытками чтения/записи/исполнения в указанных каталогах от имени пользователя toor.
- Необходимо завершить сеанс пользователя toor и войти в ОС пользователем root, предъявив при этом соответствующий аппаратный идентификатор.
- Для пользователя root необходимо войти в специальный каталог /test/noroot/ и проверить, что ему по схожему принципу запрещено выполнять любые действия в нем. Также необходимо проверить, что пользователю toor в данном каталоге разрешено читать/редактировать данные, создавать каталоги и другие действия.
- Перечисленные правила доступа можно просмотреть с помощью команд:
acx-admin acl show -u root
acx-admin acl show -u toor
RWXOCDNLMEnG - это полный набор атрибутов доступа в дискреционной политике (доступы на чтение, запись, исполнение, O - не используется, создание/удаление/переименование файлов, создание жестких ссылок, создание/удаление/переименование каталогов, переход в каталоги соответственно).
- Кроме разграничения доступа можно посмотреть, как работает динамический контроль целостности, который активируется (проверяет целостность данных) при их запуске на выполнение. Для этого можно выполнить в приложении Terminal (в файловом менеджере по двойному клику файл будет только открываться в редакторе):
/test/1.sh
После успешного выполнения скрипта можно либо внести в него изменения, либо скопировать на его место вариант "зловредного" скрипта /test/1.sh.bad. Далее необходимо повторно запустить скрипт и убедиться, что измененный вариант не выполняется (а при обращении изменений или копировании эталонного варианта /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 discr
Все события нарушения целостности можно отобразить следующим образом:
acx-admin log show -m /var/log/accordx/shadow_root_*** | grep int
Все события входа пользователей можно отобразить следующим образом:
acx-admin log show -m /var/log/accordx/shadow_root_*** | grep login
Весь вывод журнала регистрации событий можно посмотреть в графическом приложении запустив его с помощью (прочие действия в данной ОС не работают):
acx-gui-qt