Oefening: gegevensclassificatie, dynamische gegevensmaskering en SQL-controle

Voltooid

In deze oefening combineert u wat u in de module hebt geleerd om een scenario te doorlopen. U leert hoe u nieuwe gegevensclassificaties en dynamische gegevensmaskers toevoegt. Vervolgens ziet u verschillende methoden voor het controleren van gebruikers die proberen om kolommen te bekijken die zijn gemarkeerd voor gegevensclassificatie. In deze oefening worden verschillende concepten gecombineerd die u al hebt geleerd in de module over het beheren van beveiliging.

Gegevensclassificatie en -maskering configureren

  1. Ga in Azure Portal naar uw Azure SQL Database-exemplaar (geen logische server).

  2. Selecteer in het linkerdeelvenster Beveiliging de optie Gegevensdetectie en -classificatie.

  3. Selecteer het tabblad Classificatie en selecteer vervolgens Classificatie toevoegen.

    Screenshot of how to add a new classification.

    In een vorige oefening hebt u alle aanbevolen kolomclassificaties toegevoegd. In deze stap moet u handmatig een mogelijk gevoelige kolom toevoegen aan de lijst met geclassificeerde kolommen.

  4. In de tabel SalesLT Customer zijn gegevensdetectie en -classificatie geïdentificeerd FirstName en LastName geclassificeerd, maar niet MiddleName. Gebruik de vervolgkeuzelijsten om deze nu toe te voegen en selecteer vervolgens Classificatie toevoegen.

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

  5. Selecteer Opslaan.

  6. Controleer of de classificatie is toegevoegd door het tabblad Overzicht te bekijken en te bevestigen dat MiddleName deze nu wordt weergegeven in de lijst met geclassificeerde kolommen onder het SalesLT-schema.

  7. Selecteer Overzicht in het deelvenster aan de linkerkant om terug te gaan naar het overzicht van uw database.

    Dynamische gegevensmaskering (DDM) is beschikbaar in zowel Azure SQL als SQL Server. DDM beperkt het weergeven van gegevens door gevoelige gegevens te maskeren voor niet-gemachtigde gebruikers op het SQL Server-niveau in plaats van het toepassingsniveau waar dit type regels moet worden gecodeerd. Azure SQL doet u suggesties voor welke items u moet maskeren. U kunt maskering ook handmatig toevoegen.

    In de volgende stappen maskert u de FirstNamekolommen en MiddleNameLastName kolommen die u in de vorige stap hebt gecontroleerd.

  8. Ga in Azure Portal naar uw Azure SQL Database. Selecteer in het linkerdeelvenster onder Beveiliging dynamische gegevensmaskering en selecteer vervolgens Masker toevoegen.

  9. Selecteer in de vervolgkeuzelijsten het SalesLT-schema, de tabel Klant en de kolom FirstName. U kunt de opties voor maskering bekijken, maar de standaardoptie is prima voor dit scenario. Selecteer Toevoegen om de maskeringsregel toe te voegen.

    Screenshot of how to add First Name mask.

  10. Herhaal de vorige stappen voor zowel MiddleName als LastName in die tabel.

    U moet nu drie maskeringsregels hebben, vergelijkbaar met wat hier wordt weergegeven:

    Screenshot of how to review all masking rules.

  11. Selecteer Opslaan.

  12. Selecteer Overzicht in het deelvenster aan de linkerkant om terug te gaan naar het overzicht van uw database.

Gegevens ophalen die zijn geclassificeerd en gemaskeerd

Vervolgens simuleert u iemand die een query uitvoert op de geclassificeerde kolommen en verkent u dynamische gegevensmaskering in actie.

  1. Ga naar SQL Server Management Studio (SSMS),

  2. Als u een nieuwe query wilt maken in uw AdventureWorks-database, klikt u met de rechtermuisknop op de database en selecteert u Vervolgens Nieuwe query.

  3. Voer de volgende query uit om de geclassificeerde gegevens te retourneren en, in sommige gevallen, de kolommen die zijn gemarkeerd voor gemaskeerde gegevens. Selecteer Uitvoeren om de query uit te voeren.

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

    Als resultaat moeten nu de eerste tien namen worden weergegeven, zonder maskering. Waarom? Omdat u de beheerder bent voor deze logische server van Azure SQL Database.

    Screenshot of SQL query results with no mask.

  4. In de volgende query maakt u een nieuwe gebruiker en voert u de voorgaande query uit als die gebruiker. U gebruikt EXECUTE AS ook om Bob te imiteren. Wanneer een EXECUTE AS instructie wordt uitgevoerd, wordt de uitvoeringscontext van de sessie overgeschakeld naar de aanmelding of gebruiker. Dit betekent dat de machtigingen worden gecontroleerd op basis van de aanmelding of gebruiker in plaats van de persoon die de EXECUTE AS opdracht uitvoert (in dit geval u). REVERT wordt vervolgens gebruikt om te stoppen met het imiteren van de aanmelding of gebruiker.

    U herkent wellicht de eerste paar onderdelen van de opdrachten die volgen, omdat ze een herhaling zijn van een eerdere oefening. Maak een nieuwe query met de volgende opdrachten en selecteer Vervolgens Uitvoeren om de query uit te voeren en de resultaten te bekijken.

    -- 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;
    

    In het resultaat worden nu de eerste 10 namen weergegeven, maar met maskering toegepast. Bob heeft geen toegang tot de niet-gemaskeerde versie van deze gegevens.

    Screenshot of SQL query results with mask.

    Wat gebeurt er als Bob, om een bepaalde reden, toegang moet hebben tot de namen en toestemming krijgt?

    U kunt van maskering uitgesloten gebruikers bijwerken in de Azure-portal door naar het deelvenster Dynamische gegevensmaskering onder Beveiliging te gaan, maar u kunt dit ook doen met behulp van T-SQL.

  5. Klik met de rechtermuisknop op de AdventureWorks-database en selecteer Nieuwe query en voer vervolgens de volgende query in om Bob de namen te laten opvragen zonder maskering. Selecteer Uitvoeren om de query uit te voeren.

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

    Uw resultaten moeten de volledige namen bevatten.

    Screenshot of SQL query results with no mask.

  6. U kunt ook de ontmaskeringsbevoegdheden van een gebruiker intrekken en deze actie bevestigen door de volgende T-SQL-opdrachten uit te voeren in een nieuwe query:

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

    De resultaten moeten de gemaskeerde namen bevatten.

    Screenshot of SQL query results with mask.

Auditlogboeken bekijken in SSMS

Als beheerder wilt u misschien controleren wie toegang heeft tot de databases en met name de geclassificeerde gegevens. Hierna kunt u de auditbestanden bekijken die naar de Azure Blob-opslag worden verzonden. Het eerste wat u moet doen is de auditbestanden samenvoegen, als de logboeken uit meerdere bestanden bestaan. U kunt dit als volgt doen vanuit SSMS:

  1. Selecteer Bestand>Openen>Auditbestanden samenvoegen.

    Screenshot of how to open audit files.

  2. Selecteer Toevoegen.

    Screenshot of how to add a new file.

  3. Selecteer Toevoegen in Azure Blob Storage en selecteer vervolgens Verbinding maken.

    Screenshot of how to add from Azure Blob storage.

  4. Meld u aan bij Azure met het account dat u voor deze module gebruikt.

    Screenshot of how to sign in to Azure.

  5. Selecteer het abonnement, het opslagaccount en de blob-container waarin de auditlogboeken worden opgeslagen. Het opslagaccount moet beginnen met sql. De container wordt sqldbauditlogs genoemd. Als er geen container met die naam is, hebt u een ander opslagaccount gemaakt voor controle; gebruik dat in plaats daarvan.

  6. Selecteer uw logische Azure SQL Database-server en uw AdventureWorks database. Zorg ervoor dat de From-tijd eerder is dan toen u de oefeningen hebt gestart. Selecteer OK.

  7. In het bevestigingsvenster kunt u zien hoeveel bestanden er worden gedownload en samengevoegd. Selecteer OK.

  8. Controleer de bestanden en selecteer vervolgens NOG één keer OK .

    Alle auditlogboeken worden nu weergegeven. Zoek naar waar u het maskeren aan het testen was met Bob. Het weergeven van de lijst zou ergens onderaan moeten staan.

  9. Selecteer de instructie en controleer vervolgens de informatie in het detailvenster. U kunt bijvoorbeeld voor een van de query's waar Bob geclassificeerde gegevens wil weergeven, onder het veld data_sensitivity_information de geclassificeerde gegevens bekijken.

  10. Dubbelklik op de waarde van data_sensitivity_information in het deelvenster Details. Er wordt een pop-upvenster weergegeven waarin u de gegevens gemakkelijker kunt lezen.

    Hier volgt een voorbeeld van wat u kunt zien onder 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>
    

    Vervolgens kunt u dit samengevoegde bestand exporteren naar een XEL-bestand, een CSV-bestand of een tabel voor verdere analyse. U kunt ook een query uitvoeren op de Extended Events-bestanden met behulp van Azure PowerShell.

Auditlogboeken bekijken in de Azure Portal

Het analyseren van uw auditlogboeken is afhankelijk van uw voorkeur. In deze sectie kunt u een query uitvoeren op beveiligingslogboeken in de Azure Portal met Log Analytics.

  1. Ga in Azure Portal naar uw AdventureWorks database. Selecteer Controle in het linkerdeelvenster onder Beveiliging en selecteer vervolgens de knop Auditlogboeken weergeven op de taakbalk.

    U zou nu een query van uw gebeurtenisrecords moeten kunnen zien, opties voor uitvoering in Power Query-editor (T-SQL-query's uitvoeren via de portal), opties voor Log Analytics, Dashboard weergeven en meer.

    Screenshot of how to view audit records.

    U kunt gerust een kijkje nemen om te begrijpen wat een aantal van de opties zijn.

  2. Selecteer Log Analytics. Mogelijk moet u Vernieuwen selecteren om toegang te krijgen tot de knop Log Analytics. Als u een Aan de slag scherm ziet, selecteert u OK. U wordt naar een query-editor gestuurd, maar dit is geen T-SQL-editor. In deze weergave kunt u query's uitvoeren op logboeken met behulp van de querytaal KQL (Kusto Query Language), die SQL-professionals gemakkelijk kunnen gebruiken en begrijpen.

    Met de standaardquery wordt een query uitgevoerd op de categorie SQLSecurityAuditEvents. Hoewel u deze categorie nu kunt gebruiken om beveiligingsgerelateerde incidenten weer te geven, kan dit hulpprogramma ook worden gebruikt voor het opvragen van andere Azure-logboeken en -categorieën in Log Analytics. Voor deze stap kunt u zoeken naar de instructies waar Bob toegang probeerde te krijgen tot gevoelige informatie. Als u dezelfde informatie wilt ophalen die u in SSMS hebt gezien, vouwt u de rijdetails uit door de > knop te selecteren.

    Het kan enkele minuten duren voordat de resultaten worden weergegeven. U kunt de query vernieuwen door nogmaals Uitvoeren te selecteren.

    In deze activiteit wordt niet verder ingegaan op KQL query's voor logboeken, maar in de eerdere referenties vindt u extra resources voor als u later meer wilt oefenen.

    In de volgende stap ziet u hoe SQL Security een dashboard heeft gebouwd op basis van Log Analytics, zodat u de logboeken en andere SQL-activiteiten kunt bewaken en controleren. Selecteer de X in het queryvenster van Log Analytics om het te sluiten en terug te gaan naar het venster Controlerecords.

  3. Selecteer Dashboard weergeven.

    Screenshot of the log analytics dashboard.

    Er wordt een overzichtsdashboard weergegeven.

  4. Selecteer Azure SQL: toegang tot gevoelige gegevens om meer details weer te geven.

    Mogelijk moet u drie tot vijf minuten wachten en Vernieuwen selecteren voordat u items ziet.

    U kunt deze gedetailleerde informatie gebruiken om erachter te komen:

    • Hoeveel query's toegang hebben tot gevoelige gegevens.
    • Welke gegevenstypen met welke gevoeligheden worden geopend.
    • Welke principals toegang hebben tot gevoelige gegevens.
    • Welke IP-adressen toegang hebben tot gevoelige gegevens.

    Bekijk hier wat beschikbaar is en hoe u het gebruik kunt controleren met dit hulpprogramma. U kunt zelfs elk van deze selecteren en de gerelateerde logboeken bekijken in Log Analytics.

  5. Wanneer u klaar bent, sluit u het deelvenster Azure SQL: toegang tot gevoelige gegevens door de X in de rechterbovenhoek te selecteren.

  6. Selecteer Azure SQL - Security Insights in het overzichtsvenster van het controledashboard.

    Dit dashboard bevat meer controle-informatie zodat u database-activiteiten beter kunt begrijpen en afwijkingen kunt herkennen. Neem een paar minuten de tijd om deze opties uitgebreid te bekijken.

Naast het weergeven van deze inzichten voor Azure SQL-services, kunt u in Azure Microsoft Defender voor Cloud gebruiken om problemen te bewaken, beheren en erop te reageren die zich voordoen in uw hele Azure-omgeving. Als u wilt bekijken wat er buiten de Azure SQL-Defender voor Cloud beschikbaar is, kunt u Microsoft Defender voor Cloud zoeken en selecteren in Azure Portal. Afhankelijk van uw abonnementsniveau hebt u mogelijk beperkt toegang.