Cvičení – správa zabezpečení
Po zabezpečení služby Azure SQL Database na úrovních sítě, ověřování a ochrany dat je posledním krokem pochopení toho, jak budete zabezpečení spravovat průběžně. Správa zabezpečení zahrnuje auditování, monitorování a klasifikaci dat.
Auditování
Auditování pomáhá zajistit dodržování předpisů, porozumět aktivitě v databázi a získat přehled o nesrovnalostech a anomáliích, které můžou signalizovat možné narušení bezpečnosti. V této aktivitě nastavíte auditování na úrovni serveru, i když je také k dispozici na úrovni databáze.
Jako alternativu auditu SQL Serveru obsahuje služba Azure SQL Database funkci Auditování služby Azure SQL. Používá technologii auditu SQL Serveru a stejně jako SQL Server podporuje skupiny akcí auditu a akce. Funkce auditování sleduje události databáze a serveru a zapisuje události do protokolu auditu ve službě Azure Storage, Log Analytics nebo do služby Azure Event Hubs. Pokud odkazujete na účet úložiště Azure Blob Storage, můžete výsledky ukládat a analyzovat v souborech XEvents. S Log Analytics se můžete dotazovat na své protokoly pomocí jazyka KQL (Kusto Query Language) a využívat výhod řídicích panelů služby Log Analytics pro auditování.
Konfigurace auditování
V dřívějším cvičení pro nasazení služby SQL Database nastavíte auditování na úrovni serveru, ale je také k dispozici na úrovni databáze. V jednom z dalších cvičení se dozvíte, jak získat přístup a jak využívat soubory odesílané do úložiště Azure Blob Storage, jazyk KQL a řídicí panely služby Log Analytics.
Provedením následujících kroků nastavte pracovní prostor služby Log Analytics:
Na panelu hledání na webu Azure Portal zadejte Log Analytics a z výsledků vyberte pracovní prostory služby Log Analytics. Zobrazí se podokno pracovních prostorů služby Log Analytics.
Vyberte Vytvořit. Zobrazí se nabídka Vytvořit pracovní prostor služby Log Analytics.
Na kartě Základy zadejte pro každé nastavení následující hodnoty.
Nastavení Hodnota Podrobnosti projektu Předplatné Předplatné Concierge Skupina prostředků V rozevíracím seznamu vyberte [Skupina prostředků sandboxu] Podrobnosti o instanci Název Zadejte azuresql-la. Oblast V následujícím seznamu vyberte umístění, které je k vám nejblíže. Bezplatný sandbox vám umožňuje vytvářet prostředky v podmnožině globálních oblastí Azure. Při vytváření prostředků vyberte oblast z následujícího seznamu:
- USA – západ 2
- Středojižní USA
- Střední USA
- East US
- West Europe
- Southeast Asia
- Japonsko – východ
- Brazílie – jih
- Austrálie – jihovýchod
- Indie – střed
Vyberte Zkontrolovat a vytvořit, počkejte, až se vaše vstupy ověří, a pak vyberte Vytvořit. Počkejte, až se prostředek nasadí.
Vyberte Přejít k prostředku. Zobrazí se podokno Přehled pracovního prostoru služby Log Analytics.
Na webu Azure Portal přejděte do databáze AdventureWorks .
V nabídce v části Zabezpečení vyberte Auditování. Projděte si možnosti.
Auditování můžete použít na úrovni serveru, která platí pro všechny databáze v rámci logického serveru Azure SQL Database. Pokud také použijete auditování na úrovni databáze (kterou v této lekci provedete), proběhnou oba audity paralelně; jeden nepřepíše druhý.
Výběrem přepínače snímku povolte auditování Azure SQL.
Zaškrtněte políčko Úložiště a potom vyplňte požadovaná pole:
- V části Předplatné v rozevíracím seznamu vyberte Předplatné Concierge.
- V části Účet úložiště v rozevíracím seznamu vyberte účet, který začíná
sql
náhodným řetězcem písmen a číslic. - Jako výchozí možnost Přístupové klíče úložiště ponechte typ ověřování úložiště.
Účet
sql
úložiště slouží ke shromažďování souborů protokolu XEvent, které se ukládají jako kolekce souborů objektů blob v kontejneru s názvem sqldbauditlogs. V pozdější aktivitě si projdete kontejner a dozvíte se, jak se soubory protokolů liší od Log Analytics.Tip
Pokud nevidíte žádné účty úložiště, vytvořte nový účet. Možná budete muset stránku po několika minutách aktualizovat, než se zobrazí.
Pokud budete auditovat produkční prostředí, zvažte použití samostatného účtu úložiště pro protokoly auditu.
Výběrem možnosti Upřesnit vlastnosti rozbalte oddíl a nastavte následující položky konfigurace:
- Pro uchování (dny) zadejte 7.
- V případě přístupového klíče úložiště vyberte Primární.
Poznámka:
Pokud se nezobrazují rozšířené vlastnosti, na panelu příkazů vyberte Uložit a pak opakujte pokyny ke konfiguraci pro tuto stránku.
Zaškrtněte políčko Log Analytics a vyplňte požadovaná pole:
- V části Předplatné vyberte v rozevíracím seznamu předplatného Concierge.
- Pro Log Analytics vyberte pracovní prostor služby Log Analytics, který jste vytvořili dříve v tomto cvičení (asuresql-la).
Zvolte Uložit.
Zpracování konfigurace může trvat několik minut.
Teď jste povolili auditování pro účet úložiště a pracovní prostor Služby Azure Log Analytics. Možnostem auditování Azure SQL se budeme později věnovat podrobněji. Uvidíte, jak analyzovat protokoly auditu a zobrazit všechny změny provedené v celém modulu. Podíváte se také na některé další zajímavé případy použití.
Hlavní kniha pro Azure SQL Database
Funkce registru poskytuje zfalšované důkazy, kryptografický důkaz o integritě dat ve vaší databázi. Tento důkaz může zjednodušit proces auditování.
Hlavní kniha pomáhá chránit data před jakýmkoli útočníkem nebo vysoce privilegovaným uživatelem, včetně správců databází (DBA), správců systému a správců cloudu. Stejně jako u tradičního registru zachová tato funkce historická data. Když transakce v tabulce registru upraví data, událost je kryptograficky SHA-256 hashována pomocí datové struktury Merkle tree, která vytvoří kořenovou hodnotu hash představující všechny řádky v transakci. Transakce, které databázové procesy jsou pak také SHA-256 hashovány společně prostřednictvím datové struktury Merkle tree. Výsledkem je kořenová hodnota hash, která tvoří blok. Blok se pak hashuje SHA-256 prostřednictvím kořenové hodnoty hash bloku spolu s kořenovou hodnotou hash předchozího bloku jako vstup do funkce hash. Toto zatřiďování tvoří blockchain. Pokud se v databázi aktualizuje řádek, zachová se její předchozí hodnota a bude chráněná v tabulce historie. Hlavní kniha poskytuje kroniku všech změn provedených v databázi v průběhu času.
Funkce registru se zavádí do tabulek ve dvou formách:
- Aktualizovatelné tabulky registru, které umožňují aktualizovat a odstranit řádky v tabulkách
- Tabulky registru jen pro připojení, které umožňují vložení pouze do tabulek
Aktualizovatelné tabulky registru i tabulky registru jen pro připojení poskytují možnosti manipulace a digitální forenzní analýzy.
Cvičení s využitím registru pro Azure SQL Database
V cvičení pro vytvoření azure SQL Database jsme přidali databázi s názvem myLedgerDatabase
a vytvořili tabulku s názvem Account.Balance
. V tomto cvičení budeme vkládat data, aktualizovat data a dotazovat se na zobrazení tabulky historie a registru, abychom viděli sledování, které probíhá, a relaci mezi tabulkami.
Otevřete SSMS a připojte se k logickému serveru Azure SQL Database.
Klikněte pravým tlačítkem myši na
myLedgerDatabase
databázi a pak vyberte Nový dotaz.Vložte jméno
Nick Jones
jako nový zákazník s počátečním zůstatkem 50 USD.INSERT INTO [Account].[Balance] VALUES (1, 'Jones', 'Nick', 50);
Vložte jména
John Smith
,Joe Smith
aMary Michaels
jako nové zákazníky s počátečními zůstatky 500 USD, 30 USD a 200 USD.INSERT INTO [Account].[Balance] VALUES (2, 'Smith', 'John', 500), (3, 'Smith', 'Joe', 30), (4, 'Michaels', 'Mary', 200);
[Account].[Balance]
Zobrazte aktualizovatelnou tabulku registru a zadejte sloupce GENERATED ALWAYS přidané do tabulky. Vyberte Spustit a spusťte dotaz.SELECT [CustomerID] ,[LastName] ,[FirstName] ,[Balance] ,[ledger_start_transaction_id] ,[ledger_end_transaction_id] ,[ledger_start_sequence_number] ,[ledger_end_sequence_number] FROM [Account].[Balance];
V okně výsledků se nejprve zobrazí hodnoty vložené příkazy T-SQL spolu se systémovými metadaty používanými pro účely rodokmenu dat.
- Sloupec
ledger_start_transaction_id
zaznamenává jedinečné ID transakce přidružené k transakci, která vložil data. ProtožeJohn
,Joe
aMary
byly vloženy pomocí stejné transakce, sdílejí stejné ID transakce. - Sloupec
ledger_start_sequence_number
zaznamenává pořadí, podle kterého byly hodnoty vloženy transakcí.
- Sloupec
Aktualizujte
Nick
zůstatek od50
do100
.UPDATE [Account].[Balance] SET [Balance] = 100 WHERE [CustomerID] = 1;
[Account].[Balance]
Zobrazte zobrazení registru spolu se zobrazením systému registru transakcí a identifikujte uživatele, kteří provedli změny. Vyberte Spustit a spusťte dotaz.SELECT t.[commit_time] AS [CommitTime] , t.[principal_name] AS [UserName] , l.[CustomerID] , l.[LastName] , l.[FirstName] , l.[Balance] , l.[ledger_operation_type_desc] AS Operation FROM [Account].[Balance_Ledger] l JOIN sys.database_ledger_transactions t ON t.transaction_id = l.ledger_transaction_id ORDER BY t.commit_time DESC;
Nick
Zůstatek na účtu byl úspěšně aktualizován v tabulce aktualizovatelných registrů na100
.
Zobrazení hlavní knihy ukazuje, že aktualizace tabulky registru je původníDELETE
řádek s50
. Zůstatek s odpovídajícímINSERT
novým řádkem se100
zobrazí nový zůstatek proNick
.
Sledování
Existují dva aspekty monitorování a správy zabezpečení:
- Úroveň Azure
- Úroveň databáze nebo serveru
V Azure můžete používat nástroje, jako jsou protokoly aktivit a auditování řízení přístupu na základě role.
Ve službě Azure SQL Database můžete nakonfigurovat auditování Azure SQL a použít zobrazení dynamické správy, metriky a výstrahy pro monitorování událostí souvisejících se zabezpečením. Umožňuje například sys.event_log
sledovat počet neúspěšných a úspěšných připojení a počet připojení blokovaných bránou firewall.
Microsoft doporučuje nakonfigurovat Program Microsoft Defender pro cloud, včetně nastavení upozornění pro Rozšířenou ochranu před internetovými útoky. Tyto prvky zabezpečení probereme v další části a cvičení. Nakonec můžete pomocí Programu Microsoft Defender for Cloud monitorovat, spravovat a přijímat doporučení ke všem prostředkům ve vašem majetku Azure.
Zjišťování a klasifikace dat
Služba Zjišťování a klasifikace dat tvoří nové paradigma ochrany informací pro Azure SQL Database. Služba má za cíl chránit data, a nikoli pouze databázi. Toto paradigma zahrnuje:
- Zjišťování a doporučení pro potenciálně citlivá data, která by se měla klasifikovat
- Schopnost trvale přidávat popisky do sloupců pomocí atributů metadat
- Možnost auditovat a dotazovat se na přístup k citlivým datům
Azure SQL nabízí zásady SLUŽBY SQL Information Protection i zásady Microsoft Information Protection v klasifikaci dat a na základě vašeho požadavku si můžete vybrat jednu z těchto zásad.
Zobrazení portálu je dostupné pouze pro Azure SQL, ale SQL Server podporuje podobné funkce prostřednictvím průvodce v nástroji SQL Server Management Studio.
Další informace najdete v tématu Zjišťování a klasifikace dat.
Microsoft Defender for Cloud
Microsoft Defender for Cloud je jednotný balíček pro pokročilé možnosti zabezpečení SQL. Poskytuje centrální místo pro povolování a správu těchto dvou hlavních možností:
- Posouzení ohrožení zabezpečení
- Advanced Threat Protection
Posouzení ohrožení zabezpečení
Na nejvyšší úrovni je posouzení ohrožení zabezpečení SQL skenovací službou, která poskytuje přehled o stavu zabezpečení a poskytuje kroky, které umožňují reagovat na případné obavy. Když nakonfigurujete pravidelné opakující se kontroly, povolíte této službě kontrolovat vaše databáze každých 7 dní a vyhledávat případné chyby zabezpečení. Pak můžete tyto sestavy odeslat správcům, vlastníkům předplatného nebo komukoli dalšímu, kdo potřebuje být upozorňován na změny. Aby tato služba fungovala, musíte určit účet úložiště, do kterého se budou výsledky ukládat.
Advanced Threat Protection
Advanced Threat Protection umožňuje rozpoznávat a reagovat na potenciální vyskytující se hrozby tím, že přijímá výstrahy zabezpečení týkající se neobvyklých aktivit. Advanced Threat Protection používá pokročilé technologie monitorování a strojového učení ke zjištění, jestli došlo k některým z následujících hrozeb:
- Injektáž SQL
- Zranitelnost prostřednictvím injektáže SQL
- Exfiltrace dat
- Nezabezpečená akce
- Útok hrubou silou
- Neobvyklé přihlášení klienta
V dalších dvou cvičeních se seznámíte s možnostmi a scénáři, které Microsoft Defender for Cloud a Azure SQL obecně povolí a chrání.
Zabezpečení na úrovni řádku
Zabezpečení na úrovni řádků umožňuje řídit přístup k řádkům v tabulce databáze pomocí členství ve skupině nebo kontextu provádění.
Zabezpečení na úrovni řádků (RLS) pomáhá implementovat omezení přístupu k datovým řádkům. Můžete například zajistit, aby pracovníci přistupovali pouze k těmto datovým řádkům, které jsou relevantní pro jejich oddělení. Dalším příkladem je omezení přístupu zákazníků k datům relevantním pro jejich společnost.
Logika omezení přístupu se nachází v databázové vrstvě, nikoli mimo data v jiné aplikační vrstvě. Databázový systém použije omezení přístupu při každém pokusu o přístup k datům z libovolné vrstvy. Díky tomu je systém zabezpečení spolehlivější a robustnější tím, že sníží plochu systému zabezpečení.
Zabezpečení na úrovni řádků podporuje dva typy predikátů zabezpečení.
- Predikáty filtru bezobslužně filtruje řádky dostupné pro operace čtení (SELECT, UPDATE a DELETE).
- Predikáty bloku explicitně blokují operace zápisu (PO VLOŽENÍ, PO AKTUALIZACI, PŘED AKTUALIZACÍ, PŘED ODSTRANĚNÍm), které porušují predikát.