Übung: Datenklassifizierung, dynamische Datenmaskierung und SQL-Auditing

Abgeschlossen

In dieser Übung wenden Sie Ihre Lernerfolge aus dem Modul auf ein Szenario an. Sie erfahren, wie Sie neue Datenklassifizierungen und dynamische Datenmasken hinzufügen können und lernen verschiedene Methoden für das Auditing von Benutzern kennen, die zur Datenklassifizierung markierte Spalten anzeigen möchten. In dieser Übung werden einige der Konzepte kombiniert, die Sie bereits im Modul zur Sicherheitsverwaltung kennengelernt haben.

Konfigurieren der Datenklassifizierung und -maskierung

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure SQL-Datenbank-Instanz (nicht zum logischen Server).

    Azure-Portal

  2. Wählen Sie im linken Bereich unter Sicherheit die Option Datenermittlung und -klassifizierung aus.

  3. Wählen Sie die Registerkarte Klassifizierung und dann Klassifizierung hinzufügen aus.

    Screenshot of how to add a new classification.

    In einer vorherigen Übung haben Sie alle empfohlenen Spaltenklassifizierungen hinzugefügt. In diesem Schritt fügen Sie der Liste der klassifizierten Spalten manuell eine potenziell vertrauliche Spalte hinzu.

  4. In der SalesLT-Tabelle „Customer“ hat die Datenermittlung und -klassifizierung festgestellt, dass FirstName und LastName klassifiziert wurden, MiddleName jedoch nicht. Verwenden Sie die Dropdownlisten, um sie jetzt hinzuzufügen, und wählen Sie dann Klassifizierung hinzufügen aus.

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

  5. Wählen Sie Speichern aus.

  6. Bestätigen Sie, dass die Klassifizierung erfolgreich hinzugefügt wurde, indem Sie die Registerkarte Übersicht anzeigen, und bestätigen Sie, dass MiddleName jetzt in der Liste der klassifizierten Spalten unter dem Schema SalesLT angezeigt wird.

  7. Wählen Sie im linken Bereich Übersicht aus, um zur Übersicht Ihrer Datenbank zurückzukehren.

    Die dynamische Datenmaskierung (DDM) ist sowohl in Azure SQL als auch in SQL Server verfügbar. DDM verhindert die Offenlegung vertraulicher Daten durch Maskierung vertraulicher Daten für nicht berechtigte Benutzer auf SQL Server-Ebene anstatt auf Anwendungsebene, wo Sie diese Art von Regeln codieren müssen. Azure SQL zeigt Empfehlungen an, welche Daten maskiert werden sollten. Sie können Masken jedoch auch manuell hinzufügen.

    In den nächsten Schritten maskieren Sie die Spalten FirstName, MiddleName und LastName, die Sie im vorherigen Schritt überprüft haben.

  8. Navigieren Sie im Azure-Portal zu Ihrer Azure SQL-Datenbank-Instanz. Wählen Sie im linken Bereich unter Sicherheit die Option Dynamische Datenmaskierung und dann Maske hinzufügen aus.

  9. Wählen Sie in den Dropdownlisten zuerst das Schema SalesLT, die Tabelle Customer und die Spalte FirstName aus. Sie können die Maskierungsoptionen überprüfen. Die Standardeinstellung ist für dieses Szenario jedoch geeignet. Klicken Sie auf Hinzufügen, um die Maskierungsregel hinzuzufügen.

    Screenshot of how to add First Name mask.

  10. Wiederholen Sie die vorherigen Schritte für MiddleName und LastName in dieser Tabelle.

    Sie verfügen jetzt über drei Maskierungsregeln, die den hier gezeigten ähnlich sind:

    Screenshot of how to review all masking rules.

  11. Wählen Sie Speichern aus.

  12. Wählen Sie im linken Bereich Übersicht aus, um zur Übersicht Ihrer Datenbank zurückzukehren.

Abrufen klassifizierter und maskierter Daten

Anschließend simulieren Sie eine Abfrage der klassifizierten Spalten und lernen die dynamische Datenmaskierung in Aktion kennen.

  1. Wechseln Sie zu SQL Server Management Studio (SSMS).

  2. Erstellen Sie eine neue Abfrage in der AdventureWorks-Datenbank, indem Sie mit der rechten Maustaste auf die Datenbank klicken und dann Neue Abfrage auswählen.

  3. Führen Sie die folgende Abfrage aus, um die klassifizierten Daten und in einigen Fällen die für maskierte Daten gekennzeichneten Spalten zurückzugeben. Wählen Sie Ausführen aus, um die Abfrage durchzuführen.

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

    Ihr Ergebnis sollte die ersten 10 Namen ohne Maskierung anzeigen. Warum? Da Sie der Administrator für diesen logischen Azure SQL-Datenbank-Server sind.

    Screenshot of SQL query results with no mask.

  4. In der folgenden Abfrage erstellen Sie einen neuen Benutzer und führen die vorherige Abfrage als dieser Benutzer aus. Außerdem verwenden Sie EXECUTE AS, um die Identität von Bob anzunehmen. Bei Ausführung der Anweisung EXECUTE AS wird der Ausführungskontext der Sitzung auf den Anmeldenamen bzw. Benutzer umgestellt. Dies bedeutet, dass die Berechtigungen für den Anmeldenamen bzw. Benutzer statt für die Person überprüft werden, die den Befehl EXECUTE AS ausführt (in diesem Fall Sie). REVERT wird dann verwendet, damit die Identität des Anmeldenamens bzw. des Benutzers nicht mehr angenommen wird.

    Sie werden möglicherweise die ersten Teile der folgenden Befehle erkennen, da sie eine Wiederholung aus einer vorherigen Übung sind. Erstellen Sie eine neue Abfrage mit den folgenden Befehlen, und wählen Sie dann Ausführen aus, um die Abfrage auszuführen und die Ergebnisse anzuzeigen.

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

    Das Ergebnis sollte jetzt die ersten 10 Namen anzeigen, allerdings mit Maskierung. Bob wurde kein Zugriff auf die unmaskierte Form dieser Daten gewährt.

    Screenshot of SQL query results with mask.

    Was geschieht, wenn Bob aus irgendeinem Grund Zugriff auf die Namen benötigt und die Berechtigung erhält, diese abzurufen?

    Sie können ausgeschlossene Benutzer von der Maskierung im Azure-Portal aktualisieren, indem Sie zum Bereich Dynamische Datenmaskierung unter Sicherheit wechseln, dies ist aber ebenso mit T-SQL möglich.

  5. Klicken Sie mit der rechten Maustaste auf die AdventureWorks-Datenbank, und wählen Sie Neue Abfrage aus, und geben Sie dann die folgende Abfrage ein, damit Bob die Namensergebnisse ohne Maskierung abfragen kann. Wählen Sie Ausführen aus, um die Abfrage durchzuführen.

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

    Die Ergebnisse sollten die vollständigen Namen enthalten.

    Screenshot of SQL query results with no mask.

  6. Sie können einem Benutzer auch die Berechtigungen zur Aufhebung der Maskierung entziehen und diese Aktion bestätigen, indem Sie die folgenden T-SQL-Befehle in einer Abfrage ausführen:

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

    Die Ergebnisse sollten die maskierten Namen enthalten.

    Screenshot of SQL query results with mask.

Überprüfen von Überwachungsprotokollen in SSMS

Als Administrator müssen Sie überprüfen und überwachen, wer Zugriff auf die Datenbanken und insbesondere die klassifizierten Daten hat. Als nächstes können Sie sich die Überwachungsdateien ansehen, die an Azure Blob Storage gesendet werden. Sie müssen zunächst die Überwachungsdateien zusammenführen, falls die Protokolle mehrere Dateien umfassen. Sie können dies über SSMS erreichen, indem Sie wie folgt vorgehen:

  1. Wählen Sie Datei>Öffnen>Überwachungsdateien zusammenführen aus.

    Screenshot of how to open audit files.

  2. Klicken Sie auf Hinzufügen.

    Screenshot of how to add a new file.

  3. Wählen Sie Aus Azure Blob Storage hinzufügen und dann Verbinden aus.

    Screenshot of how to add from Azure Blob storage.

  4. Melden Sie sich mit dem Konto bei Azure an, das Sie für dieses Modul verwenden.

    Screenshot of how to sign in to Azure.

  5. Wählen Sie das Abonnement, das Speicherkonto und den Blobcontainer aus, in dem die Überwachungsprotokolle abgelegt werden sollen. Das Speicherkonto sollte mit sql beginnen. Der Container wird sqldbauditlogs genannt. Wenn es keinen Container mit diesem Namen gibt, haben Sie ein anderes Speicherkonto für die Überwachung erstellt. Verwenden Sie stattdessen dieses Konto.

  6. Wählen Sie den logischen Azure SQL-Datenbank-Server und die Datenbank AdventureWorks aus. Stellen Sie sicher, dass die Startzeit vor Ihrem Beginn der Übungen liegt. Klicken Sie auf OK.

  7. Im Bestätigungsfenster können Sie nachsehen, wie viele Dateien herunterladen und zusammengeführt werden. Klickan Sie auf OK.

  8. Überprüfen Sie die Dateien, und wählen Sie dann ein letztes Mal OK aus.

    Jetzt werden alle Überwachungsprotokolle angezeigt. Achten Sie darauf, wo Sie die Maskierung mit Bob getestet haben. Die Auflistung sollte sich am unteren Ende befinden.

  9. Wählen Sie die Anweisung aus, und überprüfen Sie dann die Informationen im Detailbereich. Beispielsweise können Sie für eine der Abfragen, in der Bob versucht, die klassifizierten Daten anzuzeigen, die klassifizierten Daten unter dem Feld data_sensitivity_information erkennen.

  10. Doppelklicken Sie auf den Wert von data_sensitivity_information im Bereich Details. Es wird ein Popupfenster geöffnet, sodass Sie die Daten leichter lesen können.

    Nachfolgend finden Sie ein Beispiel dafür, was Sie unter data_sensitivity_information sehen können:

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

    Sie können diese zusammengeführte Datei dann zur weiteren Analyse in eine XEL-Datei, eine CSV-Datei oder eine Tabelle exportieren. Sie können auch die Dateien für erweiterte Ereignisse mithilfe von Azure PowerShell abfragen.

Überprüfen der Überwachungsprotokolle im Azure-Portal

Das Analysieren der Überwachungsprotokolle hängt von Ihren Vorlieben ab. In diesem Abschnitt können Sie Sicherheitsprotokolle im Azure-Portal mit Log Analytics abfragen.

  1. Navigieren Sie im Azure-Portal zu Ihrer Datenbank AdventureWorks. Wählen Sie im linken Bereich unter Sicherheit die Option Überwachung und dann in der Taskleiste die Schaltfläche Überwachungsprotokolle anzeigen aus.

    Sie sollten jetzt in der Lage sein, eine Abfrage Ihrer Ereignisdatensätze, Optionen zur Ausführung im Abfrage-Editor ( führen Sie T-SQL-Abfragen über das Portal aus), Optionen für Log Analytics, „Dashboard anzeigen“ und mehr anzuzeigen.

    Screenshot of how to view audit records.

    Schauen Sie sich ruhig um, um zu verstehen, welche Optionen es gibt.

  2. Wählen Sie Log Analytics aus. Möglicherweise müssen Sie Aktualisieren auswählen, um auf die Schaltfläche Log Analytics zuzugreifen. Wenn die Anzeige Los geht's angezeigt wird, wählen Sie OK aus. Dies führt Sie zu einem Abfrage-Editor, aber es ist kein T-SQL-Editor. In dieser Ansicht können Sie Protokolle mithilfe der Kusto-Abfragesprache (KQL) abfragen, die für SQL-Experten konzipiert ist, damit diese sie leicht verwenden und verstehen können.

    Die Standardabfrage ist die Abfrage der Kategorie SQLSecurityAuditEvents. Obwohl Sie diese Kategorie jetzt möglicherweise zum Anzeigen sicherheitsbezogener Vorfälle verwenden, können Sie mit diesem Tool auch andere Azure-Protokolle und -Kategorien in Log Analytics abfragen. Für diesen Schritt können Sie nach den Anweisungen suchen, in denen Bob versucht hat, auf vertrauliche Informationen zuzugreifen. Erweitern Sie die Details durch Auswahl der Schaltfläche >, um dieselben Informationen zu erhalten, die in SSMS angezeigt wurden.

    Es dauert möglicherweise ein paar Minuten, bis die Ergebnisse angezeigt wird. Sie können die Abfrage aktualisieren, indem Sie noch mal auf Ausführen klicken.

    Hier wird die Abfrage von Protokollen über KQL nicht ausführlich behandelt. Wenn Sie dies jedoch später üben möchten, finden Sie oben in den Verweisen viele Ressourcen.

    Im nächsten Schritt erfahren Sie, wie die SQL-Sicherheit ein Dashboard basierend auf Log Analytics erstellt hat, damit Sie die Protokolle und andere Aktivitäten in SQL überwachen und überprüfen können. Schließen Sie das Log Analytics-Abfragefenster, um zum Bereich Überwachungsdatensätze zurückzukehren, indem Sie oben rechts X auswählen.

  3. Wählen Sie Dashboard anzeigen aus.

    Screenshot of the log analytics dashboard.

    Es wird ein Übersichtsdashboard angezeigt.

  4. Wählen Sie Azure SQL – Zugriff auf sensible Daten aus, um weitere Details anzuzeigen.

    Möglicherweise müssen Sie drei bis fünf Minuten warten und Aktualisieren auswählen, damit die Elemente hier angezeigt werden.

    Sie können diese ausführlichen Informationen verwenden, um Folgendes zu ermitteln:

    • Anzahl der Abfragen, die auf sensible Daten zugreifen
    • Die Typen und sensiblen Daten, auf die zugegriffen wird
    • Welche Prinzipale auf sensible Daten zugreifen
    • Welche IP-Adressen auf sensible Daten zugreifen

    Sehen Sie sich die Optionen an, und überprüfen Sie, wie Sie die Nutzung mit diesem Tool überwachen können. Sie können sogar einzelne Optionen auswählen und so die zugehörigen Protokolle in Log Analytics einsehen.

  5. Wenn Sie fertig sind, schließen Sie den Bereich Azure SQL – Zugriff auf sensible Daten, indem Sie oben rechts den Bereich X auswählen.

  6. Im Übersichtsbereich des Überprüfungsdashboards wählen Sie anschließend Azure SQL – Einblicke in die Sicherheit aus.

    Dieses Dashboard zeigt weitere Überwachungsinformationen an, die Ihnen helfen, die Datenbankaktivität zu verstehen und Einblicke in Anomalien zu erhalten. Nehmen Sie sich ein paar Minuten Zeig, um sich die verfügbaren Optionen anzusehen und deren Details zu überprüfen.

Zusätzlich zur Anzeige dieser Erkenntnisse für Azure SQL-Dienste können Sie in Azure auch Defender für Cloud nutzen, um Probleme, die in Ihrer Azure-Umgebung auftreten, zu überwachen, zu verwalten und darauf zu reagieren. Wenn Sie sich über die Möglichkeiten informieren möchten, die außerhalb von Azure SQL Defender for Cloud verfügbar sind, können Sie im Azure-Portal nach Microsoft Defender for Cloud suchen und diese Option dann auswählen. Ihr Zugriff kann je nach Ihrer Abonnementebene eingeschränkt sein.