Як увімкнути аудит 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

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