Oefening: gegevensclassificatie, dynamische gegevensmaskering en SQL-controle
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
Ga in Azure Portal naar uw Azure SQL Database-exemplaar (geen logische server).
Selecteer in het linkerdeelvenster Beveiliging de optie Gegevensdetectie en -classificatie.
Selecteer het tabblad Classificatie en selecteer vervolgens Classificatie toevoegen.
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.
In de tabel SalesLT Customer zijn gegevensdetectie en -classificatie geïdentificeerd
FirstName
enLastName
geclassificeerd, maar nietMiddleName
. Gebruik de vervolgkeuzelijsten om deze nu toe te voegen en selecteer vervolgens Classificatie toevoegen.Selecteer Opslaan.
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.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
FirstName
kolommen enMiddleName
LastName
kolommen die u in de vorige stap hebt gecontroleerd.Ga in Azure Portal naar uw Azure SQL Database. Selecteer in het linkerdeelvenster onder Beveiliging dynamische gegevensmaskering en selecteer vervolgens Masker toevoegen.
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.
Herhaal de vorige stappen voor zowel MiddleName als LastName in die tabel.
U moet nu drie maskeringsregels hebben, vergelijkbaar met wat hier wordt weergegeven:
Selecteer Opslaan.
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.
Ga naar SQL Server Management Studio (SSMS),
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.
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.
In de volgende query maakt u een nieuwe gebruiker en voert u de voorgaande query uit als die gebruiker. U gebruikt
EXECUTE AS
ook omBob
te imiteren. Wanneer eenEXECUTE 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 deEXECUTE 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.
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.
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.
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.
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:
Selecteer Bestand>Openen>Auditbestanden samenvoegen.
Selecteer Toevoegen.
Selecteer Toevoegen in Azure Blob Storage en selecteer vervolgens Verbinding maken.
Meld u aan bij Azure met het account dat u voor deze module gebruikt.
Selecteer het abonnement, het opslagaccount en de blob-container waarin de auditlogboeken worden opgeslagen. Het opslagaccount moet beginnen met
sql
. De container wordtsqldbauditlogs
genoemd. Als er geen container met die naam is, hebt u een ander opslagaccount gemaakt voor controle; gebruik dat in plaats daarvan.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.In het bevestigingsvenster kunt u zien hoeveel bestanden er worden gedownload en samengevoegd. Selecteer OK.
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.
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.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.
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.
U kunt gerust een kijkje nemen om te begrijpen wat een aantal van de opties zijn.
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.
Selecteer Dashboard weergeven.
Er wordt een overzichtsdashboard weergegeven.
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.
Wanneer u klaar bent, sluit u het deelvenster Azure SQL: toegang tot gevoelige gegevens door de X in de rechterbovenhoek te selecteren.
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.