Безпека в SQL Server 2008

Автор: Рік Біхем Іcточнік: TechNet Magazine


Удосконалення в області шифрування


У системі шифрування були зроблені два серйозні зміни. По-перше, ключі тепер можуть зберігатися на зовнішніх апаратних модулях сторонніх розробників. По-друге, дані, що зберігаються в SQL Server, Можна шифрувати з використанням методу, зрозумілого для додатків, що підключаються до бази даних. Це означає, що адміністратор може зашифрувати весь вміст бази даних, не змінюючи при цьому код програми.


Перше нововведення стало можливим завдяки функції розширеного керування ключами (EKM) – вона є в SQL Server 2008 Enterprise, Developer і Evaluation. EKM зареєструвати в SQL Server системи управління корпоративними ключами і апаратні модулі безпеки (HSM), розроблені сторонніми компаніями. Після реєстрації пристрою користувач може зберігати ключі на цьому модулі.


Крім того, виробник модуля може додати додаткові можливості шифрування (наприклад, задати правила старіння і заміни ключів). У деяких конфігураціях це дозволяє закрити доступ до даних тим адміністраторам, які не є членами групи адміністраторів системи. Криптографічні інструкції T-SQL виконують шифрування та розшифрування даних із застосуванням ключів, що зберігаються на зовнішньому EKM-пристрої.


Ще одна нова функція, прозоре шифрування, дозволяє шифрувати файли баз даних, не змінюючи код додатків. Шифрування і розшифрування вхідних і вихідних даних і журналів відбувається в режимі реального часу. При цьому використовується ключ шифрування баз даних (DEK), що зберігається в завантажувальному запису бази даних: так його можна використовувати при відновленні. Ключ DEK захищений сертифікатом, який постійно знаходиться в основній базі даних сервера. Схема на рис. 1 демонструє архітектуру, що забезпечує прозоре шифрування даних.

Рис 1Архітектура прозорого шифрування даних


Все описане допомагає захистити статичні дані. Існують різні способи підвищення безпеки баз даних: шифрування, настройка брандмауера на серверах баз даних. Але справа в тому, що фізичний носій, на якому зберігаються бази даних (у тому числі і стрічки з резервними копіями) піддаються небезпеки ще й іншого характеру. Зловмисник може вкрасти сам носій, а це, можливо, дозволить йому отримати доступ до інформації, наявної на ньому.


Використовуючи прозоре шифрування, можна зашифрувати конфіденційні дані і захистити ключі за допомогою сертифіката. Тим самим буде забезпечено дотримання багатьох законодавчих вимог і галузевих рекомендацій по забезпеченню безпеки даних.


Функції прозорого шифрування даних дозволяють застосовувати алгоритми AES і 3DES. Шифрування файлу бази даних виконується на рівні сторінки, причому сторінка шифрується перед записом на диск, а потім розшифровується під час зчитування в пам'ять. Для шифрування резервних файлів теж використовується ключ шифрування бази даних.


Для розшифровки бази даних необхідно мати доступ до сертифіката або асиметричному ключу, використаному при шифруванні. У протилежному випадку базу даних відновити не вдасться. Ключі слід зберігати, поки резервна копія не перестане використовуватися.


У SQL Server 2008 з'явилося чимало нових функцій і можливостей, що підвищують загальний рівень безпеки баз даних. Серед них основні функції, шифрування та перевірки автентичності, а також нова система аудиту, що дозволяє складати звіти по діям користувачів і забезпечувати дотримання всіх норм і вимог.

У даній статті ми коротко розглянемо найважливіші зміни, які відбулися в системі безпеки SQL Server з виходом версії 2008. Перше, на що звертаєш увагу, – це відсутність кошти "Налаштування контактної зони ", яке було присутнє в SQL Server 2005. Параметри протоколу, які раніше були доступні в цьому засобі, тепер перенесені в диспетчер конфігурацій. Увімкнення та вимкнення функцій тепер виконується через нове середовище управління на основі політик, реалізовану в SQL Server 2008.


Удосконалення в області перевірки автентичності


Kerberos – це мережевий протокол, що надає високонадійне засіб взаємної перевірки автентичності між клієнтом і сервером (або двома учасниками системи безпеки). Kerberos допомагає знизити число вразливостей в разі атак з приманкою і спроб перехоплення "посередником". Цей протокол має відношення до перевірки автентичності Windows ® NTLM, але він надійніший і продуктивніше.


Щоб використовувати Kerberos для взаємної перевірки автентичності, необхідно, щоб примірник SPN, що відноситься до SQL Server, був зареєстрований в Active Directory ®, а драйвер клієнта при підключенні повинен надати зареєстрований SPN. У SQL Server 2008 перевірка достовірності Kerberos була поширена на всі мережеві протоколи, включаючи TCP, іменовані канали, загальну пам'ять та адаптери VIA. За замовчуванням драйвер клієнта виводить потрібний SPN з екземпляра SQL Server, до якого він підключається. SPN можна також вказати явним чином в параметрах рядка підключення: це підвищує рівень безпеки і контролю, спрощує пошук і усунення неполадок.


Служби IIS перестали використовуватися для доступу до веб-служб ASP.NET, диспетчеру звітів і серверу звітів. У SQL Server 2008 служби звітів обробляють всі запити на перевірку дійсності, проводячи їх через нову спеціальну підсистему, що підтримує як перевірку автентичності Windows, так і нестандартні варіанти перевірки.


Служби звітів тепер розміщують Microsoft ®. NET Framework і технології ASP.NET, вбудовані в середу CLR SQL Server, крім того, вони використовують можливості HTTP.SYS, пропоновані в операційній системі. Сервер звітів включає в себе Прослуховувач HTTP, який приймає запити, спрямовані на URL-адресу і порт, зазначені під час настройки сервера. Резервуванням і реєстрацією URL тепер управляє безпосередньо сервер звітів (через HTTP.SYS).


Аудит системи безпеки


Підсистема аудиту – це нова функція SQL Server, що дозволяє перевіряти події ядра бази даних і налаштовувати параметри перевірки. Для запису даних аудиту використовуються розширені події. У підсистемі є засоби і процеси, які необхідні для того, щоб проводити, зберігати і проглядати конфігурації аудиту для різних серверів і об'єктів баз даних.


Підсистема аудиту SQL Server працює швидше, ніж функція трасування, а середовище SQL Server Management Studio спрощує створення і контроль журналів аудиту. Тепер можна проводити більш докладні перевірки: відслідковувати інструкції SELECT, INSERT, UPDATE, DELETE, REFERENCES і EXECUTE для окремих користувачів. Більш того, підсистема аудиту польностью підтримує інструкції T-SQL CREATE SERVER AUDIT і CREATE SERVER AUDIT SPECIFICATION, а також пов'язані з ними інструкції ALTER і DROP.


Для налаштування аудиту необхідно його створити і зазначити місце запису подій. Аудит може зберігатися в журналі безпеки Windows, в журналі додатків Windows або в будь-якому файлі. Ви привласнюєте аудиту ім'я і налаштовуєте його характеристики, зокрема, шлях до файлу аудиту та його максимальний розмір. Також можна налаштувати аудит так, щоб у разі збою перевірки робота SQL Server завершувалася. Якщо події аудиту потрібно записувати в кілька журналів, створюється кілька аудитів.


Наступний етап – створення специфікацій аудиту. У специфікації аудиту сервера збирається інформація про екземпляр SQL Server; в неї включаються об'єкти, пов'язані з сервера: дані облікових записів, членство в серверних ролях. Там же є інформація про базу даних, контрольована в основній базі даних, наприклад відомості про права доступу до бази. При створенні специфікації аудиту ви вказуєте, в якій аудит будуть надходити спостережувані події. Ви можете створити декілька аудитів сервера і кілька специфікацій аудиту, але аудит може мати тільки одну активну специфікацію в кожен конкретний момент часу.


Також можна створити специфікації аудиту бази даних: вони будуть використовуватися для відстеження подій за окремою базі даних. У аудит можна додати кілька специфікацій аудиту баз даних, але в кожному аудиті сервера активною може бути тільки одна специфікація аудиту баз даних.


Події підсистеми аудиту SQL Server, використовувані в специфікаціях аудиту сервера, об'єднуються в колекції пов'язаних подій. Вони надаються у вигляді груп дій аудиту. Якщо таку групу додати в специфікацію аудиту, можна буде відстежувати події, включені в групу. Наприклад, існує група дій аудиту DBCC_GROUP, що надає доступ до команд DBCC. Окремо ж команди DBCC включатися в аудит не можуть.


Всього існує 35 груп дій аудиту сервера, причому деякі з них тісно пов'язані один з одним. Наприклад, групи SUCCESSFUL_LOGIN_GROUP, FAILED_LOGIN_GROUP і LOGOUT_GROUP. Також є тип дій аудиту AUDIT_ CHANGE_GROUP, який можна використовувати для перевірки самого процесу аудиту.


У специфікаціях аудиту баз даних можна також вказувати групи подій аудиту, зібрані в групи дій аудиту на рівні баз даних. Крім груп дій аудиту, специфікації аудиту баз даних можуть включати в себе окремі події аудиту, що дозволяють перевіряти інструкції, що відповідають за роботу з даними. Ці події можна налаштувати таким чином, щоб відслідковувати всю базу даних або тільки певні об'єкти. Дія SELECT, зокрема, може використовуватися для перевірки запитів SELECT, звернених як до окремої таблиці, так і до всієї схемою в цілому. Крім того, події такого роду можна налаштувати так, щоб відстежувати дії по окремим користувачам або ролям, наприклад db_writers.


Скажімо, дія SELECT можна використовувати для перевірки запитів SELECT, звернених до окремої таблиці, джерелом яких є користувач Mary, або роль FINANCE_DEPT, або роль бази даних Public. Не можна не відзначити, що все це надає широкі можливості контролю і дає великий запас гнучкості при настройці аудиту.


Звіти про залежності


У модулі складання звітів про залежності з'явилося нове подання каталогів і нові системні функції. Якщо використовувати sys.sql_expression_dependencies, sys.dm_sql_referencing_entities і sys.dm_sql_referenced_entities, можна створювати звіти по залежностях між серверами, залежностям між базами даних і SQL-залежностями в межах бази даних як для прив'язаних до схеми об'єктів, так і для неприв'язаним.


Нові ролі баз даних


У ролі баз даних, що включені в базу даних msdb, було внесено низку змін. Роль db_dtsadmin була перейменована в db_ssisadmin, db_dtsltduser – у db_ssisltduser, db_dtsoperator – у db_ssisoperator. Для підтримки зворотної сумісності старі ролі при оновленні серверів додаються як члени нових ролей.


Крім цього, були додані нові ролі для підтримки нових функцій SQL Server 2008. Зокрема, з'явилися нові ролі для груп серверів (ServerGroupAdministratorRole і ServerGroupReaderRole), управління на основі політик (PolicyAdministratorRole), збирача даних (dc_admin, dc_operator, and dc_proxy). У базі даних сховища даних управління також з'явилися нові ролі для складальника даних (mdw_admin, mdw_writer, and mdw_reader).


Безпека файлових потоків


У SQL Server з'явилася підтримка сховища файлових потоків, що дозволяє додаткам SQL Server зберігати неструктуровані дані, наприклад файли і зображення, у файловій системі. Це означає, що клієнтські додатки можуть скористатися потоковими API, причому узгодженість транзакцій між структурованими і відповідними неструктурованими даними буде підтримуватися як і раніше.


Дані файлових потоків мають зберігатися у файлових групах типу FILESTREAM – це спеціальні файлові групи, що містять не самі файли, а системні каталоги. Ці каталоги, так звані контейнери даних, формують інтерфейс між сховищем ядра бази даних і сховищем файлової системи.


Що стосується безпеки, то дані файлових потоків захищаються точно так само, як і будь-які інші дані: на рівні таблиць чи стовпців надаються дозволи. Єдина обліковий запис, що отримує дозволу NTFS для контейнера файлових потоків, – це профіль, під якою працює обліковий запис служби SQL Server. При відкритті бази даних SQL Server обмежує доступ до контейнерів даних файлових потоків. Виключення робиться тільки в тому випадку, якщо доступ здійснюється за допомогою транзакцій T-SQL і OpenSqlFilestream API.


Управління на основі політик


Управління на основі політик – це нова система управління SQL Server, що з'явилася в SQL Server 2008. Вона дозволяє створювати політики для тестування і створення звітів з різних аспектів SQL Server. Політики можна застосовувати до окремих баз даних, окремим екземплярам SQL Server або до всіх керованих екземплярів SQL Servers.


Управління на основі політик дозволяє тестувати параметри конфігурації SQL Server, а також багато параметрів системи безпеки. Для деяких параметрів системи безпеки можна створити політики, які будуть виявляти сервери баз даних, які не відповідають заданим вимогам, і намагатися виправити їх.


У SQL Server 2008 деякі не найважливіші функції відключені за умовчанням для скорочення можливостей атаки. Управління на основі політик дозволяє вибірково включати і відключати функції. Після цього можна за розкладом перевіряти конфігурацію і отримувати повідомлення в разі невідповідності параметрів конфігурації встановленої політиці.


Управління на базі політик об'єднує пов'язані властивості і надає їх у користування у вигляді компонентів, званих аспектами. Наприклад, аспект під назвою Surface Area Configuration включає такі властивості як Ad Hoc Remote Queries, CLR Integration, Database Mail, OLE Automation, Remote DAC, SQL Mail, Web Assistant і xp_cmdshell. Можна створити політику, яка буде включати властивість CLR Integration, а всі інші – відключати. У політиці можуть задаватися складні умови, наприклад можна відключити властивість Database Mail на всіх примірниках SQL Server, Крім Customer_Response.


Після створення політики можна її перевірити на свех серверах і створити звіт про те, які сервери не відповідають вимогам. Щоб узгодити параметри серверів з вимогами політики, потрібно натиснути кнопку "Налаштувати". Політику слід перевіряти регулярно, щоб контролювати стан серверів. Аспекти Surface Area Configuration доступні для ядра бази даних, служб аналізу і служб звітів.


Зверніть увагу, що управління на підставі політик не призначено для впровадження засобів підвищення безпеки. У більшості випадків користувач, маючи достатні привілеї, може використовувати інструкції, що суперечать політиці або обходити її і застосовувати параметри дій, що йдуть врозріз із встановленою політикою безпеки. Функцію управління на основі політик, реалізовану в SQL Server 2008, Слід розглядати лише як допоміжний засіб для спостереження за параметрами системи безпеки SQL Server.


Різні аспекти різняться здатністю примусово змінювати параметри. Це залежить від того, чи можуть пов'язані інструкції DDL працювати в режимі, відмінному від режиму автофіксації. У деяких випадках аспект налаштовує параметри примірника ядра бази даних, але адміністратор після цього може повернути колишні значення. Деякі аспекти можуть викликатися серверним тригером. У такому випадку користувачі з низькими привілеями не зможуть змінити параметри, та й імовірність випадкової зміни параметрів адміністратором знижується. Тут адміністратору доводиться тимчасово відключати політику, щоб змінити значення. Інша група аспектів тільки створює звіти про стан властивості, але змінювати його не може. Так працює політика, яка перевіряє довжину симетричного і асімметічного ключа (див. рис. 2).

Рис 2Аспекти для асиметричних ключів


Аспекти існують для більшості типів об'єктів баз даних, і багато з них беруть участь у забезпеченні безпеки. Наприклад, аспект для входу в систему може визначити, чи застосовується політика використання паролів при вході. Аспект для збережених процедур може перевіряти, чи всі процедури шифруються. Є аспекти, які перевіряють властивості користувачів, схем, постачальників криптографії, відповідність загальним критеріям, виконують аудит C2.


Windows Server 2008


SQL Server 2008 повністю протестований на стабільність роботи в Windows Server ® 2008, який поставляється з включеним брандмауером. Наступним кроком було б непогано навчитися настроювати параметри брандмауера. Крім того, Windows Server 2008 забезпечує управління доступом користувачів, так само, як і Windows Vista ®. Це призводить до обмеження привілеїв, одержуваних адміністратором автоматично. Ці функції впливають на роботу всіх версій SQL Server.


На закінчення


Система безпеки в SQL Server постійно вдосконалюється. З'являються нові можливості шифрування та перевірки справжності. Нова підсистема аудиту та управління на підставі політик, реалізоване в SQL Server 2008, дають засоби, що дозволяють контролювати дотримання встановлених норм безпеки.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*