Автор: Пользователь скрыл имя, 17 Марта 2013 в 20:02, курсовая работа
Окрім крадіжки інформації є можливість її пошкодження внаслідок помилки оператора або неправильно написаного додатка. Наслідки таких дій можуть спричинити серйозні фінансові втрати. Наприклад, якщо дані про клієнтів будуть втрачені, доведеться наново збирати потрібну інформацію. А це втрата часу та фінансів.
1. ПРАВИЛА БЕЗПЕКИ 3
2. АРХІТЕКТУРА СИСТЕМИ БЕЗПЕКИ SQL SERVER 2000 6
2.1. РЕЖИМИ АУТЕНТИФІКАЦІЇ 7
2.2. КОМПОНЕНТИ СТРУКТУРИ БЕЗПЕКИ 10
2.3. РОЛІ СЕРВЕРА 15
2.4. РОЛІ БАЗ ДАНИХ 16
2.5. РОЛІ ПРОГРАМИ 19
2.6. ЗАХИСТ ДАНИХ 21
Шифрування даних 21
3. ОБМЕЖЕННЯ ДОСТУПУ ДО ФАЙЛІВ SQL SERVER 22
3.1. ПРАВА ДОСТУПУ 23
3.2. ПРАВА НА ДОСТУП ДО ОБ'ЄКТІВ БАЗ ДАНИХ 24
3.3. ЗАБОРОНА ДОСТУПУ 28
4. ПІДВИЩЕННЯ РІВНЯ ЗАХИСТУ MICROSOFT SQL SERVER 2000 30
4.1. ЗАХИСТ МЕРЕЖЕВОГО ОБМІНУ 31
4.2. ЗАХИСТ ОПЕРАЦІЙНОЇ СИСТЕМИ 35
4.3. ЗАХИСТ КОМПОНЕНТІВ БАЗИ ДАНИХ 39
4.4. АУДИТ СЕРВЕРА SQL SERVER 41
5. СТВОРЕННЯ ГНУЧКОЇ СИСТЕМИ БЕЗПЕКИ MS SQL SERVER 7.0/2000 43
5.1. ВИБІР СХЕМИ АУТЕНТИФІКАЦІЇ 43
5.2. WEB-АУТЕНТИФІКАЦИЯ 45
5.3. ЗБІР КОРИСТУВАЧІВ В ГРУПИ 47
5.4. НАДАННЯ ДОСТУПУ ДО БАЗ ДАНИХ 49
5.5. ПРИЗНАЧЕННЯ ДОЗВОЛІВ 50
5.6. ПРОСТА СИСТЕМА БЕЗПЕКИ 51
ВИСНОВОК 52
У табл. 3 представлений приклад таблиці фільтрації трафіку за допомогою IPSec.
Таблиця 3
Правило 1 вирішує взаємодію із службою Server Resolution Service, необхідною для визначення встановлених екземплярів сервера. Якщо використовується описаний вище метод настройки клієнтських бібліотек, це правило можна видалити.
У правилі 2 вирішується взаємодія всіх користувачів з портом 1433, на якому працює загальнодоступний екземпляр сервера SQL.
Правило 3 вимагає встановлення з портом 2433 захищені з'єднання. Цей порт використовується екземпляром сервера, який є основою для Web-програми. З'єднання з ним можливо тільки з комп'ютерів, що успішно пройшли аутентифікацію IPSec і наділених правом Access this computer from network. В даному випадку це Web-сервер і робочі станції адміністраторів.
Правила 4,5 і 6 вирішують взаємодію з сервером по протоколах NetBIOS/CIFS. Дані протоколи використовуються мережевою бібліотекою Named Pipes. Якщо застосовується аутентифікація Kerberos або NTLMv2, ці правила можна виключити.
Правило 7 вирішує захищену взаємодію по протоколу RDP, використовуваному сервером терміналів.
Правило 8 дає можливість взаємодії з контролером домена для аутентифікації і застосування групових політик.
Шифрування трафіку. Для шифрування трафіку сервера SQL можна задіювати протоколи IPSec і SSL v 3.0. У врізанні “IPSec або SSL v 3.0?” приводиться порівняння даних протоколів.
Для використання SSL, згідно рекомендаціям статті бази знань Microsoft KB276553, необхідно отримати сертифікат X.509v3, виданий для аутентифікації сервера на його доменне ім'я, і встановити його в локальне сховище комп'ютера. Після цього потрібно включити шифрування трафіку в мережевих утилітах сервера і перевірити з'єднання з боку клієнта.
Рядок настройки з'єднання ODBC в цьому випадку виглядатиме таким чином:
Driver=SQLServer;Server=
Network=DBNETLIB.DLL;Encrypt=
Можливе використання шифрування не на всіх клієнтських комп'ютерах. Для цього настройка Force Protocol Encryption включається не на сервері SQL, а в настройках клієнтської бібліотеки.
При підвищенні
рівня захисту базової
Настройка системних служб і прав користувачів. Microsoft SQL Server встановлюється і функціонує як декілька системних служб. Для кожного екземпляра бази даних створюється служба з ім'ям, утвореним по схемі MSSQL$<имя екземпляра>. Так само створюються екземпляри SQL Server Agent (SQLAgent$< ім'я екземпляра>), що відповідають за виконання періодичних завдань, таких як автоматична архівація, підтримка бази даних і так далі.
Крім того, для сервера в цілому створюються служби Microsoft Search (відповідає за індексування і пошук документів в тому випадку, якщо включена підтримка повнотекстового пошуку) і DTS (служба, що відповідає за підтримку розподілених транзакцій).
Служба MSSQL може
працювати в контексті
Рекомендується запускати служби від імені облікового запису (локальною або доменною), що має обмежені привілеї. Локальний обліковий запис доцільно використовувати, якщо в завдання сервера SQL Server не входить мережева взаємодія з іншими службами. У зворотному випадку застосовується доменний обліковий запис.
На сервері бажано відключити служби, які для роботи SQL Server не потрібні. Їх список приведений в табл. 4.
Обліковому запису, від імені якого працюють служби сервера, привласнюються наступні призначені для користувача права і привілеї:
Act as part of operating system
Lock pages in memory
Bypass traverse checking
Log on as service
Increase quotas
Replace а process level token
Deny logon locally
Deny log on through Terminal Services
Заборона локальній реєстрації в системі і з'єднання за допомогою сервера терміналу обмежують можливості зловмисника у разі компрометації системи. Також необхідно видалити групу Domain Users у користувачів, що мають право Logon Locally.
Бажано встановлювати SQL Server на розділ, відмінний від розділу з операційною системою. Це зменшить вплив сервера бази даних на операційну систему і полегшить настройку ряду параметрів безпеки.
Настройка дозволів файлової системи і реєстру. При настройці дозволів файлової системи із списків контролю доступу сервера необхідно видалити обліковий запис Everyone. Замість неї можна використовувати групу Users або Authenticated Users. Для нормального функціонування сервера необхідно встановити дозволу на каталоги файлової системи і розділи реєстру, описані в табл. 5. Запис в інші каталоги системи, включаючи кореневі розділи, повинен бути доступний тільки для адміністраторів і облікового запису System.
Таблиця 5
|
Для обмеження можливостей зловмисника у разі компрометації сервера баз даних необхідно або видалити з системи, або встановити дозвіл SQLServer — Deny Full Access на системні утиліти, такі як: explorer.exe, regedit.exe, poledit.exe, taskman.exe, at.exe, cacls.exe, cmd.exe, finger.exe, ftp.exe, nbstat.exe, net.exe, net1.exe, netsh.exe, rcp.exe, regedt32.exe, regini.exe, regsvr32.exe, rexec.exe, rsh.exe, runas.exe, runonce.exe, svrmgr.exe, sysedit.exe, telnet.exe, tftp.exe, tracert.exe, usrmgr.exe, wscript.exe, xcopy.exe
Шифрування баз даних. Для захисту файлів бази даних на фізичному рівні має сенс зашифрувати їх. У операційній системі Windows 2000/2003 передбачена можливість шифрування бази даних за допомогою шифруючої файлової системи. Encrypting File System — надбудова над NTFS, що дозволяє в прозорому для користувача режимі шифрувати і розшифровувати файли на жорсткому диску комп'ютера.
Для використання цієї можливості необхідно:
Після виконання даної операції файли будуть зашифровані. Коли до цих даних спробує дістати доступ інша людина, він отримає повідомлення про неможливість доступу.
Шифрування за допомогою Encrypting File System є ефективним засобом захисту даних, але тільки за умови дотримання всіх рекомендацій по її настройці. Зокрема, необхідно видаляти з системи секретний ключ агента відновлення. Також бажано видалити всі локальні облікові записи з бази користувачів сервера SQL Server (особливо це стосується локального адміністратора), оскільки при фізичному доступі паролі цих облікових записів легко можуть перепризначувати.
Для підвищення
рівня захисту можна
Першим етапом настройки безпеки SQL Server як програми є вибір використовуваної моделі аутентифікації. Рекомендується застосовувати метод Windows викладеними вище проблемами методу SQL Server (пересилка пароля в закодованому вигляді).
Потім необхідно
вирішити, чи будуть члени групи
локальних адміністраторів мати
доступ до сервера бази даних з
привілеями системних адміністраторів.
Автоматично створюваний
З обліковим записом локального адміністратора зв'язані і інші проблеми, дізнатися про яких докладніше можна із статті “Локальная угроза” опублікованою в Windows & .NET Magazine/RE №3 за 2003 рік. Перед видаленням облікового запису Bultin/Administrators необхідно створити серверний обліковий запис на основі доменної групи і привласнити їй роль System Administrator.
Наступним етапом є видалення стандартних баз даних, що входять в дистрибутив як приклади. До них відносяться бази даних NorthWind і pubs. Дані бази містять ряд помилок, мають слабкі дозволи і часто використовуються зловмисниками для атак.
Потім необхідно заборонити виконання запитів типу AdHoc. Такі запити (OPENROWSET, OPENQUERY і OPENDATASOURCE) дозволяють серверу встановлювати з'єднання із зовнішнім сервером і зберігати на нім свої дані. Вони дуже рідко використовуються в програмах, але можуть бути застосовані зловмисником для видаленого отримання інформації з баз даних сервера. Прикладом застосування подібної техніки є програма Data Thief, що використовує метод впровадження SQL-кода (SQL Injection) для виконання запитів AdHoc.
Для відключення можливості виконання запитів AdHoc необхідно встановити значення параметра системного реєстру DisallowAdhocAccess рівним 1 для кожної мережевої бібліотеки сервера. Нижче перераховані розділи реєстру, в яких розташовуються настройки мережевих бібліотек:
HKLM\Software\Microsoft\
Розширеними процедурами, що зберігаються, є програми на мовах низького рівня, що мають доступ до ресурсів операційної системи в контексті безпеки того облікового запису, від імені якого запущена служба SQL Server.
Зазвичай такі процедури розширюють функціональність бази даних, додаючи в неї, наприклад, можливість виконувати довільні команди операційної системи, можливість читання реєстру, відправки поштових повідомлень і так далі. Трапляється, що подібні процедури містять помилки (наприклад, впровадження коди в sp_msdropretry або переповнюванні буфера в ms_makewebtask), що може бути використане для підвищення привілеїв.
За умовчанням ролі public дано дозвіл на виконання деяких потенційно небезпечних процедур, що зберігаються. Необхідно встановити строгіші дозволи на виконання цих процедур і відстежувати їх модифікацію.
Список розширених
процедур, що зберігаються, доступ до яких
необхідно обмежувати, можна узяти
з рекомендацій по настройці безпеки
сервера SQL, наприклад, з рекомендацій
центру SNAC NSA (http://www.compdoc.ru/go.php?
Виконання описаних
настройок можна автоматизувати
за допомогою сценаріїв на мові T-SQL.
Приклад подібного сценарію наводиться
на сервері http://www.compdoc.ru/
Існує декілька різних методів настройки аудиту в базах даних SQL Server. Кращим рішенням є використання комбінацій даних методів залежно від вирішуваних завдань. За умовчанням аудит на сервері не активізований.
Аудит аутентифікації
сервера дозволяє відстежувати спроби
аутентифікації на сервері SQL. Включити його можна
через Enterprise Manager або шляхом модифікації
параметра реєстру HKLM\Software\Microsoft\
Нульове значення параметра означає відключення аудиту, 1 — запис вдалих спроб аутентифікації, 2 — невдалих. При значенні параметра 3 включається аудит всіх спроб реєстрації.
Події зберігаються в журналі Application операційної системи. Додаткові настройки дозволяють зберігати події в журналі помилок SQL Server. Настройка даного типу аудиту припускає включення відстежування невдалих спроб аутентифікації (значення 2) з подальшим аналізом на предмет виявлення спроб несанкціонованого доступу або підбору паролів.
Інший тип аудиту відноситься до подій сервера баз даних. Настроювати і відстежувати їх можна за допомогою утиліти SQL Profiler.
Включення будь-яка з даних категорій подій аудиту приведе до збереження наступної інформації про події: