Описание конфигурационного файла «scanner.yml»
Конфигурационный файл «scanner.yml» состоит из следующих секций, описание параметров которых приведено в таблице Параметры конфигурационного файла «scanner.yml»:
-
license – путь к файлу лицензии;
-
logger – секция параметров, отвечающая за запись регистрируемых событий информационной безопасности во внутренние ресурсы рабочей станции, на базе которой функционирует Сканер-ВС;
-
syslogger – секция параметров, отвечающая за отправку регистрируемых событий информационной безопасности в SIEM-системы;
-
http – секция параметров, отвечающая за настройки http-сервера Сканер-ВС;
-
databases – секция параметров, содержащая настройки, связанные с используемыми Сканер-ВС базами данных;
-
connection-policy – секция параметров, отвечающих за настройки политик проведения попыток повторного подключения к сервисам;
-
services – секция параметров, отвечающая за настройки, определяющие взаимодействие http-сервера Сканер-ВС с внутренними сервисами;
-
audit-params – секция параметров, отвечающая за множественный сетевой запуск правил аудита и указание языковой настройки целевой машины;
-
crack-params – секция параметров, отвечающих за настройки запуска задачи типа «Подбор паролей», описанной в «Программный комплекс «Средство анализа защищенности «Сканер-ВС. Руководство оператора»;
-
exec-retry – секция параметров, отвечающих за настройку политик отправки команд, выполняемых на активах исследуемой сети при проведении задач Сканер-ВС, описанных в «Программный комплекс «Средство анализа защищенности «Сканер-ВС. Руководство оператора»;
-
secrets – секция параметров, отвечающих за настройку мастер ключа, на основании которого генерируются пары ключей для секретов, описанных в «Программный комплекс «Средство анализа защищенности «Сканер-ВС. Руководство оператора»;
-
kerberos – секция, содержащая один параметр, отвечающий за месторасположение конфигурационного файла, используемого для настройки удаленного подключения к узлам исследуемой сети, находящихся в доменной зоне с использованием сервера аутентификации Kerberos;
-
parallelism – секция, содержащая один параметр, определяющий коэффициент параллелизма выполнения задач;
-
vulns-impact-score – секция параметров, отвечающая за формулу расчета влияния уязвимостей на ИС;
-
tuning – секция параметров, отвечающая за добавление/удаление предустановленных пакетов iso-образа, переменных запуска системы iso.
Параметры конфигурационного файла «scanner.yml»
| Секция | Подсекция | Параметр (строка) | Значение по умолчанию | Описание подсекции/параметра |
|---|---|---|---|---|
| license | – | /var/lib/echelon/0/scanner/license.lic | Указывает путь к файлу лицензии | |
| logger | sink | stdout | Указывает адресат отправки регистрируемых событий | |
| format | color | Формат передачи регистрируемых событий | ||
| levels | -info -warn -error -panic -fatal | Типы регистрируемых событий | ||
| syslogger | sink | syslog:tcp://localhost:49000 | Указывает адресат отправки регистрируемых событий | |
| levels | all | Типы регистрируемых событий | ||
| http | url | 0.0.0.0 | Адрес, на котором запускается http сервер Сканер-ВС | |
| ttl | 24h0m0s | Время, в течении которого хранятся данные cookie текущей сессии. По истечении данного времени произойдет автоматический разрыв текущей сессии. | ||
| cookiesecure | false | Включение/Отключение атрибута secure для хранящихся данных cookie | ||
| cors | Проверка адресов, по которым обращаются к http-серверу Сканер-ВС | |||
| enabled | true | Включение/Отключение проверки адресов | ||
| cors | allowedorigins | https://IP-адрес рабочей станции http://IP-адрес рабочей станции https://localhost http://localhost | Список адресов, по которым доступен Сканер-ВС | |
| http | tls | Настройки шифрования для http-сервера Сканер-ВС | ||
| disable | false | Включение/Отключение шифрования | ||
| serverName | scanner-server | Имя сервера | ||
| trustedCa | /var/lib/echelon/0/scanner/certs/ca.pem | Путь к корневому сертификату Сканер-ВС | ||
| cert | /var/lib/echelon/0/scanner/certs/server.pem | Путь к сертификату сервера | ||
| certKey | /var/lib/echelon/0/scanner/certs/server-key.pem | Путь к закрытому ключу RSA сертификата сервера | ||
| systemPool | false | Включение/Отключение опции добавления системных сертификатов к корневому сертификату Сканер-ВС | ||
| minVersion | 1.3 | Минимальная версия tls | ||
| clientAuth | false | Включение/Отключение проверки сертификата авторизации клиента | ||
| databases | scannerdb | Основная база данных, содержащая генерируемую в процессе функционирования Сканер-ВС информацию | ||
| path | /var/lib/echelon/0/scanner/scanner.db | Путь к основной базе данных Сканер-ВС | ||
| vulndb | База данных, представляющая собой встроенную базу уязвимостей Сканер-ВС | |||
| path | /var/lib/echelon/0/scanner/vuln.db | Путь к базе уязвимостей Сканер-ВС | ||
| customvulndb | База данных, представляющая собой пользовательскую базу уязвимостей Сканер-ВС | |||
| path | /var/lib/echelon/0/scanner/customvuln.db | Путь к пользовательской базе уязвимостей Сканер-ВС | ||
| connection-policy | duration | 20s | Длительность попытки | |
| services | pauth-server | Подсекция настроек сервера аутентификации | ||
| id | "da62d3bb-9dfb-4dcd-b9d8-704bf887b29e" | Идентификатор сервера аутентификации | ||
| database | file:/var/lib/echelon/0/scanner/pauth.sqlite | Путь к базе данных зарегистрированных операторов Сканер-ВС | ||
| session-ttl | 24h | Продолжительность сессии | ||
| services | pauth-server | default-role | user | Роль оператора по умолчанию |
| min-password-entropy-bits | 70 | Минимальная энтропия задаваемого пароля (см. п. 4.7 настоящего руководства) | ||
| root-password | mn9NRmcJakbfZRYhTMieb7nNRF9hJ9qFwg5jCkmiudLpiNJ5pNhqgLC7LzDv5d9jT5mbT4Vo | Параметр начального пароля установочного администратора «admin». Значение передаётся службе аутентификации. Для передачи защищённого значения используйте предусмотренный конфигурацией источник секрета. Это не имя хеша в базе пользователей | ||
| roles | admin user | Роли операторов Сканер-ВС | ||
| Подсекция настроек правил доступа для операторов с разными ролями | ||||
| rules | "user": - "/app/.*" - "/echelon.pauth_server.user.v1.UserService/.*" - "/api/.*" - /echelon.scanner.*" | Правила доступа для оператора с ролью «Пользователь» | ||
| admin | "/.*" | Правила доступа для оператора с ролью «Администратор» | ||
| mode | embedded | Режим работы сервера аутентификации: embedded запускает встроенный сервис, server подключает Сканер-ВС к внешнему pauth-server по gRPC. Встроенная интеграция OAuth/OIDC, описанная в п. 4.4, используется в режиме «embedded». При режиме «server» аутентификация настраивается на внешнем Pauth-server | ||
| services | update-service | Обновление БД уязвимостей | ||
| max-update-memory-mi-byte | 60 | Максимальный объем оперативной памяти (в МБ), используемой для обработки части файла при ручном обновлении без записи на диск. Увеличение значения может ускорить обновление, но повысит нагрузку на память | ||
| connector | url | https://updates.etecs.ru | Путь к базе данных уязвимостей для обновлений | |
| pauth-server.client | addr | – | Адрес и порт внешнего pauth-server. Обязателен при «mode: server» | |
| insecure | false | При значении «true» соединение с внешним pauth-server устанавливается без TLS. Допускается только для тестовой среды | ||
| ca | – | Путь к корневому сертификату, используемому для проверки TLS-сертификата внешнего pauth-server. Если параметр не задан, используется системный пул корневых сертификатов | ||
| cert | – | Путь к клиентскому сертификату Сканер-ВС для взаимной TLS-аутентификации. Используется совместно с «key» | ||
| key | – | Путь к закрытому ключу клиентского сертификата для взаимной TLS-аутентификации. Используется совместно с «cert» | ||
| services | pauth-server.oauth | callback-url | – | Внешний URL обратного вызова, передаваемый провайдеру как redirect_uri, например https://scanner.example.com/api/oauth2/callback. Отсутствие значения отключает подключение OAuth-маршрутов |
| fail-on-start | false | Определяет реакцию на ошибку инициализации OAuth-провайдера: при «true» запуск сервиса завершается ошибкой; при «false» недоступный провайдер пропускается | ||
| pauth-server.oauth.cookie | hmac-key | – | HMAC-ключ для проверки целостности cookie OAuth. Для нескольких экземпляров Сканер-ВС должен быть задан явно и одинаково на всех экземплярах | |
| encryption-key | – | Ключ шифрования cookie OAuth. Для нескольких экземпляров Сканер-ВС должен быть задан явно и одинаково на всех экземплярах | ||
| generate-hmac-key | false | Включает генерацию HMAC-ключа при запуске. Подходит для одного экземпляра; в примере конфигурации указано «true» | ||
| generate-encryption-key | false | Включает генерацию ключа шифрования при запуске. Подходит для одного экземпляра; в примере конфигурации указано «true» | ||
| allow-unsecure | false | Разрешает использование OAuth-cookie без требования защищённого HTTPS-соединения. Допускается только для тестовой среды | ||
| services | pauth-server.oauth.providers[] | name | – | Уникальное техническое имя провайдера |
| display-name | – | Отображаемое имя провайдера на странице входа | ||
| kind | – | Тип провайдера: «oidc» для OIDC-совместимого провайдера либо «oauth2» для универсального OAuth 2.0 | ||
| issuer | – | URL издателя OIDC. Обязателен для провайдера с «kind: oidc» | ||
| client-id | – | Идентификатор OAuth-клиента, заданный непосредственно в YAML. Альтернатива параметру «client-id-env-var» | ||
| client-id-env-var | – | Имя переменной окружения, из которой считывается идентификатор OAuth-клиента | ||
| client-secret | – | Секрет OAuth-клиента, заданный непосредственно в YAML. Подстановка «${VAR}» для этого поля не выполняется. Предпочтительно использовать «client-secret-env-var» | ||
| client-secret-env-var | – | Имя переменной окружения, из которой считывается секрет OAuth-клиента | ||
| additional-scopes | [] | Дополнительные области доступа, запрашиваемые у OIDC-провайдера сверх стандартных областей. В значении указывается массив данных (множественное значение) | ||
| scopes | [] | Список областей доступа для универсального провайдера с «kind: oauth2». В значении указывается массив данных (множественное значение) | ||
| services | pauth-server.oauth.providers[] | login-expr | – | CEL-выражение для вычисления логина из набора «claims». Для OIDC при пустом результате последовательно используются «preferred_username, nickname», затем сформированный логин вида «<provider>_user_<sub>» |
| pauth-server.oauth.providers[].profile-expr | name | – | CEL-выражение для вычисления имени пользователя. Для OIDC пустое значение использует стандартный «claim given_name» | |
| surname | – | CEL-выражение для вычисления фамилии пользователя. Для OIDC пустое значение использует стандартный «claim family_name» | ||
| – | CEL-выражение для вычисления адреса электронной почты. Для OIDC пустое значение использует стандартный «claim email» | |||
| phone | – | CEL-выражение для вычисления номера телефона. Для OIDC пустое значение использует стандартный «claim phone_number» | ||
| pauth-server.oauth.providers[].role-rules[] | when | – | CEL-условие назначения ролей. Все правила с истинным условием применяются совместно | |
| roles | [] | Список ролей, добавляемых пользователю при выполнении условия «when». Если ни одно правило не выполнено, используется «pauth-server.default-role». В значении указывается массив данных (множественное значение) | ||
| services | pauth-server.oauth.providers[].endpoints | authorization | – | URL конечной точки авторизации. Обязателен для провайдера с «kind: oauth2» |
| token | – | URL конечной точки получения токена. Обязателен для провайдера с «kind: oauth2» | ||
| pauth-server.oauth.providers[].userinfo | url | – | URL получения сведений о пользователе. Обязателен для провайдера с «kind: oauth2» | |
| query.format | jwt | Набор дополнительных параметров строки запроса к userinfo.url. В примере Yandex передаётся «format: jwt» | ||
| pauth-server.oauth.providers[].userinfo.auth | scheme | header | Способ передачи «access token» при запросе сведений о пользователе. Пустое значение эквивалентно «header». Также поддерживается «query» | |
| header-name | «Authorization» в примере | Имя HTTP-заголовка, в котором передаётся «access token» при «scheme: header» | ||
| header-prefix | «OAuth» в примере Yandex | Префикс значения HTTP-заголовка перед «access token» при «scheme: header» | ||
| pauth-server.oauth.providers[].userinfo.response | format | json | Формат ответа сервиса сведений о пользователе: «json», «jwt-hs256-client-secret» или «jwt-rs256-jwks». Пустое значение эквивалентно «json» | |
| pauth-server.oauth.providers[].userinfo.response.jwt | issuer | – | Ожидаемый издатель JWT. Обязателен для JWT-форматов ответа | |
| services | pauth-server.oauth.providers[] | subject-claim | sub | Имя «claim», содержащего стабильный идентификатор пользователя в ответе «/userinfo» |
| audit-params | local-sessions-per-account | 5 | Максимальное количество одновременно выполняемых локальных сессий аудита | |
| remote-sessions-per-account | 1 | Максимальное количество одновременно выполняемых удалённых сессий аудита | ||
| target-locale | C.UTF-8 | Локализация выполнения команд при удалённом аудите Linux-узлов для правил типа «cmd:». Перед командой устанавливается LC_ALL с указанным значением. Системные настройки локализации узла не изменяются. Указанная локализация должна быть установлена на целевом узле: проверьте её наличие командой «locale -a». При необходимости задайте другую установленную локализацию, например «en_US.UTF-8» | ||
| crack-params | time-per-login | 0 | Время ожидания на попытку входа во все потоки | |
| disable-redo-on-failed-attempts | false | Флаг повторения запроса при неудачной попытке | ||
| connection-timeout-ms | 10000 | Максимальное время ожидания установления соединения для одного запроса при выполнении задачи «Подбор паролей», мс | ||
| crack-params | retries | 5 | Количество попыток выполнения запроса при ошибке соединения в задаче «Подбор паролей» | |
| reporter | vuln-render-workers | 0 | Максимальное количество параллельных процессов компиляции частей полного отчёта средствами Typst. Значение «0» включает автоматический расчёт по числу доступных процессоров и объёму свободной оперативной памяти | |
| vuln-render-worker-memory-mi-byte | 3072 | Расчётный объём свободной оперативной памяти на один процесс Typst, МиБ. Используется при автоматическом выборе количества параллельных процессов | ||
| vuln-render-reserved-memory-mi-byte | 4096 | Объём свободной оперативной памяти, резервируемый для Сканер-ВС, SQLite и операций с архивами, МиБ. Не распределяется между процессами «Typst» при автоматическом расчёте параллелизма | ||
| concurrent-exports | 1 | Максимальное количество одновременно выполняемых фоновых заданий экспорта отчётов. Остальные задания ожидают выполнения в очереди | ||
| create-asset-batch-size | 10 | Количество активов, обрабатываемых за один пакет при создании отчёта, хранящего исходные данные в файле | ||
| reporter | export-timeout | 0s | Дополнительное ограничение времени выполнения одного фонового задания экспорта. Значение «0s» отключает дополнительное ограничение. Задание выполняется до завершения, ручной отмены или остановки сервиса | |
| adaptive-threshold | 5m | Максимально допустимое расчётное время формирования раздела уязвимостей в адаптивном режиме. При превышении порога используется компактное табличное представление | ||
| custom_ vulnerabilities | recommendation_update_ policy | replace | Политика обновления рекомендаций при импорте уже существующей пользовательской уязвимости. «replace» полностью заменяет прежние рекомендации новыми. «merge» объединяет прежние и новые рекомендации без дубликатов. Неизвестное или пустое значение обрабатывается как «replace» | |
| exec-retry | initial-interval | 100s | Длительность первой попытки подключения к узлу исследуемой сети | |
| max-interval | 200s | Максимальное значение, до которого может увеличиться длительность попытки подключения к узлу исследуемой сети | ||
| exec-retry | max-elapsed-time | 600s | Максимальное время, выделяемое на все попытки подключения к узлу исследуемой сети | |
| max-retry | 3 | Максимальное количество попыток подключения | ||
| max-exec-time | 3m | Максимальное значение времени, за которое Сканер-ВС должно получить ответ о выполнении команд от узла исследуемой сети | ||
| secrets | salt | age1fsyarstxhcy2uxv40524a6944kjufpnpnqmdsa40pfsqfnht9sksxqglsx | Дополнительное значение, участвующее в формировании защищённого пароля, повышающее устойчивость к подбору | |
| password | AGE-SECRET-KEY-1DJZL0AFG6HS5JDHZCYM2FVRM80C9VTLNWTV65DHVJ8XMRFUTAK0SPNUMAN | Зашифрованное значение, используемое в системе для защиты конфиденциальных данных | ||
| kerberos | path | /var/lib/echelon/0/scanner/krb | Путь к конфигурационному файлу с настройками аутентификации «Kerberos» | |
| parallelism | coeff | 40 | Параметр, определяющий коэффициент параллельности выполнения задач (параллелизм) | |
| adaptive-concurrency | Параметры, определяющие настройки адаптивного управления параллельности выполнения задач | |||
| adaptive-concurrency | enabled | true | Включение/отключение адаптивного управления параллельности выполнения задач | |
| min-cpu-threshold | 40.0 | Минимальное пороговое значение (CPU), на которое опирается алгоритм адаптивного управления параллелизмом | ||
| parallelism | adaptive-concurrency | max-cpu-threshold | 60.0 | Максимальное пороговое значение (CPU), на которое опирается алгоритм адаптивного управления параллелизмом |
| max-ram-threshold | 80.0 | Максимальное пороговое значение (RAM), на которое опирается алгоритм адаптивного управления параллелизмом | ||
| proportional-coefficient | 0.25 | Пропорциональный коэффициент, влияющий на реагирование выхода значения целевого показателя (CPU) из окна | ||
| integral-coefficient | 0.01 | Интегральный коэффициент, позволяющий накапливать отклонения показателя (выход из окна) и влиять на корректирующие действия алгоритма | ||
| derivative-coefficient | 0.05 | Производный коэффициент, позволяющий оценивать скорость изменения (роста/упадка) показателя и влиять на корректирующие действия алгоритма | ||
| vulns-impact-score | weights | Весовые коэффициенты | ||
| k | 0.4 | Вес для компонента K | ||
| l | 0.2 | Вес для компонента L | ||
| p | 0.4 | Вес для компонента P | ||
| scores | Оценки показателей | |||
| k-score | critical-processes-value: "1.0" | Критические процессы (бизнес-процессы, функции) | ||
| servers-value: "0.8" | Серверы | |||
| telecommunication-value: "0.8" | Телекоммуникационное оборудование | |||
| automated-workplaces-value: "0.5" | Автоматизированные рабочие места | |||
| other-value: "0.5" | Другие компоненты | |||
| vulns-impact-score | scores | l-score | gt70-value: "1.0" | Более 70% компонентов подвержены уязвимости |
| gte50-value: "0.8" | 50-70% компонентов подвержены уязвимости | |||
| gte10-value: "0.6" | 10-50% компонентов подвержены уязвимости | |||
| lt10-value: "0.5" | Менее 10% компонентов подвержены уязвимости | |||
| p-score | available-from-net-value: "1.0" | Доступно из сети Интернет | ||
| unavailable-from-net-value: "0.5" | Недоступно из сети Интернет | |||
| tuning | usb-since-flag | "1 day ago" | Настройка интервала просмотра истории подключения (и т.д.) устройств USB | |
| wireless-since-flag | "1 day ago" | Нижняя временная граница просмотра журналов беспроводных подключений при инвентаризации Linux-узла. Верхней границей является момент выполнения команды. Формат соответствует параметру «--since» команды «journalctl». Значение «all» отключает нижнюю границу и включает просмотр всей доступной истории | ||