Für die Erkennung von Sicherheits- und Datenschutzverletzungen ist die Überwachung von Microsoft SQL Server entscheidend. Sie ist außerdem eine wichtige Voraussetzung für die Einhaltung von Vorschriften wie PCI DSS und HIPAA.
Im ersten Schritt legen Sie fest, was Sie überwachen möchten. Sie können beispielsweise Benutzeranmeldungen, Serverkonfigurationen, Schemaänderungen und Änderungen an Audit-Daten überwachen. Im nächsten Schritt wählen Sie die Funktionen, die für die Sicherheitsüberwachung verwendet werden sollen. Hilfreich sind z. B. diese Funktionen:
- C2-Überwachung
- Common Criteria-Kompatibilität
- Überwachung von Anmeldungen
- SQL Server-Überwachung
- SQL-Ablaufverfolgung
- Erweiterte Ereignisse
- Change Data Capture
- DML, DDL und Anmeldetrigger
Dieser Artikel richtet sich an Datenbankadministratoren, die die C2-Überwachung, Common Criteria-Kompatibilität und SQL Server-Überwachung verwenden möchten. Auf Überwachungstools von Drittanbietern wird nicht eingegangen, auch wenn diese insbesondere in großen Umgebungen und regulierten Branchen sehr hilfreich sein können.
Aktivieren der C2-Überwachung und der Common Criteria-Kompatibilität
Wenn Sie Ihre SQL Server-Umgebung bislang noch nicht überwachen, besteht die einfachste Methode darin, die C2-Überwachung zu aktivieren. Die C2-Überwachung ist ein international anerkannter Standard und kann in SQL Server aktiviert werden. Sie können damit Ereignisse wie Benutzeranmeldungen, gespeicherte Prozeduren sowie die Erstellung und Löschung von Objekten überwachen. Individuelle Einstellungen sind dabei jedoch nicht möglich: Sie können nicht festlegen, was überwacht werden soll. Außerdem werden bei der Überwachung große Datenmengen erzeugt. Da sich die C2-Überwachung außerdem im Wartungsmodus befindet, wird sie sehr wahrscheinlich in zukünftigen SQL Server-Versionen nicht mehr enthalten sein.
Die Common Criteria-Kompatibilität ist ein neuerer Standard, der die C2-Überwachung ablöst. Sie wurde von der Europäischen Union entwickelt und kann in der Enterprise und Datacenter Edition von SQL Server 2008 R2 und höheren Versionen aktiviert werden. Wenn Ihr Server jedoch nicht für diesen zusätzlichen Overhead ausgelegt ist, kann es zu Performance-Problemen kommen.
So aktivieren Sie die C2-Überwachung in SQL Server 2017:
- Öffnen Sie SQL Server Management Studio.
- Stellen Sie eine Verbindung zu dem Datenbankmodul her, für das Sie die C2-Überwachung aktivieren möchten. Stellen Sie im Dialogfeld Connect to Server sicher, dass für die Einstellung Server type die Option Database Engine ausgewählt ist, und klicken Sie anschließend auf Connect.
- Klicken Sie im Objekt-Explorer links mit der rechten Maustaste auf Ihre SQL Server-Instanz und wählen Sie im Menü den Eintrag Properties.
- Klicken Sie im Fenster Server Properties im Bereich Select a page auf Security.
- Auf der Seite Security können Sie die Überwachung von Benutzeranmeldungen konfigurieren. Standardmäßig werden nur fehlgeschlagene Anmeldungen erfasst. Alternativ können Sie festlegen, dass auch erfolgreiche Anmeldungen oder sowohl fehlgeschlagene als auch erfolgreiche Anmeldungen aufgezeichnet werden.
Abbildung 1: Konfigurieren der Überwachung von Benutzerzugriffen
- Aktivieren Sie unter Options das Kontrollkästchen Enable C2 audit tracing.
- Zur Aktivierung der Common Criteria-Kompatibilität aktivieren Sie das Kontrollkästchen Enable Common Criteria compliance.
Die Common Criteria (CC)-Kompatibilität ist ein flexibler Standard, der mit unterschiedlichen Evaluation Assurance Levels (EALs) von 1 bis 7 implementiert werden kann. Höhere EALs sind mit einem strengeren Überprüfungsprozess verbunden. Wenn Sie in SQL Server die Option Enable Common Criteria compliance aktivieren, implementieren Sie damit die CC-Kompatibilität mit EAL1. Es besteht die Möglichkeit, SQL Server manuell für EAL4+ zu konfigurieren.
Durch die Aktivierung der CC-Kompatibilität ändert sich das Verhalten von SQL Server. Beispielsweise haben in diesem Fall DENY-Berechtigungen auf Tabellenebene Vorrang vor GRANT-Berechtigungen auf Spaltenebene und es werden sowohl erfolgreiche als auch fehlgeschlagene Anmeldungen überwacht. Darüber hinaus wird die Residual Information Protection (RIP) aktiviert, die Speicherbelegungen mit einem Bit-Muster überschreibt, bevor sie von einer neuen Ressource verwendet werden.
- Klicken Sie auf OK.
- Abhängig von den ausgewählten Optionen werden Sie unter Umständen aufgefordert, SQL Server neu zu starten. Wenn ein entsprechender Hinweis angezeigt wird, klicken Sie auf OK. Wenn Sie die Common Criteria-Kompatibilität aktiviert haben, starten Sie den Server neu. Klicken Sie andernfalls mit der rechten Maustaste erneut im Objekt-Explorer auf Ihre SQL Server-Instanz und wählen Sie im Menü den Befehl Restart. Bestätigen Sie in dem Warnhinweis durch Klicken auf Yes, dass Sie SQL Server neu starten möchten.
Aktivieren der SQL Server-Überwachung
Anstelle der C2-Überwachung kann auch die SQL Server-Überwachung aktiviert werden oder Sie können beide Überwachungsmethoden aktivieren. SQL Server-Überwachungsobjekte können so konfiguriert werden, dass sie Ereignisse auf der Serverebene oder auf der SQL Server-Datenbankebene erfassen.
Erstellen eines SQL Server-Überwachungsobjekts
Sie erstellen nun ein SQL Server-Überwachungsobjekt auf Serverebene:
- Erweitern Sie im Objekt-Explorer links den Bereich Security.
- Klicken Sie mit der rechten Maustaste auf Audits und wählen Sie im Menü den Eintrag New Audit… Es wird ein neues SQL Server-Überwachungsobjekt für die Überwachung auf Serverebene erstellt.
- Geben Sie im Fenster Create Audit unter Audit name einen Namen für die Überwachungseinstellungen ein.
- Legen Sie fest, wie verfahren werden soll, wenn die SQL Server-Überwachung fehlschlägt. Mit der Option Continue unter On Audit Log Failure können Sie bestimmen, dass mit der Überwachung fortgefahren werden soll. Sie können auch festlegen, dass der Server heruntergefahren wird oder die überwachten Datenbankvorgänge angehalten werden. Wenn Sie die Option Fail operation wählen, werden nicht überwachte Datenbankvorgänge weiter ausgeführt.
Abbildung 2: Erstellen eines SQL Server-Überwachungsobjekts auf Serverebene
- Im Dropdown-Menü Audit destination können Sie festlegen, dass das SQL-Überwachungsprotokoll als Datei gespeichert wird oder zu den Überwachungsereignissen im Windows-Sicherheitsereignisprotokoll oder Anwendungsereignisprotokoll hinzugefügt werden. Wenn Sie das Protokoll in einer Datei speichern möchten, müssen Sie einen Dateipfad angeben.
Beachten Sie, dass SQL Server die entsprechende Berechtigung benötigt, wenn Sie in das Windows-Sicherheitsereignisprotokoll schreiben möchten. Wählen Sie der Einfachheit halber das Anwendungsereignisprotokoll aus. Sie können außerdem einen Filter zum Überwachungsobjekt hinzufügen, um die Ergebnisse weiter einzugrenzen. Filter müssen in Transact-SQL (T-SQL) erstellt werden.
- Klicken Sie auf OK.
- Die neue Überwachungskonfiguration wird nun im Objekt-Explorer unter Audits angezeigt. Klicken Sie mit der rechten Maustaste auf die neue Konfiguration und wählen Sie im Menü den Befehl Enable Audit.
- Klicken Sie im Dialogfeld Enable Audit auf Close.
Erstellen eines Datenbanküberwachungsobjekts
Für die Erstellung eines SQL Server-Überwachungsobjekts zur Überwachung auf Datenbankebene sind etwas andere Schritte erforderlich. Sie müssen außerdem zunächst mindestens ein Überwachungsobjekt auf Serverebene erstellen.
- Erweitern Sie im Objekt-Explorer den Bereich Databases und anschließend die Datenbank, für die Sie die Überwachung konfigurieren möchten.
- Erweitern Sie den Ordner Security, klicken Sie mit der rechten Maustaste auf Database Audit Specifications und wählen Sie im Menü den Eintrag New Database Audit Specification…
Abbildung 3: Erstellen einer Serverüberwachungsspezifikation für die Überwachung auf Datenbankebene
- Konfigurieren Sie im Fenster Create Database Audit Specification unter Actions mithilfe der Dropdown-Menüs einen oder mehrere Überwachungsaktionstypen, indem Sie die zu überwachenden Anweisungen (z. B. DELETE oder INSERT), die Objektklasse, für die die Aktion ausgeführt wird, und weitere Eigenschaften auswählen.
- Klicken Sie abschließend auf OK und aktivieren Sie das Überwachungsobjekt, indem Sie mit der rechten Maustaste darauf klicken und Enable Database Audit Specification wählen.
Anzeigen von SQL Server-Überwachungsprotokollen
Die Überwachungsprotokolle der C2-Überwachung von SQL Server werden im Standarddatenverzeichnis der SQL Server-Instanz gespeichert. Die einzelnen Protokolldateien dürfen maximal 200 MB groß sein. Wird dieser Höchstwert erreicht, wird automatisch eine neue Datei erstellt.
Für die Anzeige von SQL Server-Überwachungsprotokollen wird die native Lösung Log File Viewer empfohlen. Gehen Sie dabei wie folgt vor:
- Erweitern Sie in SQL Server Management Studio im Objekt-Explorer den Bereich Security.
- Klicken Sie mit der rechten Maustaste auf das Überwachungsobjekt, das Sie anzeigen möchten, und wählen Sie im Menü den Eintrag View Audit Logs.
- Die Protokolle werden im Log File Viewer auf der rechten Seite angezeigt. Der Log File Viewer zeigt die Protokolle unabhängig davon an, ob sie in einer Datei oder im Windows-Ereignisprotokoll gespeichert werden.
- Wenn Sie oben im Log File Viewer auf Filter klicken, können Sie festlegen, welche Protokolleinträge angezeigt werden sollen. SQL Server-Protokolldateien werden im Format .sqlaudit gespeichert und sind nicht lesbar. Indem Sie im Log File Explorer auf Export klicken, können Sie Protokolle im durch Trennzeichen getrennten Dateiformat .log speichern.
Abbildung 4: Überprüfen von SQL Server-Überwachungsprotokollen im Log File Viewer