Vorheriges Thema: Scan für eine Definition aktivieren oder deaktivierenNächstes Thema: Intellisigs – Software-Erkennung durch Skripte


XML-Referenzinformationen der Software-Signatur

Mit einer Software-Signatur kann die installierte Software auf den Agenten identifiziert werden, die mit dem IT Client Automation-Server registriert sind. Eine Signatur ist eine XML-Vorlage, die allgemeine Systeminformationen, Dateiinhalte, Eigenschaften und Registrierungsinhalte (unter Windows) oder Paketinformationen (unter UNIX) der installierten Software enthält.

In diesem Anhang werden folgende Konzeptinformationen der Signatur-XML-Tags, Schlüsselattribute und Beispielsignaturen erklärt:

Signatur-XML-Tags

Eine Software-Signatur verwendet folgende XML-Tags, um Signaturdaten im XML-Format zu erfassen:

Registrierungs-Tag:

Ermöglicht es, den Windows-Registrierungsschlüssel bzw. die Windows-Registrierungswerte zu analysieren. Beispiel:

<group type="and"> 
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\eTrustAntivirus\CurrentVersion\Version" match=" 7.1" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\eTrustAntivirus\CurrentVersion\Build" match="501" /> </group>
Datei-Tag

Ermöglicht es, den Dateinamen, die Version, die Größe, das Änderungsdatum und den Pfad zu analysieren, und es können auch die Inhalte der Datei durchsucht werden.

path

Überprüft das Vorhandensein einer Datei, indem Werte wie %systemroot% und %windir% unter Windows verwendet werden. Der Platzhalter * durchsucht das gesamte Dateisystem. Beispiel:

<file name="named.conf" path="*" />

Überprüft das gesamte Dateisystem.

<file name="Reader\acrord32.exe" path="*"/>

Überprüft die Datei "acrord32.exe" beim Leser des Teilpfads:

<file name="openssl" path="/bin:/usr/bin:/usr/local/bin"/>

Überprüft den Pfad, der den absoluten Wert übernimmt.

match

Analysiert die Inhalte der Datei. Gibt "true" (wahr) zurück, wenn die Datei die gleichen Daten enthält, die in den Übereinstimmungskriterien definiert sind. Beispiel: <file name="Ouactrl.ocx" match="2\.0\.0\.0" path="*" />

"minversion" und "maxversion"

Überprüft die Informationen der Dateiversion nur unter Windows. Unter UNIX wird immer "false" (falsch) zurückgegeben.

Wenn die Dateiversionsnummer größer ist als der angegebene Wert oder mit dem angegebenen Wert übereinstimmt, dann gibt das Attribut "minversion" den Wert "true" (wahr) zurück.

Wenn die Dateiversionsnummer kleiner ist als der angegebene Wert oder mit dem angegebenen Wert übereinstimmt, dann gibt das Attribut "maxversion" den Wert "true" (wahr) zurück.

Hinweis: Die Versionsnummer hat das Format "W.X.Y.Z", wobei W, X, Y und Z 16-Bit-numerische Werte sind. Durch das Kombinieren von "minversion" und "maxversion" kann eine hohe Flexibilität beim Überprüfen der Versionsbereiche erreicht werden. Beispiel:

<file name="QuickTimePlayer.exe" minversion="5.0.2.15" maxversion="5.0.2.15" path="*"/>

<file name="InoRT.exe" minversion=" 7.1.192.0" maxversion=" 7.1.500.0" path="*" />

"minmodified" und "maxmodified"

Überprüft das Änderungsdatum der Datei. Zum Beispiel: <file name="ErwDSM.exe" minmodified="2004-10-28T00:00:00Z" maxmodified="2004-10-28T 23:59:59Z" path="*"/>

"minfilesize" und "maxfilesize"

Überprüft die Größe der Datei. Zum Beispiel: <file name="BPSyncER.exe" minfilesize="151603" maxfilesize="151603" path="*"/>

Sysinfo-Tag

Ermöglicht es, folgende Betriebssysteminformationen zu analysieren:

osname

Unter UNIX wird der Name von der Ausgabe von "uname -s" abgeleitet.

Für Windows-Versionen ist der "osname" immer "Windows".

Beispiel: <sysinfo osname="HP-UX"/>

osversion

Unter UNIX sind die Informationen, die abgeglichen werden sollen, das Äquivalent zur Ausgabe von uname -v.

Unter Windows ist diese Information die Service Pack-Zeichenfolge, die von Microsoft bereitgestellt wird (zum Beispiel Service Pack 3).

Beispiel: <sysinfo osversion=".*Version 6\.3.*"/>

osrelease

Unter UNIX ist diese Information das Äquivalent zur Ausgabe von "uname -r"

Unter Windows ist diese Information "NT 4.0", "2000" oder "XP"

Beispiel: <sysinfo osrelease="2\.4\.*/>

platform

Unter UNIX sind die Informationen, die abgeglichen werden sollten, das Äquivalent zur Ausgabe von "uname -m".

Unter Windows ist die Zeichenfolge, die abgeglichen werden soll, immer "x86".

Beispiel: <sysinfo platform="sun4.*"/>

processor

Unter Solaris sind die Informationen, die abgeglichen werden sollten, das Äquivalent zur Ausgabe von "uname -p".

Für HP-UX ist der Prozessor definiert als "pa-riscX.Y" oder "unknown" wobei X. Y für 1.0, 1.1, 1.2 oder 2.0 steht.

Unter Windows ist die Zeichenfolge, die abgeglichen werden soll, immer "unknown".

Unter AIX ist der Prozessor als einer der folgenden Werte identifiziert: RS1, RSC, RS2, 601, 603, 604, 620, 630, A35, RS64II, RS64III, POWER4, mpc7450, POWER5 oder "unknown".

Unter Linux wird der Prozessor immer als "unknown" aufgelistet.

Beispiel: <sysinfo processor="sparc"/>

Paket-Tag

Ermöglicht es, die Paketinformationen aus der installierten Programmdatenbank abzufragen.

Windows

Diese Informationen sind im folgenden Deinstallations-Registrierungsabschnitt verfügbar:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Hinweis: Der Anzeigename ist der Wert des Namens im Paket-Tag, und die Anzeigeversion ist der Wert der Version im Paket-Tag.

Linux

Diese Informationen sind in der RPM-Datenbank verfügbar.

  • "rpm -qa" listet die installierten Pakete auf dem Computer auf. Sie können den Paketnamen "rpm -qi " verwenden, um die Details des Pakets unter SuSe aufzulisten.
HP-UX

Diese Informationen sind in der Datenbank des Systempakets verfügbar.

  • "swlist" listet die installierten Pakete auf dem Computer auf.
IBM AIX

Diese Informationen sind in der Datenbank des Systempakets verfügbar.

"lslpp -l" listet die installierten Pakete auf dem Computer auf.

Sun Solaris

Diese Informationen sind in der Datenbank des Systempakets verfügbar.

"pkginfo –l" listet die installierten Pakete auf dem Computer auf. Beispiel:

<package name="ca-unicenter-servicedesk"/> <package name="ca-unicenter-servicedesk" version="11.2.0.0"/>

Wenn Version und Release angegeben sind, müssen beide übereinstimmen.

Schlüsselattribute und Verschachtelung

Nachfolgend werden Schlüsselattribute aufgelistet, die für das Erfassen der Signaturdaten der installierten Software verwendet werden.

Registrierung (nur für Windows)

Registrierungsdaten können von allen Registrierungsstrukturen erfasst werden. In den meisten Fällen wird normalerweise "HKLM\Software" verwendet. Beispiel:

Eindeutige Dateien und ihre Attribute

Es werden eindeutige Softwaredateien identifiziert, die von der Installation mit folgenden Attributen entfernt werden:

Dateiversion

Wie im Eigenschaftsfenster der .exe-Datei angezeigt. Beispiel,
<file name="igateway.exe" path ="*" minversion="4.0.60220.0" maxversion="4.0.60220.0"/>

Dateidatum

Wie unter "Geändert" im Eigenschaftsfenster der .exe-Datei angezeigt.

Dateigröße

Wie im Eigenschaftsfenster der .exe-Datei angezeigt. Beispiel:

<file name="igateway.exe" path ="*" minfilesize="98304" maxfilesize="98304" minmodified="2006-02-20T00:00:00Z" maxmodified="2006-02-20T23:59:59Z"/>

Konfigurationsdateien

Enthält die Versionsinformationen, die der Parser lesen kann. Der Parser liest die Inhalte der Datei und sucht nach Daten, die in den Übereinstimmungskriterien angegeben sind. Zum Beispiel: <file name="igateway.conf" path="*" match="4.0.060220" />

Hinweis: Das Erstellen von Signaturen mithilfe von Konfigurationsdateien ist hilfreicher, um Unix-Signaturen zu erstellen, bei denen Sie keine Dateiversion und Registrierung haben.

Verwendung des arch="64"-Tags in der XML

Der Schlüssel "HKLM\SOFTWARE\Wow6432Node" wird von 32-Bit-Anwendungen auf einem 64-Bit-Windows-BS verwendet und ist gleichwertig und separat zu "HKLM\SOFTWARE". Normalerweise werden 64-bit-Binärdateien von selbst bei "HKLM\SOFTWARE" registriert, während 32-bit-Binärdateien ihre Informationen unter "HKLM\SOFTWARE\Wow6432Node" schreiben. Entsprechend sehen 32-Bit-Anwendungen "%SystemRoot%\Syswow64" als "%SystemRoot%\System32". Es gibt zwei Verzeichnisse mit dem Namen "Program Files" (Programme), die sowohl für 32-Bit-Anwendungen als auch für 64-Bit-Anwendungen sichtbar sind. Das Verzeichnis, das die 32-Bit-Dateien speichert, hat den Namen "Programme (x86)", um die beiden Verzeichnisse zu differenzieren, während die 64-Bit-Dateien im normalen Verzeichnis "Programme" ohne zusätzliche Kennzeichner beibehalten werden.

Wichtig! Standardmäßig betrachtet der CA Client Automation-Agent die Registrierung bzw. den Dateipfad als 32-Bit, wenn das arch="64"-Tag nicht vorhanden ist. Beachten Sie, dass das arch="64"-Tag nur auf die Registrierung und die Dateinamen-Tags angewendet wird. Stellen Sie sicher, dass Sie je nach Architektur der Anwendung die entsprechenden Registrierungsschlüssel verwenden.

Beispiel: <registry name="HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0" arch="64" /> ODER <file name="bin\java.exe" match="1.6.0-b105" path="*" arch="64" />

Verschachtelung/Gruppierung

Gruppiert mehrere Registrierungsschlüsselwerte und Dateiattribute. Sie können mehr als ein Datenobjekt/-Tag gruppieren, um das Vorhandensein der erforderlichen installierten Software zu bestätigen, indem Sie folgende logische Bedingungen mit dem Gruppen-Tag verwenden:

Verschachtelung mit AND

Bewertet alle Objekte und Gruppen unter der AND-Gruppe als "TRUE" (Wahr).

Beispiel:

<group type="and">
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox (2.0.0.3)"/> 
<file name="firefox.exe" minversion="1.8.20070.30919" maxversion="1.8.20070.30919" path="*"/> 
</group>
Verschachtelung mit OR

Bewertet mindestens eins der Objekte oder eine der Gruppen unter der OR-Gruppe als "TRUE" (Wahr)

Beispiel:

<group type="or"> 
<group type="and"> 
<file name="sw3eng.exe" path="*" minversion="3.0.1.73"/> 
<file name="EngineApplet.exe" path="*" minversion="3.0.1.73"/> 
</group> 
<group type="and"> 
<file name="LGClient.exe" path="*" minversion="3.0.1.73"/> 
<file name="LGWorkspace.exe" path="*" minversion="3.01.73"/> 
</group> 
</group>
Verschachtelung mit NOT

Bewertet die Gruppe als "FALSE" (Falsch), wenn das Objekt oder die Gruppe darunter als "TRUE" (Wahr) bewertet wird.

Beispiel:

<group type="and" > 
<sysinfo osname="AIX" /> 
<file name="LDS-em-client.jar" minfilesize="183308" maxfilesize="183308" path="*" /> 
<group type="not" > 
<file name="LDS-descriptions.jar" path="*" /> 
</group> 
</group>

Beispielsignaturen

Sehen Sie sich folgende Beispielsignaturen an, um benutzerdefinierte Signaturen zu erstellen

Lesen der Dateiversion:

Assignment Wizard Exe 1.0
<file name="ABTRep\BIN\assgnwiz.exe" path="*" minversion="1.0" maxversion="1.0" />

Lesen der Informationen mithilfe des Paketnamen-Tag:

IBM Java 2 Runtime Environment v1.4.1 x86 32
<package name = "IBM 32-bit Runtime Environment for Java 2, v1.4.1" />

Überprüfen des Vorhandenseins des Registrierungsschlüssels:

InCtrl5
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\InCtrl5" />

Signatur innerhalb einer Gruppe mit "AND"-Bedingung mit Dateinamen und Paketnamen-Tag:

Quest Software Toad for Oracle 10.6
<group type="and">
<package name = "Toad for Oracle 10.6" />
<file name="TOAD.exe" minversion="10.6" maxversion="10.6" path="*" />
</group>

Signatur mit einer "AND"-Gruppe, die den Paketnamen und das "sysinfo osname"-Tag verwenden:

IBM Directory Client SDK 4.1 [AIX]
<group type="and"> 
<sysinfo osname="AIX" /> 
<package name="ldap.client.adt" version="4.1.0.0" /> 
</group>

Signatur, die das Dateinamen-Tag mit Datei-Datumsattributen verwendet

Project Bridge Modeler 4.03.21
<file name="ABTRep\BIN\Pbm.exe" minmodified="1998-10-11T00:00:00Z" maxmodified="1998-10-13T23:59:59Z" path="*" />

Signatur mit einer "AND"-Gruppe, die den Registrierungsnamen und das Paketnamen-Tag verwendet:

FedEx Ship Manager API 8.50.002
<group type="and">
<package name="FedEx Ship Manager API" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\FedEx\FedEx Ship Manager API\8.50.002" />
</group>

Signatur mit einer "AND"-Gruppe, die den Registrierungsnamen, den Dateinamen (Lesen der Dateiversion) und Paketnamen-Tags verwendet:

SAPIEN Technologies PrimalScript 2011
<group type="and">
<package name="PrimalScript 2011" version="6.0.*" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\SAPIEN Technologies, Inc.\PrimalScript\2011\" />
<file name="PrimalScript 2011\PrimalScript.exe" path="*" minversion="6.0" maxversion="6.0" />
</group>

Signatur mit einer "AND"-Gruppe, die den Registrierungsnamen, den Dateinamen (Überprüfen des Vorhandenseins der Datei) und Paketnamen-Tags verwendet:

X1 Desktop Search Professional 6.7
<group type="and">
<package name="X1 Professional Client" version="6.7" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\X1 Desktop Search" />
<file name="X1.exe" path="*" />
</group>

Signatur mit einer "AND"-Gruppe, die "sysinfo osname", den Dateinamen (Überprüfen des Vorhandenseins der Datei) und Paketnamen-Tags verwendet:

RHEL4-iproute 2.6.9-4.el4 x86 32
<group type="and"> 
<sysinfo osname="Linux" /> 
<package name = "iproute" version="2.6.9" release="4.el4" /> 
<file name="/etc/redhat-release"/> 
</group>

Signatur mit verschachtelten Gruppen (eine "OR"- und "NOT"-Bedingung innerhalb von "AND"), die Paketnamen (Verwenden von Platzhaltern), Registrierungsnamen und Dateinamen (Lesen der Dateiversionen/Überprüfen des Vorhandenseins der Datei/Lesen des Dateiinhalts):

IBM Lotus Notes Client 8.5.1
<group type="and">
<group type="or">
<package name = "Lotus Notes 8.5.1" version="8.51.*" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Lotus\Notes\Version" match="080501" />
</group> 
<file name="notes.exe" minversion="8.5.10" maxversion="8.5.10" path="*" />
<group type="not">
<file name="notes.ini" match="FaultRecovery_Build=Release 8.5.1 FP1" path="*" />
</group>
</group>

Signatur mit einer "AND"-Gruppe, die Registrierungsnamen und Dateinamen (Überprüfen des Vorhandenseins der Datei durch Angabe des Teilpfads/Lesen des Dateiinhalts):

IBM Lotus Workforce Management 6.1
<group type="and"> 
<registry name = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IBM Lotus Workforce Management" />  
<file name="Web-App_6.1.0\Packages\lwm.builders.base.pkg" path="*"  />
<file name=".com.zerog.registry.xml" path="*" match="Web-App_6.1.0\\Packages\\lwm.builders.checklist.pkg" />
</group>

Signatur mit einer "AND"-Gruppe, die die sysinfo-Plattform und Dateinamen-Tags mit Dateigrößenattributen verwendet:

Adobe Reader 7.0.9 PowerPC
<group type="and"> 
<sysinfo platform="Power Macintosh" /> 
<file name="MacOS/Adobe Reader" minfilesize="9140" maxfilesize="9140" path="*" /> 
</group>

Signatur mit einer "AND"-Gruppe, die den Paketnamen und die Dateinamen-Tags mit Dateigrößenattributen verwendet:

CA AllFusion Erwin Data Modeler r7
<group type="and"> 
<package name="CA AllFusion Erwin Data Modeler r7" /> 
<file name="ERwin.exe" minfilesize="3883008" maxfilesize="3883008" path="*" /> 
<file name="ERwin.exe" minmodified="2007-05-21T00:00:00Z" maxmodified="2007-05-21T23:59:59Z" path="*" /> 
</group>

Signatur mit verschachtelten Gruppen (zwei "OR" -Bedingungen innerhalb von "AND"), die Registrierungsnamen mit Platzhaltern und Dateinamen (Lesen der Dateiversionen) verwendet:

Microsoft Office Project 2007 Standard Edition x86 32 EN
<group type ="and">
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Project" />
<group type="or">
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90120000-00B4-0409-0000-0000000FF1CE}" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{91120000-00B4-0409-0000-0000000FF1CE}" />
</group>
<group type="or">
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90120000-003A-0000-0000-0000000FF1CE}\DisplayVersion" match="12.0.4518.*" />
<registry name="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{91120000-003A-0000-0000-0000000FF1CE}\DisplayVersion" match="12.0.4518.*" />
</group>
<file name="OFFICE12\WINPROJ.EXE" minversion="12.0" maxversion="12.0" path="*" />
</group>

Intellisigs