Данните са критичен актив на всяка организация, а лошо защитените бази данни твърде често са виновни за пробивите в сигурността. Тази статия описва най-добрите практики за сигурност на SQL сървъра, както и основни съображения за сигурност за защита на вашите бази данни от злонамерени атаки.
Сигурността на данните се състои от три основни стълба – поверителност, цялост и достъпност (CIA) и се занимава със специфични процеси за защита на данните от умишлен и случаен достъп. Нека да разбием различните области и стъпки, които трябва да предприемем, когато подходим към сигурността на SQL Server, една от най-популярните релационни бази данни, използвани днес.
Най-добри практики за сигурност на SQL Server
1. Осигурете физическата сигурност на вашия SQL сървър
Когато става въпрос за сигурност на SQL Server, физическата сигурност не може да бъде пренебрегната. Физическата сигурност се отнася до ограничаване на неоторизиран достъп до центрове за данни или други физически сървърни компоненти. Например, можете да приложите заключена стая с ограничен достъп, като използвате смарт карта, пръстов отпечатък или лицево разпознаване. Можете също да конфигурирате ограничен мрежов сегмент за SQL Server.
Центровете за данни съдържат инфраструктура на организацията, като рутери, комутатори, сървъри, защитни стени и устройства за съхранение. Физическата сигурност се занимава със защитата на хардуера, софтуера и мрежата от неоторизиран достъп или природни бедствия. Може да включва следните области:
- Осигуряване на достъпа до помещенията и оборудването само за оторизирани лица
- Поддържане на системи за контрол на достъп
- 24x7x365 бдителност с помощта на охрана на място или наблюдение за видеонаблюдение
- Непрекъсваемо захранване (UPS)
- Да има пожароизвестителна система и аспирационна система за откриване на дим
- Има активен панел за детектор за изтичане на вода
- Системи за отблъскване на гризачи
- Системи за пожарогасене
- Контролиране и наблюдение на температурата и влажността
- Периодична поддръжка на хардуера
2. Защитете вашата операционна система
SQL Server е инсталиран върху съществуваща операционна система като Windows или Linux. Следователно сигурността на операционната система играе жизненоважна роля в сигурността на SQL Server. По-долу са дадени някои препоръки за защита на вашата операционна система:
- Прилагайте редовни корекции за защита на операционната система и сервизни пакети
- Дефинирайте политика за корекции на операционната система, която прилага корекции в по-ниски среди, последвани от производствени корекции
- Винаги използвайте стабилни и поддържани версии на операционната система на продукта. Например, Microsoft преустанови поддръжката за Windows Server 2003, поради което не трябва да го използвате за хостинг на база данни
- Не позволявайте достъп до интернет на вашите сървъри на база данни
- Трябва да деинсталирате, спрете или деактивирате неизползваните приложения и устройства, за да осигурите по-малко възможности за потенциални атаки
- Внедрете защитна стена с ограничен достъп до сървърите на бази данни, така че само сървърите на приложения, които изискват достъп до сървъра на базата данни, трябва да имат право да предават трафик от защитните стени
- Отворете конкретни портове в защитната стена. Например, по подразбиране SQL Server работи на порт 1433. Следователно можете да разрешите TCP порт 1433 и 3389 за отдалечен достъп до сървъра, ако на сървъра не се изпълнява друго приложение. По подобен начин услугата за анализ използва порт по подразбиране 2383 като стандартен порт. За пълен списък с портове в SQL Server вижте тази документация относно портовете, използвани от SQL Server. Можете също да използвате SSL или TLS сертификати, за да защитите достъпа до SQL Server. Тези сертификати могат да криптират трансфера на данни между SQL Server и клиентските приложения. Конфигурацията на SQL Server е необходима за самоподписан сертификат или сертификат, издаден от сертифициращия орган (CA). Можете да се обърнете към статията: Как да настроите и използвате криптирани връзки със SQL Server за повече подробности.
- Използвайте опцията Разширена защита за удостоверяване за да предотвратите атака на реле за удостоверяване, използвайки обвързването на услугата и обвързването на канала. За да активирате разширена защита, отидете на SQL Server Configuration Manager, разгънете екрана, щракнете с десния бутон върху Протоколи и след това отидете на Разширена, Разширена защита. Имайте предвид, че по подразбиране това е изключено.
По същия начин можете да наложите криптираната връзка към SQL Server, като използвате следната опция.
Можете също да се обърнете към разширена защита за повече подробности.
3. Намалете повърхността си
Повърхностната площ на SQL Server се състои от функции на двигателя на базата данни, които осигуряват допълнителна функционалност, като например изпращане на имейли. Тези компоненти може да са потенциална цел за получаване на достъп до SQL Server за злонамерени дейности. Следователно, трябва да деактивирате компонента и функциите в SQL Server, които не се използват, тъй като това ще ограничи шансовете за потенциална атака. Основните компоненти, които можете да прегледате и деактивирате, са изброени по-долу.
- Сканиране за стартиращи процеси
- Процедури за автоматизация на OLE
- CLR е активиран
- Кръстосано свързване на собствеността върху DB
- xp_cmdshell
- Поща за база данни XPs
Можете да се обърнете към тази статия за подробна информация относно опциите за конфигурация на сървъра.
4. Конфигурирайте сървър да слуша на друг порт
Microsoft SQL Server използва порта по подразбиране 1433 за всички връзки към базата данни. Това е често срещан риск за сигурността в много среди на бази данни, тъй като специалистите по бази данни обикновено не променят порта по подразбиране. Това е добре познат порт и натрапниците могат да използват тази възможност за достъп до SQL Server. Следователно, трябва да използвате порт, който не е по подразбиране, за да втвърдите сигурността на вашия SQL Server. Можете да промените това с помощта на SQL Server Configuration Manager.
5. Настройте удостоверяването на SQL Server
Защитата на вашите данни зависи от възможността за удостоверяване на достъпа до конкретни данни. SQL Server предоставя две опции за удостоверяване на базата данни.
- Удостоверяване на Windows
- Удостоверяване на Windows и SQL (смесен режим)
За да проверите модела за удостоверяване на сървъра, щракнете с десния бутон върху екземпляра на SQL Server и отидете на Защита.
Удостоверяването на Windows използва акаунти в активна директория за удостоверяване. Можете да имате централизиран контрол на правилата за сложност на паролата, изтичане на паролата, блокиране на акаунт и групи активни директории в активната директория. Следователно, трябва да използвате удостоверяване на Windows вместо удостоверяване на SQL Server. Тук потребителят се свързва с акаунт в Windows и SQL Server валидира идентификационните данни, използвайки основния маркер на Windows. Той използва протокола за сигурност Kerberos за удостоверяване. Вижте режим на удостоверяване за повече подробности.
Ако обаче трябва да използвате данните за вход в SQL Server, все пак можете да наложите правилата за пароли, както е подчертано по-долу.
6. Запомнете разрешенията за акаунт за услуги
SQL Services използва акаунт в Windows, за да изпълнява своите услуги. Не трябва да използвате вградените акаунти с високи привилегии, като мрежова услуга или локална система. По същия начин за акаунт за услуга на домейн трябва да зададете подходящи за ролята привилегии.
Ето защо бих препоръчал да се обърнете към конфигуриране на акаунти за услуги и разрешения на Windows за повече подробности относно разрешенията за акаунти за услуги на SQL Server.
7. Приложете корекции на SQL Server в производството
Microsoft пуска редовни сервизни пакети (SQL Server 2016 или по-стари) и кумулативни пакети (SQL Server 2017 и по-нататък) за коригиране на известни проблеми и проблеми със сигурността. Следователно, винаги трябва да планирате да внедрите корекции на SQL Server в производствените екземпляри. Въпреки това, не прилагайте директно корекции върху производствени екземпляри. Винаги ги прилагайте първо в тестовата среда, валидирайте и планирайте за внедряване в производството.
Можете да се обърнете към най-новите актуализации за Microsoft SQL Server за да намерите подробности относно най-новите сервизни и кумулативни пакети.
8. Защитете своите резервни копия
Когато става въпрос за сигурността на SQL Server, защитата на вашите архиви е от решаващо значение. Обикновено специалистите по бази данни не вземат предвид всички изисквания за осигуряване на архивиране на база данни. Архивирането на база данни е процесът на създаване на копие на работното състояние, архитектурата и съхранените данни на база данни. Следователно е еквивалентно важно да го защитите. Това означава ограничаване на достъпа до архивни файлове и правилното им криптиране. Когато става въпрос за осигуряване на резервни копия, ето няколко напомняния.
- Не предоставяйте на всички права върху папката за архивиране да създава, преглежда, променя и изтрива архивни файлове
- Използвайте резервни копия на база данни с криптиране; вижте тази статия относно криптирането на резервно копие за повече подробности
9. Запомнете техниките за криптиране и маскиране на данни на SQL Server
Ключова област в сигурността на SQL Server е криптирането. Можете да използвате различни механизми за криптиране, за да защитите чувствителни данни във вашата база данни на SQL Server. Различните опции за криптиране са както следва.
- Винаги шифровани:Винаги криптираната техника помага за криптиране на чувствителни данни в клиентските приложения. Винаги криптираният драйвер автоматично криптира и декриптира чувствителни данни в клиентските приложения. Ключовете за криптиране никога не се разкриват на двигателя на базата данни на SQL Server. Той защитава поверителни данни.
- Прозрачно криптиране на данни (TDE):TDE криптира данните в покой. Той помага да се защитят файловете с данни, регистрационните файлове и архивните файлове.
- Криптиране на ниво колона:Шифроването на ниво колона помага за шифроване на конкретни данни в колона, например номера на кредитни карти и социални осигуровки.
- Маскиране на статични данни:Статичното маскиране на данни замества чувствителните данни, като използва дефинираните правила за трансформация на данни.
- Динамично маскиране на данни:Динамичното маскиране на данни помага за ограничаване на излагането на чувствителни данни за непривилегировани потребители.
- Сигурност на ниво ред:Защитата на ниво ред ограничава достъпа до редове с данни.
10. Усложнете паролата на системния администратор
Ако използвате SQL удостоверяване, той създава SA за вход с разрешенията на системния администратор. За да защитите своя SQL сървър, направете следното.
- Преименувайте данните за вход с име SA на друго име
- Деактивирайте акаунта, ако не планирате да го използвате
- Използвайте сложна парола
- Не позволявайте на приложенията да използват SA акаунта в низовете за връзка
11. Одитирайте данните за влизане в базата данни
Одитът често се пренебрегва, когато става въпрос за сигурността на SQL Server. Трябва да правите редовен одит на SQL Server за неуспешни влизания. Можете да използвате механизма за одит на влизане по подразбиране за преглед на акаунтите. Например, да предположим, че всеки потребител се опитва да се свърже със SQL Server с акаунт с високи привилегии. В този случай можете да видите грешката при влизане и IP адреса на входящата заявка (клиент). Това може да ви помогне да уловите и премахнете подозрителна дейност.
Можете да използвате разширените събития, SQL проследяване, улавяне на промяна на данни, тригери (DDL, DML или влизане), спецификации за одит на ниво база данни или сървър за одита на SQL Server.
12. Внимавайте за разрешенията на ниво сървър и база данни
Специалистите по бази данни трябва да бъдат внимателни, когато присвояват разрешения на ниво сървър или база данни. Понякога виждаме, че разработчиците получават системен администратор на ниво сървър или разрешенията на собственика на базата данни на ниво база данни. Това са най-високите разрешения, които потребителят може да има съответно на ниво екземпляр или база данни.
- Вижте фиксирани роли на ниво сървър за да разберете фиксираните роли на ниво сървър и техните възможности.
- Вижте роли на ниво база данни за да разберете по-добре фиксираните роли на ниво база данни.
13. Изключете услугата на браузъра SQL Server
SQL Server използва услугата на браузъра за посочения екземпляр. Той слуша всички входящи заявки за връзки към SQL Server. Той използва UDP порт 1434 и отговаря на заявките с номера на TCP/IP порта, необходим за свързване към SQL Server. Следователно можете да изключите услугата на браузъра и изрично да дефинирате номера на порта в низовете на приложението. Това избягва излагането на номера на портове на входящите заявки за връзка и помага за сигурността на SQL Server.
Можете да разгледате статията Как работи браузърът на SQL Server , за да разберете по-добре услугата на браузъра на SQL Server.
Допълнителни съображения за сигурността на SQL Server
Както е посочено, сигурността на SQL Server е непрекъснат процес с различни фактори и стъпки. Трябва редовно да преразглеждате екземпляри на SQL Server, политиките за сигурност и да ги актуализирате рутинно както на нивата на операционната система, така и на SQL Server. Прилагайки редовно тези най-добри практики, вие ще помогнете за създаването на по-сигурна и неразрушаваща услуга за база данни за вашия бизнес.