Unter welchen Lizenzbedingungen darf ich RegAudit
verwenden?
Das Programm wurde mit größter Sorgfalt
entwickelt. Der Autor kann aber nicht dafür garantieren, daß
es unter jeder Version von Windows NT auf jedem Rechner fehlerfrei läuft.
Aus diesem Grunde wird bei eventuell auftretenden Fehlern oder Schäden,
gleich welcher Art, keine Haftung übernommen.
Informieren Sie sich in Ihrem eigenen Interesse
darüber, welche Folgen die geplanten Änderungen an der Registrierung
haben werden, bevor Sie sie durchführen! Das Lesen und Verstehen dieser
Dokumentation sollte Ihnen helfen, Unfälle zu vermeiden.
RegAudit ist nur als Bestandteil des Programmpaketes RegTools
für Windows NT erhältlich und darf nicht weitergegeben werden.
Was ist eine SACL?
Eine SACL (Security Access Control List = Sicherheitskontrolliste)
legt fest, welcher Zugriff von wem auf das Objekt protokolliert wird. Mit
RegAudit können Sie nur Zugriffskontrollisten von Registrierungsschlüsseln
bearbeiten.
Eine solche Liste besteht aus ACEs (Access Control Entry - Zugriffskontrolleintrag).
Ein ACE enthält mehrere Felder, diese werden ausführlich
bei der Besprechung des Befehls /L erläutert.
Was benötige ich, um das Programm erfolgreich laufen zu lassen?
Eine (ziemlich lange ;) Kurzübersicht der erlaubten Parameter erhalten
Sie nach Aufruf von RegDACL /?:
| RegAudit 1.0 - Überwachungsmanager für
Windows NT Registrierungsschlüssel
Copyright (c) 1999-2001 Frank Heyne Software (http://www.heysoft.de) Die Benutzung erfolgt auf eigene Gefahr! Aufruf: RegAudit Key Befehle
Abfragende Befehle:
Manipulationsbefehle:
Weitere Befehle:
Optionen für xx:
mögliche Optionen für yy
(Kombinationen erlaubt):
mögliche Optionen für (I)
(Vererbungsoptionen):
mögliche Optionen für [T]
(Audit Flags):
|
[\\Computer\]Root[\Subkey]Den Namen des lokalen Rechners brauchen Sie natürlich nicht anzugeben. Wenn Sie keinen Unterschlüssel (Subkey) angeben, wird der angegebene Hauptschlüssel (Root) verwendet. Folgende Abkürzungen sollten Sie für die 5 Hauptschlüssel verwenden:
HKLM - HKEY_LOCAL_MACHINEWenn der Registrierungspfad Leerzeichen enthält, muß der gesamte Pfad in doppelte Hochkommas eingeschlossen werden.
HKU - HKEY_USERS
HKCU - HKEY_CURRENT_USER
HKCC - HKEY_CURRENT_CONFIG
HKCR - HKEY_CLASSES_ROOT
Schalter
Der Schalter -ANSI
Mit diesem Schalter weisen Sie das Programm an, den ANSI-Zeichensatz
statt des sonst benutzten OEM-Zeichensatzes zu verwenden. Wie Sie wissen,
ist OEM der voreingestellte Zeichensatze der Eingabeaufforderung. Er sollte
also benutzt werden, wenn ein Kommandozeilen-Programm am Bildschirm gestartet
wird. ANSI ist der übliche Zeichensatz der grafischen Benutzeroberfläche.
Er sollte benutzt werden, wenn die Ausgabe des Programms in eine Datei
umgeleitet wird, welche später mit einem GUI Programm weiterverarbeitet
oder gelesen wird.
Der Schalter -SUBTREE
Mit diesem Schalter weisen Sie RegAudit an, statt nur den angegebenen
Registrierungsschlüssel auch den gesamten Teilbaum darunter zu bearbeiten.
Bei den Befehlen /F, /PI und /PROPAGATE ist die Angabe von
-SUBTREE überflüssig und nicht zulässig, da sie standardmäßig
den gesamten Teilbaum durchsuchen. Bei dem Befehl /Q in Verbindung
mit -SUBTREE wäre der Rückgabewert schwerlich zu interpretieren,
weshalb -SUBTREE auch hier verboten ist.
Sie können beliebig viele Befehle angeben. Lediglich die Befehle /F, /PI und /PROPAGATE können nur allein verwendet werden, denn sie geben einen Wert zurück, der für die Steuerung des Programmflusses verwendet werden kann. Die Abarbeitung der Befehle erfolgt in folgender Reihenfolge:
| C:\Reg> RegAudit
hklm\software\test /L
auditing entries for Registry key "hklm\software\test":
|
Spalte 1 - Audit Flags
Windows NT erlaubt es, die Überwachung auf erfolgreiche oder erfolglose
Aktionen einzuschränken:
[S] bedeutet, dass der ACE nur die Protokollierung von erfolgreichen
Zugriffen bewirkt. Das S steht dabei für Success (Erfolg).
[F] bedeutet, dass der ACE nur die Protokollierung von erfolglosen
Zugriffsversuchen bewirkt. Das F steht dabei für Fehler.
[A] bedeutet, dass der ACE die Protokollierung Aller
Zugriffsversuche bewirkt. Man kann hier also sagen A = S + F
Wichtig: Wenn beim Bearbeiten von Überwachungseinstellungen
kein Audit Flag angegeben wird, verwendet RegAudit das Flag [A]
als Voreinstellung.
Spalte 2 - Vererbungsinformationen
(CI) Container Inherit: Wenn Der ACE gilt für
den aktuellen Schlüssel und für den gesamten Teilbaum darunter.
Das ist der Normalfall.
(NI) No Inherit: Der ACE wird nicht vererbt werden, gilt
also nur für den aktuellen Schlüssel.
(IO) Inherit Only: Der ACE gilt nicht für den aktuellen
Schlüssel. sondern nur für alle Unterschlüssel (Kinder und
Enkel) darunter. Das ist die einzige sinnvolle Einstellung für das
Pseudo-Konto ERSTELLER-BESITZER, wie in Lektion
2 gezeigt wird.
(NP) No Progpagate: Dieses Flag gilt die nur in Verbindung
mit (CI) oder (IO). (NP) bewirkt, daß der ACE
sich nur eine Ebene tiefer vererben läßt.
(CI-NP) bewirkt also, daß der ACE für
den aktuellen Schlüssel und dessen Unterschlüssel (Kinder) gilt,
aber nicht für deren Erben, (also seine Enkel).
(IO-NP) bewirkt dagegen, daß der
ACE nicht für den aktuellen Schlüssel und auch nicht für
seine Enkel, sondern nur für die Kinder gilt.
(ID) InheriteD: Neu in Windows 2000. Fühere
Versionen von Windows NT vererbten die ACEs nur in dem Moment, in dem ein
Unterschlüssel erzeugt wurde. Wurde danach ein ACE des Eltern-Schlüssels
geändert, (ohne ausdrücklich anzugeben, dass diese Änderungen
für den gesamten Teilbaum darunter gelten und damit dort alle bisherigen
Einstellungen überschreiben sollten), so unterschieden sich anschließend
der ererbte und der ursprüngliche ACE. Da aber Windows 2000 vererbte
ACEs mit einer Kombination von (ID) und einem der Flags (CI),
(IO) oder (NI) markiert, weiß es jederzeit, ob ein
ACE explizit für dieses Objekt definiert oder ererbt wurde. Daher
kann Windows 2000 Änderungen an ACEs des Eltern-Schlüssels auf
vererbte ACEs seiner Unterschlüssel anwenden, ohne deren explizit
definierte ACEs zu überschreiben.
(ID-CI) InheriteD - Container Inherit: Der ererbte ACE
gilt für diesen Schlüssel und alle Unterschlüssel. Wenn
sich der ACE, von dem er abstammt, ändert, wird er diese Änderungen
übernehmen. Er entsteht, wenn der ursprüngliche ACE, von dem
er abstammt, ein (CI)-Eintrag ist.
(ID-IO) InheriteD - Inherit Only: Dieser ererbte ACE
gilt nur für Unterschlüssel (Kinder und Enkel) des aktuellen
Schlüssels, nicht jedoch für diesen selbst. Er entsteht, wenn
der ursprüngliche ACE, von dem er abstammt, ein (IO)-Eintrag
ist.
(ID-NI) InheriteD - No Inherit: Dieser ererbte ACE gilt
nur für den aktuellen Schlüssel, wird aber nicht weiter vererbt.
Er entsteht, wenn der ACE, von dem er abstammt, das Flag (NP) enthält.
Hinweis: Wenn keine Vererbungsinformationen angegeben wurden, verwendet RegAudit Standardvorgaben, die von der durchzuführenden Aktion abhängen. Lesende Befehle suchen nach beliebigen ACEs. Schreibende Befehle verwenden (CI) als Standardvorgabe, genau wie Regedt32.
Spalte 3 - Aktionen
NT unterscheidet die Überwachung von 10 verschiedenen Aktionen
für Registrierungsschlüssel, die beliebig kombiniert werden dürfen:
| Q | Query (Wert abfragen, analog dem Lesen einer Datei) |
| W | Write (Wert schreiben) |
| C | Create (Unterschlüssel erzeugen, analog dem Erzeugen eines Unterverzeichnisses im Dateisystem) |
| E | Enumerate (Unterschlüssel auflisten, analog dem Auflisten von Dateien und Unterverzeichnissen im Dateisystem) |
| N | Notify (Benachrichtigen bei Änderungen, erlaubt es Programmen, sich vom Betriebssystemen benachrichtigen zu lassen, wenn an einem Schlüssel oder seinen Werten eine Änderung vorgenommen wurde) |
| O | Owner (Besitzer ändern) |
| L | Link erzeugen (dieses Recht wird in der Regel nur vom Betriebssystem verwendet.) |
| D | Delete (Löschen) |
| S | Sicherheitsinfo (Zugriffskontrolliste, Besitzer usw.) lesen |
| A | dACL schreiben (Bearbeiten der Zugriffskontrolliste) |
Spalte 4 - Konto
Diese Spalte gibt an, für wenn dieser ACE eigentlich gilt. Es
kann sich dabei um vor- oder selbst definierte Gruppen handeln oder auch
um beliebige Benutzer.
Der Befehl /Q
Mit diesem Befehl können Sie abfragen, ob in der SACL eines Schlüssels
ein ACE mit einer oder mehreren Berechtigungen existiert. RegAudit
antwortet auf zwei Arten: Die Ausgabe erfolgt zum einen als Text und zum
anderen als Rückgabewert des Programms. Sind alle abgefragten Berechtigungen
für das angegebene Gruppenkonto vorhanden, so gibt das Programm 0
zurück, fehlt auch nur eine der abgefragten Berechtigungen, ist der
Rückgabewert 1.
Achtung Fallen!
Es liegt in Ihrer Verantwortung, sicherzustellen, daß RegAudit
mit gültigen Parametern aufgerufen wird, wenn Sie in Abhängigkeit
vom Rückgabewert irgendwelche Aktionen auslösen wollen! Geben
Sie beispielsweise einen nichtexistierenden Pfad zu einem Schlüssel
an, so endet das Programm immer mit einem Fehlerwert! Es ist also empfehlenswert,
in der Batch-Datei RegAudit zuerst mit dem Befehl /L aufzurufen.
Ist dabei der Rückgabewert 0, so ist sicher, daß der Pfad existiert
und darauf zugegriffen werden kann (Sie haben die notwendigen Berechtigungen
und ggf. die Netzwerkverbindung steht.) Wenn Sie anschließend den
Befehl /Q verwenden, können Sie sicher sein, daß der
Rückgabewert wirklich etwas über die abgefragte Berechtigung
aussagt und keinen Fehler im Programmaufruf verschlüsselt.
Das Verwenden von /Q in Verbindung mit einem ungültigen
Befehl oder Schalter (wie -SUBTREE) gibt ebenfalls einen Fehlercode
statt eines Abfrageergebnises zurück!
Der Befehl /F
Dieser Befehl durchsucht die ACEs aller Schlüssel des angegebenen
Teilbaumes. Er listet alle die Schlüssel auf, in denen sämtliche
der angegebenen Aktionen überwacht werden.
Der Befehl /PI
Wie bereits weiter oben erläutert wurde, erben Objekte seit Windows
NT 5 ihre Berechtigungen auf eine neue Art: Änderungen, die an dem
vererbenden Eintrag gemacht werden, pflanzen sich jederzeit auf alle geerbten
Einträge im darunterliegenden Teilbaum fort. Das ist in den meisten
Fällen sehr nützlich, aber es gibt auch Situationen, wo dieses
Verhalten unerwünscht ist. Für diese Fälle gibt es eine
Lösung: Sie können die Markierung in dem Kontrollkästchen
"Vererbbare übergeordnete Berechtigungen übernehmen" im
Dialog Sicherheit | Berechtigungen | Erweitert... | Überwachung
von RegEdt32 entfernen. Damit schützen Sie das Objekt vor dem Erben
von ACEs von seinen Vorfahren.
Der Befehl /PI listet alle geschützten Unterschlüssel
auf. Auf Rechnern mit älteren Versionen von Windows NT ist er nicht
erlaubt.
Damit sind wir am Ende der Beschreibung der Befehle, mit denen Sie die
Zugriffskontrollisten der Registrierung abfragen können.
Im Folgenden werden die Befehle erläutert, mit denen Sie die Zugriffskontrollisten
der Registrierung bearbeiten können.
Die Funktionen, welche ACEs bearbeiten, akzeptieren keine Vererbungsoptionen
mit gesetztem (ID) Flag, weil das keinen Sinn ergeben würde.
Falls Sie einen solchen ACE ändern möchten, müssen Sie das
immer bei dem Vorfahren tun, für den er definiert wurde, und nicht
in einem Unterschlüssel, der die Information nur geerbt hat.
Zuerst wenden wir uns aber den Befehlen /P... zu, die der Steuerung der Vererbung dienen. Sie funktionieren nur in Windows 2000. In Windows NT 4.0 und früheren Versionen bewirken sie nichts.
Der Befehl /P-
Dieser Befehl entfernt den Vererbungsschutz eines Schlüssels.
Die aktuellen ACEs des Schlüssels (und seiner ungeschützten Unterschlüssel)
werden durch die vererbbaren ACEs seiner Vorfahren ersetzt.
Die Verwendung dieses Befehls entspricht dem Aktivieren des Kontrollkästchen
"Vererbbare übergeordnete Berechtigungen übernehmen" im
Dialog Sicherheit | Berechtigungen | Erweitert... | Überwachung
von RegEdt32.
Der Befehl /PC
Dieser Befehl schützt einen Schlüssel und verwandelt die
ehemals ererbten ACEs in explizit für diesen Schlüssel definierte.
ACEs, die bereits explizit definiert waren, bleiben unverändert, während
bei allen anderen das (ID)-Flag entfernt wird.
Die Verwendung dieses Befehls entspricht dem Deaktivieren des Kontrollkästchen
"Vererbbare übergeordnete Berechtigungen übernehmen" im
Dialog Sicherheit | Berechtigungen | Erweitert... | Überwachung
von RegEdt32 und der Beantwortung der anschließenden Frage mit "Kopieren".
Der Befehl /PR
Dieser Befehl schützt einen Schlüssel und entfernt die ehemals
ererbten ACEs ersatzlos. Nur ACEs, die bereits explizit definiert waren,
bleiben unverändert erhalten.
Die Verwendung dieses Befehls entspricht dem Deaktivieren des Kontrollkästchen
"Vererbbare übergeordnete Berechtigungen übernehmen" im
Dialog Sicherheit | Berechtigungen | Erweitert... | Überwachung
von RegEdt32 und der Beantwortung der anschließenden Frage mit "Entfernen".
Der Befehl /PROPAGATE
Dieser Befehl vererbt die Berechtigungen des aktuellen Schlüssels
auf den gesamten Teilbaum darunter. Seine Verwendung entspricht dem Aktivieren
der Kontrollbox "Überwachungseinträge in allen untergeordneten
Objekten zurücksetzen und die Vermehrung vererbarer Überwachungseinträge
aktivieren" in RegEdt32. Der Befehl entfernt sämtliche explizit
definierten Berechtigungen im gesamten Teilbaum unter dem aktuellen Schlüssel
und jeglichen Vererbungsschutz. Dieser mächtige
Befehl überschreibt also auch die SACLs geschützter Unterschlüssel!
Der Befehl /A
Add: Dieser Befehl fügt die angegebenen Überwachungsaktionen
für das angegebene Konto hinzu. Nachdem er erfolgreich ausgeführt
wurde, werden für dieses Konto wenigstens die aufgeführten Aktionen
überwacht. Wurden bereits vorher andere Aktionen überwacht, so
geschieht dies auch weiterhin.
Der Befehl /S
Setzen: Dieser Befehl setzt genau die angegebenen Überwachungsaktionen
für das angegebene Konto. Wurden bereits vorher andere Aktionen überwacht,
so geschieht dies jetzt nicht mehr.
Der Befehl /D
Delete: Dieser Befehl löscht alle expliziten ACEs für
das angegebene Konto, jedoch keine ererbten ACEs.
Der Befehl /CLEAR
Mit diesem Befehl weisen Sie RegAudit an, alle nicht ererbten
Einträge in der SACL zu löschen. Das Löschen von ererbten
Einträgen macht keinen Sinn (sie müssen immer bei dem Schlüssel
gelöscht werden, bei dem sie gesetzt wurden).
Zwar können überflüssige Einträge auch mit /D
gelöscht werden, aber dazu müssen alle zugewiesenen Konten einzeln
angegeben werden.
Alles klar?
Wenn nach gründlicher Lektüre dieses Artikels wider Erwarten
noch Unklarheiten bezüglich des Setzens oder der Wirkung von Überwachungseinstellungen
in der Registrierung von Windows NT herrschen, können Sie zwecks Klärung
gern eine email an fh@heysoft.de schicken.
Zuvor sollten Sie aber prüfen, ob Ihre Frage nicht schon in der FAQ
zu Sicherheitsfragen der Windows NT Registrierung beantwortet wurde.