HinweisDas Integritätsüberwachungsmodul durchsucht nach unerwarteten Änderungen in Verzeichnissen, Registrierungswerten, Registrierungsschlüsseln, Diensten, Prozessen, installierter Software, Ports, Gruppen, Benutzern, Dateien und der WQL-Abfrageanweisung auf Agenten. Um die Integritätsüberwachung zu aktivieren
und zu konfigurieren, siehe Einrichten der Integritätsüberwachung.
|
Das WQLSet-Element beschreibt eine Ergebnismenge aus einer Windows Management Instrumentation WQL-Abfrageanweisung. WQL ermöglicht SQL-ähnliche Abfragen gegen viele verschiedene Objektklassen, wobei die
Ergebnisse eine Tabelle von Zeilen bilden, in der jede Zeile ein Objekt darstellt
und jede Spalte den Wert eines bestimmten Attributs des Objekts repräsentiert.
HinweisViele WMI-Abfragen verbrauchen viel Zeit und Computerressourcen. Es ist leicht, versehentlich
eine Abfrage auszuführen, die mehrere Minuten dauert und Tausende von Zeilen zurückgibt.
Es wird dringend empfohlen, alle Abfragen vor der Verwendung in einem WQLSet mit einem
Programm wie Powershell oder WMI Explorer zu testen.
|
|
Attribut
|
Beschreibung
|
Erforderlich
|
Standardwert
|
Zulässige Werte
|
|
Namensraum
|
Legt den Namespace der WMI-Abfrage fest.
|
Ja
|
N/A
|
Zeichenfolgen, die einen gültigen WMI-Namespace darstellen. Der Namespace "root\cimv2"
wird am häufigsten verwendet, wenn Objekte des Windows-Betriebssystems abgefragt werden,
aber auch andere wie "root\directory\LDAP" und "root\Microsoft\SqlServer\ComputerManagement"
können verwendet werden. Siehe hier für ein kleines Skript namens GetNamespaces.vbs, das die verfügbaren WMI-Namespaces
auf einem bestimmten Computer auflistet.
|
|
wql
|
Eine WQL-Abfragezeichenfolge.
|
Ja
|
N/A
|
Ein gültiger WQL-String. Die Abfrage muss das __Path-Attribut für jedes zurückgegebene Objekt enthalten;
der Agent verwendet das __Path-Attribut als Entitätsschlüssel beim Speichern und Berichten
von Ergebnissen, daher muss jedes zurückgegebene WMI-Objekt ein __Path enthalten.
Wenn Sie eine Abfragezeichenfolge wie "SELECT \* FROM ..." verwenden, ist das __Path-Attribut
verfügbar, aber wenn Sie eine selektivere Abfrage wie "SELECT Name FROM ..." verwenden,
müssen Sie __Path explizit einbeziehen, indem Sie die Abfrage als "SELECT __Path,Name
FROM ..." schreiben.
|
|
onChange
|
Ob die zurückgegebenen Dateien in Echtzeit überwacht werden sollen.
|
No
|
false
|
true, false
|
|
Anbieter
|
Gibt optional einen alternativen WMI-Namespace-Anbieter an, der verwendet werden soll.
|
No
|
Keine
|
RsopLoggingModeProvider Derzeit ist dies nur für Gruppenrichtlinienabfragen erforderlich/unterstützt,
und "RsopLoggingModeProvider" ist der einzige unterstützte Wert. Gruppenrichtlinienabfragen
sind besonders, da empfohlen wird, den RsopLoggingModeProvider zu verwenden, um einen Schnappschuss der Richtliniendaten zu erstellen, die auf einem
Computer vorhanden sind. Wenn Sie einen Schnappschuss der Richtliniendaten erstellen,
kann die Abfrage gegen einen konsistenten Satz von Daten durchgeführt werden, bevor
das System diese während einer Aktualisierung der Richtlinie überschreibt oder löscht.
Das Erstellen eines Schnappschusses erstellt tatsächlich einen neuen WMI-Namespace,
daher sollte beim Verwenden von provider="RsopLoggingModeProvider" in einem WQLSet
das Namespace-Attribut das Suffix angeben, das dem erstellten Namespace hinzugefügt
werden soll. Zum Beispiel wäre ein typischer temporärer Namespace, der vom RsopLoggingModeProvider
erstellt wird, "\\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010". Geben Sie namespace="Computer"
an, um "\\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010\Computer" abzufragen.
Da der temporäre Namespace ein einmaliger Wert ist, behindert er die Fähigkeit des
Agents, Änderungen zu erkennen, da der Wert im Entitätsschlüssel erscheint. Um dies
zu vermeiden, entfernt der Agent den Teil des zurückgegebenen __Path-Werts nach \Rsop\
und bis zum nächsten Backslash, wenn der RsopLoggingModeProvider verwendet wird. Entitätsschlüssel
werden daher Präfixe wie "\\.\Root\Rsop\Computer" anstelle von "\\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010\Computer"
haben
|
|
Zeitüberschreitung
|
Gibt ein zeilenweises Timeout in Millisekunden an.
|
No
|
5000
|
1-60000 Die WMI-Abfrage wird im semisynchronen Modus durchgeführt, wobei Ergebnisszeilen einzeln abgerufen werden und ein Timeout
für das Abrufen einer einzelnen Zeile besteht. Wenn dieser Parameter nicht angegeben
ist, wird 5000 (5 Sekunden) als Timeout-Wert verwendet.
|
Entitätensatzattribute
Jede "Zeile", die von der WQL-Abfrage zurückgegeben wird, wird für die Zwecke der
Integritätsüberwachung als eine einzelne Entität behandelt, wobei die zurückgegebenen
Spalten die Attribute der Entität darstellen. Da WMI/WQL eine offene Spezifikation
ist, gibt es keine festgelegte Liste verfügbarer oder unterstützter Attribute. Die
Abfrage und das Schema des abgefragten WMI-Objekts bestimmen die überwachten Attribute.
Zum Beispiel, der WQLSet:
<WQLSet namespace="Computer" wql="select * from RSOP_SecuritySettings where precedence=1" provider="RsopLoggingModeProvider" />
wird Attribute von zurückgeben:
ErrorCode, GPOID, KeyName, SOMID, Setting, Status, id, precedence
wobei ein WQLSet, das Netzwerkadapter abfragt, wie zum Beispiel:
<WQLSet namespace="root\cimv2" wql="select * from Win32_NetworkAdapter where AdapterTypeId = 0" />
werden Attribute zurückgeben wie:
AdapterType, AdapterTypeId, Availability, Caption, ConfigManagerErrorCode, ConfigManagerUserConfig,
CreationClassName Description, DeviceID, Index, Installed, MACAddress, Manufacturer,
MaxNumberControlled, Name, PNPDeviceID, PowerManagementSupported, ProductName, ServiceName,
SystemCreationClassName, SystemName, TimeOfLastResetUm die Belastung des Agents zu reduzieren, ist es ratsam, explizit nur die Attribute
einzubeziehen, die überwacht werden müssen, anstatt "select * ..." in Abfragen zu
verwenden. Dies hat auch den Vorteil, dass Änderungen am WMI-Schema zum Hinzufügen
oder Entfernen von Attributen nicht als Änderungen am Objekt gemeldet werden, es sei
denn, die Attribute sind Teil des überwachten Satzes. Mit "select * from Win32_Foobar"
würde ein Patch für Windows, der ein neues Attribut zur Win32_Foobar-Objektklasse
hinzufügt, dazu führen, dass der nächste Integritätsdurchlauf eine Änderung für jedes
Objekt dieser Klasse meldet, da ein neues Attribut erschienen ist.
Im Folgenden sind einige Beispiel-WMI-Abfragen aufgeführt, die gewünschte Windows-Systementitäten
zurückgeben:
Abfrage für unter Windows eingehängte Speichergeräte: (die Auswahl von * führt typischerweise
dazu, dass 80 % der zurückgegebenen Attribute null oder doppelte Werte sind)
<WQLSet namespace="root\cimv2" wql="SELECT __Path,DeviceID,VolumeName,VolumeSerialNumber,DriveType,FileSystem,Access,MediaType,Size,FreeSpace
FROM Win32_LogicalDisk" />Um die vorherige Abfrage zu erweitern, kann der DriveType angegeben werden, um nur
bestimmte Arten von eingebundenen logischen Speichergeräten zu isolieren, wie beispielsweise
Typ 2, der ein "Wechseldatenträger" ist (wie ein entfernbares USB-Speicherlaufwerk)
<WQLSet namespace="root\cimv2" wql="SELECT __Path,DeviceID,VolumeName,VolumeSerialNumber,DriveType,FileSystem,Access,MediaType,Size,FreeSpace
FROM Win32_LogicalDisk WHERE DriveType=2" />(Siehe hier für Details zur Win32_LogicalDisk-Klasse)
USB Storage Device notes: U3 USB-Geräte werden sowohl ein Typ 2 "Wechseldatenträger"-Gerät als auch ein Typ
3 "Compact Disc"-Gerät einbinden. Außerdem bezieht sich die obige Abfrage nur auf
Speichergeräte. USB-Nicht-Speichergeräte werden nicht einbezogen. USB-Speicherkartenadapter
können als Typ 1 "Kein Stammverzeichnis"-Gerät erscheinen. Ein fehlerhaftes oder mit
Windows inkompatibles USB-Speichergerät kann als Typ 1 "Unbekannt"-Gerät erscheinen.
Abfrage aller bekannten Systemverzeichnisse, bei denen das Laufwerk "F:" ist, für
relevante Attribute:
<WQLSet namespace="root\cimv2" wql="SELECT __Path,CreationDate,LastAccessed,LastModified,Drive,Path,FileName,Caption,FileType,Readable,Writeable
FROM Win32_Directory WHERE Drive='F:'" />Abfrage aller bekannten Systemdateien, bei denen das Laufwerk "F:" für relevante Attribute
ist:
<WQLSet namespace="root\cimv2" wql="SELECT __Path,CreationDate,LastAccessed,LastModified,Drive,Path,FileName,Name,FileType,Readable,Writeable
FROM CIM_DataFile WHERE Drive='F:'" />Bedeutung des Schlüssels
Der Schlüssel ist das "__Path"-Attribut des zurückgegebenen WMI-Objekts, das in der
Regel die Form hat:
SystemName\Namespace:WmiObjectClass.KeyAttribute=Value[,KeyAttribute=Value...]Einige Beispiele:
\TEST-DESK\root\cimv2:Win32_QuickFixEngineering.HotFixID="KB958215-IE7",ServicePackInEffect="SP0" \TEST-DESK\ROOT\Rsop\NSF49B36AD_10A3_4F20_9541_B4C471907CE7\Computer:RSOP_RegistryValue. Path="MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeText",precedence=1 \TEST-DESK\root\cimv2:BRCM_NetworkAdapter.DeviceID="8"
Einbeziehen Ausschließen
Siehe Integritätsüberwachungsregeln-Sprache für eine allgemeine Beschreibung von "include" und "exclude" bezüglich ihrer erlaubten
Attribute und Unterelemente.
Für WQLSet sollten die Unterelemente "include" und "exclude" in der Regel nicht erforderlich
sein. Es ist vorzuziehen, WQL zu verwenden, um die genaue Menge der zu überwachenden
Objekte anzugeben, da dies die Arbeitsbelastung sowohl für den Agenten als auch für
die WMI-Implementierung des Computers begrenzt.
Die Verwendung von Include- oder Exclude-Subelementen kann nur die Menge der durch
die Abfrage zurückgegebenen Objekte reduzieren; die WQL muss geändert werden, um zusätzliche
Objekte zurückzugeben. Wenn es notwendig ist, Include- oder Exclude-Elemente zu verwenden,
um die WQL-Ergebnisse weiter einzuschränken, können "*" und "?" als einfache Platzhalter
verwendet werden, um mit den Werten des Entitätsschlüssels übereinzustimmen.
