Oefening: gegevensclassificatie, dynamische gegevensmaskering en SQL-controle

Voltooid

In deze oefening combineert u uw lessen uit de module 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 kolommen proberen 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 onder Securityde optie Data Discovery & Classification.

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

    Schermopname van het toevoegen van een nieuwe classificatie.

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

  4. In de tabel SalesLT Customer heeft Data Discovery & Classification FirstName en LastName geïdentificeerd die moeten worden geclassificeerd, maar niet MiddleName. Gebruik de vervolgkeuzelijsten om deze nu toe te voegen en selecteer vervolgens Classificatie toevoegen.

    Schermopname van het toevoegen van een naamgerelateerde classificatie voor MiddleName.

  5. Selecteer opslaan.

  6. Controleer of de classificatie is toegevoegd door het tabblad Overzicht weer te geven en controleer of MiddleName nu wordt weergegeven in de lijst met geclassificeerde kolommen onder het SalesLT-schema.

  7. Selecteer in het linkerdeelvenster Overzicht om terug te gaan naar het overzicht van uw database.

    DDM (Dynamic Data Masking) is beschikbaar in zowel Azure SQL als SQL Server. DDM beperkt de blootstelling van gegevens door gevoelige gegevens te maskeren voor niet-gemachtigde gebruikers op SQL Server-niveau in plaats van op toepassingsniveau waar u deze typen regels moet coderen. Azure SQL raadt items aan die u moet maskeren of u kunt maskers handmatig toevoegen.

    In de volgende stappen maskert u de FirstName, MiddleNameen LastName kolommen die u in de vorige stap hebt bekeken.

  8. Ga in Azure Portal naar uw Azure SQL Database. Selecteer in het linkerdeelvenster onder Securityde optie Dynamische gegevensmaskeringen selecteer vervolgens Masker toevoegen.

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

    Schermopname van hoe je een masker voor voornamen kunt toevoegen.

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

    U hebt nu drie maskeringsregels die vergelijkbaar zijn met de regels die hier worden weergegeven:

    schermopname van het controleren van alle maskeringsregels.

  11. Selecteer opslaan.

  12. Selecteer in het linkerdeelvenster Overzicht 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 en in sommige gevallen kolommen te retourneren die zijn gemarkeerd voor gemaskeerde gegevens. Selecteer uitvoeren om de query uit te voeren.

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

    Uw resultaat moet de eerste 10 namen weergeven, zonder maskering toegepast. Waarom? Omdat u de beheerder bent voor deze logische Azure SQL Database-server.

    Schermopname van SQL-queryresultaten zonder masker.

  4. In de volgende query maakt u een nieuwe gebruiker en voert u de voorgaande query uit als die gebruiker. U gebruikt ook EXECUTE AS om Bobte 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 opdracht EXECUTE AS uitvoert (in dit geval u). REVERT wordt vervolgens gebruikt om te stoppen met het imiteren van de aanmelding of gebruiker.

    Mogelijk herkent u de eerste paar onderdelen van de opdrachten die volgen, omdat ze een herhaling zijn uit een vorige 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 toegepaste maskering. Bob heeft geen toegang gekregen tot de ontmaskerde vorm van deze gegevens.

    schermopname van SQL-queryresultaten met masker.

    Wat gebeurt er als Bob om een of andere reden toegang nodig heeft tot de namen en toestemming krijgt om deze te hebben?

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

  5. Klik met de rechtermuisknop op de AdventureWorks-database en selecteer Nieuwe queryen voer vervolgens de volgende query in om Bob de namenresultaten te laten doorzoeken 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;  
    

    De resultaten moeten de volledige namen bevatten.

    Schermopname van SQL-queryresultaten zonder masker.

  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.

    schermopname van SQL-queryresultaten met masker.

Auditlogboeken controleren in SSMS

Als beheerder wilt u mogelijk controleren wie toegang heeft tot de databases, met name de geclassificeerde gegevens. Vervolgens kunt u de auditbestanden bekijken die naar Azure Blob Storage worden verzonden. Het eerste wat u moet doen, is het samenvoegen van de auditbestanden, als de logboeken meerdere bestanden omvatten. U kunt dit doen vanuit SSMS door het volgende te doen:

  1. Selecteer Bestand>Openen>Auditbestanden samenvoegen.

    schermopname van het openen van auditbestanden.

  2. Selecteer toevoegen.

    Schermopname van het toevoegen van een nieuw bestand.

  3. Selecteer Toevoegen uit Azure Blob Storageen selecteer vervolgens Verbinding maken.

    schermopname van het toevoegen vanuit Azure Blob Storage.

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

    schermopname van het aanmelden bij Azure.

  5. Selecteer het abonnement, het opslagaccount en de blobcontainer waarnaar u de auditlogs geconfigureerd heeft om uit te voeren. Het opslagaccount moet beginnen met sql. De container wordt sqldbauditlogsgenoemd. 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 begintijd tot eerder is dan de tijd waarop u de oefeningen bent gestart. Selecteer OK-.

  7. In het bevestigingsvenster ziet u hoeveel bestanden worden gedownload en samengevoegd. Selecteer OK-.

  8. Controleer de bestanden en selecteer vervolgens OK de laatste keer.

    Alle auditlogboeken worden nu weergegeven. Zoek naar waar u met maskering met Bob testte. De vermelding moet onderaan staan.

  9. Selecteer de instructie en controleer vervolgens de informatie in het detailvenster. Voor een van de query's waarin Bob bijvoorbeeld probeert geclassificeerde gegevens weer te geven, kunt u onder het data_sensitivity_information veld de geclassificeerde gegevens zien.

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

    Hier volgt een voorbeeld van wat u onder data_sensitivity_informationziet:

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

    U kunt dit samengevoegde bestand vervolgens exporteren naar een XEL-bestand, een CSV-bestand of een tabel voor aanvullende analyse. U kunt ook query's uitvoeren op de bestanden met uitgebreide gebeurtenissen met behulp van Azure PowerShell.

Auditlogboeken controleren in Azure Portal

Het analyseren van uw auditlogboeken is afhankelijk van uw voorkeur. In deze sectie wordt u blootgesteld aan het uitvoeren van query's op beveiligingslogboeken in Azure Portal met Log Analytics.

  1. Ga in Azure Portal naar uw AdventureWorks-database. Selecteer in het linkerdeelvenster onder Securityde optie Auditingen selecteer vervolgens de knop Auditlogboeken weergeven op de taakbalk.

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

    schermopname van het weergeven van controlerecords.

    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. Hiermee gaat u naar een query-editor, maar dit is geen T-SQL-editor. In deze weergave kunt u query's uitvoeren op logboeken met behulp van de Kusto Query Language (KQL), die bedoeld is voor SQL-professionals om ze eenvoudig te gebruiken en te begrijpen.

    De standaardquery voert een query uit 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 waarin 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 hier worden weergegeven. U kunt de query vernieuwen door opnieuw uit te voeren.

    In deze activiteit gaat u niet dieper in op KQL-query's op logboeken, maar er zijn veel resources in de eerdere verwijzingen 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 controleren en controleren. Om terug te keren naar het deelvenster Auditrecords, sluit u het logvenster van Log Analytics door X in de rechterbovenhoek te selecteren.

  3. Selecteer Dashboard weergeven.

    schermopname van het 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, zodat de items hier worden weergegeven.

    U kunt deze gedetailleerde informatie gebruiken om het volgende te ontdekken:

    • Hoeveel query's toegang hebben tot gevoelige gegevens.
    • Welke typen en vertrouwelijkheid van gegevens worden geopend.
    • Welke principals toegang hebben tot gevoelige gegevens.
    • Welke IP-adressen toegang hebben tot gevoelige gegevens.

    Bekijk wat hier beschikbaar is en hoe u het gebruik met dit hulpprogramma kunt controleren. 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. Terug op het overzichtsvenster van het controledashboard, selecteer Azure SQL - Security Insights.

    Dit dashboard geeft meer controle-informatie weer om inzicht te krijgen in databaseactiviteit en inzicht te krijgen in afwijkingen. Besteed enkele minuten aan het bekijken en inzoomen op de opties hier.

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 Azure SQL Defender for Cloud beschikbaar is, kunt u zoeken naar en Microsoft Defender voor Cloud- selecteren in Azure Portal. Uw toegang is mogelijk beperkt, afhankelijk van uw abonnementsniveau.