Как включить аудит SQL Server и просмотреть журнал аудита

Аудит Microsoft SQL Server критически важен для выявления проблем безопасности и нарушений. Кроме того, аудит SQL Server является требованием соответствовать таким стандартам, как PCI DSS и HIPAA.

Первым шагом является определение того, что должно подлежать аудиту. Например, можно осуществлять аудит входов пользователей, конфигурации сервера, изменения в схеме базы данных и модификаций данных аудита. Далее следует выбрать, какие функции аудита безопасности использовать. Среди полезных функций можно выделить следующие:

  • Аудит C2
  • Соответствие Common Criteria
  • Аудит входа в систему
  • Аудит SQL Server
  • SQL Trace
  • Расширенные события (Extended Events)
  • Фиксация изменений данных (Change Data Capture)
  • Триггеры DML, DDL и на вход в систему (Logon Triggers)

Эта статья предназначена для администраторов баз данных, рассматривающих использование аудита C2, соответствие Common Criteria и аудиту SQL Server. В статье не рассматриваются посторонние инструменты аудита, хотя они могут быть очень полезны, особенно в больших средах и регулируемых отраслях.

Включение аудита C2 и соответствие Common Criteria

Если аудит SQL Server в данный момент не используется, самым простым способом начать является включение аудита C2. Аудит C2 – это международно признанный стандарт, который можно активировать в SQL Server. Он осуществляет аудит таких событий, как входы пользователей, выполнение сохраненных процедур, создание и удаление объектов. Однако принцип его работы «все или ничего» – невозможно выбрать, какие события аудит отслеживает, и он может генерировать значительное количество данных. Кроме того, аудит C2 находится в режиме ограниченной поддержки, поэтому предположительно будет удален в будущих версиях SQL Server.

Соответствие Common Criteria – это более новый стандарт, заменяющий аудит C2. Он был разработан Европейским Союзом и может быть включен в редакциях SQL Server Enterprise и Datacenter, начиная с версии SQL Server 2008 R2 и более новых. Однако при включении возможны проблемы с производительностью, если аппаратные ресурсы сервера недостаточны для обработки дополнительной нагрузки.

Ниже приведен способ включения аудита C2 в SQL Server 2017:

1. Откройте SQL Server Management Studio.

2. Подключитесь к механизму базы данных, для которого необходимо включить аудит C2. В диалоговом окне Connect to Server убедитесь, что в поле Server type выбрано значение Database Engine, а затем нажмите Connect.

3. На панели Object Explorer слева щелкните правой кнопкой мыши экземпляр SQL Server в верхней части списка и выберите в меню пункт Properties.

4. В открывшемся окне Server Properties нажмите Security в разделе Select a page.

5. На странице Security можно настроить мониторинг входов. По умолчанию фиксируются неудачные попытки входа. При необходимости можно провести аудит только успешных входов или одновременно как неудачных, так и успешных.

Configuring access auditing (1)
Настройка аудита доступа

6. Установите флажок Enable C2 audit tracing в разделе Options.

7. Если необходимо включить аудит соответствия Common Criteria, установите флажок Enable Common Criteria compliance.

Соответствие Common Criteria (CC) – это гибкий стандарт, который может быть реализован на разных уровнях гарантии оценки (Evaluation Assurance Levels, EAL), от 1 до 7. Высшие уровни EAL предполагают более требовательный процесс проверки. При включении функции Enable Common Criteria compliance в SQL Server активируется CC Compliance EAL1. Существует возможность вручную конфигурировать SQL Server для уровня EAL4+.

Включение соответствия CC изменяет поведение SQL Server. Например, разрешения DENY на уровне таблицы будут иметь приоритет над разрешениями GRANT на уровне столбцов, а также будет производиться аудит как успешных, так и неудачных входов в систему. Кроме того, активируется защита остаточной информации (Residual Information Protection, RIP), которая перезаписывает выделенные области памяти определенной последовательностью битов перед тем, как они будут использованы новым ресурсом.

8. Щелкните OK.

9. В зависимости от выбранных параметров может появиться запрос на перезапуск SQL Server. Если это сообщение отображается, нажмите OK в окне предупреждения. Если соответствие CC было включено, выполните перезагрузку сервера. В противном случае снова щелкните правой кнопкой мыши экземпляр SQL Server в Object Explorer и выберите Restart в меню. В диалоговом окне предупреждения щелкните Yes, чтобы подтвердить перезапуск SQL Server.

Включение аудита SQL Server

Аудит SQL Server может быть включен вместо аудита C2. Также можно включить оба варианта одновременно. Объекты аудита SQL Server могут быть сконфигурированы для сбора событий на уровне сервера или уровне базы данных SQL Server.

Создание объекта аудита сервера

Ниже приведен порядок создания объекта аудита SQL Server на уровне сервера:

1. В левой панели Object Explorer откройте раздел Security.

2. Щелкните правой кнопкой мыши Audits и выберите New Audit… в меню. Это создает новый объект аудита SQL Server для аудита на уровне сервера.

3. В появившемся окне Create Audit задайте название параметрам аудита в поле Audit name.

4. Укажите, что происходит в случае ошибки аудита SQL Server, в поле On Audit Log Failure. Можно выбрать Continue, остановить работу сервера или прекратить выполнение операций базы данных, подлежащих аудиту. Если выбрать Fail operation, операции базы данных, к которым не выполняется аудит, продолжат выполняться.

Creating a server-level SQL Server audit object
Создание объекта аудита SQL Server на уровне сервера

5. В выпадающем меню Audit destination можно выбрать, куда именно записывать журнал аудита SQL Server: в файл, в журнал событий Windows Security или в журнал событий Application. Если выбран файл, необходимо указать путь к этому файлу.

Обратите внимание, что для записи в журнал событий Windows Security необходимо предоставить соответствующие разрешения для SQL Server. Для облегчения конфигурации можно выбрать Application event log. Кроме того, как часть конфигурации объекта аудита можно задать фильтр, который обеспечит получение более узкого набора результатов. Фильтры должны быть записаны на Transact-SQL (T-SQL).

6. Щелкните OK.

7. Созданная конфигурация аудита будет отображена в Object Explorer в разделе Audits. Щелкните правой кнопкой мыши новую конфигурацию аудита и выберите Enable Audit в меню.

8. В открывшемся диалоговом окне Enable Audit нажмите Close.

Создание объекта аудита на уровне базы данных

Чтобы создать объект аудита SQL Server для аудита на уровне базы данных, порядок действий несколько отличается, и перед этим необходимо создать по меньшей мере один объект аудита на уровне сервера.

1. Разверните узел Databases в Object Explorer и разверните базу данных, для которой необходимо настроить аудит.

2. Разверните папку Security, щелкните правой кнопкой мыши Database Audit Specifications и выберите в меню New Database Audit Specification…

Creating a server audit specification for database-level auditing
Создание серверной спецификации аудита для аудита на уровне базы данных

3. В открывшемся окне Properties в разделе Actions нужно использовать выпадающее меню для настройки одного или нескольких типов действий аудита, выбирая нужные для аудита операторы (например, DELETE или INSERT), класс объекта, над которым выполняется действие и т.д.

4. После завершения настройки нажимается OK, а затем объект аудита активируется путем нажатия на него правой кнопкой мыши и выбора Enable Database Audit Specification.

Просмотр журналов аудита SQL Server

Журналы C2 Audit и SQL Server Audit хранятся в каталоге данных для конкретного экземпляра SQL Server. Максимальный размер одного файла составляет 200 МБ, по достижении этого значения автоматически создается новый файл.

Встроенным инструментом, рекомендованный для просмотра журналов аудита SQL Server, является Log File Viewer. Для его использования выполняются следующие шаги:

1. В среде SQL Server Management Studio в палитре Object Explorer развертывается раздел Security.

2. На нужном объекте аудита вызывается контекстное меню и выбирается опция View Audit Logs.

3. В открывшемся окне Log File Viewer записи журнала появляются в правой части интерфейса. Независимо от того, где хранятся данные (в файле или в Windows Event Log), Log File Viewer будет отображать записи.

4. В верхней части Log File Viewer доступна функция Filter, позволяющая выбрать, какие записи журнала показывать. Поскольку журналы SQL Server хранятся в формате .sqlaudit, который не читается непосредственно, Log File Explorer позволяет использовать Export, чтобы сохранить выбранные записи в .log-файле с запятыми как разделителями полей.

Reviewing SQL Server audit logging in the Log File Viewer
Просмотр журнала аудита SQL Server в Log File Viewer

Подписаться на новости