前のトピック: 定義のスキャンの有効化または無効化次のトピック: Intellisig -- スクリプトによるソフトウェア検出


ソフトウェア シグネチャ XML リファレンス情報

ソフトウェア シグネチャは、IT Client Automation サーバに登録されているエージェント上にインストールされたソフトウェアを識別するために役立ちます。 シグネチャは、一般システム情報、ファイル コンテンツ、プロパティ、およびインストールされたソフトウェアのレジストリ コンテンツ(Windows の場合)またはパッケージ情報(UNIX の場合)が含まれる XML テンプレートです。

この付録では、シグネチャ XML タグ、キー属性、およびサンプル シグネチャに関する以下の概念情報の理解に役立つ情報を提供します。

シグネチャ XML タグ

ソフトウェア シグネチャでは、XML 形式にあるシグネチャ データを収集するために以下の XML タグが使用されます。

レジストリ タグ

Windows レジストリ キー/値を解析する機能を提供します。 例:

<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>
ファイル タグ

ファイル名、バージョン、サイズ、変更日、パスを解析する機能、およびファイルのコンテンツをスキャンする機能も提供します。

path

Windows の %systemroot% および %windir% などの値を使用して、ファイルの存在を確認します。 ワイルドカード * を使用すると、ファイル システム全体が検索されます。 以下に例を示します。

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

ファイル システム全体を確認します。

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

パスの一部に Reader がある acrord32.exe ファイルを確認します。

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

絶対値のパスを確認します。

match

ファイルのコンテンツを解析します。 一致条件の定義にあるものと同じデータがファイルに含まれている場合、true を返します。 例: <file name="Ouactrl.ocx" match="2\.0\.0\.0" path="*" />

minversion および maxversion

ファイル バージョン情報を確認します(Windows のみ)。 UNIX では常に false を返します。

ファイル バージョン番号が指定値以上である場合、minversion 属性は true を返します。

ファイル バージョン番号が指定値以下である場合、maxversion 属性は true を返します。

注: バージョン番号は W.X.Y.Z の形式です。W、X、Y、および Z は 16 ビットの数値です。 minversion および maxversion を組み合わせると、非常に柔軟にバージョン範囲を確認できます。 例:

<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 および maxmodified

ファイルの変更日を確認します。 例: <file name="ErwDSM.exe" minmodified="2004-10-28T00:00:00Z" maxmodified="2004-10-28T 23:59:59Z" path="*"/>

minfilesize および maxfilesize

ファイルのサイズを確認します。 例: <file name="BPSyncER.exe" minfilesize="151603" maxfilesize="151603" path="*"/>

システム情報タグ

以下のオペレーティング システム情報を解析する機能を提供します。

osname

UNIX では、uname -s の出力から取得される名前です。

Windows バージョンでは、osname は常に Windows です。

例: <sysinfo osname=”HP-UX”/>

osversion

UNIX では、照合される情報は uname -v の出力と同等です。

Windows では、この情報は Microsoft 提供のサービス パック文字列(例: Service Pack 3)です。

例: <sysinfo osversion=”.*Version 6\.3.*”/>

osrelease

UNIX では、この情報は uname -r の出力と同等です。

Windows では、この情報は、「NT 4.0」、「2000」、または「XP」です。

例: <sysinfo osrelease=”2\.4\.*/>

platform

UNIX では、照合される情報は uname -m の出力と同等です。

Windows では、照合される文字列は常に「x86」です。

例: <sysinfo platform=”sun4.*”/>

processor

Solaris では、照合される情報は uname -p の出力と同等です。

HP-UX では、プロセッサは pa-riscX.Y または不明として識別されます。ここで、 X. Y は 1.0、1.1、1.2、2.0 のいずれかです。

Windows では、照合される文字列は常に不明です。

AIX では、プロセッサは RS1、RSC、RS2、601、603、604、620、630、A35、RS64II、RS64III、POWER4、mpc7450、POWER5、または不明のいずれかとして識別されます。

Linux では、プロセッサは常に不明として識別されます。

例: <sysinfo processor=”sparc”/>

パッケージ タグ

インストールされたプログラム データベースからパッケージ情報をクエリすることを可能にします。

Windows

この情報は、以下のアンインストール レジストリ セクション内にあります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

注: DisplayName はパッケージ タグの値名で、DisplayVersion はパッケージ タグのバージョン値です。

Linux

この情報は、RPM データベース内にあります。

  • rpm -qa を使用すると、コンピュータにインストールされたパッケージがリスト表示されます。 SuSe 上のパッケージ詳細をリスト表示するには、パッケージ名 rpm -qi を使用できます。
HP-UX

この情報は、システム パッケージ データベース内にあります。

  • swlist を使用すると、コンピュータにインストールされたパッケージがリスト表示されます。
IBM AIX

この情報は、システム パッケージ データベース内にあります。

lslpp -l を使用すると、コンピュータにインストールされたパッケージがリスト表示されます。

Sun Solaris

この情報は、システム パッケージ データベース内にあります。

pkginfo -l を使用すると、コンピュータにインストールされたパッケージがリスト表示されます。 以下に例を示します。

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

バージョンおよびリリースが指定された場合、両方が一致する必要があります。

キー属性およびネスト

インストールされたソフトウェアのシグネチャ データを収集するためのキー属性を以下に示します。

レジストリ(Windows のみ)

レジストリ データは、どのレジストリ ハイブからでも収集できますが、ほとんどの場合 HKLM\Software が通常使用されます。 以下に例を示します。

一意のファイルおよびその属性

インストールによってドロップされたソフトウェア ファイルを以下の属性を使用して一意に識別します。

ファイル バージョン

.exe ファイルのプロパティ ウィンドウで表示されるものと同じです。 例:
<file name="igateway.exe" path ="*" minversion="4.0.60220.0" maxversion="4.0.60220.0"/>

ファイル日付

.exe ファイルのプロパティ ウィンドウの[更新日時]に表示されるものと同じです。

ファイル サイズ

.exe ファイルのプロパティ ウィンドウで表示されるものと同じです。 例:

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

設定ファイル

パーサが読み取ることができるバージョン情報が含まれています。 パーサはファイルのコンテンツを読み取り、一致条件に指定されているデータを検索します。 例: <file name="igateway.conf" path="*" match="4.0.060220" />

注: ファイル バージョンおよびレジストリがない場合に UNIX シグネチャを作成するには、設定ファイルを使用する方が便利です。

XML での arch="64" タグの使用方法

HKLM\SOFTWARE\Wow6432Node キーは、64 ビット Windows OS 上で 32 ビット アプリケーションによって使用されます。このキーは「HKLM\SOFTWARE」と同等ですが、独立しています。 通常、64 ビットのバイナリ ファイルは、自分自身を HKLM\SOFTWARE に登録します。他方、32 ビットのバイナリ ファイルは、自分自身の情報を HKLM\SOFTWARE\Wow6432Node 下に書き込みます。 同様に、32 ビット アプリケーションは %SystemRoot%\Syswow64 を %SystemRoot%\System32 と見なします。 2 つの[Program Files]ディレクトリがあり、いずれも 32 ビットおよび 64 ビット アプリケーションの両方から見ることができます。 2 つのディレクトリを区別するために 32 ビットのファイルが格納されているディレクトリは[Program Files (x86)]という名前になっており、他方 64 ビットの方は追加の修飾子のない従来の[Program Files]という名前を保持しています。

重要: デフォルトでは、arch="64" タグがない場合、CA Client Automation エージェントはレジストリ/ファイル パスを 32 ビットとして処理します。 arch="64" タグは、レジストリおよびファイルの名前タグにのみ適用されることに注意してください。 したがって、アプリケーションのアーキテクチャに従い適切なレジストリ キーを使用するように注意します。

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

ネスト/グループ化

複数のレジストリ キー値およびファイル属性をグループ化します。 group タグを使用した以下の論理条件を使用し、必要なインストール済みソフトウェアの存在を確認するために複数のデータ項目/タグをグループ化できます。

AND を使用したネスト

AND グループ下のすべての項目およびグループを評価し、TRUE にします。

例:

<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>
OR を使用したネスト

OR グループ下の少なくとも 1 つの項目またはグループを評価し、TRUE にします。

例:

<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>
NOT を使用したネスト

下位の項目またはグループが TRUE に評価されている場合、目的のグループを FALSE に評価します。

例:

<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>

サンプル シグネチャ

カスタム シグネチャを作成するには、以下のサンプル シグネチャを参照します。

ファイル バージョンの読み取り

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

package name タグを使用した情報の読み取り

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

レジストリ キーの存在の確認

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

file name および package name 名タグを使用した AND 条件のある 1 つのグループ内のシグネチャ

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>

package name および sysinfo osname タグを使用した 1 つの AND グループのあるシグネチャ

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

ファイル日付属性と共に file name タグを使用したシグネチャ

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="*" />

registry name および package name タグを使用した 1 つの AND グループのあるシグネチャ

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>

registry name、file name(ファイル バージョンの読み取り)、および package name タグを使用した 1 つの AND グループのあるシグネチャ

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>

registry name、file name (ファイルの存在の確認)、および package name タグを使用した 1 つの AND グループのあるシグネチャ

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>

sysinfo osname、file name (ファイルの存在の確認)、および package name タグを使用した 1 つの AND グループのあるシグネチャ

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>

package name (ワイルドカードを使用)、registry name、および file name (ファイル バージョンの読み取り/ファイルの存在の確認/ファイル コンテンツの読み取り)を使用するネストされたグループ(AND 内の OR および NOT 条件)のあるシグネチャ

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>

registry name および file name (パスの一部指定によるファイルの存在の確認/ファイル コンテンツの読み取り)を使用した 1 つの AND グループのあるシグネチャ

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>

sysinfo platform タグ、およびファイル サイズ属性と共に file name タグを使用した 1 つの AND グループのあるシグネチャ

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

package name タグ、およびファイル サイズ/ファイル日付属性と共に file name タグを使用した 1 つの AND グループのあるシグネチャ

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>

ワイルドカードを含む registry name および file name(ファイル バージョンの読み取り)を使用するネストされたグループ(AND 内の 2 つの OR 条件)のあるシグネチャ

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>

Intellisig