Implementierung der Auditierung

Abgeschlossen

Die Überwachung bietet Einblicke in Datenbankaktivitäten, die Ihnen helfen, Sicherheitsbedrohungen zu erkennen, Compliance zu verfolgen und Vorfälle zu untersuchen. Durch die Aufzeichnung, wer auf welche Daten und wann zugegriffen hat, erstellt die Überwachung einen Verantwortlichkeitspfad, der sowohl Sicherheitsüberwachungs- als auch behördliche Anforderungen unterstützt.

SQL Server-, Azure SQL- und SQL-Datenbanken in Microsoft Fabric bieten integrierte Überwachungsfunktionen, die Datenbankereignisse erfassen, ohne dass Anwendungsänderungen erforderlich sind. Wenn Sie wissen, wie Sie die Überwachung konfigurieren und verwalten können, können Sie die entsprechende Aufsicht über Ihre Datenbankumgebungen behalten.

Verstehen von Prüfungsoptionen

Die Überwachung erfasst Datenbankereignisse und schreibt sie in ein Überwachungsprotokoll. Die ereignisse, die Sie überwachen, wo Sie die Protokolle speichern und wie Sie sie analysieren, hängen von Ihren Sicherheitsanforderungen und der Infrastruktur ab.

Diagramm, in dem Azure SQL-Datenbank Überwachungsprotokolle an drei Ziele gesendet werden: Azure Blob Storage für langfristige Aufbewahrung, Log Analytics-Arbeitsbereich für KQL-Abfragen und Event Hubs für Echtzeitstreaming.

Die SQL Server-Überwachung verwendet die Infrastruktur für erweiterte Ereignisse zum Aufzeichnen von Aktivitäten. Sie können Überwachungsdatensätze in Dateien, das Windows-Sicherheitsprotokoll oder das Windows-Anwendungsprotokoll schreiben. Diese Flexibilität ermöglicht ihnen die Integration in vorhandene Protokollverwaltungssysteme.

Überwachung von Azure SQL-Datenbank schreibt zu Azure Blob Storage, Log Analytics oder Event Hubs. Der verwaltete Dienst behandelt die Infrastruktur, sodass Sie sich auf die Entscheidung konzentrieren können, was überwacht werden soll, anstatt Speicher zu verwalten.

SQL-Datenbanken in Microsoft Fabric verwenden die Aktivitätsprotokollierung von Fabric und Microsoft Purview für Überwachungsdaten. Diese Integration in Microsoft Purview bietet Ihnen eine einheitliche Überwachung in Ihrem gesamten Datenbestand.

Konfigurieren der SQL Server-Überwachung

Die SQL Server-Überwachung erfordert das Erstellen eines Serverüberwachungsobjekts, das definiert, wo Überwachungsdatensätze geschrieben werden sollen, und anschließend Überwachungsspezifikationen erstellen, die definieren, was erfasst werden soll.

Erstellen Sie zunächst einen Server-Audit, der in eine Datei schreibt.

CREATE SERVER AUDIT SecurityAudit
TO FILE (FILEPATH = 'C:\AuditLogs\', MAXSIZE = 100 MB, MAX_ROLLOVER_FILES = 10)
WITH (QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE);

Der Parameter QUEUE_DELAY gibt an, wie viele Millisekunden Ereignisse gepuffert werden sollen, bevor sie geschrieben werden. Niedrigere Werte bieten mehr Echtzeitprotokollierung, können sich jedoch auf die Leistung auswirken. Die ON_FAILURE Einstellung bestimmt das Verhalten, wenn die Auditprotokollierung fehlschlägt. Verwenden Sie SHUTDOWN für kritische Compliance-Szenarien, in denen fehlende Audit-Protokolle inakzeptabel sind.

Aktivieren Sie jetzt die Überwachung:

ALTER SERVER AUDIT SecurityAudit WITH (STATE = ON);

Erstellen Sie als Nächstes eine Serverüberwachungsspezifikation zum Erfassen von Ereignissen auf Serverebene:

CREATE SERVER AUDIT SPECIFICATION ServerAuditSpec
FOR SERVER AUDIT SecurityAudit
ADD (FAILED_LOGIN_GROUP),
ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (SERVER_PERMISSION_CHANGE_GROUP),
ADD (DATABASE_PERMISSION_CHANGE_GROUP)
WITH (STATE = ON);

Erstellen Sie für Ereignisse auf Datenbankebene eine Datenbanküberwachungsspezifikation:

USE MyDatabase;
GO

CREATE DATABASE AUDIT SPECIFICATION DatabaseAuditSpec
FOR SERVER AUDIT SecurityAudit
ADD (SELECT, INSERT, UPDATE, DELETE ON dbo.SensitiveData BY public),
ADD (EXECUTE ON SCHEMA::dbo BY public),
ADD (DATABASE_ROLE_MEMBER_CHANGE_GROUP)
WITH (STATE = ON);

Diese Spezifikation überprüft den gesamten Datenzugriff auf die SensitiveData Tabelle, gespeicherte Prozedurausführungen und Rollenmitgliedschaftsänderungen.

Konfigurieren der Azure SQL-Überwachung

Die Azure SQL-Datenbanküberwachung wird auf Server- oder Datenbankebene konfiguriert. Richtlinien auf Serverebene gelten für alle Datenbanken auf dem logischen Server.

Sie können die Überwachung im Azure-Portal aktivieren oder T-SQL verwenden:

-- Enable auditing to blob storage (configured in Azure portal)
ALTER DATABASE AUDIT SPECIFICATION AzureAuditSpec
ADD (SELECT, INSERT, UPDATE, DELETE ON DATABASE::MyDatabase BY public)
WITH (STATE = ON);

Um eine genauere Kontrolle zu ermöglichen, konfigurieren Sie die Überwachung über Azure-Richtlinien- oder ARM-Vorlagen. Hier ist ein Beispiel, das das Speicherkonto, den Aufbewahrungszeitraum und die Prüfungsaktionsgruppen angibt.

{
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://myauditlogs.blob.core.windows.net",
    "retentionDays": 90,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}

Hinweis

Die Azure SQL-Überwachung in Log Analytics ermöglicht leistungsstarke Abfrage- und Warnungsfunktionen mithilfe der Kusto Query Language (KQL). Diese Integration vereinfacht die Sicherheitsüberwachung und Compliance-Berichterstellung.

Auswählen von Überwachungsaktionen

Wählen Sie Überwachungsaktionen basierend auf Ihren Sicherheits- und Complianceanforderungen aus. Zu den allgemeinen Aktionsgruppen gehören:

Authentifizierungsereignisse:

  • SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP - Erfolgreiche Anmeldungen
  • FAILED_DATABASE_AUTHENTICATION_GROUP – Fehlgeschlagene Anmeldeversuche

Berechtigungsänderungen:

  • DATABASE_PERMISSION_CHANGE_GROUP - Gewähren, Widerrufen, Verweigern von Operationen
  • DATABASE_ROLE_MEMBER_CHANGE_GROUP – Änderungen der Rollenmitgliedschaft
  • DATABASE_PRINCIPAL_CHANGE_GROUP – Benutzererstellung und -änderung

Datenzugriff:

  • BATCH_COMPLETED_GROUP - Alle abgeschlossenen Batches (großes Volumen)
  • SELECT für bestimmte Objekte – Gezielte Überwachung des Lesezugriffs
  • INSERT, UPDATE, DELETE auf bestimmten Objekten – Datenänderungsnachverfolgung

Schemaänderungen:

  • SCHEMA_OBJECT_CHANGE_GROUP - Tabellen- und Objektänderungen
  • DATABASE_OBJECT_CHANGE_GROUP - DDL-Anweisungen

Von Bedeutung

Beginnen Sie mit einer fokussierten Gruppe von Überwachungsaktionen, anstatt alles zu erfassen. Die Überwachung mit hohem Volumen wirkt sich auf die Leistung aus und generiert Protokolle, die schwer zu analysieren sind.

Abfragen und Analysieren von Überwachungsprotokollen

Verwenden Sie für dateibasierte SQL Server-Audits die fn_get_audit_file Funktion, um Ihre Protokolle abzufragen:

SELECT 
    event_time,
    action_id,
    succeeded,
    session_server_principal_name AS UserName,
    database_name,
    object_name,
    statement
FROM fn_get_audit_file('C:\AuditLogs\*.sqlaudit', DEFAULT, DEFAULT)
WHERE event_time > DATEADD(day, -7, GETUTCDATE())
ORDER BY event_time DESC;

Wenn Sie die Azure SQL-Überwachung mit Log Analytics nutzen, können Sie Abfragen mittels KQL erstellen:

AzureDiagnostics
| where Category == "SQLSecurityAuditEvents"
| where TimeGenerated > ago(7d)
| where action_name_s == "SELECT"
| summarize count() by client_ip_s, server_principal_name_s
| order by count_ desc

Diese Abfrage identifiziert, welche Benutzer und IP-Adressen die meisten SELECT-Abfragen in der letzten Woche generiert haben, wodurch ungewöhnliche Zugriffsmuster identifiziert werden können.

Implementieren der Aufbewahrung und des Schutzes von Audits

Ihre Überwachungsprotokolle benötigen Schutz vor Manipulationen, und Sie müssen sie gemäß den Complianceanforderungen aufbewahren.

Konfigurieren Sie für SQL Server unveränderlichen Speicher für Überwachungsdateien und verwenden Sie Windows-Dateisystemberechtigungen, um das Löschen zu verhindern. Konfigurieren Sie für Azure SQL Speicher mit unveränderlichem BLOB-Speicher, und legen Sie Aufbewahrungsrichtlinien in der Azure Storage-Lebenszyklusverwaltung fest.

Von Bedeutung

Speichern Sie Überwachungsprotokolle separat von den datenbanken, die sie überwachen. Dadurch wird sichergestellt, dass Angreifer auch dann, wenn sie eine Datenbank kompromittieren, den Überwachungspfad nicht manipulieren können.

Berücksichtigen Sie für Complianceszenarien die folgenden Aufbewahrungspraktiken:

  • Definieren von Aufbewahrungsfristen basierend auf regulatorischen Anforderungen (häufig sieben Jahre für Finanzdaten)
  • Verwenden von unveränderlichem Speicher, um das Löschen von Protokollen zu verhindern
  • Protokollarchivierung in Langzeitspeicher implementieren für das Kostenmanagement
  • Einrichten von Prozessen für die Überprüfung und Warnung von Überwachungsprotokollen

Die regelmäßige Überprüfung der Überwachungsdaten hilft Ihnen, Sicherheitsprobleme zu identifizieren, bevor sie zu Vorfällen werden. Erstellen Sie Warnungen für fehlgeschlagene Anmeldeversuche, Berechtigungsänderungen außerhalb von Wartungsfenstern und ungewöhnliche Datenzugriffsmuster.