Tags: Registry, Monitoring, Gruppenrichtlinien
Die Registry enthält zahlreiche sicherheitskritische Einstellungen, durch deren Manipulation ein Angreifer wichtige Schutzmechanismen außer Kraft setzen kann. So lassen sich damit beispielsweise die Gruppenrichtlinien aushebeln. Das Auditing der Registry hilft, solche unerwünschten Aktivitäten zu erkennen.
Möchte man zum Beispiel PowerShell gegen Missbrauch absichern und zeichnet alle auf der Kommandozeile abgesetzten Befehle in einer Log-Datei auf, dann möchte ein Hacker diese Funktion wahrscheinlich abschalten, um keine Spuren zu hinterlassen. Dazu könnte er den Wert von EnableTranscripting, der via GPO auf 1 gesetzt wird, auf 0 stellen. Dieser findet sich unter
HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription
Um solchen Manipulationen auf die Schliche zu kommen, sollte man die Schlüssel überwachen, die GPOs für PowerShell setzen. Wie beim Auditing des Dateisystems sind dafür drei Maßnahmen erforderlich:
- Aktivieren der Überwachung für die Registry per GPO
- Konfiguration der System Access Control List (SACL) für die betreffende Ressource
- Auswertung des Eventlogs
Audit für die Registrierung aktivieren
Im ersten Schritt erstellt man also ein GPO und verlinkt es mit der OU, deren Rechner auf Änderungen der PowerShell-Schlüssel in der Registry überwacht werden sollen.
Dieses öffnet man dann im GPO-Editor und wechselt zu Computerkonfiguration => Richtlinien => Windows-Einstellungen => Sicherheitseinstellungen => Erweiterte Überwachungsrichtlinienkonfiguration => Überwachungsrichtlinien => Objektzugriff (die Einstellungen unter Sicherheitseinstellungen => Lokale Richtlinien => Überwachungsrichtlinie sind seit Windows 7 veraltet).
Dort aktiviert man die Einstellung Registrierung überwachen, wobei man zwei Optionen angezeigt bekommt: Erfolg und Fehler. Ob man gescheiterte, erfolgreiche oder beiderlei Zugriffe aufzeichnen möchte, hängt von der Art und Bedeutung der Ressource ab. Allerdings sollte man danach trachten, eine Balance zu finden zwischen dem Nutzen der aufgezeichneten Ereignisse und der dabei anfallenden Datenmenge.
In unserem Beispiel beschränken wir uns auf Erfolg, um zu erfahren, wann der Wert eines Schlüssels tatsächlich geändert wurde. Das Ausführen von
gpupdate /force
auf den Zielrechnern aktiviert die Gruppenrichtlinie, und nun kann man die SACL für den Registry-Schlüssel anpassen.
Berechtigungen für Registry-Schlüssel setzen
Dazu navigiert man in regedit.exe zur beschriebenen Position in der Registrierdatenbank und startet aus dem Kontextmenü von PowerShell den Befehl Berechtigungen. Im anschließenden Dialog klickt man auf Erweitert und wechselt im Folgedialog zum Reiter Überwachung.
Hier fügt man einen neuen Eintrag hinzu. Dabei wählt man zuerst einen Sicherheitsprinzipal aus, das könnte Jeder sein. Im nächsten Schritt muss man festlegen, welche Aktivitäten aufgezeichnet werden sollen. Für unseren Zweck reichen Wert festlegen und Löschen, um zu erfassen, dass ein Wert dieses Schlüssels geändert wurde.
Auch hier sollte man bedenken, dass die Überwachung von Vollzugriff möglicherweise zu viele Daten erzeugt, vor allem wenn man die SACL weiter oben im Registry-Baum konfiguriert.
SACL per GPO konfigurieren
Soll dieser Schlüssel in der Registrierung vieler Rechner für die Überwachung angepasst werden, dann ist es sinnvoll, dafür ein GPO zu nutzen. Die dafür zuständige Einstellung setzt man unter Computerkonfiguration => Richtlinien => Windows-Einstellungen => Sicherheitseinstellungen => Registrierung.
Dort öffnet man das Kontextmenü dieses Containers oder klickt mit der rechten Maustaste in den rechten Fensterabschnitt. Anschließend führt man den Befehl Schlüssel hinzufügen aus. Im folgenden Dialog navigiert man bis zum Erreichen des gewünschten Schlüssels durch die Registrierung. Wenn dieser auf der lokalen Maschine nicht existieren sollte, dann kann man den Pfad auch in das Eingabefeld eintippen.
Nach der Auswahl eines Schlüssels öffnet sich der gleiche Sicherheitsdialog wie oben für regedit.exe beschrieben. Daher erfolgt das weitere Vorgehen genau gleich wie bei der direkten Konfiguration der SACL im Registriereditor.
Eventlog auswerten
Zum Schluss geht es nun darum, die Überwachungseinträge im Eventlog zu inspizieren. Diese finden sich im Protokoll Sicherheit und haben beim Auditing der Registry die IDs 4656, 4657, 4660 und 4663. Da wir im konkreten Fall nur an Änderungen interessiert sind, reichen die Event-IDs 4657 und 4660, Letztere für Löschen.
Mit PowerShell ließen sich diese Logs so abrufen:
Get-EventLog -LogName Security -Source "*auditing*" -InstanceId 4657,4660
Wenn man dafür eine GUI bevorzugt, dann kann man in der Ereignisanzeige eine benutzerdefinierte Ansicht einrichten.
Als Filter wählt man dort unter Protokolle Sicherheit, bei Quellen Microsoft Windows security auditing und bei Aufgabenkategorie Registry aus. Bei Bedarf kann man die Ansicht natürlich auch über die Ereignis-IDs filtern.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Globale Überwachung für den Zugriff auf Dateisystem und Registry konfigurieren
- Einstellungen für Remotedesktop über lokale Richtlinien oder Registry konfigurieren
- PDF-Dokumente mit Windows Desktop Search durchsuchen
- Geänderte GPO-Einstellungen von Windows 10 bearbeiten: Central Store deaktivieren
- Active Directory absichern: Passwortregeln, priviligierte Gruppen prüfen, Baselines vergleichen
Weitere Links