Registry-Auditing: Änderungen in der Registrierdatenbank überwachen

    Auditing für die Registrierung aktivierenDie Registry enthält zahl­reiche sicher­heits­kritische Ein­stellungen, durch deren Mani­pulation ein An­greifer wichtige Schutz­mecha­nismen außer Kraft setzen kann. So lassen sich damit beispiels­weise die Gruppen­richtlinien aus­hebeln. Das Auditing der Registry hilft, solche uner­wünschten Aktivi­tä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 Computer­konfiguration => Richtlinien => Windows-Einstellungen => Sicherheits­einstellungen => Erweiterte Überwachungs­richtlinien­konfiguration => Überwachungs­richtlinien => Objektzugriff (die Einstellungen unter Sicherheits­einstellungen => Lokale Richtlinien => Überwachungs­richtlinie sind seit Windows 7 veraltet).

    Auditing für die Registrierung per GPO aktivieren

    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 Gruppen­richtlinie, 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 Registrier­datenbank 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.

    System Access Control List (SACL) für die Registry-Schlüssel unter 'PowerShell' bearbeiten

    Hier fügt man einen neuen Eintrag hinzu. Dabei wählt man zuerst einen Sicherheits­prinzipal 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.

    Art der Zugriffe auswählen, die im Audit-Log aufgezeichnet werden sollen

    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 Computer­konfiguration => Richtlinien => Windows-Einstellungen => Sicherheits­einstellungen => Registrierung.

    Dort öffnet man das Kontextmenü dieses Containers oder klickt mit der rechten Maustaste in den rechten Fenster­abschnitt. 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.

    Die SACL eines Registry-Schlüssels lässt sich auch zentral über ein GPO ändern.

    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 Überwachungs­einträ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

    Audit-Logs für die Registrierung über PowerShell ausgeben

    Wenn man dafür eine GUI bevorzugt, dann kann man in der Ereignisanzeige eine benutzerdefinierte Ansicht einrichten.

    Benutzerdefinierte Ansicht in der Ereignisanzeige einrichten, um Audit-Logs für die Registrierung auszufiltern.

    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.

    Keine Kommentare