Microsoft SQL Server: настройка источника
Данное руководство описывает процесс настройки сбора и отправки событий Microsoft SQL Server (MS SQL) в R-Vision SIEM.
Предварительные требования
-
Сетевая доступность сервера СУБД (Microsoft SQL Server) источника по целевому порту и протоколу для каждой ноды кластера SIEM.
-
Учетная запись в СУБД с правами на чтение базы данных.
Настройка MS SQL
Описание подсистемы журналирования MS SQL
Журналирование событий источника может осуществляться двумя путями:
-
Запись в журнал событий. Например, события журналов сервера Microsoft SQL Server записываются в журнал
Application.Настройка сбора событий журнала Windows SQL Server с помощью агента платформы R-Vision EVO включает в себя установку агента на хост и настройку политики. -
Отдельная настройка журналирования событий. Например, отдельно настраиваются события аудита команд SQL Server.
Создание учетной записи в СУБД MS SQL
Для отправки событий аудита команд создайте сервисную учетную запись в СУБД MS SQL и предоставьте ей права на просмотр всех сеансов на сервере:
GRANT VIEW SERVER STATE TO [имя пользователя];
Настройка аудита MS SQL
| Если нет необходимости анализировать запросы к продуктовым базам, аудит действий с ними можно не настраивать. При этом для работы правил корреляции следует обязательно контролировать запросы к базе master. |
Для настройки аудита на уровне сервера выполните следующие шаги:
-
Откройте SQL Server Management Studio.
-
В боковом меню перейдите в раздел Security.
-
Откройте контекстное меню Audits и выберите вариант New Audit…. Будет создан новый объект аудита SQL Server.
-
Выберите действие, которое будет запущено при сбое журнала аудита:
-
продолжить;
-
остановить операции с базой данных, которые проверяются;
-
завершить работу сервера.
-
-
В качестве назначения аудита выберите из выпадающего списка вариант Application Log.

-
Нажмите на кнопку OK.
-
Откройте контекстное меню созданного аудита и выберите вариант Enable Audit.
-
Откройте контекстное меню Server Audit Specifications и выберите вариант New Server Audit Specification…. Откроется окно настроек нового объекта спецификации аудита SQL Server.
-
Введите название аудита.
-
Выберите аудит, созданный на уровне сервера.
-
Укажите в таблице типы событий, которые необходимо логировать.

-
Нажмите на кнопку ОК.
Для настройки аудита на уровне базы данных выполните следующие шаги:
-
Откройте SQL Server Management Studio.
-
Подключитесь к базе данных, для которой необходимо включить аудит.
-
В боковом меню перейдите в раздел Security выбранной базы данных.
-
Откройте контекстное меню папки Database Audit Specifications и выберите вариант New Database Audit Specification…. Откроется окно настроек нового объекта аудита SQL Server.

-
Введите имя аудита.
-
Выберите аудит, созданный на уровне сервера.
-
Укажите типы событий, которые необходимо логировать.

-
Нажмите на кнопку OK.
Настройка аудита выгрузки ключей и сертификатов MS SQL
Для настройки аудита выгрузки ключей и сертификатов MS SQL выполните следующие шаги:
-
Откройте SQL Server Management Studio.
-
Создайте Extended Events-сессию с логированием в файл:
DROP EVENT SESSION IF EXISTS TrackBackupCryptoFile ON SERVER; GO CREATE EVENT SESSION TrackBackupCryptoFile ON SERVER ADD EVENT sqlserver.sql_statement_completed ( ACTION ( sqlserver.sql_text, sqlserver.username, sqlserver.client_hostname, sqlserver.nt_username ) WHERE sqlserver.sql_statement_completed.statement LIKE '%BACKUP%CERTIFICATE%' OR sqlserver.sql_statement_completed.statement LIKE '%BACKUP%SERVICE%MASTER%KEY%' OR sqlserver.sql_statement_completed.statement LIKE '%BACKUP%MASTER%KEY%' OR sqlserver.sql_statement_completed.statement LIKE '%BACKUP%SYMMETRIC%KEY%' ) ADD TARGET package0.event_file ( SET filename = 'C:\AuditLogs\TrackBackupCrypto.xel', max_file_size = 10, max_rollover_files = 5 ); GO ALTER EVENT SESSION TrackBackupCryptoFile ON SERVER STATE = START; -
Создайте представление для просмотра событий из файла:
CREATE VIEW dbo.BackupCryptoAuditLogView AS SELECT event_xml.value('(event/@timestamp)[1]', 'datetime') AS EventTime, ISNULL(event_xml.value('(event/action[@name="username"]/value)[1]', 'nvarchar(100)'), 'N/A') AS SqlLogin, ISNULL(event_xml.value('(event/action[@name="client_hostname"]/value)[1]', 'nvarchar(100)'), 'N/A') AS HostName, ISNULL(event_xml.value('(event/action[@name="nt_username"]/value)[1]', 'nvarchar(100)'), 'N/A') AS WindowsUser, ISNULL(event_xml.value('(event/data[@name="statement"]/value)[1]', 'nvarchar(max)'), 'N/A') AS Statement, ISNULL(event_xml.value('(event/action[@name="sql_text"]/value)[1]', 'nvarchar(max)'), 'N/A') AS FullSQL FROM sys.fn_xe_file_target_read_file('C:\AuditLogs\TrackBackupCrypto*.xel', NULL, NULL, NULL) AS xelog CROSS APPLY (SELECT CAST(xelog.event_data AS XML) AS event_xml) AS evt; GO -
Настройте автозапуск при старте SQL Server:
-- Создаем процедуру автозапуска CREATE PROCEDURE StartTrackBackupCrypto AS BEGIN IF NOT EXISTS ( SELECT * FROM sys.dm_xe_sessions WHERE name = 'TrackBackupCryptoFile' ) BEGIN ALTER EVENT SESSION TrackBackupCryptoFile ON SERVER STATE = START; END END; GO -- Включаем запуск при старте SQL Server EXEC sp_procoption 'StartTrackBackupCrypto', 'startup', 'on'; -
Предоставьте необходимые права для просмотра представления сервисной учетной записи, созданной ранее:
GRANT SELECT ON dbo.BackupCryptoAuditLogView TO [имя пользователя]; EXEC sp_addrolemember 'db_datareader', [имя пользователя]; EXEC sp_addsrvrolemember 'VIEW SERVER STATE', [имя пользователя];
Установка агента
| Для установки агента обратитесь к документации продукта R-Vision SIEM. |
Установите агент R-Vision EVO на станцию и настройте его связь с R-Vision SIEM. После этого в веб-интерфейсе R-Vision SIEM в разделе Агенты появится информация о подключенном хосте.
Добавьте хост в группу, в которой настроен сбор журнала Application.
Настройка в R-Vision SIEM
Настройка отправки событий в R-Vision SIEM
-
В веб-интерфейсе R-Vision SIEM перейдите в раздел Агенты → Группы агентов.
-
Создайте группу и добавьте в нее узел, на котором установлен агент.
-
В созданной группе узлов в секции Чтение файлов нажмите на кнопку Добавить настройку (
).
-
В выпадающем списке Тип журнала выберите вариант eventchannel.
-
В поле Имя журнала введите значение
Application. -
Если необходимо выбирать события по определенным критериям, введите в поле Фильтр (формат XPATH) выражение XPath. Если фильтр не нужен, введите символ
*. -
Нажмите на кнопку Сохранить.
-
Дождитесь применения политики группы на узле. Сбор событий настроен.
Настройка обработки событий в R-Vision SIEM
Для настройки сбора и нормализации событий источника в R-Vision SIEM выполните следующие шаги:
-
В интерфейсе R-Vision SIEM создайте секрет со строкой подключения. Для этого:
-
Перейдите в разделы Ресурсы → Секреты → Создать:
-
В раскрывшемся окне создания секрета заполните поля:
-
Название: введите название секрета.
-
Описание (опционально): опишите, для чего будет использоваться секрет.
-
Тип секрета: выберите вариант Строка подключения.
-
Строка подключения: введите строку вида:
jdbc:sqlserver://<address>\<instance>:<port>;encrypt=false;databaseName=<database>;user=<user>;password=<password>;applicationName=SIEM_MONITORгде:
-
<address>— адрес сервера базы данных. -
<instance>— опциональная сущность сервера СУБД. Для использования сущность должна быть заранее создана с помощьюSQL Server Management Studio. -
<port>— порт подключения. -
<database>— имя базы событий аудита. -
<user>— логин пользователя базы данных. -
<password>— пароль пользователя базы данных.Пример 1. Пример строки подключения:jdbc:sqlserver://10.150.15.34\MSSQLSERVER1:1433;encrypt=false;databaseName=master;user=user;password=P@ssw0rd;applicationName=SIEM_MONITOR
-
-
-
Нажмите на кнопку Создать.
-
-
В интерфейсе R-Vision SIEM создайте новый конвейер в коллекторе.
-
Добавьте на конвейер элемент Точка входа для событий аудита команд MS SQL со следующими параметрами:
-
Название: введите название точки входа.
-
Тип точки входа: выберите вариант Database.
-
Драйвер базы данных: выберите вариант MS SQL.
-
Адрес подключения: выберите секрет, созданный ранее.
-
SQL-запрос: введите SQL-запрос.
Пример 2. Пример запроса:DECLARE @appname NVARCHAR(15) = N'MSSQL'; ;WITH RecentSessions AS ( SELECT c.session_id, c.most_recent_sql_handle, c.client_net_address AS src, c.client_tcp_port AS spt, c.local_net_address AS dst, c.local_tcp_port AS dpt, c.auth_scheme, s.login_name, s.status, s.login_time, s.program_name, s.last_request_start_time AS rt, s.host_process_id, s.nt_domain, s.nt_user_name, s.host_name AS shost FROM sys.dm_exec_connections AS c INNER JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id WHERE s.last_request_start_time >= DATEADD(SECOND, -15, GETDATE()) AND s.program_name <> 'SIEM_MONITOR' AND s.program_name <> 'SQLServerCEIP' AND c.most_recent_sql_handle IS NOT NULL ) SELECT rs.session_id, @@SERVERNAME AS dvchost, rs.login_name, rs.status, st.text AS query, rs.login_time, rs.program_name, rs.rt, rs.auth_scheme, rs.host_process_id, rs.nt_domain, rs.nt_user_name, rs.shost, rs.src, rs.spt, rs.dst, rs.dpt, @appname AS appname FROM RecentSessions AS rs CROSS APPLY sys.dm_exec_sql_text(rs.most_recent_sql_handle) AS st ORDER BY rs.rt DESC; -
Интервал запроса, секунд: введите значение
15.
-
-
Добавьте на конвейер дополнительный элемент Точка входа для событий выгрузки ключей и сертификатов со следующими параметрами:
-
Название: введите название точки входа.
-
Тип точки входа: выберите вариант Database.
-
Драйвер базы данных: выберите вариант MS SQL.
-
Адрес подключения: выберите секрет, созданный ранее.
-
SQL-запрос: введите SQL-запрос.
Пример 3. Пример запроса:DECLARE @dproduct NVARCHAR(50); DECLARE @appname NVARCHAR(15); SET @dproduct = N'SQL Server Crypto'; SET @appname = N'MSSQL'; SELECT bcalv.*, @dproduct AS device_product, @appname AS appname, @@SERVERNAME AS dvchost FROM dbo.BackupCryptoAuditLogView bcalv WHERE EventTime > DATEADD(S, CONVERT(INT, ?)+1, '1970-01-01') ORDER BY bcalv.EventTime ASC; -
Поле идентификатора: введите ключ
EventTimeсо значением текущего времени в формате UNIX-time. -
Интервал запроса, секунд: введите значение
15.
-
-
Добавьте на конвейер элемент Нормализатор с правилом Microsoft SQL Server (идентификатор правила: RV-N-69).
-
Соедините нормализатор с точками входа.
-
Добавьте на конвейер элемент Конечная точка типа Хранилище событий.
-
Соедините конечную точку с нормализатором.
-
Сохраните и установите конфигурацию конвейера.
Пример конфигурации конвейера:
Нормализацию событий из других журналов, которые собираются с помощью агента R-Vision EVO, настройте на отдельном конвейере. Для этого:
-
В интерфейсе R-Vision SIEM создайте новый конвейер в коллекторе.
-
Добавьте на конвейер элемент Точка входа со следующими параметрами:
-
Название: введите название точки входа.
-
Тип точки входа: выберите вариант R-Vision EVO Endpoint.
-
Домен: введите значение в формате
gw-<your_gateway_id>, где<your_gateway_id>— ID шлюза.
-
-
Добавьте на конвейер элемент Нормализатор с правилом Microsoft SQL Server (идентификатор правила: RV-N-70).
-
Соедините нормализатор с точкой входа.
-
Добавьте на конвейер элемент Конечная точка типа Хранилище событий.
-
Соедините конечную точку с нормализатором.
-
Сохраните и установите конфигурацию конвейера.
Пример конфигурации конвейера:
После настройки передачи событий если настройка выполнена корректно, в хранилище начнут поступать события из журналов SQL Server.
|
Найти события источника в хранилище можно по фильтру:
|
Таблица маппинга
Таблица соответствия полей события для всех рассмотренных типов событий представлена по ссылке.
Была ли полезна эта страница?
