Сигурността в Microsoft SQL Server 2008 е подобрена спрямо 2005 и 2000 Джеймс Фостър
Сигурността на базите данни е от критично значение за защита на бизнеса. Зависимостта на организациите от технологиите за бази данни никога не е била по-голяма, тъй като всичко днес се съхранява в тях.
Microsoft SQL Server 2008, пуснат в началото на месец август на 2008 г., се появи сравнително по-бързо след последната версия от 2005, която наследи Microsoft SQL Server 2000. Това бе наложено от търсенето на все повече производителност, функционалност и сигурност. Освен това Майкрософт е изправена пред конкуренция от три страни – традиционните технологии за управление на бази данни, платформите за уеб приложения, задействани през уеб, и системите с отворения код.
Oracle пуска почти всяка година нови версии на базата си данни, проектирани да отговорят на различните нужди – за малки и средни предприятия, корпоративни, онлайн или за правителствата. Поглъщането от Sun Microsystems на MySQL роди нов конкурент на пазара на корпоративните бази данни.
Нов момент в технологиите на базите данни са изгряващите уеб компании, които развиват собствени платформи, използвани като бази данни. На пазара на разпределени платформи вече са Salesforce.com (Application Exchange), Amazon (EC2), Google (APIs) и Indian Zoho.
Добрата новина за Майкрософт общността е, че характеристиките на сигурността в SQL Server 2008 са добре обмислени и правилно внедрени. Най-важното подобрение са детайлните възможности за сигурност на данните – криптиране, управление на ключове и разширение на сигурността на метаданните. Издаването на разрешения на база роля не е ново, но сега предлага по-голяма гъвкавост и по-строг контрол върху много повече аспекти на базата данни.
Кой си ти?
Майкрософт удари в десетката със стратегията и реализацията си на подобрена сигурност в модулите за автентикация в SQL Server 2008. Във времето на „brute force“ уеб базирани атаки Майкрософт сметна, че е назрял моментът да преработи и поднови базовите характеристики, включени в SQL Server 2000, които не бяха достатъчно засегнати във версия 2005 (вж. екрана).
Макар че все още можете да използвате вашите LDAP и Active Directory инвестиции, за да се логнете в SQL Server по сигурен начин, интеграцията с не-Windows клиенти вече поддържа пълно криптиране по канала. По подразбиране, криптирането се осъществява чрез SQL генерирани SSL сертификати, което предотвратява почти всички атаки от типа „човек по средата“. Тази функционалност е вградена в SQL Server 2008 и не е необходимо да се добавя допълнително.
Пълното криптиране също защитава предаването на потребителски имена от SQL или на каквато и да е полезна информация. Това е значително подобрение спрямо хеширанетона потребителски имена и пароли, което се предоставяше по подразбиране във версия 2005.
Подобрила се е ситуацията и с Microsoft Group Policy. Сега можете да управлявате и налагате политики за създаване на пароли, като срок за смяна, заключване и други за всички бази данни в SQL Server 2008 чрез Group Policy Objects (GPO). При SQL Server 2005 можехте да управлявате компонентите чрез операционната система Windows, докато сега имате възможността да ги управлявате и през горния слой на SQL Server.
Тези свойства ще помогнат в борбата с атаките, но кодът за отблокиране на акаунт е изненадващо прост. Преди тази интеграция повечето администратори на бази данни не установяваха правилно политиките за паролите за известяване или дори блокиране на акаунт, въпреки че от години това е обичайна практика за системните администратори. Интеграцията на GPO Password Policy реши този проблем.
Автентикацията на уеб услуги или SOA е значително подобрена. SQL Server 2008 поддържа пет механизма за автентикация: Basic Auth, NTLM, Digest Auth, Kerberos и Integrated Authentication, която е просто комбинация от Kerberos и NTLM.
SQL Server 2008 също предлага възможност за подписване на софтуерни модули с цифров сертификат. Това се прилага при съхранените процедури, функции, тригери и уведомяване за събития, като така се опростява механизмът за управлението на достъпа до различните обекти. Накратко, вие можете да предоставяте права до отделните софтуерни модули и да позволявате на потребителите само достъп до показаните входни точки, но не и до лежащата отдолу схема. Подписването на софтуерни модули внася допълнителни предимства в защитата от неоторизирани промени.
Кой е привилегирован?
SQL Server 2008 въвежда множество нови, детайлни механизми за контрол, които гарантират точното създаване и прилагане на позволения с доста по-малко усилия в сравнение с пред- шественика си.
Публична роля. Повечето характеристики за достъп, базирани на роли, са подобни на SQL 2005, но е добавена още функционалност за уеб базирани приложения и защита от анонимни атаки в интернет. Майкрософт е създала нова публична роля. По подразбиране в SQL Server 2008 всеки потребител на базата данни автоматично се добавя към групата. (Ролите са подобни на групи, но може да имат асоциирани привилегии и права на достъп, базирани на логиката и функционалността на базата данни и приложенията.) Публичната роля е създадена, за да съдържа интернет потребителите и да ограничава всички типове права на достъп (вж. екрана).
Защита на метаданни. Метаданните на базата данни или таблиците могат да бъдат толкова важни, колкото и данните, които съхраняват. Например, ако мога да получа верификация, че таблица или определена колона съществува в базата данни, мога да заключа, че тя е добра цел за моите SQL атаки. SQL Server 2008 ви позволява да защитите метаданните чрез отговорите за грешка, базирани на присвоената роля на потребителя. Например ако всички интернет потребители са в публична роля, при опит за достъп до таблица, наречена SecretSauce, или дори за изтриването й без точните привилегии, ще се върне следният отговор:
Cannot drop the table „SecretSauce“, because it does not exist, or you do not have permission.
По-умни схеми. Важно е въвеждането на сигурност на база данни, базирана на схема, и на нейното съдържание. Преди 2008 г. SQL Server боравеше със схема чрез логическото й свързване с потребител. Когато създавате нов потребител в SQL 2000/2005, една схема се създава с него. След това потребителят унаследява позволенията така, сякаш са негови. Сега можете да създадете един потребител и след това да създадете или да му припишете определена схема. Потребителят поема собствеността върху една или няколко схеми и след това тази схема приписва права към елементите на базата данни. Този допълнителен слой на базата данни ви позволява да задавате по-раздробени позволения и контроли за потребителите и елементите на базата данни (вж. карето „За добро“).
Разделянето на обектите позволява на един потребител да създава и реализира няколко схеми за разлика от 2005, при който това изискваше няколко потребителски акаунта.
Securable обекти. SQL Server 2008 надгражда концепцията за Securable обекти, въведена в 2005. Регистрации и услуги, познати като принципали, могат да бъдат свързани към различни компоненти, което гарантира детайлни позволения за почти всеки обект в базата данни – от таблици до съхранени процедури и функции, сертификати и др. Тази детайлност, базирана на роли или позволения, е голямо подобрение за сигурността на базата данни, което допълва публичната роля много добре. От страна на сървъра се осигуряваконтрол, за да се ограничи комуникацията през мрежовите и други комуникационни канали.
Обезопасените обекти се свързват към принципалите през набор от позволения. Позволенията продължават да използват GRANT, DENY и REVOKE за дефиниране на позволения, но сега можете да отидете една стъпка по-нататък и да позволите на даден потребител да оторизират други принципали за достъп до контролирана информация.
Agent Proxies. SQL Server агент-проксита свързват самоличността на потребителите и приложените позволения към дадена задача. Това осигурява детайлен подход за предоставяне на позволения за всяка отделна стъпка в дадена задача. Това очевидно контрастира спредишните версии, които използваха единичен и често прекалено всеобхватен прокси акаунт. Всяка подсистема може да има различен брой асоциирани проксита. Има едно изключение: Transact-SQL подсистемата се изпълнява с позволения на собственика на модул.
Важно е да се отбележи, че когато се прави ъпгрейд към SQL Server 2008 от 2005, в новата версия ще бъде въведен единичен прокси акаунт. Трябва внимателно да се обмисли как да се раздели акаунтът и да се ограничат правилно позволенията.
Криптирането е ключово Добри новини: Можете да спрете да плащате за поддръжка на криптиращите продукти за бази данни, които сте закупили преди години, за да сте в съответствие с PCI. За съжаление всички тези нововъведения са само за Microsoft бази данни (няма възможности за интегриране на управление на MySQL или Oracle). SQL Server 2008 поддържа пълно криптиране на цяла база данни, отделни колони или базирано на роля. Управлението на ключове също е напълно обновено.
Задействането на различни форми на криптиране чрез SQL Server 2008 е вътрешна система за управлението на ключове. В миналото управлението на криптиращите ключове обикновено ставаше от външни продукти на други фирми, тъй като в SQL Server липсваше силно администриране на потребителите.
Разширеното управление на ключове (Extensible Key Management - EKM) защитава всичко – от съхранените вътре данни до съществуващите уеб услуги, както и самия достъп до базата данни. В допълнение EKM позволява на външни продукти да интегрират и регистрират устройства в SQL Server. „Устройствата“ могат да бъдат чисто софтуерни продукти или хардуерни, като хардуерно базирани SSL ускорители.
Тези устройства – като продуктите на nCipher и SafeNet, често прилагани от правителствени организации и големи компании за електронна търговия, използват сложни криптографски възможности, за да зададат политика за ротация на графиците за ключовете и срока им на годност. Ротирането на ключовете, автоматизирано чрез тези продукти, осигурява защита на данните с почти нулев шанс специфичен ключ да бъде компрометиран. SQL Server 2008 осигурява също поддръжка за хардуерни модули за сигурност (HSM).
Последната версия също въвежда Transparent Data Encryption (TDE). Първо плъгините бяха единствената възможност за криптиране. SQL Server 2005 въведе донякъде вътрешна поддръжка за криптиране на колони, а 2008 подобрявазначително ситуацията.
TDE е пълно, управляемо криптиране на база данни. To може да криптира цялата база данни, както и транзакционни и лог данни. TDE е лесна възможност за администраторите да предоставят защита на данните, без това да влияе на структурата на базата данни. При предишните версии разработчиците на приложения често създаваха клиентски код, за да криптират и декриптират данните. С TDЕ тези действия стават автоматично, когато данните се записват на диск и се четат от диск. Това премахва допълнителната работа за разработване и увеличава цялостната сигурност на данните.
Предимствата от гъвкавостта и поддръжката на TDE имат своята цена. Натоварването на процесора може да достигне двуцифрен процент при добре оптимизирана система.
Подготвянето на базата данни е просто. Командата за промяна трябва да се даде от администратора на бази данни подобно на следното:
alter database is_mag_db
set encryption on
go
SQL Server 2008 има функционалности за симетрично, несиметрично и базирано на сертификат криптиране, стандартно включено в пакета за всеки стандарт от криптографската библиотека на Майкрософт.
Лесни одити
Традиционно едно от най-големите предизвикателства за администраторите е одитирането на базата данни. Коренът на проблема се крие в целта на базата данни. Обработването и съхранението на големи количества данни за контролирано приложение или специални цели изисква опитен инженер. Въпросът е как валидирате, че данните се използват по предназначението им, а не със злонамерена цел.
За да извърши одит на базата данни, в предишните версии администраторът трябваше да установи много тригери и аларми в различни точки от данни за регистриране и по-късно да анализира резултатите, за да определи нередностите. SQL Server 2008 опростява този процес. Одиторът или администраторът трябва да определи точните данни за одит (например действие на потребител, елемент на данни, потребител или роля) и след това да създаде спецификации за одит на сървъра или базата данни на сървъра. Оттам събитията могат да се наблюдават със стандартен Windows инструмент за наблюдение или регистриран инструмент в SQL Server 2008Management Studio.
Пълната конфигурация на характеристиките за одит и регистриране би отнела няколко дни, обаче гъвкавостта ще ви позволи да интегрирате детайлен и разбираем запис в решения на други фирми.