| Интерфейс: | /usr/share/rosa-security-test/rst.py |
| Назначение: | Функциональный тест системы |
| Метод использования: | Вызов из командной строки |
| ФТБ: | FDP_RSI_EXT.1 |
| FIA_UID.2 | |
| FMT_MSA.1 | |
| FPT_MTR_EXT.1 | |
| FPT_TST.1 | |
| FPT_STM.1 |
| -h --help | Вызов справки |
| -g --with-interface | Запуск тестирования c графическим интерфейсом |
| -u --ultimate-mode | Ультимативный режим запуска: при ошибках пользователь имеет право только на завершение сессии. |
| --fault-code | Возвращать вместо кол-ва не пройденных тестов номер первого проваленного теста |
| -l --logtype | "nolog" - без ведения лога |
| "file" - вести лог в файл см. --logpath | |
| "journal" - вести лог в journald | |
| "std" - вести лог в stdout\stderr | |
| -p --logpath | При --logtype file указывает директорию в которую нужно сохранять лог. |
| -c --no-colors | Не вставляет ANSI-коды подкрашивающие текст. Будет полезно, если лог не будет читаться с помощью терминала. |
| -d --debug | Режим подробного логирования. Только при --logtype journal или --logtype file. |
ROSA Security Test имеет два вида ошибок: общие - ошибки работы самой проверяющей программы, включая неверные параметры запуска и синтаксические ошибки в коде; индивидуальные - ошибки проверки, уникальные для каждого теста, отражающие текущий статус функций безопасности. Оба вида ошибок присутствуют в логе.
Тест проверяет смонтированы ли каталоги оверлея(механизм подстановки пользовательского окружения согласно уровню конфиденциальности): ".config", ".cache", ".local". Если хоть один из них не будет смонтирован - тест будет провален.
Тест проверяет наличие параметров конфигурации ядра и их значения:
CONFIG_IMA=y
CONFIG_EVM=y
Если параметр не будет найден или его значение не будет равно "y" - тест будет провален.
Тест проверяет наличие каталога
/sys/kernel/security/integrity/ima/
Согласно документации наличие этого каталога говорит о том, что подписи поддерживаются ядром по-умолчанию. Следовательно, если этот каталог не существует - тест будет провален.
Тест пытается создать исполняемый файл(без подписи) в домашней директории текущего пользователя и "запустить" его. Если ему это удастся - тест будет провален.
Тест манипулирует определенной структурой файлов и каталогов, пытаясь выявить проблемы при маркировки новых объектов файловой системы. Структура выглядит следующим образом:
.
├── dirA
│ └── test.txt
└── dirB
└── test.txt
Тестирование осуществляется для всех директорий внутри домашней директории пользователя, включая её саму, и делится на 3 этапа:
Этапы "Создания" и "Копирования" завершаются специальной(дополняющей) проверкой на корректность контекстных меток безопасности каждого объекта структуры(рекурсивно):
В остальных случаях, при ошибке доступа к объекту, его проверка игнорируется.
Тест проверяет доступ пользователя ко всем существующим файлам в домашнем каталоге пользователя и /tmp на соответствие модели доступа.
Далее следует проверка возможности пользователя осуществлять запись в корневые директории(кроме /tmp). Если запись будет произведена успешно - тест будет провален.
Тест проверяет статусы сервисов осуществляющих аудит: systemd-jouranld-service, rsyslog-service, auditd.service, rosa-central-panel-serverd.service. Если хотя бы один сервис не запущен - тест будет провален.
Помимо этого тест анализирует последние 10 записей журнала по каждому сервису с целью обнаружения ключевых слов, на которые стоит обратить внимание: wrong, error, invalid, fault, terminated, killed, suspended.
Тест пытается установить и удалить пакет. Если хотя бы одна операция будет завершена успешно - тест будет провален.
Тест пытается изменить системное время. Если попытка будет успешной - тест будет провален.
Тест проверяет статус selinux. Если он находится в режиме disabled или permissive - тест будет провален. Затем тест проверяет включена ли поддержка multi-level security(mls), если нет - тест будет провален.
Тест проверяет все файлы и директории(объекты) системы, кроме разрешенных пользователю для записи или чтения.
Также исключены из проверки:
/proc:proc /proc proc defaults,noexec,nodev,nosuid,hidepid=2 0 ```
В первую очередь тест проверит параметры монтирования /proc на наличие "hidepid=2". Если параметр не задан, то тест будет провален.
В следующих ситуациях тест будет провален: