Добавление нового правила
При необходимости пользователь может создать новое правило вручную, нажав справа страницы кнопку «Правила» и далее нажав кнопку «Добавить правило +» (см. рис. 1).

Рис. 1 — Пример заполненной страницы «Новое правило»
Каждое правило описывается следующими полями:
- commands – список команд. Каждая команда представляет собой строку определенного вида;
- condition – условие. Описывает, как должны агрегироваться результаты команд;
- description – текстовое поле, содержащее общее описание назначения правила. Уточняет, какие настройки проверяются, что должна выполнять команда и за что отвечают соответствующие параметры в конфигурации. Может также в себя включать текстовые рекомендации по безопасным параметрам конфигурации;
- group – заполняется пользователем и используется для логической группировки правил. Например, аутентификация и авторизация, управление пользователями, аудит и логирование, удалённый доступ, сетевые протоколы, файловая система и права доступа;
- before_commands – список команд, которые выполняются перед основными командами правила. Используется для настройки окружения перед выполнением проверки. Наиболее актуально для роутеров, где может потребоваться переход в нужный режим CLI, но также может применяться в других окружениях, например, для установки переменных окружения или подготовки сессии.
Условие может иметь следующие значения:
- any – выполнять команды до первой с результатом PASSED;
- all – выполнять команды до первой с результатом NOT_PASSED или INVALID.
Команды могут проверять наличие файлов, директорий, элементов в xml-документах, разделов и значений реестра, запущенных процессов, рекурсивно проверять наличие файлов внутри директорий. Когда дело доходит до проверки содержимого, команды могут проверять содержимое файлов, вывод команд и значения разделов реестра, рекурсивно проверять содержимое файлов внутри директорий.
Абстрактно, команда начинается с цели и ее типа. За целью следует описание проверки. Проверки делятся на две категории: проверка наличия и проверка содержимого. Тип цели указан в таблице ниже, и этой целью может быть файл, директория, xml-документ, название процесса, команда или раздел реестра.
Команда завершается с одним из трех результатов:
- PASSED – команда выполнилась успешно. Например, проверялось наличие файла и файл был обнаружен;
- NOT_PASSED – команда выполнилась неуспешно. Например, проверялось наличие определенной строки в файле и строка не нашлась;
- INVALID – команда выполнилась некорректно. Например, на активе не оказалось необходимой для выполнения команды утилиты или было разорвано соединение с активом.
Примеры написания команд
Проверяет, что файл существует:
file:/proc/sys/net/ipv4/ip_forward
Проверяет, что содержимое файла соответствует всей строке:
file:/proc/sys/net/ipv4/ip_forward -> 1
Проверяет, что root единственный аккаунт с UID равным 0:
file:/etc/passwd -> !r:^# && !r:^root: && r:^\w+:\w+:0:
Проверяет, что директория существует:
dir:/etc/mysql
Проверяет, что директория содержит файлы:
dir:/home -> ^.mysql_history$
Проверяет, что атрибут элемента xml-документа равен 1:
xml:C:\ProgramData\Security Code\Secret Net Studio\Client\Control Center\DefaultTemplatesSettings.xml -> //Template[Nodes/Node[@path='TemplateInfo' and a[@name='name']]]/Nodes/Node[@path='Basic']/Node[@path= 'GinaMode']/a[@name='value']/@value -> 1
Проверяет, что процесс существует:
proc:avahi-daemon
Проверяет конфигурацию sshd на предмет максимального количества попыток аутентификации:
cmd:sshd -T -> !r:^\s*maxauthtries\s+4\s*$
Проверяет значение ключа в разделе реестра:
reg:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ Netlogon\Parameters -> MaximumPasswordAge -> 0
Более подробное описание синтаксиса написания правил указано в подсказке на странице «Новое правила», которую можно раскрыть, нажав на кнопку « » в верхней правой части страницы.