Задание к Занятию 3

Изучение работы настроенного СПО «Аккорд-X»

Внимание!!! Задание выполняется с использованием виртуальной машины (ВМ) с установленным и настроенным СПО «Аккорд-Х», выложенной по ссылке. Сначала необходимо распаковать архив с ВМ. Для запуска ВМ рекомендуется использовать среду виртуализации VMware Workstation Player. Данное СПО, в отличие от ПАК СЗИ НСД «Аккорд-X», не включает «Аккорд-АМДЗ», функционирует без него.

В задании не требуется выполнения установки, настройки и выполнения слишком большого числа команд в консоли (для некоторых это может быть первым опытом использования такого интерфейса работы с ОС). Большинство действия из блока I можно выполнять с помощью файлового менеджера Files вместо выполнения команд в приложении Terminal (в последнем требуется выполнять команды acx-admin*).

План работы

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

I. Состав комплекса и особенности его настройки

  1. Войти пользователем root (опционально будет запрошен аппаратный идентификатор, но на данный момент нужно подождать и войти с использованием пароля: 1q2w3e).
  2. Открыть приложение Terminal.
  3. Просмотреть состав СПО «Аккорд-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")

  1. Первоначальная настройка «Аккорд-X» на ВМ уже выполнена, создан файл конфигурации и БД пользователей. Можно просмотреть их, выполнив команды:

acx-admin config show

acx-admin db show -vv

Для просмотра возможных консольных команд по администрированию комплекса можно выполнить "acx-admin"

  1. В файле конфигурации обратить внимание на следующие поля:

# данные сверху - служебные (какой хэш используется в ОС и т.п.)

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. В файле БД пользователей:

По умолчанию при создании БД создается 1 пользователь типа shadow (с именем root, псевдо-пользователь от имени которого функционируют все системные сущности, кроме сервисов ОС) и 1 пользователь типа user (с именем root - реальный администратор ОС). На ВМ еще создан пользователь toor (непривилегированный пользователь).

  1. Демонстрация точки встраивания комплекса в ядро ОС

МРД «Аккорд-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 происходит загрузка МРД в ядро ОС, проверка лицензии, загрузка файла конфигурации и БД пользователей в пространство ядра.

  1. Демонстрация настроек загрузчика GRUB:

cat /boot/grub2/grub.cfg

В первом сценарии загрузки (с дописанными символами "accordx") прописывается initrd, который рассмотрен на предыдущем шаге.

Дополнительно для доверенной загрузки ОС (кроме использования аппаратных модулей доверенной загрузки) необходимо ограничивать сценарии загрузки и удалять лишние модули загрузчика GRUB (для поддержки неиспользуемых файловых систем и т.п.), а также задавать grub-password, чтобы сценарии нельзя было изменить в динамике при загрузке GRUB (в загрузчиках Windows это невозможно принципиально). Только при выполнении этих условий можно обеспечить доверенную загрузку ОС Linux.

  1. Демонстрация настройки 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. Регистрация аппаратных идентификаторов для пользователей и включение дискреционной политики управления доступом

  1. Для корректной работы комплекса необходимо первоначально создать всех псевдо-пользователей системы (так называемые, пользователи типа 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 и т.д.).

  1. Для пользователя root и toor необходимо назначить аппаратные TM-USB идентификаторы (предварительно их необходимо "пробросить" в виртуальную среду), выполнив:

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

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

  1. После этого можно переключиться из "мягкого" режима и включить дискреционную политику управления доступом:

               acx-admin config set discr-acl true

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

      Starting AccordX security module...

      acx-core: starting

      acx-core: started

      ...

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

  1. В ОС необходимо войти пользователем toor, предъявив при этом соответствующий аппаратный идентификатор. Можно завершить сеанс и поэкспериментировать с различными параметрами входа: предъявить идентификатор пользователя root, предъявить неправильный пароль пользователя и т.п. (не более 10 неправильных попыток входа).
  2. Для пользователей «Аккорд-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.

  1. Необходимо завершить сеанс пользователя toor и войти в ОС пользователем root, предъявив при этом соответствующий аппаратный идентификатор.
  2. Для пользователя root необходимо войти в специальный каталог /test/noroot/ и проверить, что ему по схожему принципу запрещено выполнять любые действия в нем. Также необходимо проверить, что пользователю toor в данном каталоге разрешено читать/редактировать данные, создавать каталоги и другие действия.
  3. Перечисленные правила доступа можно просмотреть с помощью команд:

acx-admin acl show -u root

acx-admin acl show -u toor

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

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

/test/1.sh

После успешного выполнения скрипта можно либо внести в него изменения, либо скопировать на его место вариант "зловредного" скрипта /test/1.sh.bad. Далее необходимо повторно запустить скрипт и убедиться, что измененный вариант не выполняется (а при обращении изменений или копировании эталонного варианта /test/1.sh.good в /test/1.sh скрипт снова начинает выполняться, т.к. целостность восстанавливается).

Необходимо отметить, что динамический КЦ работает глобально для всей системы (для пользователей toor, root и всех остальных субъектов). Список динамического контроля целостности выводится с помощью команды 'acx-admin icl show -d'.

  1. Демонстрация фиксации событий безопасности в журнале работы комплекса.

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

      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


Кнопка связи