Настройка интеграции с Единым Аудитом#
Согласно требованиям кибербезопасности, программный продукт должен регистрировать события аудита и отправлять их в автоматизированную систему Единый Аудит.
Регистрируются действия в программном продукте, для совершения которых требуются привилегии администратора (например - создание почтового ящика, изменение настроек почтового ящика и пр.). Полный список событий аудита, отправляемых в Единый Аудит, заранее согласуется и фиксируется в метамодели программного продукта.
Интеграция программного продукта с Единым Аудитом происходит по REST.
О сервисе mail-audit-adapter#
Отправка и сохранение событий аудита#
За отправку событий аудита в программном продукте отвечает сервис mail-audit-adapter.
Другие сервисы (например, mail-back) фиксируют у себя событие аудита и отправляют его сервису mail-audit-adapter. Сервис mail-audit-adapter принимает событие аудита и сохраняет его в отдельной схеме в базе данных, в таблицу mail_events.
В сервисе mail-audit-adapter периодически срабатывает шедулер, по которому события аудита извлекаются из базы данных и отправляются в Единый Аудит. Событиям, успешно отправленным в Единый Аудит, в базе данных проставляется поле sent_at, равное времени отправки события. Если событие аудита ещё не было успешно отправлено до Единого Аудита, поле sent_at будет null.
Метамодель аудита#
Перед отправкой событий аудита в Единый Аудит необходимо зарегистрировать согласованную метамодель - для этого её необходимо отправить в Единый Аудит хотя бы один раз. До тех пор, пока метамодель не зарегистрирована в Едином Аудите, он не будет принимать отсылаемые события и будет выдавать ошибку. В сервисе mail-audit-adapter отправка метамодели происходит в двух сценариях:
Каждый раз при поднятии сервиса
mail-audit-adapter. Если метамодель не удастся отправить в Единый Аудит при поднятии сервиса, сервис выведет ошибку в логах, но всё равно поднимется и будет работать;При срабатывании шедулера на отправку метамодели. Шедулер необходим для случая, если метамодель не удалось отправить при поднятии сервиса.
Метамодель встроена в сервис mail-audit-adapter. Изменение метамодели требует её пересогласования, а также пересборки дистрибутива.
Очистка старых событий аудита из базы данных#
В сервисе предусмотрен шедулер для очистки старых событий аудита из БД. Можно настроить крон-выражение срабатывания шедулера, а также срок хранения событий аудита в БД. В таблице mail_events присутствует поле created_at, равное времени сохранения события аудита в БД. Определение, является ли событие аудита старым, происходит следующим образом: считается разница между текущим временем и временем, указанным в поле created_at - если разница больше срока хранения событий аудита в БД, то событие аудита подлежит удалению из БД. События аудита, которые ещё не были успешно отправлены в Единый Аудит, не удаляются из базы данных, даже если срок их хранения истёк.
Настройка стендозависимых параметров#
Для сервиса mail-audit-adapter требуется отдельная схема в базе данных. Перед установкой дистрибутива на кластер необходимо создать отдельную схему в БД и выдать нужные права на таблицы и последовательности в БД.
Для настройки интеграции с Единым Аудитом необходимо внести изменения в два конфигурационных файла: mail-audit-adapter.conf и mail-egress-gateway.istio.all.conf.
mail-audit-adapter.conf#
Ниже перечислены основные параметры, на которые стоит обратить внимание:
mail_audit_adapter.ose.configmap.data.application_config.audit.host- хост Единого Аудита;mail_audit_adapter.ose.configmap.data.application_config.audit.virtualIp- виртуальный IP для маршрутизации трафика до Единого Аудита;mail_audit_adapter.ose.configmap.data.application_config.audit.port.external- внешний порт Единого Аудита;mail_audit_adapter.ose.configmap.data.application_config.audit.urlPath- URL-путь до Единого Аудита. URL-путь определяется следующим образом:http://host:port{urlPath}. Например, если полный URL до Единого Аудита -https://audit-host:443/push/project/ms-audt/split-by-ott, то URL-путём будет являться/push/project/ms-audt/split-by-ott;mail_audit_adapter.ose.configmap.data.application_config.audit.eventSendSize- максимальное количество событий аудита, отправляемых в Единый Аудит при срабатывании шедулера на отправку событий аудита;mail_audit_adapter.ose.configmap.data.application_config.audit.eventRetentionTime- срок хранения событий аудита в БД, в днях. Все события аудита, у которых истёк срок хранения и которые были успешно отправлены в Единый Аудит, удаляются из БД по шедулеру. Если задать значение, равное 0, то события никогда не будут очищаться из БД;mail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-events.cron- крон-выражение, по которому запускается шедулер на отправку событий аудита из БД в Единый Аудит. При изменении этого параметра, скорее всего, потребуется соответствующее изменение параметров:mail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-events.lock.at-leastmail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-events.lock.at-most
Эти параметры отвечают за настройку Shedlock-блокировки по БД в целях недопущения выполнения шедулера на отправку событий аудита более, чем одного раза в распределённой системе (например, когда на кластере развёрнуто несколько подов
mail-audit-adapter, или когда дистрибутив развёрнут на нескольких кластерах). Если задать эти параметры некорректно, шедулер может срабатывать более одного раза за промежуток времени, что приведёт к отправке дубликатов событий аудита в Единый Аудит.mail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-events.lock.at-least- минимальная продолжительность Shedlock-блокировки для шедулера на отправку событий аудита, в форматеISO-8601 Duration;mail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-events.lock.at-most- максимальная продолжительность Shedlock-блокировки для шедулера на отправку событий аудита, в форматеISO-8601 Duration;mail_audit_adapter.ose.configmap.data.application_config.audit.clear-old-audit-events.cron- крон-выражение, по которому запускается шедулер на очистку старых событий аудита из БД;mail_audit_adapter.ose.configmap.data.application_config.audit.send-audit-metamodel.cron- крон-выражение, по которому запускается шедулер на отправку метамодели в Единый Аудит.
mail-egress-gateway.istio.all.conf#
В этом файле указываются параметры для настройки Istio-правил для маршрутизации трафика до хоста Единого Аудита:
mail_egress_gateway.ose.istio.egress.audit.host- хост Единого Аудита;mail_egress_gateway.ose.istio.egress.audit.port.egress- порт Egress для Единого Аудита;mail_egress_gateway.ose.istio.egress.audit.port.external- внешний порт Единого Аудита;mail_egress_gateway.ose.istio.egress.audit.virtualIp- виртуальный IP для маршрутизации трафика до Единого Аудита;mail_egress_gateway.ose.istio.egress.audit.pki.engine- PKI-движок для получения сертификатов, использующихся для подключения к серверу Единого Аудита. Если не задать этот параметр, то сертификаты будут браться из SecMan-хранилища из секрета, указанного в параметреmail_egress_gateway.vault.secret.path.egress. Сертификаты в таком случае будут браться по следующим ключам:ca-bundle- цепочка доверенных сертификатов;audit.key- приватный ключ сертификата для подключения к серверу Единого Аудита;audit.pem- сертификат для подключения к серверу Единого Аудита
mail_egress_gateway.ose.istio.egress.audit.certCommonName- CN сертификата, использующегося для подключения к серверу Единого Аудита;mail_egress_gateway.ose.istio.egress.audit.getChainFromKv.enabled- флаг получения цепочки доверенных сертификатов из хранилища KV. Еслиfalse, то для генерации цепочки используется PKI-движок из параметраmail_egress_gateway.ose.istio.egress.audit.pki.engine.
Интеграция с OTT#
Интеграция с Единым Аудитом по REST может осуществляться как с использованием OTT (One-Time Token), так и без.
Если к интеграции с Единым Аудитом предъявляются требования по использованию OTT, то необходимо дополнительно настроить интеграцию с OTT. Если же интеграция с OTT не нужна, то необходимо явно отключить поддержку OTT (см. раздел Настройка интеграции с OTT).