Cvičení – klasifikace dat, dynamické maskování dat a audit SQL

Dokončeno

V tomto cvičení spojíte své znalosti z tohoto modulu a projdete určitý scénář. Naučíte se, jak přidávat nové klasifikace dat a dynamické datové masky, a pak se dozvíte o různých metodách auditování uživatelů, kteří se pokoušejí zobrazit sloupce označené pro klasifikaci dat. Toto cvičení kombinuje několik konceptů, se kterými jste se už seznámili v modulu o správě zabezpečení.

Konfigurace klasifikace dat a maskování

  1. Na portálu Azure Portal přejděte do instance Azure SQL Database (ne na logický server).

  2. V levém podokně v části Zabezpečení vyberte Zjišťování a klasifikace dat.

  3. Vyberte kartu Klasifikace a pak vyberte Přidat klasifikaci.

    Screenshot of how to add a new classification.

    V předchozím cvičení jste přidali všechny doporučené klasifikace sloupců. V tomto kroku ručně přidáte potenciálně citlivý sloupec do seznamu klasifikovaných sloupců.

  4. V tabulce SalesLT Customer je identifikováno FirstName zjišťování a LastName klasifikace dat, ale nikoli MiddleName. Pomocí rozevíracích seznamů ho teď přidejte a pak vyberte Přidat klasifikaci.

    Screenshot of how to add a name-related classification for MiddleName.

  5. Zvolte Uložit.

  6. Ověřte, že se klasifikace úspěšně přidala, zobrazením karty Přehled a ověřte, že MiddleName se teď zobrazuje v seznamu klasifikovaných sloupců ve schématu SalesLT.

  7. V levém podokně vyberte Přehled a přejděte zpět na přehled vaší databáze.

    Dynamické maskování dat databáze SQL (DDM) je k dispozici ve službách Azure SQL i na SQL Serveru. DDM omezuje zveřejňování dat maskováním citlivých dat pro neoprávněné uživatele na úrovni SQL Serveru a nikoli na úrovni aplikace, kde byste tyto typy pravidel museli kódovat. Azure SQL vám doporučí položky, které byste měli maskovat. Případně můžete masky přidat ručně.

    V dalších krocích zamaskujete FirstNamesloupce a sloupceMiddleNameLastName, které jste si prostudovali v předchozím kroku.

  8. Na webu Azure Portal přejděte do služby Azure SQL Database. V levém podokně v části Zabezpečení vyberte Dynamické maskování dat a pak vyberte Přidat masku.

  9. V rozevíracíchch Můžete zkontrolovat možnosti maskování, ale pro tento scénář je vhodná výchozí hodnota. Výběrem možnosti Přidat přidejte pravidlo maskování.

    Screenshot of how to add First Name mask.

  10. Předchozí kroky zopakujte pro sloupec MiddleName i pro sloupec LastName v této tabulce.

    Teď máte tři pravidla maskování podobná těm, která jsou tady uvedená:

    Screenshot of how to review all masking rules.

  11. Zvolte Uložit.

  12. V levém podokně vyberte Přehled a přejděte zpět na přehled vaší databáze.

Načtení klasifikovaných a maskovaných dat

Dále budete simulovat někoho, kdo se dotazuje na klasifikované sloupce, a prozkoumáte dynamické maskování dat v akci.

  1. Přejděte do SQL Server Management Studia.

  2. Chcete-li vytvořit nový dotaz v databázi AdventureWorks, klikněte pravým tlačítkem myši na databázi a pak vyberte Nový dotaz.

  3. Spusťte následující dotaz, který vrátí klasifikovaná data a v některých případech sloupce označené pro maskovaná data. Vyberte Spustit a spusťte dotaz.

    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    

    Výsledek by měl zobrazit prvních 10 jmen bez použitého maskování. Proč? Protože jste správcem tohoto logického serveru služby Azure SQL Database.

    Screenshot of SQL query results with no mask.

  4. V následujícím dotazu vytvoříte nového uživatele a spustíte předchozí dotaz jako tento uživatel. Použijete také příkaz EXECUTE AS pro zosobnění uživatele Bob. EXECUTE AS Při spuštění příkazu se kontext spuštění relace přepne na přihlašovací jméno nebo uživatele. To znamená, že oprávnění se kontrolují proti přihlášení nebo uživateli místo osoby, která příkaz spouští EXECUTE AS (v tomto případě vy). REVERT se pak použije k zastavení zosobnění přihlášení nebo uživatele.

    Pravděpodobně poznáte několik prvních částí následujících příkazů, protože se opakují z předchozího cvičení. Vytvořte nový dotaz s následujícími příkazy a pak výběrem příkazu Spustit spusťte dotaz a prohlédněte si výsledky.

    -- Create a new SQL user and give them a password
    CREATE USER Bob WITH PASSWORD = 'c0mpl3xPassword!';
    
    -- Until you run the following two lines, Bob has no access to read or write data
    ALTER ROLE db_datareader ADD MEMBER Bob;
    ALTER ROLE db_datawriter ADD MEMBER Bob;
    
    -- Execute as our new, low-privilege user, Bob
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;
    

    Ve výsledku by se teď mělo objevit prvních 10 jmen, avšak s použitým maskováním. Bobovi nebyl udělen přístup k nemaskované podobě těchto dat.

    Screenshot of SQL query results with mask.

    Co když Bob z nějakého důvodu potřebuje mít přístup k těmto jménům a získá k tomu oprávnění?

    Uživatele vyloučené z maskování můžete aktualizovat na portále Azure Portal (přejdete do podokna Dynamické maskování dat v části Zabezpečení), ale můžete to provést také pomocí T-SQL.

  5. Klikněte pravým tlačítkem myši na databázi AdventureWorks a vyberte Nový dotaz a pak zadejte následující dotaz, který Bobovi umožní dotazovat se na výsledky názvů bez maskování. Vyberte Spustit a spusťte dotaz.

    GRANT UNMASK TO Bob;  
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;  
    

    Vaše výsledky by měly obsahovat celá jména:

    Screenshot of SQL query results with no mask.

  6. Oprávnění uživatele můžete zrušit také tak, že v novém dotazu spustíte následující příkazy T-SQL a potvrdíte tuto akci:

    -- Remove unmasking privilege
    REVOKE UNMASK TO Bob;  
    
    -- Execute as Bob
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;  
    

    Vaše výsledky by měly obsahovat maskovaná jména.

    Screenshot of SQL query results with mask.

Kontrola protokolů auditu v nástroji SSMS

Jako správce budete pravděpodobně chtít kontrolovat a auditovat, kdo přistupuje k databázím a zvláště ke klasifikovaným datům. Dále se můžete podívat na soubory auditu, které se odesílají do úložiště Azure Blob Storage. První věc, kterou musíte udělat, je sloučit soubory auditu, pokud jsou protokoly ve více souborech. To můžete provést v SQL Server Management Studiu pomocí následujícího postupu:

  1. Vyberte File (Soubor)>Open (Otevřít)>Merge Audit Files (Sloučit soubory auditu).

    Screenshot of how to open audit files.

  2. Vyberte Přidat.

    Screenshot of how to add a new file.

  3. Vyberte Přidat ze služby Azure Blob Storage a pak vyberte Připojení.

    Screenshot of how to add from Azure Blob storage.

  4. Přihlaste se k Azure pomocí účtu, který používáte pro tento modul.

    Screenshot of how to sign in to Azure.

  5. Vyberte předplatné, účet úložiště a kontejner objektů blob, který jste nakonfigurovali jako umístění pro protokoly auditu. Účet úložiště by měl začínat znaky sql. Kontejner bude mít název sqldbauditlogs. Pokud neexistuje žádný kontejner s tímto názvem, vytvořili jste pro auditování jiný účet úložiště; použijte místo toho.

  6. Vyberte logický server Azure SQL Database a vaši AdventureWorks databázi. Ujistěte se, že čas od času je dřívější než při spuštění cvičení. Vyberte OK.

  7. Potvrzovací okno vás bude informovat, kolik souborů se stahuje a slučuje. Vyberte OK.

  8. Zkontrolujte soubory a pak vyberte OK naposledy.

    Nyní se zobrazí všechny protokoly auditu. Hledejte část, kde jste testovali maskování pro uživatele Boba. Výpis by měl být poblíž dolního okraje.

  9. Vyberte příkaz a zkontrolujte informace v podokně podrobností. Například pro jeden z dotazů, kde se Bob se pokouší zobrazit klasifikovaná data, můžete v poli data_sensitivity_information vidět, která data jsou klasifikovaná.

  10. V podokně Details (Podrobnosti) poklikejte na hodnotu data_sensitivity_information. Otevře se automaticky otevírané okno, ve kterém můžete data snadněji číst.

    Tady je příklad toho, co se může zobrazit v části data_sensitivity_information:

    <sensitivity_attributes max_rank="20" max_rank_desc="Medium"><sensitivity_attribute label="Confidential - GDPR" label_id="bf91e08c-f4f0-478a-b016-23422b2a65ff" information_type="Name" information_type_id="57845286-7598-22f5-3422-15b24aeb125e" rank="20" rank_desc="Medium"/></sensitivity_attributes>
    

    Tento sloučený soubor můžete potom exportovat do souboru XEL nebo CSV (nebo do tabulky) pro další analýzu. Můžete také provádět dotazy na soubory rozšířených událostí pomocí Azure PowerShellu.

Kontrola protokolů auditu na portále Azure Portal

Způsob analyzování protokolů auditu bude záviset na vašich preferencích. V této části se dozvíte, jak se můžete dotazovat na protokoly zabezpečení na portálu Azure Portal pomocí funkce Log Analytics.

  1. Na webu Azure Portal přejděte do databáze AdventureWorks . V levém podokně v části Zabezpečení vyberte Auditování a pak na hlavním panelu vyberte tlačítko Zobrazit protokoly auditu.

    Teď byste měli být schopni zobrazit dotaz na záznamy událostí, možnosti spuštění v Editor Power Query (spouštění dotazů T-SQL prostřednictvím portálu), možnosti pro Log Analytics, zobrazení řídicího panelu a další.

    Screenshot of how to view audit records.

    Neváhejte se podívat, abyste pochopili, jaké jsou některé z možností.

  2. Vyberte Log Analytics. Možná budete muset vybrat Aktualizovat , abyste měli přístup k tlačítku Log Analytics . Pokud se vám zobrazí obrazovka Začínáme, vyberte OK. Tím přejdete do editoru dotazů, ale nejedná se o editor T-SQL. V tomto zobrazení se můžete dotazovat na protokoly pomocí dotazovacího jazyka Kusto (KQL), který mohou odborníci v jazyce SQL snadno používat a pochopit.

    Výchozí dotaz se dotazuje na kategorii SQLSecurityAuditEvents. I když teď můžete tuto kategorii použít k zobrazení incidentů souvisejících se zabezpečením, můžete tento nástroj použít také k dotazování jiných protokolů a kategorií Azure v Log Analytics. K provedení tohoto kroku můžete vyhledat příkazy, ve kterých se Bob pokusil o přístup k citlivým informacím. Pokud chcete získat stejné informace, které jste viděli v nástroji SSMS, rozbalte podrobnosti řádku výběrem > tlačítka.

    Může trvat několik minut, než se výsledky zobrazí. Dotaz můžete aktualizovat tak, že znovu vyberete Spustit.

    Při této činnosti se nebudete podrobně věnovat dotazům na protokoly pomocí jazyka KQL, ale v předchozích odkazech existuje mnoho materiálů, které si můžete později procvičit.

    V dalším kroku se dozvíte, jak se v zabezpečení SQL vytvořil řídicí panel založený na Log Analytics, abyste mohli monitorovat a auditovat protokoly a další aktivity SQL. Pokud se chcete vrátit do podokna Záznamy auditu, zavřete okno dotazu Log Analytics vybráním X v pravém horním rohu.

  3. Vyberte Zobrazit řídicí panel.

    Screenshot of the log analytics dashboard.

    Zobrazí se celkový řídicí panel.

  4. Pokud chcete zobrazit další podrobnosti, vyberte Azure SQL – Access to Sensitive Data (Přístup k citlivým datům).

    Možná budete muset tři až pět minut počkat a vybrat Aktualizovat, aby se zobrazily položky.

    Pomocí těchto podrobných informací můžete zjistit:

    • Kolik dotazů přistupuje k citlivým datům.
    • Ke kterým typům dat a citlivým údajům uživatelé přistupují.
    • Které objekty zabezpečení přistupují k citlivým datům.
    • Které IP adresy přistupují k citlivým datům.

    Projděte si informace, které tam jsou dostupné, a jak můžete pomocí tohoto nástroje auditovat využití. Můžete dokonce vybrat každou z těchto možností a zobrazit související protokoly v Log Analytics.

  5. Až skončíte, zavřete Azure SQL – Access to Sensitive Data (Přístup k citlivým datům) tak, že v pravém horním rohu vyberete X.

  6. Zpět v podokně přehledu řídicího panelu auditování vyberte Azure SQL – Přehledy zabezpečení.

    Tento řídicí panel zobrazuje další informace o auditování, které vám pomůžou porozumět databázovým aktivitám a získat přehled o anomáliích. Věnujte několik minut tomu, že si prohlédnete možnosti, které tam jsou, a podíváte se na jejich podrobnosti.

Kromě zobrazení těchto přehledů pro služby Azure SQL umožňuje používání programu Microsoft Defender for Cloud k monitorování, správě a reagování na problémy, ke kterým dochází v rámci celého majetku Azure. Pokud se chcete podívat, co je dostupné mimo Azure SQL Defender for Cloud, můžete na webu Azure Portal vyhledat a vybrat Microsoft Defender for Cloud . Váš přístup může být omezen v závislosti na vaší úrovni předplatného.