Organizace dnes shromažďují a generují obrovské objemy citlivých dat. Velká část je uložena v databázích SQL Server, takže správa zabezpečení serveru SQL Server je klíčová pro ochranu důležitých aplikací a služeb. Implementace silných bezpečnostních opatření Microsoft SQL Server pomáhá organizacím bránit se před kybernetickými hrozbami a dodržovat předpisy, jako je GDPR, HIPAA a PCI DSS. Tato příručka pokrývá základy zabezpečení serveru SQL Server, včetně ověřování, autorizace, šifrování, auditování a osvědčených postupů pro zabezpečení serveru SQL.
Tento článek poskytuje pevný základ pro posílení zabezpečení serveru SQL. Pokrývá všechny klíčové oblasti, kterým je třeba porozumět, včetně zabezpečení platformy a sítě, ověřování a autorizace, šifrování dat, auditování a zabezpečení aplikací. Zkoumá dokonce klíčové trendy, které je třeba sledovat při zabezpečení vašich databází SQL Server, jak se vyvíjí prostředí hrozeb.
SQL Server Security Foundations
Pochopení bezpečnostních hrozeb serveru SQL Server
Protivníci zneužívají zranitelnosti v zabezpečení MS SQL Serveru, jako jsou slabá hesla nebo špatně nakonfigurovaná oprávnění. Útočníci mohou eskalovat oprávnění, aby získali hlubší přístup, což ohrožuje zabezpečení databáze SQL Server. Hlavním zájmem zůstávají útoky SQL injection, které umožňují neoprávněný přístup, úpravu nebo vymazání dat.
Dalším špičkovým vektorem útoků jsou útoky SQL injection – ve skutečnosti jsou jedním z nejkritičtějších bezpečnostních rizik pro webové aplikace. Tato taktika zahrnuje vkládání škodlivého kódu SQL do aplikačních dotazů a může umožnit útočníkům se zlými úmysly přistupovat, upravovat nebo mazat důležitá data.
SQL Server Security Framework
Aby společnost Microsoft vynutila správu zabezpečení serveru SQL Server, používá model vrstveného zabezpečení:
- Zabezpečitelné položky: Databázové objekty, jako jsou tabulky, pohledy a uložené procedury, které vyžadují ochranu.
- Principals: Entity (uživatelé, přihlášení, aplikace) požadující přístup.
- Oprávnění: Definujte akce povolené u zabezpečených položek spravovaných prostřednictvím řízení přístupu založeného na rolích (RBAC) na úrovni serveru, na úrovni databáze a na úrovni objektu.
Schopnost principálů přistupovat k zabezpečeným prvkům se řídí různými typy oprávnění:
- Oprávnění přiřazená k zabezpečenému prvku definují, jaké akce s ním lze provádět, například SELECT, INSERT nebo EXECUTE.
- Oprávnění udělená hlavnímu limitu, ke kterým zabezpečeným prvkům má přístup a jaké akce může provádět. Osvědčeným postupem je přidělovat oprávnění principálům pomocí řízení přístupu založeného na rolích (RBAC), nikoli přímo. RBAC je podrobněji diskutován dále v tomto článku.
Oprávnění lze dědit pomocí hierarchického modelu: úroveň serveru > úroveň databáze > úroveň objektu. To umožňuje granulární kontrolu nad přístupem k různým částem databázového systému.
Zabezpečení platformy a sítě
Zmenšení oblasti povrchu útoku je nezbytné pro zabezpečení serveru SQL.
Mezi osvědčené postupy patří:
- Použití zásad auditu serveru SQL Server ke sledování pokusů o neoprávněný přístup.
- Zakázání nepoužívaných služeb, ukázkových databází a výchozích účtů.
- Omezení přístupu na úrovni serveru pomocí zabezpečení na úrovni řádků a principů nejmenších oprávnění.
- Vynucení technik maskování dat pro skrytí citlivých informací.
Osvědčené postupy fyzické bezpečnosti
Bezpečnost začíná fyzickou ochranou. Každý SQL Server by měl být umístěn v datovém centru, ve kterém je přístup zabezpečen ověřovacím mechanismem, jako jsou klíčové karty, PINy nebo biometrické údaje. Prostor by měl být monitorován kamerami a veškerý přístup do serverovny by měl být zaznamenán.
Zálohy SQL Serveru na místě by měly být uchovávány v úložných skříních, které jsou uzamčené, ohnivzdorné a vodotěsné; další kopie by měly být udržovány mimo pracoviště v jiném zařízení s řízeným přístupem nebo v důvěryhodném cloudovém úložišti.
Operační systém a zabezpečení sítě
Chcete-li dále snížit oblast povrchu útoku SQL Server, povolte automatické aktualizace a nainstalujte opravy okamžitě. Segmentujte kritické servery pomocí interní brány firewall nakonfigurované tak, aby umožňovala pouze nezbytné porty, jako je TCP 1433.
Kromě toho se ujistěte, že:
- Vypněte všechny nepotřebné služby a nepoužívané síťové protokoly.
- Odstraňte ukázkové databáze a komponenty, které nejsou potřebné v produkci.
- Zakažte nebo odeberte výchozí účty a služby, které se nepoužívají.
- Omezte vzdálený přístup k serveru SQL Server.
- Použijte nástroje jako SQL Server Configuration Manager k zajištění bezpečných nastavení.
Zabezpečení SQL serveru na bázi cloudu
Bezpečnostní opatření, která chrání místní zdroje, nemusí nutně fungovat pro prostředky, které byly migrovány do cloudu. Cloudová řešení jako Azure SQL a Amazon RDS vyžadují specializovaná bezpečnostní opatření Microsoft SQL Server. Azure Defender pro SQL například nabízí spravované služby, jako je hodnocení zranitelnosti a možnosti auditu SQL Serveru.
- Azure Defender pro SQL je komplexní řešení zabezpečení pro ochranu databází SQL v cloudovém prostředí Azure, které nabízí pokročilou ochranu před hrozbami a hodnocení zranitelnosti.
- Amazon RDS nabízí robustní bezpečnostní funkce pro ochranu databází SQL hostovaných na AWS, jako je správa identity a přístupu (IAM) a automatické zálohování a snímky.
- Google Cloud SQL nabízí několik funkcí zabezpečení k ochraně databází SQL, včetně ověřování a řízení přístupu, šifrování a zabezpečení sítě.
Autentizace a autorizace
Režimy ověřování
Zabezpečení SQL Server také vyžaduje efektivní ověřování principálů pokoušejících se o přístup k databázovým zdrojům.
SQL Server podporuje následující možnosti ověřování:
- Doporučenou možností je ověřování systému Windows. Je preferován pro správu zabezpečení serveru SQL Server, protože využívá zásady služby Active Directory. A protože se při ověřování uživatelů spoléhá na Active Directory (AD), získáte výhodu zásad hesel AD a dalších ovládacích prvků zabezpečení.
- SQL Server Authentication funguje tak, že ukládá uživatelská jména a hesla na databázový server. Lze jej použít v situacích, kdy není dostupná služba Active Directory.
- Chcete-li dále zabezpečit SQL Server, implementujte vícefaktorové ověřování (MFA) pomocí:
- Jednorázová hesla (OTP)
- Biometrické ověřování
- Hardwarové bezpečnostní klíče
- Uživatelé obsažené databáze jsou uživatelé specifické pro databázi, kteří se nespoléhají na přihlášení k serveru SQL. Místo toho jsou jejich přihlašovací údaje uloženy v samotné databázi. To zlepšuje přenositelnost a zjednodušuje správu uživatelů při migraci databází mezi servery.
Role-Based Access Management
Jak již bylo zmíněno dříve, osvědčené postupy doporučují používat RBAC spíše než přidělovat oprávnění přímo uživatelům a aplikacím. Použití RBAC výrazně snižuje administrativní režii a zároveň zlepšuje přesnost a transparentnost.
S RBAC jsou oprávnění udělena rolím a uživatelé dědí oprávnění z rolí, kterým jsou přiřazeni.
Předdefinované role SQL Serveru zahrnují následující:
- Role serveru platí na úrovni instance SQL Server. Používají se k delegování administrativních úkolů, jako je správa přihlášení, konfigurace nastavení serveru a provádění záloh. Mezi vestavěné role patří sysadmin, serveradmin a securityadmin.
- Databázové role definují přístupová oprávnění v rámci konkrétní databáze. Předdefinované role jako db_owner, db_datareader a db_datawriter pomáhají oddělit povinnosti a omezit nadměrná oprávnění.
- Aplikační role jsou speciální databázové role, které udělují specifická oprávnění aplikaci, nikoli jednotlivým uživatelům. Zvyšují bezpečnost tím, že omezují přístup k datům pouze prostřednictvím zamýšlené aplikace.
- Organizace mohou také definovat vlastní role přizpůsobené jejich specifickým potřebám.
Vylepšení autentizace
Protože hesla jsou dnes tak snadno prolomitelná, neměli byste se spoléhat pouze na ně, abyste zabezpečili svá cenná data. Vícefaktorové ověřování (MFA) zvyšuje zabezpečení tím, že před udělením přístupu vyžaduje více forem ověření.
Možnosti zahrnují:
- Jednorázové přístupové kódy (OTP) zaslané prostřednictvím SMS nebo e-mailu.
- Biometrie, jako jsou otisky prstů nebo rozpoznávání obličeje.
- Hardwarové bezpečnostní klíče jako YubiKey nebo FIDO2.
Šifrování a ochrana dat
Šifrování na serveru SQL
Organizace musí fungovat za předpokladu, že citlivá data budou v určitém okamžiku vystavena. Šifrování pomáhá zajistit, že ukradená data zůstanou nečitelná pro neoprávněné subjekty.
Níže jsou uvedena některá šifrování poskytovaná SQL Serverem:
- Transparent Data Encryption (TDE) — Poskytuje šifrování databázových souborů v reálném čase pro ochranu uložených dat na fyzické úrovni. TDE šifruje celou databázi, včetně záloh, pomocí šifrovacího klíče databáze (DEK) uloženého v hlavní databázi SQL Serveru.
- Always Encrypted — Navrženo k ochraně vysoce citlivých dat, jako jsou údaje o kreditních kartách a čísla sociálního pojištění, pomocí šifrování dat na aplikační vrstvě. Šifrovací klíče jsou uloženy mimo SQL Server, aby zabránily i vysoce privilegovaným uživatelům, jako jsou správci databází, prohlížet citlivé informace.
- Windows Data Protection API (DPAPI) – používá šifrovací funkce založené na systému Windows k šifrování přihlašovacích údajů, klíčů a dalších citlivých informací SQL Server.
Dynamické maskování dat (DDM)
Na rozdíl od šifrování, které transformuje celá dílčí data do nečitelného formátu, který vyžaduje klíč k dešifrování, DDM zakrývá části citlivých dat, když jsou informace zobrazovány neprivilegovaným uživatelům, a původní data zůstávají nedotčená. DDM může například maskovat čísla sociálního pojištění, podrobnosti o kreditních kartách a e-mailové adresy v reálném čase.
Šifrování na úrovni sloupců (CLE)
Stejně jako DDM nabízí CLE cílenou ochranu dat. Činí tak však šifrováním konkrétních sloupců v databázové tabulce, nikoli maskováním vybraných dat. Výsledkem je, že DDM má nižší dopad na výkon než CLE.
Zabezpečení na úrovni řádků (RLS)
Zabezpečení na úrovni řádků řídí přístup ke konkrétním řádkům v databázové tabulce na základě identity nebo role uživatele. Používá zásady zabezpečení, které se aplikují na tabulku k filtrování řádků. Toto filtrování je řízeno predikáty zabezpečení – funkcemi, které určují, zda má být řádek viditelný nebo modifikovatelný dotazujícím se uživatelem. Existují dva typy: predikáty filtru pro operace čtení a blokové predikáty pro operace zápisu.
Audit a monitorování
Sledování a analýza databázových aktivit je zásadní pro detekci hrozeb a zajištění souladu s regulačními požadavky. SQL Server Audit poskytuje vestavěný rámec pro sledování aktivit a změn provedených v databázích.
Funkce SQL Server Audit
SQL Server Audit podporuje dvě hlavní úrovně auditování:
- Auditování na úrovni serveru zachycuje události v celé instanci SQL Server, jako jsou přihlášení, úpravy konfigurace, změny oprávnění a neúspěšné pokusy o ověření. V důsledku toho může pomoci odhalit hrozby, jako je eskalace oprávnění.
- Auditování na úrovni databáze se zaměřuje na akce v rámci konkrétní databáze, jako jsou úpravy dat, změny schémat a udělení oprávnění.
Chcete-li nastavit auditování na serveru SQL Server, správci definují zásady auditu, které určují, které akce a události by měly být protokolovány. Nakonfigurované audity by měly být pravidelně kontrolovány a musí být implementovány zásady uchovávání protokolů, aby se zabránilo nadměrnému ukládání dat.
Bezpečnostní nástroje a utility
SQL Server Management Studio (SSMS) obsahuje vestavěný nástroj pro posouzení zranitelnosti, který může pomoci se slabými stránkami zabezpečení, včetně zastaralých oprav, nadměrných oprávnění a zastaralých protokolů. Kromě toho může poskytnout praktická doporučení pro nápravu.
SQL Server Data Discovery & Classification automaticky zjišťuje potenciálně citlivá data v databázích a doporučuje vhodné klasifikační štítky, jako jsou osobní identifikační údaje (PII) nebo finanční záznamy. Může také generovat podrobné zprávy pro účely dodržování předpisů a auditu.
Mezi další integrované nástroje zabezpečení patří zobrazení a funkce katalogu zabezpečení, které poskytují:
- Komplexní přehled o nastavení zabezpečení databáze a konfiguracích.
- Detailní pohled na uživatelská oprávnění a mechanismy řízení přístupu.
- Možnosti monitorování v reálném čase pro metadata související se zabezpečením.
Tyto nástroje mohou správcům pomoci odhalit pokusy o eskalaci oprávnění, neoprávněné vytváření uživatelských účtů a nesprávně nakonfigurovaná nastavení zabezpečení.
Použití monitorovacích nástrojů
Pravidelné monitorování vašeho SQL prostředí je klíčové pro detekci podezřelé aktivity a hodnocení účinnosti bezpečnostních kontrol.
Následující osvědčené postupy vám mohou umožnit vytěžit maximum z vašeho úsilí o monitorování:
- Změřte normální úrovně výkonu během špičky a mimo špičku.
- Použijte tyto základní linie k identifikaci odchylek, které by mohly naznačovat hrozby, a stanovte prahové hodnoty pro upozornění bezpečnostních týmů.
- Hledejte vzorce, které mohou naznačovat vznikající problémy nebo oblasti pro optimalizaci.
- Pravidelně aktualizujte konfigurace monitorování, aby byly v souladu s měnícími se obchodními potřebami.
Pro další posílení zabezpečení doplňte tradiční monitorovací nástroje o následující:
- Správci přístupu k datům , které pomáhají minimalizovat riziko neoprávněného přístupu a zabraňují eskalaci oprávnění
- Nástroje pro analýzu zabezpečení , které využívají strojové učení a analýzu chování k detekci anomální aktivity uživatelů, jako jsou neobvyklé vzorce dotazů nebo nadměrný přístup k datům
Zabezpečení aplikací
Zabezpečený vývoj aplikací
Jak již bylo zmíněno dříve, SQL injection je jednou z největších hrozeb pro webové aplikace.
Zde je několik způsobů, jak se těmto útokům bránit:
- Použijte parametrizované dotazy k oddělení kódu SQL od vstupu uživatele.
- Při udělování oprávnění k databázi přísně dodržujte zásadu nejmenšího oprávnění.
- Použijte uložené procedury s parametrizovanými vstupy k zapouzdření databázových dotazů.
- Implementujte přísné ověřování vstupu, abyste minimalizovali riziko, že obsahuje škodlivý kód SQL. Omezení typu dat například zajišťují, že číselná pole přijímají pouze čísla a pole data pouze platné formáty data. Mezi další metody ověření patří ověření bílé listiny a omezení délky vstupu.
Zpracování chyb a únik informací
Při konfiguraci chybových zpráv je nutné najít správnou rovnováhu: Chcete poskytnout dostatek informací pro usnadnění odstraňování problémů, ale vyvarujte se uvádění podrobností, které by mohly útočníkům pomoci upřesnit jejich pokusy o zneužití. Dobrou strategií je implementovat podrobné chybové zprávy do vývojových prostředí, ale v produkci používat obecné zprávy. Obecné zprávy mohou obsahovat chybové kódy, které mohou interní týmy vyhledat, a vyhnout se tak nutnosti zobrazovat uživatelům citlivé systémové informace.
Aplikace na straně klienta (jako jsou webové a mobilní aplikace) jsou obzvláště zranitelné vůči útokům, protože k nim mají uživatelé přímý přístup.
Tyto osvědčené postupy mohou pomoci zvýšit zabezpečení:
- K ochraně dat při přenosu vždy používejte HTTPS (šifrování TLS).
- Používejte bezpečné metody pro ukládání citlivých dat na straně klienta, jako je šifrované místní úložiště nebo zabezpečené soubory cookie.
- Udržujte klientské rámce a knihovny aktuální na základě oprav zabezpečení.
- Zakázat podrobné chybové zprávy v protokolech konzoly JavaScript.
- Použijte RBAC k zajištění přesného poskytování přístupových práv.
Role na aplikační úrovni
Aplikační role poskytují způsob, jak řídit a organizovat uživatelská oprávnění v rámci konkrétních aplikací. Mohou zlepšit zabezpečení a shodu a zároveň zjednodušit správu.
Zde je obecný příklad aplikačních rolí:
- Správce – má plný přístup ke správě uživatelů, nastavení a konfigurací.
- Manažer — Může kontrolovat sestavy a schvalovat transakce, ale nemůže měnit nastavení systému
- Uživatel – Může vytvářet a upravovat obsah, ale nemůže mazat záznamy
Nezapomeňte sledovat změny rolí, oprávnění a přiřazení rolí. Kromě toho provádějte pravidelné kontroly přístupu, abyste zjistili, zda uživatelé stále vyžadují své přiřazené role.
Doporučené postupy zabezpečení serveru SQL Server
Rutinní bezpečnostní audity
Pravidelné audity jsou zásadní pro udržení vašeho prostředí SQL Server v bezpečí.
Zde jsou klíčové položky k auditu:
- Změny schématu databáze — Nesprávné úpravy mohou představovat bezpečnostní rizika nebo způsobit nestabilitu systému.
- Konfigurace serveru a databáze — Nezapomeňte zkontrolovat nastavení šifrování, režimy ověřování a řízení přístupu.
- Uživatelské účty – Okamžité odstranění neaktivních nebo nepotřebných uživatelských účtů minimalizuje ohrožení zabezpečením.
- Neúspěšné pokusy o přihlášení — Časté neúspěšné pokusy o přihlášení mohou naznačovat útoky hrubou silou.
Zachování souladu
Organizace dnes často musí dodržovat různé předpisy. Některé jsou specifické pro určitý sektor, jako je zdravotnictví (HIPAA), maloobchod (PCI DSS) nebo finance (SOX). Jiné, jako je GDPR, platí daleko šířeji.
Ujistěte se, že vaše auditorské postupy jsou v souladu s regulačními požadavky platnými pro vaši organizaci, a ujistěte se, že máte před auditem připravenou veškerou požadovanou dokumentaci.
Zabezpečení serveru SQL v praxi
Případové studie z reálného světa
Kyberzločinci se běžně zaměřují na SQL Server kvůli cenným datům, která jsou tam uložena. Zejména aktéři hrozeb aktivně vyhledávají na internetu SQL servery, které mají otevřený TCP port 1433. Tuto chybnou konfiguraci mohou využít ke zneužití neopravených zranitelností, spuštění útoků SQL injection nebo použití taktiky hrubé síly k získání kontroly nad účty s privilegovaným přístupem k serveru a jeho databázím.
Protože existuje tolik různých typů hrozeb, je nezbytné přijmout strategii hloubkové obrany, která zahrnuje bezpečnostní kontroly na různých úrovních. Tímto způsobem, pokud je jedna vrstva ohrožena, ostatní ochrany zůstanou na místě, aby zmírnily hrozby. Pokud je například narušena primární brána firewall, vaše data ochrání silné ověřování, zásady řízení přístupu a šifrování.
Nástroje pro hodnocení bezpečnosti
SQL Server Management Studio (SSMS) je primární nástroj grafického rozhraní společnosti Microsoft pro správu databází SQL Server. Umožňuje správcům:
- Spravujte přihlášení, role a oprávnění.
- Šifrovat databáze.
- Proveďte zjišťování a klasifikaci dat.
- Skenujte databáze a identifikujte potenciální zranitelnosti.
Příručky hodnocení zabezpečení pomáhají organizaci vyhodnotit a zlepšit zabezpečení databáze. Microsoft například poskytuje komplexní příručku pro řešení běžných požadavků na zabezpečení v Azure SQL Database a SQL Managed Instance. Organizace mohou vyvinout své vlastní příručky pro hodnocení zabezpečení přizpůsobené jejich specifickým prostředím SQL Server a bezpečnostním požadavkům.
Reakce na incident a zotavení
Když dojde k narušení bezpečnosti, je pro minimalizaci škod zásadní rychlá a rozhodná akce. Aby se organizace připravily, musí sestavit podrobný plán reakce na incidenty a obnovy, který budou pravidelně nacvičovat, kontrolovat a revidovat.
Nezapomeňte zapojit všechny relevantní týmy. Například IT potřebuje zachytit forenzní obrazy postižených systémů a další důkazy na podporu vyšetřování a potenciálních právních kroků. Vrcholové vedení a PR musí mít připravený komunikační plán, aby oslovili všechny dotčené cílové skupiny, včetně zaměstnanců, zákazníků, investorů a dalších zainteresovaných stran.
Obnova dat ze záloh je klíčovou součástí procesu obnovy. Spolu se zavedením pravidelného procesu zálohování musí váš tým pravidelně testovat zálohy, aby ověřil integritu dat a zajistil, že proces obnovy funguje podle očekávání. Jasné definování cílů doby obnovy pomáhá měřit úspěšnost vašeho úsilí o obnovu.
Budoucí trendy v zabezpečení SQL Serveru
Jak bezpečnostní profesionálové, tak aktéři hrozeb budou i nadále aktivně využívat vznikající technologie k dosažení svých cílů. Útočníci budou ve stále větší míře využívat umělou inteligenci a strojové učení k vytváření sofistikovanějších hrozeb, zatímco tytéž technologie budou využívány ke zlepšení detekce anomálií a prediktivní analýzy hrozeb pro obránce.
Dalším důležitým trendem je rostoucí využívání cloudových nativních bezpečnostních platforem, které poskytují jednotný přístup k zabezpečení jak místních, tak cloudových instancí SQL Serveru. A konečně, potenciál kvantových počítačů ohrozit současné metody šifrování urychluje výzkum kvantově odolných algoritmů.
Jak může Netwrix a Solutia pomoci
Zabezpečení prostředí SQL Serveru vyžaduje sledování změn, sledování přístupu a udržování správných konfigurací.
Zde jsou některé produkty Netwrix, které zlepšují zabezpečení SQL:
- Netwrix Enterprise Auditor – Tento nástroj poskytuje přehled o změnách a událostech přístupu napříč SQL Serverem a dalšími IT systémy a pomáhá detekovat potenciální bezpečnostní hrozby.
- Netwrix Auditor pro SQL Server – Tento nástroj monitoruje databázovou aktivitu, neúspěšná přihlášení a změny oprávnění, což usnadňuje identifikaci podezřelého chování a zajištění souladu.
- Netwrix Change Tracker – Tento produkt zaznamenává změny konfigurace na serveru SQL Server, což pomáhá předcházet neoprávněným úpravám a udržovat osvědčené postupy zabezpečení.
Závěr
Zabezpečení SQL Serveru vyžaduje neustálou ostražitost a přizpůsobování. Chcete-li posílit zabezpečení své databáze, zaměřte se na implementaci vrstvené obranné strategie, pravidelně kontrolujte své systémy a zůstaňte informováni o nejnovějších hrozbách a protiopatřeních.
Pamatujte také, že zabezpečení je trvalý proces, nikoli jednorázový úkol. Neustále zdokonalujte své dovednosti a znalosti pomocí zdrojů, jako jsou bezpečnostní blogy, odborná školení a oficiální dokumentace společnosti Microsoft. Upřednostněním zabezpečení a přijetím osvědčených postupů můžete výrazně snížit rizika a chránit svá kritická data ve stále složitějším digitálním prostředí. Pro více informací nás neváhejte kontaktovat.
Zdroj: Netwrix