sql >> Databáze >  >> RDS >> Sqlserver

13 Doporučené postupy zabezpečení serveru SQL Server

Data jsou kritickým majetkem každé organizace a za narušení bezpečnosti jsou příliš často zodpovědné špatně zabezpečené databáze. Tento článek popisuje osvědčené postupy zabezpečení serveru SQL a také základní bezpečnostní aspekty pro ochranu vašich databází před škodlivými útoky.

Zabezpečení dat se skládá ze tří základních pilířů – důvěrnosti, integrity a dostupnosti (CIA) a zabývá se specifickými procesy na ochranu dat před úmyslným a náhodným přístupem. Pojďme si rozebrat různé oblasti a kroky, které je třeba podniknout při přístupu k zabezpečení SQL Serveru, jedné z nejpopulárnějších relačních databází, které se dnes používají.

Osvědčené postupy zabezpečení serveru SQL Server

1. Zajistěte fyzické zabezpečení vašeho SQL Server

Pokud jde o zabezpečení SQL Serveru, fyzické zabezpečení nelze přehlédnout. Fyzické zabezpečení se týká omezení neoprávněného přístupu k datovým centrům nebo jiným fyzickým serverovým komponentám. Můžete například implementovat zamčenou místnost s omezeným přístupem pomocí čipové karty, otisku prstu nebo rozpoznávání obličeje. Můžete také nakonfigurovat omezený segment sítě pro SQL Server.

V datových centrech je umístěna infrastruktura organizace, jako jsou směrovače, přepínače, servery, firewally a úložná zařízení. Fyzická bezpečnost se zabývá ochranou hardwaru, softwaru a sítě před jakýmkoli neoprávněným přístupem nebo přírodními katastrofami. Může zahrnovat následující oblasti:

  • Zabezpečení přístupu do prostor a zařízení pouze pro oprávněné osoby
  • Údržba systémů kontroly přístupu
  • 24x7x365 ostražitost pomocí ostrahy na místě nebo monitorování CCTV
  • Uninterruptible power supply (UPS)
  • Mít systém požární signalizace a nasávací systém detekce kouře
  • Mít aktivní panel detektoru úniku vody
  • Systémy odpuzující hlodavce
  • Požární systémy
  • Ovládání a sledování teploty a vlhkosti
  • Pravidelná údržba hardwaru

2. Chraňte svůj operační systém

SQL Server se instaluje nad stávající operační systém, jako je Windows nebo Linux. Proto zabezpečení operačního systému hraje zásadní roli v zabezpečení SQL Server. Níže jsou uvedena některá doporučení pro ochranu vašeho operačního systému:

  • Používejte běžné opravy zabezpečení operačního systému a aktualizace Service Pack
  • Definujte politiku záplatování operačního systému, která aplikuje záplaty v nižších prostředích, po nichž následuje záplatování v produkci
  • Vždy používejte stabilní a podporované verze operačního systému produktu. Microsoft například ukončil podporu pro Windows Server 2003, proto byste jej neměli používat pro hostování databází
  • Nepovolujte svým databázovým serverům přístup k internetu
  • Měli byste odinstalovat, zastavit nebo zakázat nepoužívané aplikace a disky, abyste zajistili méně cest pro potenciální útoky.
  • Implementujte bránu firewall s omezeným přístupem k databázovým serverům tak, aby byl provoz z bran firewall povolen pouze aplikačním serverům vyžadujícím přístup k databázovému serveru.
  • Otevřete konkrétní porty v bráně firewall. Například ve výchozím nastavení běží SQL Server na portu 1433. Proto můžete povolit TCP porty 1433 a 3389 pro přístup ke vzdálenému serveru, pokud na serveru neběží žádná jiná aplikace. Podobně služba analýzy používá výchozí port 2383 jako standardní port. Úplný seznam portů na serveru SQL Server naleznete v této dokumentaci o portech používaných SQL Serverem. K zabezpečení přístupu k serveru SQL můžete také použít certifikáty SSL nebo TLS. Tyto certifikáty mohou šifrovat přenos dat mezi SQL Serverem a klientskými aplikacemi. Konfigurace serveru SQL Server je vyžadována pro certifikát podepsaný svým držitelem nebo certifikát vydaný certifikační autoritou (CA). Další podrobnosti naleznete v článku: Jak nastavit a používat šifrovaná připojení k serveru SQL.
  • Využijte možnost Extended Protection for Authentication , abyste zabránili útoku přenosu ověřování pomocí vazby služby a vazby kanálu. Chcete-li povolit rozšířenou ochranu, přejděte do Správce konfigurace serveru SQL, rozbalte obrazovku, klikněte pravým tlačítkem na Protokoly a poté přejděte na Rozšířená, Rozšířená ochrana. Upozorňujeme, že ve výchozím nastavení je tato možnost vypnuta.

Podobně můžete vynutit šifrované připojení k serveru SQL pomocí následující možnosti.

Další podrobnosti najdete také v rozšířené ochraně.

3. Zmenšete plochu

Povrchová oblast SQL Server se skládá z funkcí databázového stroje, které poskytují další funkce, jako je odesílání e-mailů. Tyto součásti mohou být potenciálním cílem pro získání přístupu k serveru SQL Server pro škodlivé aktivity. Proto byste měli zakázat součásti a funkce v SQL Server, které se nepoužívají, protože to omezí šance na potenciální útok. Níže jsou uvedeny hlavní součásti, které můžete zkontrolovat a zakázat.

  • Vyhledat spouštěcí procesy
  • Postupy automatizace OLE
  • CLR povoleno
  • Řetězení vlastnictví napříč DB
  • xp_cmdshell
  • XP databáze pošty

Podrobné informace o možnostech konfigurace serveru naleznete v tomto článku.

4. Nakonfigurujte server tak, aby naslouchal na jiném portu

Microsoft SQL Server používá výchozí port 1433 pro všechna databázová připojení. Jde o běžné bezpečnostní riziko v mnoha databázových prostředích, protože databázoví odborníci obvykle nemění výchozí port. Je to dobře známý port a vetřelci mohou využít této příležitosti k přístupu k serveru SQL. Proto byste měli použít jiný než výchozí port k posílení zabezpečení serveru SQL. Toto můžete upravit pomocí SQL Server Configuration Manager.

5. Upravte ověřování SQL Server

Ochrana vašich dat závisí na schopnosti ověřit přístup ke konkrétním datům. SQL Server poskytuje dvě možnosti ověřování databáze.

  • Ověření systému Windows
  • Ověřování Windows a SQL (smíšený režim)

Chcete-li ověřit model ověřování serveru, klepněte pravým tlačítkem myši na instanci SQL Server a přejděte na Zabezpečení.

Ověřování systému Windows používá k ověření účty aktivního adresáře. Můžete mít centralizované řízení zásad pro složitost hesla, vypršení platnosti hesla, uzamčení účtu a skupiny aktivních adresářů v aktivním adresáři. Proto byste měli používat ověřování systému Windows namísto ověřování SQL Server. Zde se uživatel připojí pomocí účtu Windows a SQL Server ověří pověření pomocí hlavního tokenu Windows. K autentizaci používá bezpečnostní protokol Kerberos. Další podrobnosti najdete v režimu ověřování.

Pokud však potřebujete použít přihlášení k SQL Serveru, stále můžete vynutit zásady pro hesla, jak je zvýrazněno níže.

6. Zapamatujte si oprávnění účtu služby

SQL Services používá ke spuštění svých služeb účet Windows. Neměli byste používat vysoce privilegované vestavěné účty, jako je síťová služba nebo místní systém. Podobně pro účet služby domény byste měli přiřadit oprávnění odpovídající roli.

Proto bych doporučil nahlédnout do konfigurace servisních účtů a oprávnění systému Windows, kde naleznete podrobnější informace o oprávněních servisních účtů serveru SQL Server.

7. Použít opravy SQL Serveru v produkci

Společnost Microsoft vydává běžné aktualizace Service Pack (SQL Server 2016 nebo starší) a kumulativní balíčky (SQL Server 2017 a novější) pro řešení známých problémů a problémů se zabezpečením. Proto byste měli vždy plánovat implementaci oprav SQL Server na produkční instance. Neaplikujte však opravy přímo na produkční instance. Vždy je nejprve použijte v testovacím prostředí, ověřte a naplánujte produkční nasazení.

Podrobnosti o nejnovějších aktualizacích Service Pack a kumulativních balíčcích naleznete v nejnovějších aktualizacích pro Microsoft SQL Server.

8. Zabezpečte své zálohy

Pokud jde o zabezpečení serveru SQL Server, zabezpečení záloh je zásadní. Databázoví odborníci obvykle neberou v úvahu všechny požadavky na zabezpečení záloh databáze. Zálohování databáze je proces vytváření kopie provozního stavu, architektury a uložených dat databáze. Proto je stejně důležité ji chránit. Znamená to omezit přístup k záložním souborům a správně je zašifrovat. Pokud jde o zabezpečení záloh, zde je několik připomenutí.

  • Neposkytujte všem práva na záložní složku k vytváření, prohlížení, úpravě a odstraňování souborů záloh
  • Používejte zálohování databáze se šifrováním; Další podrobnosti naleznete v tomto článku o šifrování záloh

9. Pamatujte na techniky šifrování a maskování dat SQL Server

Klíčovou oblastí v zabezpečení SQL Serveru je šifrování. K ochraně citlivých dat v databázi SQL Server můžete použít různé šifrovací mechanismy. Různé možnosti šifrování jsou následující.

  • Vždy šifrováno:Technika vždy šifrována pomáhá šifrovat citlivá data v klientských aplikacích. Vždy šifrovaný ovladač automaticky šifruje a dešifruje citlivá data v klientských aplikacích. Šifrovací klíče nejsou nikdy odhaleny databázovému stroji SQL Server. Chrání důvěrná data.
  • Transparentní šifrování dat (TDE):TDE šifruje data v klidu. Pomáhá zabezpečit datové soubory, soubory protokolu a záložní soubory.
  • Šifrování na úrovni sloupců:Šifrování na úrovni sloupců pomáhá zašifrovat konkrétní data sloupců, například čísla kreditních karet a rodná čísla.
  • Maskování statických dat:Maskování statických dat nahrazuje citlivá data pomocí definovaných pravidel transformace dat.
  • Dynamické maskování dat:Dynamické maskování dat pomáhá omezit vystavení citlivých údajů neprivilegovaným uživatelům.
  • Zabezpečení na úrovni řádků:Zabezpečení na úrovni řádků omezuje přístup k řádkům dat.

10. Zkomplikujte heslo správce systému

Pokud používáte ověřování SQL, vytvoří se přihlašovací SA s oprávněními sysadmin. Chcete-li zabezpečit svůj SQL Server, proveďte následující.

  • Přejmenujte přihlašovací jméno SA na jiné jméno
  • Pokud účet neplánujete používat, deaktivujte jej
  • Používejte složité heslo
  • Nepovolit aplikacím používat účet SA v připojovacích řetězcích

11. Audit přihlášení do databáze

Auditování je často přehlíženo, pokud jde o zabezpečení serveru SQL. Měli byste provádět pravidelné auditování serveru SQL pro neúspěšná přihlášení. Pro kontrolu účtů můžete použít výchozí mechanismus auditu přihlášení. Předpokládejme například, že se jakýkoli uživatel pokouší připojit k serveru SQL Server pomocí účtu s vysokým oprávněním. V takovém případě můžete vidět selhání přihlášení a IP adresu příchozího požadavku (klienta). To vám může pomoci zachytit a odstranit podezřelou aktivitu.

Pro audit SQL Server můžete použít rozšířené události, trasování SQL, sběr dat změn, spouštěče (DDL, DML nebo přihlášení), specifikace auditu databáze nebo serveru.

12. Mějte na paměti oprávnění na úrovni serveru a databáze

Databázoví odborníci by měli být opatrní při přidělování oprávnění na úrovni serveru nebo databáze. Někdy vidíme, že vývojáři získávají správce systému na úrovni serveru nebo oprávnění vlastníka databáze na úrovni databáze. Toto jsou nejvyšší oprávnění, která může mít uživatel na úrovni instance nebo databáze.

  • Chcete-li pochopit pevné role na úrovni serveru a jejich možnosti, podívejte se na pevné role na úrovni serveru.
  • Chcete-li lépe porozumět pevným rolím na úrovni databáze, podívejte se na role na úrovni databáze.

13. Vypněte službu prohlížeče SQL Server

SQL Server používá službu prohlížeče pro pojmenovanou instanci. Poslouchá všechny příchozí požadavky na připojení k SQL Serveru. Používá port UDP 1434 a na požadavky odpovídá číslem portu TCP/IP, které je nutné pro připojení k serveru SQL. Proto můžete vypnout službu prohlížeče a explicitně definovat číslo portu v řetězcích aplikace. Tím se zabrání vystavení čísla portu příchozím požadavkům na připojení a pomůže to se zabezpečením serveru SQL.

Chcete-li lépe porozumět službě prohlížeče SQL Server, můžete si přečíst článek Jak prohlížeč SQL Server funguje.

Další aspekty zabezpečení serveru SQL Server

Jak bylo nastíněno, zabezpečení SQL Serveru je nepřetržitý proces s různými faktory a kroky. Musíte pravidelně navštěvovat instance SQL Server, zásady zabezpečení a pravidelně je aktualizovat na úrovni operačního systému i SQL Serveru. Pravidelným uplatňováním těchto osvědčených postupů pomůžete vytvořit bezpečnější a nenarušující databázovou službu pro vaši firmu.


  1. NAME_IN vestavěný v Oracle D2k Forms

  2. Polymorfismus v SQL databázových tabulkách?

  3. Vložit do databáze SQLite android

  4. Interval porovnávání PostgreSQL mezi časem začátku a konce s časovým razítkem