專利名稱:軟件應用程序識別的制作方法
軟件應用程序識別
背景技術(shù):
業(yè)務管理系統(tǒng)可以使用自動化特征來管理諸如計算機的硬件設備以及在計算機(包括計算機網(wǎng)絡)上安裝且執(zhí)行的軟件應用程序。這些自動化特征允許人類用戶發(fā)現(xiàn)、跟蹤和盤點組成機構(gòu)的信息技術(shù)(IT)基礎設施的硬件、軟件以及網(wǎng)絡資產(chǎn)。
詳細描述將參考下面的附圖,在附圖中相同的附圖標記表示相似的項目,且在附圖中:
圖1示出在其中實現(xiàn)軟件識別的計算機系統(tǒng)的示例;
圖2示出軟件識別系統(tǒng)的示例;
圖3示出用于圖2的軟件識別系統(tǒng)的概念框架;
圖4示出圖2的軟件識別系統(tǒng)使用的示例算法;以及 圖5示出使用圖2的軟件識別系統(tǒng)的軟件識別方法的示例。
具體實施例方式具有大信息技術(shù)(IT)基礎設施的機構(gòu)通常采用某一類型的業(yè)務服務自動化系統(tǒng)來管理和控制其IT資產(chǎn),包括硬件組件和駐留在硬件組件上且在硬件組件上執(zhí)行的軟件。典型的業(yè)務服務自動化系統(tǒng)可以包括周期性地掃描硬件組件以發(fā)現(xiàn)、識別和盤點軟件應用程序的發(fā)現(xiàn)和相關性映射盤點(DDMI)系統(tǒng)。針對發(fā)現(xiàn)的軟件應用程序中的每個實例創(chuàng)建單獨的文件記錄。軟件應用程序可以包括很多單獨的文件,且文件可以跨越多個目錄分布。例如,文字處理應用程序可以包括主.exe (main.exe)文件以及諸如dll文件的若干相關聯(lián)文件。.exe文件可以包含在第一目錄中且.dll文件可以包含在第二目錄中。發(fā)現(xiàn)引擎產(chǎn)生包含針對特定目錄中的這些單獨的文件中的每一個的文件記錄的掃描結(jié)果文件(例如XML-格式的文件)。掃描結(jié)果文件中的文件記錄被提交給識別引擎,一次提交一個文件記錄。每個文件記錄包含諸如文件名稱和文件大小的特征信息。對于每個文件記錄,識別引擎將特征信息與可以包含在樣本應用程序清單中的樣本文件的特征進行比較。當來自發(fā)現(xiàn)的軟件應用程序的合計特征信息在值方面與樣本軟件應用程序的合計特征信息足夠接近時,識別引擎判斷存在匹配,且將發(fā)現(xiàn)的軟件應用程序識別為與匹配的樣本軟件應用程序相同。然而,在其上找到所述發(fā)現(xiàn)的軟件應用程序的硬件平臺可以僅包含主(例如.exe)文件而不包含相關聯(lián)的(例如.dll)文件。軟件應用程序匹配處理仍可能“宣稱”與樣本軟件應用程序匹配。另外,發(fā)現(xiàn)的軟件應用程序可以匹配多于一個版本的樣本軟件應用程序。在這種情況下,可能需要進一步的復雜的排除處理來判斷發(fā)現(xiàn)的軟件應用程序的正確身份。例如,在存在多個版本的情況下,如果至少一個版本具有安裝字符串,則丟棄沒有安裝字符串的所有樣本軟件應用程序。在剩余的版本中,選擇其語言是識別引擎的可配置優(yōu)選語言的那些樣本軟件應用程序。如果該語言選擇步驟沒有選擇樣本軟件應用程序版本,則選擇其語言是中性語言的那些樣本軟件應用程序版本。如果不存在中性語言樣本軟件應用程序版本,則選擇其語言是英語的那些版本。如果在這些基于語言的排除步驟之后剩余多于一個的樣本軟件應用程序,則所有剩余的樣本軟件應用程序都可能可以匹配發(fā)現(xiàn)的軟件應用程序,且識別引擎然后可以任意選擇樣本軟件應用程序作為發(fā)現(xiàn)的軟件應用程序的身份??梢允褂煤芏嗥渌麡藴蕘碓噲D確定或識別發(fā)現(xiàn)的軟件應用程序的正確版本。具體而言,可能需要復雜的多級分析,其中所述分析包括文件級識別處理、目錄級識別處理和機器級識別處理。這種多級分析在下文中被稱為DDMI識別處理、算法或方法。這種DDMI識別算法的復雜性和處理器密集(processor-1ntensive)特性部分地是源于為了選擇軟件應用程序的正確版本而使用很多不同的標準,從而使得邏輯更復雜且樣本應用程序索引數(shù)據(jù)庫維護更困難。另一缺點在于,DDMI識別算法可以基于應用程序的主文件的比較且忽略由于版本變化可能不同的應用程序的相關聯(lián)文件來宣稱發(fā)現(xiàn)的軟件應用程序和樣本軟件應用程序之間的匹配,從而導致發(fā)現(xiàn)的軟件應用程序的錯誤識別。不同于在多級上且跨越多個目錄到所發(fā)現(xiàn)的軟件應用程序的匹配以及設置標準的復雜、費力且有時錯誤的如上所述的DDMI識別處理,此處公開的軟件應用程序識別設備、系統(tǒng)和方法確定查詢或發(fā)現(xiàn)的文件集合與存儲在軟件應用程序索引數(shù)據(jù)庫中的樣本應用程序之間的相似性,以便以快速可靠的方式識別目標軟件應用程序。圖1示出在其中實現(xiàn)軟件應用程序識別的計算機系統(tǒng)的示例。在圖1中,計算機系統(tǒng)10包括通過網(wǎng)絡50耦合的計算機20、30、40。網(wǎng)絡50可以是局域網(wǎng)、廣域網(wǎng)或公共接入網(wǎng)。計算機20包括用戶接口 21、顯示器23以及介質(zhì)端口 25、處理器27和存儲器29。存儲器29例如可以是隨機存取存儲器(RAM)。耦合至計算機20的是數(shù)據(jù)存儲器22,該數(shù)據(jù)存儲器22可以是只讀存儲器(ROM)??蛇x地,數(shù)據(jù)存儲器22可以被合并到計算機22中。在一個示例中為光盤的可移動計算機可讀介質(zhì)60包含實現(xiàn)軟件應用程序識別的安裝文件、執(zhí)行文件以及數(shù)據(jù)。可移動計算機可讀介質(zhì)60可以插入到介質(zhì)端口 25以將軟件應用程序數(shù)據(jù)、執(zhí)行和安裝文件傳輸?shù)接嬎銠C20,在計算機20處,數(shù)據(jù)和文件可以被存儲在數(shù)據(jù)存儲器22中和被復制到存儲器29以用于軟件應用程序識別處理的執(zhí)行。計算機系統(tǒng)10被示為具有3個相連的計算機20、30和40,不過系統(tǒng)10可以包括許多更多的計算機。計算機30和40中的每一個可以包括類似于用于計算機20的上面所述的那些軟件應用程序識別特征的軟件應用程序識別特征,且軟件應用程序識別特征可以被每個計算機20、30和40使用以管理本地安裝的軟件應用程序??蛇x地,軟件應用程序識別特征可以僅駐留在計算機20上,且那些特征可以用于管理所有三個計算機20、30、40上的軟件應用程序。圖2示出軟件識別系統(tǒng)的示例。在圖2中,軟件識別系統(tǒng)100包括掃描引擎110、文件檢索引擎120、相似性引擎130、輸出引擎140、比較引擎150和閾值調(diào)節(jié)引擎160。掃描引擎110使用分布式代理10掃描各個計算機20、30、40以發(fā)現(xiàn)居留于其上的軟件應用程序并確定每個這樣的所發(fā)現(xiàn)的軟件應用程序的屬性。屬性例如可以被包括在頭數(shù)據(jù)中,該頭數(shù)據(jù)被包括在軟件應用程序中。所發(fā)現(xiàn)的應用程序然后被傳遞到文件檢索引擎120,該文件檢索引擎120使用掃描引擎110識別的屬性數(shù)據(jù)從樣本應用程序和矢量數(shù)據(jù)庫125選擇適當?shù)臉颖拒浖贸绦蛭募?。選擇可以基于簡單的過濾操作。例如,如果掃描的軟件應用程序是文字處理器,則文件檢索引擎120可以從數(shù)據(jù)庫125選擇所有的文字處理器應用程序。所選的軟件應用程序文件然后被發(fā)送到相似性引擎130,該相似性引擎130計算每個選擇的樣本軟件應用程序和每個發(fā)現(xiàn)的軟件應用程序之間的相似性值。計算出的相似性值可以是基于任意數(shù)目的所識別的屬性,包括文件名稱、供應商(vendor)、大小和語言。此夕卜,可以使用加權(quán)引擎180來對在計算相似性值中使用的每一個屬性應用用戶選擇的或供應商指定的權(quán)重。在一個缺省情形中,每個所識別的屬性被分配相等的權(quán)重;實質(zhì)上,屬性未被加權(quán)。在另一缺省情形中,供應商基于文件或?qū)傩缘闹匾苑峙錂?quán)重。例如,.exe文件會被分配0.5的權(quán)重。因此,可以給屬性分配不同的權(quán)重,不過一些屬性仍可以具有相同的權(quán)重。不同的權(quán)重可以通過系統(tǒng)管理員來分配或可以通過相似性程序供應商來分配,并且然后之后可以被系統(tǒng)管理員修改。相似性引擎的處理結(jié)果被傳遞到輸出引擎140,該輸出引擎140產(chǎn)生用于K個最接近樣本軟件應用程序的加權(quán)相似性值的矢量r。比較引擎150然后將矢量r中的相似性值
與閾值進行比較以判斷相似性值是否足夠高以用于識別發(fā)現(xiàn)的軟件應用程序。比較引擎150可以接收通過使用閾值引擎160設置的可調(diào)節(jié)閾值。通過閾值引擎160應用的值可以由人類用戶使用用戶輸入設備170來明確地設置(例如,大于75%的相似性值)。每個發(fā)現(xiàn)的軟件應用程序和每個樣本軟件應用程序可以包括多個單獨的文件和相應的屬性。例如,發(fā)現(xiàn)的軟件應用程序可以由文件集合P來表示。文件集合P可以包含fi=1_n個文件,其中每個文件4包含N個屬性fi={fn…fin},其中fu表示文件大小、文件名稱或文件簽名。相似性計算引擎130例如使用等式I來計算兩個文件q和s之間的距離r的量度:
(1)
權(quán)利要求
1.一種用于識別安裝在硬件設備上的軟件應用程序的方法,包括: 掃描硬件設備以發(fā)現(xiàn)安裝在硬件設備上的目標軟件應用程序,其中目標應用程序包含一個或多個文件; 檢索一個或多個樣本應用程序以用于與目標應用程序的比較; 判定目標應用程序與所述一個或多個樣本應用程序中的每一個樣本應用程序之間的相似性;以及 基于相似性判定識別目標應用程序。
2.根據(jù)權(quán)利要求1所述的方法,其中目標應用程序以及所述一個或多個樣本應用程序中的每一個樣本應用程序包含一個或多個文件,且其中所述相似性判定基于目標應用程序以及所述一個或多個樣本應用程序中的每一個樣本應用程序的相應文件之間的距離。
3.根據(jù)權(quán)利要求2所述的方法,其中所述文件中的每一個包含一個或多個屬性,還包括: 對所述一個或多個屬性中的每一個應用權(quán)重; 對所述權(quán)重求和;以及 選擇具有最高合計權(quán)重的樣本應用程序以用于識別目標應用程序。
4.根據(jù)權(quán)利要求2所述的方法,其中對于目標應用程序文件Qi和樣本應用程序文件Si,所述距離被測量為
5.根據(jù)權(quán)利要求4所述的方法,其中為了計算參考文件集合
6.根據(jù)權(quán)利要求5所述的方法,還包括將與目標文件集合Q最接近的K個樣本文件集合的輸出值R(Q,S)存儲在矢量R = (R1, R2,...RkI中。
7.根據(jù)權(quán)利要求6所述的方法,還包括對K個最接近的樣本文件集合應用閾值。
8.根據(jù)權(quán)利要求7所述的方法,其中沒有樣本文件集合超過閾值,還包括使用用來識別目標軟件應用程序的備選標準。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 為目標軟件應用程序確定應用程序類型;以及 僅選擇與所確定的應用程序類型相對應的那些樣本軟件應用程序。
10.根據(jù)權(quán)利要求1所述的方法,其中所述文件包括.exe文件,且其中.exe文件被分配最高的權(quán)重。
11.根據(jù)權(quán)利要求1所述的方法,其中所述權(quán)重的和等于1.0。
12.—種計算機可讀介質(zhì),其包括用于由處理器執(zhí)行的程序代碼,該程序在由處理器執(zhí)行時實現(xiàn)一種方法,該方法包括: 掃描硬件設備以發(fā)現(xiàn)安裝在硬件設備上的目標軟件應用程序,其中目標應用程序包含一個或多個文件;檢索一個或多個樣本應用程序以用于與目標應用程序的比較; 判定目標應用程序與所述一個或多個樣本應用程序中的每一個樣本應用程序之間的相似性;以及 基于所述相似性判定識別目標應用程序。
13.根據(jù)權(quán)利要求12所述的計算機可讀介質(zhì),其中所述目標應用程序以及所述一個或多個個樣本應用程序中的每一個樣本應用程序包含一個或多個文件,且其中所述相似性判定是基于目標應用程序與所述一個或多個樣本應用程序中的每一個樣本應用程序的相應文件之間的距離。
14.根據(jù)權(quán)利要求13所述的計算機可讀介質(zhì),其中所述文件中的每一個包含一個或多個屬性,還包括: 對所述一個或多個屬性中的每一個應用權(quán)重; 對所述權(quán)重求和;以及 選擇具有最高合計權(quán)重的樣本應用程序以用于識別目標應用程序。
15.根據(jù)權(quán)利要求13所述的計算機可讀介質(zhì),其中對于目標應用程序文件qi和樣本應用程序文件Si,所述距離被測量為伽)=XfLt Ici I q, - Si I,其中£f=1 k, = 1,且其中h是用于每個屬性N的權(quán)重值。
16.根據(jù)權(quán)利要求15所述的計算機可讀介質(zhì),其中為了計算參考文件集合S = Cs, ISm}和目標文件集合Q = 15 ^m1 q, S qi+,}之間的相似性R(Q,S),相似性計算為
17.根據(jù)權(quán)利要求16所述的計算機可讀介質(zhì),還包括將與目標文件集合Q最接近的K個樣本文件集合的輸出值R(Q,S)存儲在矢量R = (R1, R2,…Rk}中。
18.根據(jù)權(quán)利要求17所述的計算機可讀介質(zhì),還包括對K個最接近的樣本文件集合應用閾值。
19.一種用于識別目標軟件應用程序的系統(tǒng),包括: 掃描引擎,其掃描硬件設備以發(fā)現(xiàn)安裝在硬件設備上的目標軟件應用程序,其中目標應用程序包含一個或多個文件; 文件檢索引擎,其檢索一個或多個樣本應用程序以用于與目標應用程序的比較; 相似性引擎,其判定目標應用程序與所述一個或多個樣本應用程序中的每一個樣本應用程序之間的相似性;以及 比較引擎,其基于所述相似性判定識別目標應用程序。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中相似性引擎對所述一個或多個屬性中的每一個應用權(quán)重,對所述權(quán)重求和,并選擇具有最高合計權(quán)重的樣本應用程序以用于識別目標應用程序還包括,且其中相似性引擎將參考文件集合S = {S11 I S n, Si^ Sm}和目標文件集合Q = f ^11奮丨5q,s之間的相似性 R (Q,s)計算為 R<Q, S) = Max^ ^ Egfr(^Sl),其中 qi€ o, s〗€ S, sH n,且其中對于目標應用程序文件Qi和樣本應用程序文件Si,相似性引擎將距離計算為
全文摘要
一種用于識別安裝在硬件設備上的軟件應用程序的方法,其包括掃描硬件設備以發(fā)現(xiàn)安裝在硬件設備上的目標軟件應用程序,其中目標應用程序包含一個或多個文件;檢索一個或多個樣本應用程序以用于與目標應用程序的比較;判定目標應用程序與所述一個或多個樣本應用程序中的每一個樣本應用程序之間的相似性;以及基于所述相似性判定識別目標應用程序。
文檔編號G06F9/44GK103210368SQ201080069909
公開日2013年7月17日 申請日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者談翔, 凌政, 陳立浩 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)