Аудит
Аудит представляет собой процесс контроля и анализа действий пользователей и системы с целью обеспечения безопасности, целостности и конфиденциальности данных.
В ходе аудита собирается и хранится информация о важных событиях, таких как аутентификация и авторизация пользователей, доступ к защищенным ресурсам или изменение конфигурации системы.
События регистрируются в специальный лог-файл заданного формата. События записываются в режиме, при котором каждая новая запись добавляется в конец файла, а сам файл называется оперативным. При достижении/превышении определенного размера файла содержимое файла автоматически копируется в исторический файл.
Для каждого регистрируемого события указываются:
-
тип;
-
идентификационные данные пользователя, инициировавшего регистрируемое событие;
-
успешность или не успешность осуществляемых действий;
-
дата и время события;
-
другие данные, достаточные для однозначной интерпретации события (см. раздел «Описание полей лог-файла»).
| Для действий, происходящих внутри внешних систем, например, БД, системы хранения контента, веб-сервера, службы каталогов, события аудита не регистрируются. |
Параметры лог-файлов
Оперативный и исторические файлы — это файлы формата JSONL, которые создаются автоматически при установке продукта и
хранятся в каталоге /app/inno-osmax/audit/osmax/core.
Имена файлов задаются согласно шаблонам:
-
шаблон имени оперативного файла:
audit{-applicationAlias}.logГде
applicationAlias— название приложения, например:audit-osmax-core.log. -
шаблон имени исторического файла:
audit{-applicationAlias}.log.yyyy-MM-dd.{N}Где:
-
N— индекс файла; -
applicationAlias— название приложения; -
yyyy-MM-dd— дата ротации файла.
-
| По умолчанию предельный размер оперативного файла аудита составляет 10 МБ. При необходимости можно задать иное значение. |
Описание полей лог-файла
| Родительский элемент | Элемент | Описание | ||
|---|---|---|---|---|
|
|
Дата и время генерации события на сервере. Формат: |
||
|
|
Идентификатор события |
||
|
|
Идентификатор группы событий (например, начало и окончание фоновой процедуры) |
||
Данные о типе событий |
||||
|
|
Тип события. Заполняется на русском языке |
||
|
|
Код события |
||
Данные об объекте и операции |
||||
|
|
Идентификатор бизнес-объекта, над которым выполняется действие, например |
||
|
|
Название типа объекта, над которым выполняется действие. Например, "конфигурация". Заполняется на русском языке |
||
Данные о событии, связанные с классом сообщения о событии |
||||
|
|
Класс сообщения о событии. Возможные значения:
|
||
|
|
Подробное описание события. Заполняется на русском языке.
|
||
|
|
Имя пользователя, например, iivanov@inno.tech
|
||
|
|
IP-адрес пользователя; указывается первое значение из заголовка запроса |
||
Данные о контексте события |
||||
|
|
URL-адрес конечной точки, указанный вместе с протоколом и параметрами.
|
||
|
|
HTTP-метод
|
||
Дополнительные параметры |
||||
|
|
Все дополнительные параметры сообщения |
||
|
|
Информация об ошибке в произвольном формате, если действие завершилось неудачно ( |
||
Данные для интеграции с системой централизованного мониторинга событий безопасности клиента |
||||
|
|
Возможные значения:
В остальных случаях указывается значение |
||
Пример лога:
{
"timestamp":"2024-05-27T13:52:23.116Z",
"sequence":32,
"loggerClassName":"io.github.oshai.kotlinlogging.slf4j.internal.LocationAwareKLogger",
"loggerName":"AUDIT",
"level":"INFO",
"message":"Авторизация в приложении",
"threadName":"Test worker @coroutine#1",
"threadId":1,
"initiator.sub":"null@null",
"context.method":"-",
"correlationId":"477fd1da-1710-4485-93d6-71911ca9618f",
"exception":"Exception message",
"class":"FAILURE",
"code":"AUTH-003",
"type":"Авторизация",
"context.url":"-",
"id":"555b9c04-f0ba-4a6a-a219-d426bdfea752",
"object.id":"-",
"componentName":"lcm-core",
"ipAddress":"-",
"hostName":"avakimov01",
"processName":"GradleWorkerMain",
"processId":27492
}
События аудита
События аутентификации
| type | code | object.id | message | object.name | class | additionalParams | Описание |
|---|---|---|---|---|---|---|---|
Аутентификация |
AUTH-001 |
- |
|
|
Возможные значения:
|
|
Проверка валидности Kerberos-тикета при любом запросе от фронтенда |
События авторизации
| type | code | object.id | message | object.name | class | additionalParams | Описание |
|---|---|---|---|---|---|---|---|
Авторизация |
AUTH-003 |
- |
|
|
Возможные значения:
|
|
Получение ролей для пользователя и проверка доступности объектов БД при любом запросе от фронтенда |
События управления ролевым доступом
| type | code | object.id | message | object.name | class | additionalParams | Описание |
|---|---|---|---|---|---|---|---|
|
|
Id роли из ответа |
|
|
Возможные значения:
|
|
Создание роли, которая не привязана к пользователю/группе |
|
|
Id роли из запроса |
|
|
Возможные значения:
|
|
Изменение характеристик роли без изменения состава полномочий роли и без изменения привязки к пользователям/группам |
|
|
Id роли из запроса |
|
|
Возможные значения:
|
|
Удаление и отвязка роли от пользователей/групп |
|
|
Id роли из запроса |
|
|
Возможные значения:
|
|
Изменение полномочий роли. Если роль привязана к пользователю/группе, то у пользователя/группы появятся полномочия в системе |
|
|
Id роли из запроса |
|
|
Возможные значения:
|
|
Роль привязывается к пользователю/группе. У пользователя/группы через роль появляются полномочия в системе |
|
|
Id роли из запроса |
|
|
Возможные значения:
|
|
Роль отвязывается от пользователя/группы. У пользователя/группы из-за отвязки роли пропадают полномочия в системе |
Системные события
| type | code | object.id | message | object.name | class | StartTime и EndTime | additionalParams | Описание |
|---|---|---|---|---|---|---|---|---|
|
|
- |
|
|
Возможные значения:
|
По заданному расписанию |
|
Автоматическое сопоставление устройства и пользователей, которое выполняется по заданному расписанию |
|
|
- |
|
|
Возможные значения:
|
Значение, указанное в поле |
|
Установка, обновление, удаление ПО, запуск или остановка служб, настройка ОС в фоновом режиме.
Событие генерируется из сообщения топика Kafka |
|
|
- |
|
|
Возможные значения:
|
Значение, указанное в поле |
|
Установка, обновление, удаление ПО, запуск или остановка служб, настройка ОС в push-режиме.
Событие генерируется из сообщения топика Kafka |
|
|
- |
|
|
Возможные значения:
|
Значение, указанное в поле |
|
Установка агента (minion) на устройство. Событие генерируется из сообщения топика Kafka |
|
|
- |
|
|
Возможные значения:
|
По расписанию |
|
Автоматический пересчет коллекции устройств. Событие запускается по расписанию. Изменения сохраняются в БД |
|
|
- |
|
|
Возможные значения:
|
По расписанию |
|
Cинхронизация данных по пользователям, устройствам, группам c данными на LDAP-сервере. Событие запускается по расписанию. Пользователи, устройства, группы сохраняются в БД |
События, связанные с действиями администратора в КА
| type | code | object.id | message | object.name | class | additionalParams | Описание | ||
|---|---|---|---|---|---|---|---|---|---|
Действия администратора, связанные с интеграцией |
|||||||||
|
|
- |
|
|
Возможные значения:
|
|
Загрузка формул, в которых описана установка ПО, запуск служб, настройка ОС и т.д., в S3-совместимое хранилище |
||
|
|
- |
|
|
Возможные значения:
|
|
Загрузка файла с изображением, которое будет использоваться как обложка для графического интерфейса «Магазин администратора» в S3-совместимое хранилище |
||
|
|
- |
|
|
Возможные значения:
|
|
Принудительный запуск синхронизации пользователей, устройств, групп c данными LDAP-сервера. Группы, устройства, пользователи сохраняются в БД |
||
Действия администратора, связанные с инвентаризацией |
|||||||||
|
|
- |
|
|
Возможные значения:
|
|
Изменения настроек загрузки пользователей с сервера LDAP:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Изменение расписания синхронизации всех сущностей с сервера LDAP |
||
|
|
- |
|
|
Возможные значения:
|
|
Изменение настроек загрузки устройств с сервера LDAP:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Изменение настроек загрузки групп с сервера LDAP:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Включение или отключение режима автоматического сопоставления пользователей и устройств |
||
|
|
- |
|
|
Возможные значения:
|
Изменение атрибутов режима автоматического сопоставления пользователей и устройств |
|||
|
|
- |
|
|
Возможные значения:
|
|
Ручной запуск автоматического сопоставления пользователей и устройств |
||
|
|
- |
|
|
Возможные значения:
|
|
Импорт файла соответствия пользователей и устройств |
||
|
|
- |
|
|
Возможные значения:
|
|
Изменение настроек расписаний для SaltStack и сохранение их в S3-совместимом хранилище |
||
|
|
- |
|
|
Возможные значения:
|
|
Выгрузка данных на устройство пользователя:
|
||
Действия администратора, связанные с коллекциями |
|||||||||
|
|
Идентификатор коллекции. Для методов DELETE и PUT указывается идентификатор из path-параметра. Для метода POST указывается идентификатор из ответа |
|
|
Возможные значения:
|
|
Операции с коллекциями устройств:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Запуск процедуры пересчета коллекции устройств в ручном режиме |
||
Действия администратора, связанные с конфигурациями |
|||||||||
|
|
Идентификатор конфигурации. Для методов DELETE и PUT указывается значение из path-параметра. Для метода POST — из ответа |
|
|
Возможные значения:
|
|
Операции с конфигурациями:
|
||
|
|
Идентификатор версии конфигурации. Для методов DELETE и PUT указывается значение из path-параметра. Для метода POST — из ответа |
|
|
Возможные значения:
|
|
Операции с версиями конфигураций:
|
||
|
|
Идентификатор пакета конфигурации. Для методов DELETE и PUT указывается значение из path-параметра. Для метода POST — из ответа |
|
|
Возможные значения:
|
|
Операции с пакетами конфигураций:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Экспорт списка конфигураций |
||
Действия администратора, связанные со связками коллекция-конфигурация |
|||||||||
|
|
Идентификатор применения. Для, метода DELETE указывается значение из path-параметра; для метода POST — из ответа |
|
|
Возможные значения:
|
* |
Операции с сущностью коллекция-конфигурация:
|
||
|
|
Идентификатор применения. Для метода POST указывается значение из ответа |
|
|
Возможные значения:
|
|
Операции с сущностью коллекция-конфигурация:
|
||
|
|
- |
|
|
Возможные значения:
|
|
Операции с сущностью коллекция-конфигурация:
|
||
Действия администратора, связанные с сессиями |
|||||||||
|
|
- |
|
|
Возможные значения:
|
Удаление истории сессий |
|||
|
|
- |
|
|
Возможные значения:
|
|
Операции по получению исторических данных о сессиях пользователей на устройствах
|
||
Действия администратора, связанные с настройкой отчётов |
|||||||||
|
|
Идентификатор отчёта в БД. Для методов DELETE и PUT указывается значение из path-параметра. Для метода POST — из ответа |
|
|
Возможные значения:
|
|
Операции с отчетами:
|
||
|
|
Идентификатор отчёта в БД. Указывается значение поля |
|
|
Возможные значения:
|
|
Исполнение отчета |
||
Действия администратора, связанные с модулями grain, state, execution |
|||||||||
|
|
Идентификатор файла ( |
|
|
Возможные значения:
|
|
Операции с пользовательскими файлами SaltStack (grains, states, execution modules):
|
||
|
|
- |
|
|
Возможные значения:
|
Получение информации о состоянии агентов (minions) из БД |
|||
Действия администратора, связанные с запросом удаленного доступа |
|||||||||
|
|
- |
|
|
Возможные значения:
|
|
Запрос для получения удаленного доступа на устройство по выбранному протоколу |
||
События, связанные с действиями пользователя в Магазине приложений
| type | code | object.id | message | object.name | class | StartTime и EndTime | additionalParams |
|---|---|---|---|---|---|---|---|
Описание |
|
|
Идентификатор заказа, указанный в ответе |
|
|
Возможные значения:
|
|