檢測并防止惡意移動應(yīng)用程序的安裝的制作方法
【專利摘要】一種墊片和后端服務(wù)器應(yīng)用程序的組合,其可以用于識別和阻止惡意應(yīng)用程序在移動設(shè)備上的安裝。實際上,墊片應(yīng)用程序向移動設(shè)備的操作系統(tǒng)進(jìn)行注冊以攔截應(yīng)用程序安裝操作?;趯L試的安裝操作進(jìn)行攔截,所述墊片應(yīng)用程序識別試圖安裝的應(yīng)用程序,生成唯一地識別所述應(yīng)用程序的鍵值,并且將所述鍵值通過網(wǎng)絡(luò)連接傳輸至后端服務(wù)器。所述后端服務(wù)器可以被配置用于爬行互聯(lián)網(wǎng)以識別惡意應(yīng)用程序,并且編譯和維護(hù)這樣的應(yīng)用程序的數(shù)據(jù)庫。基于從所述墊片應(yīng)用程序接收鍵值,所述后端服務(wù)器可以搜索其數(shù)據(jù)庫以定位匹配的應(yīng)用程序,并且如果找到所述匹配的應(yīng)用程序,則利用所述應(yīng)用程序的狀態(tài)(例如,惡意或非惡意)向移動設(shè)備做出響應(yīng)。所述墊片應(yīng)用程序可以利用該信息來允許或阻止所述應(yīng)用程序的安裝。
【專利說明】檢測并防止惡意移動應(yīng)用程序的安裝
[0001] 相關(guān)文件的交叉應(yīng)用
[0002] 本申請與由
【發(fā)明者】Sude印Das等人于2011年10月17日遞交的名稱為System andMethodforWhitelistingApplicationsinaMobileNetworkEnvironment的 共同待決并且共同受讓的美國專利申請序列號13/275, 293相關(guān),其具有代理人案號為 04796-1106的,所述申請被視作本申請的一部分,并且其全部內(nèi)容由此以引用的方式被并 入本文。
【技術(shù)領(lǐng)域】
[0003] 本公開概括而言涉及計算機(jī)安全領(lǐng)域。更具體地,但非限制性地,本公開涉及在不 加重移動設(shè)備的有限的存儲器和處理資源的負(fù)擔(dān)的情況下防止在移動設(shè)備上對惡意應(yīng)用 程序的安裝的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品。
【背景技術(shù)】
[0004] 惡意軟件(malware)是用于描述使計算機(jī)系統(tǒng)受感染并且可以具有不同影響程 度的惡意軟件的廣義的術(shù)語。例如,惡意軟件的影響范圍可以從令人厭煩和不想要的廣告 軟件和間諜軟件到可以使計算機(jī)系統(tǒng)實際上失去作用的計算機(jī)病毒、蠕蟲和特洛伊木馬。 盡管對于個人計算機(jī)用戶而言惡意軟件的危害通常是公知的,但是移動設(shè)備的用戶通常更 少地意識到對于移動設(shè)備也存在類似的威脅。事實上,隨著移動設(shè)備的用途和功能的增加, 在移動設(shè)備上感染不想要的惡意軟件的威脅也在增加。
[0005] 盡管常見的做法是,在個人計算機(jī)上使用某種類型的防病毒應(yīng)用程序(術(shù)語防病 毒指各種各樣的防惡意軟件的軟件)來檢測和移除惡意軟件并且修復(fù)它的影響,但移動設(shè) 備的性質(zhì)(例如,存儲器限制、處理限制、電池壽命等)為類似的防病毒應(yīng)用程序的實現(xiàn)提 出了一定的障礙。例如,在個人計算機(jī)上執(zhí)行的典型防病毒應(yīng)用程序包括惡意軟件簽名數(shù) 據(jù)庫,其表示已知的惡意軟件,系統(tǒng)文件可以與所述惡意軟件簽名數(shù)據(jù)庫進(jìn)行比較以檢測 惡意軟件。盡管由惡意軟件簽名數(shù)據(jù)庫消耗的存儲器在個人計算機(jī)的存儲器資源的環(huán)境中 是可接受的,但是在移動設(shè)備的相對更小的存儲器資源的環(huán)境中卻不理想。此外,因為惡意 軟件創(chuàng)建者不斷地引入新的并且獨特形式的惡意軟件,所以必須定期對防病毒應(yīng)用程序進(jìn) 行更新以包括用于識別新形式的惡意軟件的簽名。因此,防病毒軟件供應(yīng)商例行發(fā)布定義 文件作為對其防病毒應(yīng)用程序的更新。這些更新的定義文件通常經(jīng)由互聯(lián)網(wǎng)從防病毒軟件 供應(yīng)商處獲取。這時又一次,盡管用于獲取更新的定義文件的帶寬在個人計算機(jī)的環(huán)境中 是可接受的,但是移動帶寬是有限的而且很昂貴,數(shù)據(jù)供應(yīng)商一般實施數(shù)據(jù)限額并且向超 過所述限額的用戶收費(fèi)。同樣,用于針對簽名數(shù)據(jù)庫來掃描系統(tǒng)文件的處理要求在個人計 算機(jī)的環(huán)境中是可接受的,但對于移動設(shè)備卻不理想。
【專利附圖】
【附圖說明】
[0006] 為了提供對本公開以及其特征和優(yōu)點的更全面的理解,結(jié)合附圖對下文的說明書 進(jìn)行了參考,其中,相同的附圖標(biāo)記代表相同的部件。在附圖中:
[0007] 圖1是示出了根據(jù)一個實施例的網(wǎng)絡(luò)架構(gòu)的框圖;
[0008] 圖2是示出了根據(jù)一個實施例的可以在其上安裝軟件的設(shè)備的框圖;
[0009] 圖3是示出了根據(jù)一個實施例的檢測并防止惡意應(yīng)用程序安裝到移動設(shè)備上的 過程的流程圖;
[0010] 圖4是示出了根據(jù)一個實施例的檢測并防止惡意應(yīng)用程序安裝到移動設(shè)備上的 網(wǎng)絡(luò)架構(gòu)的框圖;以及
[0011] 圖5是示出了根據(jù)一個實施例的后端服務(wù)器識別應(yīng)用程序的狀態(tài)并將該狀態(tài)傳 送至移動設(shè)備的過程的流程圖。
【具體實施方式】
[0012] 概述
[0013]下面的示例實施例描述了一種方法,并且該方法包括:攔截用于在移動設(shè)備上安 裝應(yīng)用程序的請求,生成唯一地識別該應(yīng)用程序的鍵值;并且通過網(wǎng)絡(luò)連接將該鍵值發(fā)送 至服務(wù)器應(yīng)用程序。該方法進(jìn)一步包括:通過網(wǎng)絡(luò)連接接收指示應(yīng)用程序的狀態(tài)的響應(yīng)并 且當(dāng)該狀態(tài)指示應(yīng)用程序為惡意時阻止對該應(yīng)用程序的安裝。在進(jìn)一步的實施例中,攔截 用于在移動設(shè)備上安裝應(yīng)用程序的請求的動作包括:將墊片應(yīng)用程序注冊作為移動設(shè)備上 的后臺服務(wù)。在更加具體的實施例中,將墊片應(yīng)用程序注冊作為移動設(shè)備上的后臺服務(wù)的 動作包括:注冊墊片應(yīng)用程序以攔截應(yīng)用程序編程接口(其用于啟動應(yīng)用程序在移動設(shè)備 上的安裝)的調(diào)用。該方法可以通過利用移動設(shè)備的處理器來執(zhí)行。
[0014] 在另一個示例實施例中,描述了包括通過網(wǎng)絡(luò)連接從移動設(shè)備接收應(yīng)用程序標(biāo)識 符的方法。該方法還包括:利用應(yīng)用程序標(biāo)識符來確定來自記錄的數(shù)據(jù)庫(其包括多個已 分析的應(yīng)用程序)的應(yīng)用程序的狀態(tài)。該方法進(jìn)一步包括:將應(yīng)用程序的狀態(tài)通過網(wǎng)絡(luò)連 接發(fā)送至移動設(shè)備。在進(jìn)一步的實施例中,應(yīng)用程序標(biāo)識符包括:唯一地識別應(yīng)用程序的鍵 值和與應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。在其它實施例中,利用應(yīng)用程序標(biāo)識符來確定應(yīng)用程序 的狀態(tài)的動作包括:搜索數(shù)據(jù)庫以確定數(shù)據(jù)庫中是否存在與鍵值匹配的記錄。在更加具體 的實施例中,當(dāng)確定數(shù)據(jù)庫中不存在與鍵值匹配的記錄時,利用元數(shù)據(jù)的動作來暗示來自 數(shù)據(jù)庫中的記錄的應(yīng)用程序的狀態(tài)。
[0015] 示例實施例
[0016]下面更加詳細(xì)描述的多個實施例提供了用于識別惡意應(yīng)用程序并阻止它們在移 動設(shè)備上安裝的系統(tǒng)和技術(shù)。在一個實施例中,墊片應(yīng)用程序安裝在移動設(shè)備上,該墊片應(yīng) 用程序向設(shè)備的操作系統(tǒng)注冊以攔截移動應(yīng)用程序安裝操作?;谠谝苿釉O(shè)備上攔截到嘗 試的安裝操作,墊片應(yīng)用程序可以識別安裝操作所應(yīng)用的移動應(yīng)用程序,生成唯一地識別 該移動應(yīng)用程序的鍵值,并將該鍵值傳輸至后端服務(wù)器。后端服務(wù)器可以被配置用于爬行 互聯(lián)網(wǎng)以搜索移動應(yīng)用程序,分析所識別的應(yīng)用程序以檢測惡意應(yīng)用程序,并且編譯并維 護(hù)已識別的應(yīng)用程序的數(shù)據(jù)庫及其狀態(tài)?;趶膲|片應(yīng)用程序接收到鍵值,后端服務(wù)器可 以搜索數(shù)據(jù)庫以定位匹配的應(yīng)用程序,并且利用應(yīng)用程序的狀態(tài)來響應(yīng)移動設(shè)備。墊片應(yīng) 用程序可以利用該信息來允許或阻止移動應(yīng)用程序的安裝。
[0017]參考圖1,示出了根據(jù)一個實施例的網(wǎng)絡(luò)架構(gòu)100。如圖所示,提供了多個網(wǎng)絡(luò) 102。在當(dāng)前網(wǎng)絡(luò)架構(gòu)100的環(huán)境中,網(wǎng)絡(luò)102每一個都可以采用以下的任何形式,包括但 不限于,局域網(wǎng)(LAN)、無線網(wǎng)絡(luò)或諸如因特網(wǎng)之類的廣域網(wǎng)(WAN)。
[0018] 與網(wǎng)絡(luò)102相耦合的是能夠通過網(wǎng)絡(luò)102進(jìn)行通信的數(shù)據(jù)服務(wù)器計算機(jī)104。同 樣與網(wǎng)絡(luò)102和數(shù)據(jù)服務(wù)器計算機(jī)104相耦合的是多個移動設(shè)備106。數(shù)據(jù)服務(wù)器計算機(jī) 104可以包括臺式計算機(jī)、膝上型計算機(jī)、手持計算機(jī)、計算機(jī)的任何部件、和/或任何其它 類型的邏輯。移動設(shè)備106可以包括移動電話、智能電話、電子書閱讀器、平板計算機(jī)、個人 數(shù)字助理(PDA)、和/或能夠在網(wǎng)絡(luò)架構(gòu)100內(nèi)啟動聲音、音頻、視頻、媒體或數(shù)據(jù)交換的其 它類似的移動設(shè)備。為了有助于網(wǎng)絡(luò)102之間的通信,在網(wǎng)絡(luò)102之間可選地耦合至少一 個網(wǎng)關(guān)或路由器108。
[0019] 現(xiàn)在參考圖2,以框圖的形式示出了結(jié)合一個實施例使用的示例處理設(shè)備200。處 理設(shè)備200可以作為網(wǎng)關(guān)或路由器108、移動設(shè)備106,或者服務(wù)器計算機(jī)104服務(wù)。示例 處理設(shè)備200包括系統(tǒng)單元210,該系統(tǒng)單元210可以可選地連接到輸入設(shè)備260 (例如,鍵 盤、鼠標(biāo)、觸屏等)和顯示器270。程序存儲設(shè)備(PSD) 280 (有時稱為硬盤或計算機(jī)可讀介 質(zhì))包括在系統(tǒng)單元210中。同樣包括在系統(tǒng)單元210中的是網(wǎng)絡(luò)接口 240,其用于經(jīng)由 網(wǎng)絡(luò)與其它計算和公司基礎(chǔ)設(shè)備(未示出)進(jìn)行通信。網(wǎng)絡(luò)接口 240可以包括在系統(tǒng)單元 210內(nèi)或者可以在系統(tǒng)單元210的外部。無論在哪種情況下,系統(tǒng)單元210都可以通信地耦 合至網(wǎng)絡(luò)接口 240。程序存儲設(shè)備280表示任何形式的非易失性存儲裝置,包括但不限于, 所有形式的光學(xué)存儲器和磁存儲器,包括固態(tài)存儲器,包括可移除介質(zhì),并且可以包括在系 統(tǒng)單元210內(nèi)或在系統(tǒng)單元210的外部。程序存儲設(shè)備280可以用于存儲用于控制系統(tǒng)單 元210的軟件或由處理設(shè)備200使用的數(shù)據(jù),或者二者。
[0020] 系統(tǒng)單元210可以被編程用于執(zhí)行根據(jù)本公開的方法。系統(tǒng)單元210包 括處理器單元(PU) 220、輸入輸出(I/O)接口 250和存儲器230。處理器單元220 可以包括任何可編程控制器設(shè)備,包括:例如,主機(jī)處理器、來自Intel公司的 IntelAlom?、Core' Pentium85和Celeron?處理器家族中的一個或多個成員、或者 來自ARM的Cortex和ARM處理器家族中的設(shè)備。(INTEL、INTELATOM、CORE、PENTIUM和 CELERON是Intel公司的注冊商標(biāo)。CORTEX是ARM有限公司的注冊商標(biāo)。ARM是ARM有限 公司的注冊商標(biāo))。存儲器230可以包括一個或多個存儲器模塊并且包括隨機(jī)存取存儲器 (RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PR0M)、可編程讀寫存儲器和固態(tài)存儲器。PU 220還可以包括一些內(nèi)部存儲器,包括例如,高速緩沖存儲器。
[0021] 處理設(shè)備200可以具有駐留其上的任何期望的操作系統(tǒng)??梢允褂萌魏纹谕木?程語言來實現(xiàn)實施例,并且其可以被實現(xiàn)為一個或多個可執(zhí)行程序或模塊,所述一個或多 個可執(zhí)行程序或模塊可以鏈接到可執(zhí)行例程的外部庫,所述可執(zhí)行例程的外部庫可以由操 作系統(tǒng)的供應(yīng)商或適合的庫例程的任何其它期望的供應(yīng)商來供應(yīng)。正如本文所使用的,術(shù) 語"計算機(jī)系統(tǒng)"或"所述計算機(jī)系統(tǒng)"可以指單個計算機(jī),一起工作以執(zhí)行被描述為在計 算機(jī)系統(tǒng)上或由計算機(jī)系統(tǒng)執(zhí)行的功能的多個計算機(jī)。用于配置處理設(shè)備200以執(zhí)行所公 開的實施例的程序指令可以被提供為存儲在任何類型的非暫時性計算機(jī)可讀介質(zhì)上,或者 可以從服務(wù)器104下載到程序存儲設(shè)備280上。
[0022] 現(xiàn)在參考圖3,過程300示出了根據(jù)一個實施例的通過其可以檢測并防止惡意應(yīng) 用程序安裝到移動設(shè)備106上的示例過程流程。在步驟305中,可以在移動設(shè)備106處接 收移動應(yīng)用程序設(shè)置文件。正如本文所使用的,"移動應(yīng)用程序設(shè)置文件"指啟動在移動設(shè) 備106上對應(yīng)用程序的安裝的計算機(jī)程序代碼。術(shù)語"應(yīng)用程序"和"移動應(yīng)用程序"可交 替地用于指運(yùn)行(或能夠運(yùn)行)在移動設(shè)備上并且為移動設(shè)備用戶提供特定功能的應(yīng)用程 序軟件。移動應(yīng)用程序在數(shù)量上實際無限制并且可以根據(jù)其提供的功能來進(jìn)行分類。這樣 的移動應(yīng)用程序的示例包括生產(chǎn)率應(yīng)用程序(例如,日歷、電子郵件和聯(lián)系人應(yīng)用程序)、 網(wǎng)頁瀏覽器應(yīng)用程序、社交網(wǎng)絡(luò)應(yīng)用程序、銀行業(yè)務(wù)應(yīng)用程序、基于GPS的導(dǎo)航應(yīng)用程序、 電子閱讀器應(yīng)用程序、音樂應(yīng)用程序、視頻游戲應(yīng)用程序等。通常,應(yīng)用程序設(shè)置文件可以 在用戶的請求下在移動設(shè)備106處接收。例如,移動設(shè)備106的用戶可以從在線應(yīng)用程序 存儲庫下載應(yīng)用程序。在線應(yīng)用程序存儲庫可以與移動設(shè)備106的操作系統(tǒng)的供應(yīng)商相關(guān) 聯(lián)(例如,Apple?APPStore、Google?AndroidMarket、rim?AppWorld等),或者可 以由獨立的第三方(例如,AmazonRAppStore等)來維護(hù)。(APPLE是Apple公司的注冊 商標(biāo)。GOOGLE是Google公司的注冊商標(biāo)。RIM是ResearchinMotionLimited公司的注 冊商標(biāo)。AMAZON是AmazonTechnologies公司的注冊商標(biāo))。盡管應(yīng)用程序安裝文件可以 在用戶的請求下在移動設(shè)備106處接收,但應(yīng)用程序設(shè)置文件還可以在用戶不知道的情況 下被接收。例如,惡意應(yīng)用程序可以包括使該應(yīng)用程序能夠在移動設(shè)備106的用戶不知道 的情況下在移動設(shè)備106之間傳播的代碼。
[0023]在步驟310中,作為應(yīng)用程序設(shè)置文件的執(zhí)行的結(jié)果,啟動了在移動設(shè)備106上應(yīng) 用程序的安裝。通常,基于在移動設(shè)備106處接收到應(yīng)用程序設(shè)置文件,應(yīng)用程序安裝將自 動啟動。例如,當(dāng)從在線應(yīng)用程序存儲庫下載應(yīng)用程序時,基于接收到啟動應(yīng)用程序安裝, 應(yīng)用程序設(shè)置文件通常將自動執(zhí)行。盡管應(yīng)用程序的安裝可以自動啟動,但應(yīng)用程序的安 裝還可以在特定時間或基于移動設(shè)備106上的特定事件的出現(xiàn)而啟動。與對應(yīng)用程序設(shè)置 文件的接收相似,應(yīng)用程序的安裝還可以在移動設(shè)備的用戶不知道的情況下發(fā)生。作為安 裝過程的一部分,安裝請求可以被發(fā)送到移動設(shè)備106的操作系統(tǒng)。
[0024] 在步驟315中,安裝請求被攔截。在一個實施例中,墊片應(yīng)用程序可以作為移動設(shè) 備106上的后臺服務(wù)運(yùn)行并注冊以接收安裝請求。一旦安裝,被引導(dǎo)至操作系統(tǒng)的后續(xù)安 裝請求可以首先被傳遞到墊片應(yīng)用程序。然后,墊片應(yīng)用程序可以識別與被攔截的安裝請 求相關(guān)聯(lián)的移動應(yīng)用程序。
[0025] 在步驟320中,墊片應(yīng)用程序可以生成唯一地識別與所攔截的安裝請求相關(guān)聯(lián)的 移動應(yīng)用程序的鍵值。在一個實施例中,可以通過計算移動應(yīng)用程序設(shè)置文件或其某個部 分的哈希(例如,哈希值、哈希碼、校驗和等)來生成鍵值。例如,可以通過將哈希算法(例 如,MD5、SHA-I等)應(yīng)用到應(yīng)用程序設(shè)置文件或其某個部分來計算哈希值。正如在本領(lǐng)域 中所公知的,這樣的哈希算法用于將大數(shù)據(jù)集(例如,包含在應(yīng)用程序設(shè)置文件中的數(shù)據(jù)) 映射到更小的數(shù)據(jù)集,所述更小的數(shù)據(jù)集可以用于識別大數(shù)據(jù)集的元素。通常,移動應(yīng)用程 序設(shè)置文件被發(fā)布作為對移動應(yīng)用程序的內(nèi)容進(jìn)行打包的存檔文件。因此,移動應(yīng)用程序 設(shè)置文件或該設(shè)置文件的某些預(yù)定內(nèi)容的哈希可以用于唯一地識別該移動應(yīng)用程序。
[0026] 在步驟325中,墊片應(yīng)用程序可以編譯與應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。這樣的元數(shù) 據(jù)可以包括與應(yīng)用程序相關(guān)聯(lián)的任何識別信息。例如,墊片應(yīng)用程序可以編譯應(yīng)用程序名 稱、開發(fā)該應(yīng)用程序的軟件公司、用于對應(yīng)用程序進(jìn)行數(shù)字簽名的簽名等。在一個實施例 中,元數(shù)據(jù)可以位于在應(yīng)用程序設(shè)置文件中識別的一個或多個預(yù)定義的位置。因此,墊片應(yīng) 用程序可以簡單地從這些預(yù)定義的位置檢索數(shù)據(jù)以編譯元數(shù)據(jù)。
[0027] 在步驟330中,墊片應(yīng)用程序?qū)㈡I值和元數(shù)據(jù)(統(tǒng)稱為應(yīng)用程序標(biāo)識符)傳輸至 后端服務(wù)器。正如下面將更詳細(xì)描述的,基于移動設(shè)備的連接屬性,可以使用多種不同的協(xié) 議將應(yīng)用程序標(biāo)識符從移動設(shè)備106傳輸至后端服務(wù)器。從/在后端服務(wù)器上執(zhí)行的應(yīng) 用程序可以被配置用于找出移動應(yīng)用程序(例如,通過爬行因特網(wǎng)以搜索移動應(yīng)用程序) 和/或接收移動應(yīng)用程序(例如,通過從移動設(shè)備、移動應(yīng)用程序供應(yīng)商等接收移動應(yīng)用程 序),并且訪問狀態(tài)和/或確定移動應(yīng)用程序的信譽(yù)度分?jǐn)?shù)。例如,后端服務(wù)器應(yīng)用程序,或 者更簡單地"服務(wù)器應(yīng)用程序",可以對提供一個或多個移動應(yīng)用程序的獨立網(wǎng)站中的或在 線應(yīng)用程序存儲庫中的移動應(yīng)用程序進(jìn)行檢測,正如上面描述的?;跈z測到移動應(yīng)用程 序,服務(wù)器應(yīng)用程序可以下載該移動應(yīng)用程序并且執(zhí)行行為分析,其目的是可以識別移動 應(yīng)用程序的特征并且最終確定該移動應(yīng)用程序的狀態(tài)是惡意的還是良性的??梢杂煞?wù)器 應(yīng)用程序編譯這些記錄并且將其保持在數(shù)據(jù)庫中。
[0028] 在相關(guān)的于2011年10月17日提交的美國申請序列號NO. 13/275,293( "293申 請")中對服務(wù)器應(yīng)用程序的功能進(jìn)行更加詳細(xì)地描述,其全部內(nèi)容先前以引用的方式在 此并入本文。在"293申請"中參考信譽(yù)引擎(被引用為"信譽(yù)引擎20")并且參考服務(wù)器 (被引用為"服務(wù)器17"和"白名單服務(wù)器17")來對本申請的服務(wù)器應(yīng)用程序的至少一些 潛在的功能進(jìn)行了描述。這些功能可以以任何適合的方式合并或集成。在某些情況下,月艮 務(wù)器應(yīng)用程序可以執(zhí)行"信譽(yù)引擎20"、"服務(wù)器17"和"白名單服務(wù)器17"的所有功能、和 /或與如下活動相關(guān)聯(lián)的任何活動:查找和/或接收移動應(yīng)用程序、評估移動應(yīng)用程序的狀 態(tài)、將狀態(tài)和/或信譽(yù)度分?jǐn)?shù)存儲在數(shù)據(jù)庫中、識別數(shù)據(jù)庫中的應(yīng)用程序、以及向移動設(shè)備 提供響應(yīng),所述響應(yīng)指示所識別的應(yīng)用程序的信譽(yù)度分?jǐn)?shù)或狀態(tài)??商娲?,這些功能可以 以任何適合的布置邏輯地分開并且由分立的硬件和/或軟件執(zhí)行(例如,在實現(xiàn)中,服務(wù)器 應(yīng)用程序包括在相同或獨立的硬件設(shè)備上運(yùn)行的多個分立的部件,以執(zhí)行不同的功能)。
[0029] 服務(wù)器應(yīng)用程序可以利用從移動設(shè)備106接收的包含在應(yīng)用程序標(biāo)識符中的信 息來識別數(shù)據(jù)庫中的匹配的應(yīng)用程序。在一個實施例中,服務(wù)器應(yīng)用程序可以存儲對該應(yīng) 用程序的分析的結(jié)果連同與應(yīng)用程序相關(guān)聯(lián)的鍵值值(例如,由墊片應(yīng)用程序應(yīng)用的用于 生成鍵值的相同哈希算法的結(jié)果)。因此,基于接收到鍵值,服務(wù)器應(yīng)用程序可以利用該鍵 值來識別數(shù)據(jù)庫中相對應(yīng)的移動應(yīng)用程序。
[0030] 在步驟335中,在移動設(shè)備106處從服務(wù)器應(yīng)用程序接收響應(yīng)。在一個實施例中, 來自服務(wù)器應(yīng)用程序的響應(yīng)可以指定與移動應(yīng)用程序相關(guān)聯(lián)的信譽(yù)度分?jǐn)?shù),并且可以基于 對移動應(yīng)用程序的服務(wù)器應(yīng)用程序的分析。在另一實施例中,該響應(yīng)可以簡單地識別移動 應(yīng)用程序是惡意的還是良性的。
[0031] 在步驟340中,移動設(shè)備可以利用來自服務(wù)器應(yīng)用程序的響應(yīng)來確定與所攔截的 安裝請求相關(guān)聯(lián)的移動應(yīng)用程序是否為惡意?;趶姆?wù)器應(yīng)用程序所接收的響應(yīng)的類 型,操作340可以涉及將所接收的信譽(yù)度分?jǐn)?shù)與預(yù)定義的信譽(yù)度分?jǐn)?shù)閾值進(jìn)行比較以確定 移動應(yīng)用程序是否為惡意,或者可以簡單地涉及接受移動應(yīng)用程序的服務(wù)器應(yīng)用程序是惡 意或良性的指示。
[0032] 如果在步驟340中確定移動應(yīng)用程序被確定為不是惡意的,則可以在345中允許 移動應(yīng)用程序的安裝。然而,如果在步驟340中確定移動應(yīng)用程序是惡意的,則在步驟350 中可以阻止其安裝。因為墊片應(yīng)用程序不涉及對惡意軟件簽名和白名單簽名的存儲,或者 對應(yīng)用程序文件與這樣的簽名的比較,所以通過將存儲器和處理要求(例如,惡意簽名和 白名單簽名的存儲和比較所需的)傳輸至遠(yuǎn)程后端服務(wù)器,所描述的實施例允許移動設(shè)備 106上的具有"薄"存在的計算機(jī)代碼來檢測并且阻止惡意應(yīng)用程序的安裝。
[0033] 現(xiàn)在參考圖4,框圖示出了根據(jù)一個實施例的可以檢測并且防止惡意應(yīng)用程序安 裝在移動設(shè)備上的網(wǎng)絡(luò)架構(gòu)。在所描述的實施例中,移動設(shè)備106連接401至網(wǎng)絡(luò)102,并 且后端服務(wù)器104A連接402至網(wǎng)絡(luò)102。盡管移動設(shè)備106和后端服務(wù)器104A被示出為 連接至網(wǎng)絡(luò)102,但這不是要暗示有必要將這些設(shè)備直接連接或使用常見的通信協(xié)議來通 信。如所示出的,移動設(shè)備106包括應(yīng)用程序?qū)?06A、操作系統(tǒng)層106B,以及硬件層106C。 這些層執(zhí)行專門的任務(wù),并相互合作以便向移動設(shè)備106的用戶提供特定功能。
[0034] 在所描述的實施例中,用于被標(biāo)記為"AppB"的移動應(yīng)用程序的應(yīng)用程序設(shè)置文 件405駐留在移動設(shè)備106的應(yīng)用程序?qū)?06A中。如上面所描述的,在用戶的請求(例如, 通過從在線應(yīng)用程序存儲庫下載"AppB")下或在設(shè)備的用戶不知道的情況下,可以在移動 設(shè)備106處接收應(yīng)用程序設(shè)置文件405。在特定的實施例中,其中移動設(shè)備106應(yīng)用安卓操 作系統(tǒng),應(yīng)用程序設(shè)置文件405可以被實現(xiàn)為安卓包(.apk)文件。應(yīng)用程序設(shè)置文件405 通常是包含用于"AppB"的所有程序代碼的存檔文件,并且用于在移動設(shè)備106上啟動對 "AppB"的安裝。對移動應(yīng)用程序的安裝可以與移動設(shè)備106的操作系統(tǒng)相協(xié)調(diào)。正如在 本領(lǐng)域中所公知的,應(yīng)用程序編程接口(API)(例如,API410、411和412)可以提供應(yīng)用程 序?qū)?06A與操作系統(tǒng)層106B之間的接口。因此,基于對應(yīng)用程序設(shè)置文件405的執(zhí)行,可 以調(diào)用310被用于啟動在移動設(shè)備106上對應(yīng)用程序的安裝的特定API410。繼續(xù)上面的 示例,如果移動設(shè)備106應(yīng)用安卓操作系統(tǒng),則API410可以被實現(xiàn)為指定安裝動作的執(zhí)行 的意圖對象。正如由本領(lǐng)域的技術(shù)人員所公知的,意圖對象是提供對要執(zhí)行的操作的描述 的數(shù)據(jù)結(jié)構(gòu)。
[0035] 墊片應(yīng)用程序415可以是在應(yīng)用程序?qū)?06A內(nèi)作為移動設(shè)備106上的后臺服務(wù) 連續(xù)地運(yùn)行的應(yīng)用程序。墊片應(yīng)用程序415可以通過注冊以攔截應(yīng)用程序安裝操作(例 如,API調(diào)用310)來實現(xiàn)本文所描述的一些或全部功能。例如,墊片應(yīng)用程序415可以向 移動設(shè)備106的操作系統(tǒng)注冊,以接收指向一個或多個指定的API的調(diào)用。在一個實施例 中,一個或多個指定的API與用于啟動新的應(yīng)用程序安裝或用于啟動對現(xiàn)有應(yīng)用程序的更 新版本的安裝的API相對應(yīng)。這樣,墊片應(yīng)用程序415可以注冊,以接收API410的調(diào)用但 可以忽視與應(yīng)用程序的安裝或更新無關(guān)的API411和412的調(diào)用。在應(yīng)用安卓操作系統(tǒng)的 移動設(shè)備106的環(huán)境中,墊片應(yīng)用程序415可以注冊,以接收具有活動行為的任何意圖對 象,所述活動行為與新應(yīng)用程序的安裝或現(xiàn)有應(yīng)用程序的更新版本相關(guān)。結(jié)果,在墊片應(yīng)用 程序415安裝在移動設(shè)備106上后,對API410的調(diào)用可以引起指向315墊片應(yīng)用程序415 的安裝操作?;诮邮盏綌r截的安裝操作,墊片應(yīng)用程序415可以識別與該安裝操作相關(guān) 聯(lián)的移動應(yīng)用程序(即,AppB)。通常,可以直接根據(jù)所攔截的安裝操作識別出移動應(yīng)用程 序。例如,在應(yīng)用安卓操作系統(tǒng)的移動設(shè)備106的環(huán)境中,與所攔截的安裝操作相關(guān)聯(lián)的移 動應(yīng)用程序可以在意圖對象內(nèi)被指定為執(zhí)行活動行為的數(shù)據(jù)。
[0036] -旦將AppB識別為與安裝操作相關(guān)聯(lián)的移動應(yīng)用程序,則墊片應(yīng)用程序415可 以生成唯一地識別AppB的鍵值。在一個實施例中,該鍵值可以通過計算應(yīng)用程序設(shè)置文 件405或設(shè)置文件405的一些預(yù)定部分的哈希值來生成。哈希值可以通過應(yīng)用允許唯一地 識別應(yīng)用程序的任何公知的哈希函數(shù)(例如,MD5、SHA-1等)來計算。在一個實施例中,如 果應(yīng)用程序設(shè)置文件405為安卓包(.apk)文件,則哈希函數(shù)可以被應(yīng)用至.apk文件本身 或.apk文件的部分(例如,內(nèi)部的classes,dex文件)以便將移動應(yīng)用程序唯一地識別作 為AppB。在一個實施例中,墊片應(yīng)用程序415可以提供計算機(jī)代碼來生成鍵值(例如,通 過在設(shè)置文件405或其部分上執(zhí)行哈希函數(shù))。在另一實施例中,墊片應(yīng)用程序415可以利 用另一應(yīng)用程序或者操作系統(tǒng)的服務(wù)來生成鍵值。
[0037] 墊片應(yīng)用程序415可以附加地編譯與移動應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。例如,墊片 應(yīng)用程序可以確定應(yīng)用程序的名稱、開發(fā)該應(yīng)用程序的軟件公司、用于對應(yīng)用程序進(jìn)行數(shù) 字簽名的簽名,和/或可以提供關(guān)于該應(yīng)用程序的信息的任何其它元數(shù)據(jù)。在一個實施例 中,可以從應(yīng)用程序設(shè)置文件405的某個預(yù)定義的部分來檢索所述元數(shù)據(jù)。因此,墊片應(yīng)用 程序415可以簡單地提取存儲在設(shè)置文件405的這些預(yù)定義的部分中的數(shù)據(jù)。然后,可以 將鍵值和元數(shù)據(jù)(統(tǒng)稱為應(yīng)用程序標(biāo)識符)打包并傳輸至后端服務(wù)器104A。在一個實施例 中,在將應(yīng)用程序標(biāo)識符傳送至后端服務(wù)器104A之前,使用公知的密碼技術(shù)來對應(yīng)用程序 標(biāo)識符進(jìn)行加密。
[0038] -旦應(yīng)用程序標(biāo)識符準(zhǔn)備好被傳送至后端服務(wù)器104A(S卩,服務(wù)器應(yīng)用程序),則 墊片應(yīng)用程序415可以確定被用于將信息傳輸至后端服務(wù)器104A的通信協(xié)議?;谝苿釉O(shè) 備的連接屬性,多種協(xié)議可以用于將應(yīng)用程序標(biāo)識符傳送至后端服務(wù)器104A。在一個實施 例中,如果移動設(shè)備106連接至因特網(wǎng),則應(yīng)用程序標(biāo)識符可以經(jīng)由英特網(wǎng)連接被傳送至 后端服務(wù)器104A。在另一實施例中,可以使用電話專用的通信信道將應(yīng)用程序標(biāo)識符傳送 至后端服務(wù)器104A。例如,可以經(jīng)由到預(yù)定義的電話號碼的短消息服務(wù)(SMS)消息來將應(yīng) 用程序標(biāo)識符傳送至后端服務(wù)器104A。還可以通過啟動移動設(shè)備106與預(yù)定義的電話號碼 之間的通信,使用雙音多頻信令或交互式語音響應(yīng)(IVR)消息來傳送應(yīng)用程序標(biāo)識符。在 一個實施例中,預(yù)定義的電話號碼可以是由安全廠商(例如,墊片應(yīng)用程序415的供應(yīng)商) 提供的免稅的電話號碼。在進(jìn)一步的實施例中,應(yīng)用程序標(biāo)識符可以與具有到后端服務(wù)器 104A的首選連接的另一設(shè)備進(jìn)行通信,并且所述應(yīng)用程序標(biāo)識符可以從該設(shè)備被發(fā)送至后 端服務(wù)器104A。例如,移動設(shè)備106可以不具有到后端服務(wù)器104A的可用的連接但可以連 接至具有因特網(wǎng)連接的膝上型計算機(jī)。在這樣的情況下,應(yīng)用程序標(biāo)識符可以被傳輸至膝 上型計算機(jī),以進(jìn)一步經(jīng)由膝上型計算機(jī)的因特網(wǎng)連接傳輸至后端服務(wù)器104A。
[0039] 在一個實施例中,可以基于默認(rèn)優(yōu)先級來確定適當(dāng)?shù)耐ㄐ艆f(xié)議。例如,當(dāng)因特網(wǎng)連 接可用時,可以優(yōu)選經(jīng)由因特網(wǎng)來將應(yīng)用程序標(biāo)識符傳送至后端服務(wù)器104A。因此,經(jīng)由因 特網(wǎng)傳送可以具有最高的優(yōu)先級。這樣,墊片應(yīng)用程序415可以通過從最高優(yōu)先級協(xié)議開 始的優(yōu)先級列表來進(jìn)行,并且可以選擇可用的第一個通信協(xié)議。在一個實施例中,優(yōu)先級列 表可以由移動設(shè)備106的用戶來配置。
[0040] 墊片應(yīng)用程序415可以附加地確定應(yīng)用程序標(biāo)識符應(yīng)被傳送至的適當(dāng)?shù)暮蠖朔?務(wù)器104A。盡管圖4示出了單個后端服務(wù)器104A,但通常存在多個可用的后端服務(wù)器。在 一個實施例中,可以基于移動設(shè)備的地理位置(例如,基于移動設(shè)備的GPS位置)來確定適 當(dāng)?shù)暮蠖朔?wù)器104A。在另一實施例中,一個或多個后端服務(wù)器104A可以專用于特定的移 動設(shè)備106。因此,移動設(shè)備106的類型可以確定適當(dāng)?shù)暮蠖朔?wù)器104A。在另一實施例 中,可以基于墊片應(yīng)用程序415的級別來確定后端服務(wù)器104A。例如,與標(biāo)準(zhǔn)版本的墊片 應(yīng)用程序415相比,高級版本的墊片應(yīng)用程序415可以與后端服務(wù)器104A的更大的池相關(guān) 聯(lián),使得對于高級版本而言,接收響應(yīng)可以更快。當(dāng)墊片應(yīng)用程序415確定適當(dāng)?shù)耐ㄐ艆f(xié)議 和后端服務(wù)器104A時,應(yīng)用程序標(biāo)識符可以在425中被路由至移動設(shè)備106的適當(dāng)?shù)木W(wǎng)絡(luò) 接口420,以用于傳輸至后端服務(wù)器104A。
[0041] 在330中,應(yīng)用程序標(biāo)識符被傳輸至后端服務(wù)器104A。可以由后端服務(wù)器104A利 用應(yīng)用程序標(biāo)識符來確定應(yīng)用程序的狀態(tài)。如上面關(guān)于圖3所描述的,在后端服務(wù)器104A 上執(zhí)行的服務(wù)器應(yīng)用程序維持先前所識別和分析的應(yīng)用程序的數(shù)據(jù)庫430。在示出的實施 例中,數(shù)據(jù)庫430包括應(yīng)用程序的名稱、應(yīng)用程序的鍵值(即,與由墊片應(yīng)用程序415計算 出的鍵值相匹配的鍵值)以及應(yīng)用程序的狀態(tài)。為清楚起見,示出的數(shù)據(jù)庫430包含有限數(shù) 量的字段。然而,數(shù)據(jù)庫430還可以包括屬于所分析的應(yīng)用程序的附加信息。例如,該狀態(tài) 字段不包含將應(yīng)用程序識別為惡意或良性的分立狀態(tài),相反可以包含與應(yīng)用程序相關(guān)聯(lián)的 數(shù)字信譽(yù)度分?jǐn)?shù)。墊片應(yīng)用程序415可以利用信譽(yù)度分?jǐn)?shù)與可配置的信譽(yù)閾值進(jìn)行比較, 以便確定移動應(yīng)用程序是惡意還是良性的。在一個實施例中,數(shù)據(jù)庫430的附加字段可以 識別有助于應(yīng)用程序的信譽(yù)分?jǐn)?shù)的移動應(yīng)用程序的屬性。
[0042] 在所描述的實施例中,App B與鍵值值2相對應(yīng)。由此,響應(yīng)于接收應(yīng)用程序標(biāo)識 符,在后端服務(wù)器104A上執(zhí)行的服務(wù)器應(yīng)用程序可以提取該鍵值。因為墊片應(yīng)用程序415 和服務(wù)器應(yīng)用程序利用了相同的函數(shù)來計算用于移動應(yīng)用程序的鍵值,所以在所接收的應(yīng) 用程序標(biāo)識符中的鍵值也具有值2,與在移動設(shè)備106上對App B的嘗試安裝相對應(yīng)。服務(wù) 器應(yīng)用程序可以利用鍵值值來搜索數(shù)據(jù)庫430,以確定App B具有良性的狀態(tài)。因此,App B不是惡意的,并且對于移動設(shè)備106而言安裝App B是可接受的。然而,如果應(yīng)用程序標(biāo) 識符指示鍵值值為1,與APP A相對應(yīng),則服務(wù)器應(yīng)用程序?qū)⒋_定App A是惡意的,并且不應(yīng) 該被安裝在移動設(shè)備上。
[0043] 在335中,指示AppB的狀態(tài)的響應(yīng)(通過服務(wù)器應(yīng)用程序)從后端服務(wù)器104A 傳輸至移動設(shè)備106。在一個實施例中,可以利用與用于將應(yīng)用程序標(biāo)識符傳輸至后端服 務(wù)器104A的協(xié)議相同的協(xié)議來傳送來自服務(wù)器應(yīng)用程序的響應(yīng)。然而,在替代的實施例 中,可以利用與用于傳輸應(yīng)用程序標(biāo)識符的協(xié)議不同的協(xié)議來傳送來自服務(wù)器應(yīng)用程序的 響應(yīng)。在一個實施例中,可以對來自服務(wù)器應(yīng)用程序的響應(yīng)進(jìn)行加密。因為響應(yīng)335指示 AppB為良性的,所以在345中墊片應(yīng)用程序415允許用于API410的調(diào)用進(jìn)行,由此準(zhǔn)許 AppB在移動設(shè)備106上的安裝。當(dāng)確定應(yīng)用程序為良性的時,對用于安裝操作的調(diào)用的攔 截和對后端服務(wù)器的詢問對于移動設(shè)備106的用戶而言是透明的,使得呈現(xiàn)給用戶的移動 應(yīng)用程序的安裝是以常規(guī)方式發(fā)生的。當(dāng)確定應(yīng)用程序為惡意時,墊片應(yīng)用程序415可以 警告移動設(shè)備106的用戶:該應(yīng)用程序被確定為惡意,并且因此將不進(jìn)行安裝(或者,如果 用戶肯定地忽視提供的警告,則進(jìn)行安裝),并且可以協(xié)調(diào)與惡意應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程 序設(shè)置文件的刪除。因為用于識別并且確定移動應(yīng)用程序的狀態(tài)所需的大部分的處理和存 儲器需求由在后端服務(wù)器104A上執(zhí)行的應(yīng)用程序來滿足,所以墊片應(yīng)用程序415僅需要有 限的存儲器和處理資源。因此,可以在不加重移動設(shè)備106的有限的存儲器和處理資源的 負(fù)擔(dān)的情況下,識別出移動應(yīng)用程序為惡意的并且禁止其安裝在移動設(shè)備106上。
[0044] 現(xiàn)在參考圖5,過程500示出了根據(jù)本公開的實施例的示例過程流程,通過所述示 例過程流程后端服務(wù)器應(yīng)用程序識別移動應(yīng)用程序的狀態(tài)并且將該狀態(tài)傳送至移動設(shè)備。 在步驟505中,服務(wù)器應(yīng)用程序從移動設(shè)備106接收應(yīng)用程序標(biāo)識符。正如參考圖3和圖4 所描述的,應(yīng)用程序標(biāo)識符包含識別移動應(yīng)用程序的信息,針對所述信息,用于安裝操作的 調(diào)用在移動設(shè)備106上被攔截。
[0045] 在步驟510中,服務(wù)器應(yīng)用程序從應(yīng)用程序標(biāo)識符提取數(shù)據(jù)。在一個實施例中,應(yīng) 用程序標(biāo)識符以加密的形式被傳送至服務(wù)器應(yīng)用程序。由此,從應(yīng)用程序標(biāo)識符提取數(shù)據(jù) 可以涉及:對應(yīng)用程序標(biāo)識符進(jìn)行解密,以及從應(yīng)用程序標(biāo)識符提取并攔截唯一地識別移 動應(yīng)用程序的鍵值和與該移動應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。
[0046] 在步驟515中,服務(wù)器應(yīng)用程序可以利用從應(yīng)用程序標(biāo)識符提取的鍵值來檢測數(shù) 據(jù)庫430中匹配的移動應(yīng)用程序。如上所描述的,服務(wù)器應(yīng)用程序可以搜索因特網(wǎng)以找出 移動應(yīng)用程序并且維護(hù)所識別的移動應(yīng)用程序的狀態(tài)的數(shù)據(jù)庫430。在一個實施例中,結(jié)合 對應(yīng)用程序的分析,服務(wù)器應(yīng)用程序可以向移動應(yīng)用程序的供應(yīng)商提供證書,指示該應(yīng)用 程序已經(jīng)被分析并且可以安全地用于安裝。例如,在線應(yīng)用程序存儲庫可以顯示與移動應(yīng) 用程序相關(guān)聯(lián)的證書,使得移動設(shè)備106的用戶可以確定應(yīng)用程序可以安全地用于安裝。 由此,盡管基于從服務(wù)器應(yīng)用程序接收到應(yīng)用程序是安全的指示,但是對移動應(yīng)用程序的 安裝仍可以依情況而定,如果應(yīng)用程序擁有這樣的證書,則移動設(shè)備106的用戶在購買該 應(yīng)用程序之前可以確信該應(yīng)用程序是安全的并且可以允許其安裝。在步驟520中,確定數(shù) 據(jù)庫430中是否存在匹配的鍵值。
[0047] 如果在數(shù)據(jù)庫430中找到匹配的鍵值,則在525中服務(wù)器應(yīng)用程序?qū)⒁苿討?yīng)用程 序的狀態(tài)發(fā)送至移動設(shè)備106。如上面所描述的,該狀態(tài)可以包括將移動應(yīng)用程序識別為惡 意或良性的的分立指示,或者可以包括信譽(yù)度分?jǐn)?shù),從而由移動設(shè)備106將所述信譽(yù)度分 數(shù)與可配置的信譽(yù)閾值進(jìn)行比較,以便確定安裝所述移動應(yīng)用程序是否安全。被發(fā)送至移 動設(shè)備106的狀態(tài)還可以包括附加信息,例如,服務(wù)器應(yīng)用程序?qū)⑵浔3衷跀?shù)據(jù)庫430中的 應(yīng)用程序的屬性。例如,盡管特定的移動應(yīng)用程序可以被識別為良性的,但被傳輸至移動設(shè) 備的狀態(tài)可以附加地指示移動設(shè)備106的用戶可能希望知道的所述移動應(yīng)用程序的屬性 (例如,應(yīng)用程序能夠進(jìn)行GPS追蹤等)。
[0048] 如果在數(shù)據(jù)庫430中未找到鍵值匹配,則在530中可以使用從應(yīng)用程序標(biāo)識符提 取的元數(shù)據(jù)來搜索數(shù)據(jù)庫430。所提取的元數(shù)據(jù)可以提供諸如應(yīng)用程序的名稱、應(yīng)用程序的 發(fā)行商、應(yīng)用程序的來源(例如,下載應(yīng)用程序的網(wǎng)站)、用于對應(yīng)用程序進(jìn)行簽名的數(shù)字 簽名等之類的信息。盡管在數(shù)據(jù)庫430中不存在用于移動應(yīng)用程序的直接匹配,但可以利 用元數(shù)據(jù)來暗示移動應(yīng)用程序的狀態(tài)。例如,如果數(shù)據(jù)庫430中出現(xiàn)了關(guān)于特定的應(yīng)用程 序發(fā)行商的多個記錄并且與該發(fā)行商相關(guān)聯(lián)的應(yīng)用程序的全部或一些關(guān)鍵部分被確定為 惡意的,則可以暗示具有相同的發(fā)行商的移動應(yīng)用程序是惡意的。同樣,如果關(guān)于移動應(yīng)用 程序的特定來源的多個記錄指示與該來源相關(guān)聯(lián)的這樣的應(yīng)用程序的全部或一些關(guān)鍵部 分是良性的,則可以暗示來自相同來源的移動應(yīng)用程序是良性的。如果在535中可以基于 從應(yīng)用程序標(biāo)識符提取的元數(shù)據(jù)來暗示移動應(yīng)用程序的狀態(tài),則在525中將該狀態(tài)發(fā)送至 移動設(shè)備106。然而,如果在535中從所提取的元數(shù)據(jù)中不能暗示移動應(yīng)用程序的狀態(tài),則 在540中服務(wù)器應(yīng)用程序可以發(fā)送不確定的狀態(tài)至移動設(shè)備。可以由移動設(shè)備106以不同 的方式對所述不確定的狀態(tài)進(jìn)行處理。在一個實施例中,移動設(shè)備106可以允許具有不確 定的狀態(tài)的移動應(yīng)用程序的安裝進(jìn)行。在另一實施例中,可以總是阻止對具有不確定的狀 態(tài)的移動應(yīng)用程序的安裝。在又一實施例中,可以暫停對具有不確定的狀態(tài)的移動應(yīng)用程 序的安裝,直到可以獲得確定的狀態(tài)。例如,在步驟545中,服務(wù)器應(yīng)用程序可以利用所提 取的元數(shù)據(jù)(例如,應(yīng)用程序的來源)來下載移動應(yīng)用程序。這樣,可以將關(guān)于與所接收的 應(yīng)用程序標(biāo)識符相關(guān)聯(lián)的移動應(yīng)用程序的記錄添加到數(shù)據(jù)庫430中。如果服務(wù)器應(yīng)用程序 能夠下載并且分析移動應(yīng)用程序,則其隨后可以向移動設(shè)備106發(fā)送確定的狀態(tài)。由此,如 果移動設(shè)備106被配置為使具有不確定的狀態(tài)的移動應(yīng)用程序的安裝暫停,則從服務(wù)器應(yīng) 用程序?qū)Υ_定的狀態(tài)的接收可以允許移動設(shè)備允許或阻止該安裝。
[0049] 正如從上面的解釋中應(yīng)該顯而易見的,本文公開的實施例示出了在不加重移動設(shè) 備的有限的存儲器和處理資源的負(fù)擔(dān)的情況下用于識別并且防止惡意應(yīng)用程序在移動設(shè) 備上安裝的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品。盡管已經(jīng)針對具有特定的操作系統(tǒng)的移動設(shè)備 示出了特定的示例,但所公開的實施例同樣適用于所有類型和所有操作系統(tǒng)的移動設(shè)備。
[0050] 在上面的描述中,出于解釋的目的,闡述了多種具體的細(xì)節(jié)以便提供對所公開的 實施例的詳盡理解。然而,對于本領(lǐng)域的技術(shù)人員而言顯而易見的是,所公開的實施例可以 在沒有這些具體細(xì)節(jié)的情況下實施。在其它實例中,以框圖的形式示出了結(jié)構(gòu)和設(shè)備,以便 避免使所公開的實施例難以理解。此外,出于可讀性和指導(dǎo)性的目的,主要對本公開中使用 的語言進(jìn)行了選擇,并且可以不對其進(jìn)行選擇來描述或限制本發(fā)明的主題,而是依靠所需 的權(quán)利要求來確定這樣的發(fā)明主題。另外,說明書中對"一個實施例"或"實施例"的引用 意味著結(jié)合實施例所描述的特定的特征、結(jié)構(gòu)或特性包括在至少一個所公開的實施例中, 并且對"一個實施例"或"實施例"的多次引用不應(yīng)被理解為必須全部引用同一實施例。還 應(yīng)理解的是,上面描述的實施例可以相互結(jié)合使用并且可以以與所示出的順序不同的順序 來執(zhí)行舉例示出的過程步驟。對于本領(lǐng)域的技術(shù)人員而言,基于對上面的描述的瀏覽,許多 其它實施例將是顯而易見的。
【權(quán)利要求】
1. 一種非暫時性計算機(jī)可讀介質(zhì),其包括存儲于其上的計算機(jī)可執(zhí)行指令,用于使處 理器用于: 攔截在移動設(shè)備上安裝應(yīng)用程序的請求; 生成唯一地識別所述應(yīng)用程序的鍵值; 通過網(wǎng)絡(luò)連接將所述鍵值發(fā)送至服務(wù)器應(yīng)用程序; 通過所述網(wǎng)絡(luò)連接接收指示所述應(yīng)用程序的狀態(tài)的響應(yīng);并且 當(dāng)所述狀態(tài)指示所述應(yīng)用程序為惡意的時阻止所述應(yīng)用程序在所述移動設(shè)備上的安 裝。
2. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器攔截在移 動設(shè)備上安裝應(yīng)用程序的請求的所述指令包括:用于使所述處理器將墊片應(yīng)用程序注冊作 為所述移動設(shè)備上的后臺服務(wù)的指令。
3. 如權(quán)利要求2所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器將所述墊 片應(yīng)用程序注冊作為所述移動設(shè)備上的后臺服務(wù)的指令包括:用于注冊所述墊片應(yīng)用程序 以攔截應(yīng)用程序編程接口的調(diào)用的指令,所述應(yīng)用程序編程接口用于啟動在所述移動設(shè)備 上對所述應(yīng)用程序的安裝。
4. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器生成唯一 地識別所述應(yīng)用程序的鍵值的指令包括:用于使所述處理器將哈希算法應(yīng)用于應(yīng)用程序設(shè) 置文件的指令,所述應(yīng)用程序設(shè)置文件啟動了對所述應(yīng)用程序的安裝。
5. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其進(jìn)一步包括:用于使所述處理器 在通過網(wǎng)絡(luò)將所述鍵值發(fā)送至所述服務(wù)器應(yīng)用程序之前對所述鍵值進(jìn)行加密的指令。
6. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其進(jìn)一步包括:用于使所述處理器 編譯與所述應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)的指令。
7. 如權(quán)利要求6所述的非暫時性計算機(jī)可讀介質(zhì),其中,與所述應(yīng)用程序相關(guān)聯(lián)的元 數(shù)據(jù)包括:所述應(yīng)用程序的發(fā)行商、所述應(yīng)用程序的來源,以及用于對所述應(yīng)用程序進(jìn)行簽 名的數(shù)字簽名中的至少一個。
8. 如權(quán)利要求6所述的非暫時性計算機(jī)可讀介質(zhì),其進(jìn)一步包括:用于使所述處理器 通過所述網(wǎng)絡(luò)連接將所述元數(shù)據(jù)與所述鍵值一起發(fā)送至所述服務(wù)器應(yīng)用程序的指令。
9. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其進(jìn)一步包括:用于使所述處理器 確定通信協(xié)議的指令,所述通信協(xié)議用于通過所述網(wǎng)絡(luò)連接將所述鍵值發(fā)送至所述服務(wù)器 應(yīng)用程序。
10. 如權(quán)利要求9所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器確定通信 協(xié)議的指令包括:用于使所述處理器識別來自優(yōu)先級列表的通信協(xié)議的指令,所述優(yōu)先級 列表能夠由所述移動設(shè)備的用戶配置。
11. 如權(quán)利要求1所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器通過網(wǎng)絡(luò) 連接來發(fā)送所述鍵值的指令包括:用于使所述處理器通過電話專用的通信信道來傳送所述 鍵值的指令。
12. 如權(quán)利要求11所述的非暫時性計算機(jī)可讀介質(zhì),其中,用于使所述處理器通過電 話專用的通信信道來發(fā)送所述鍵值的指令包括:用于使所述處理器將所述鍵值作為短消息 服務(wù)(SMS)消息發(fā)送到預(yù)定義的電話號碼的指令。
13. -種方法,其包括: 利用移動設(shè)備中的處理器來攔截在所述移動設(shè)備上安裝應(yīng)用程序的請求; 利用所述處理器來生成唯一地識別所述應(yīng)用程序的鍵值; 利用所述處理器通過網(wǎng)絡(luò)連接將所述鍵值發(fā)送至服務(wù)器應(yīng)用程序; 利用所述處理器通過所述網(wǎng)絡(luò)連接來接收指示所述應(yīng)用程序的狀態(tài)的響應(yīng);并且 當(dāng)所述狀態(tài)指示所述應(yīng)用程序為惡意的時,利用所述處理器來阻止所述應(yīng)用程序的安 裝。
14. 如權(quán)利要求13所述的方法,其中,攔截在所述移動設(shè)備上安裝應(yīng)用程序的請求的 動作包括:將墊片應(yīng)用程序注冊作為所述移動設(shè)備上的后臺服務(wù)。
15. 如權(quán)利要求14所述的方法,其中,將所述墊片應(yīng)用程序注冊作為所述移動設(shè)備上 的后臺服務(wù)的動作包括:注冊所述墊片應(yīng)用程序以攔截應(yīng)用程序編程接口的調(diào)用,所述應(yīng) 用程序編程接口被用于啟動在所述移動設(shè)備上對所述應(yīng)用程序的安裝。
16. -種移動設(shè)備,其包括 存儲器; 網(wǎng)絡(luò)接口;以及 能夠操作地耦合至所述存儲器與所述網(wǎng)絡(luò)接口的處理器,所述處理器適用于執(zhí)行存儲 在所述存儲器中的程序代碼用于: 攔截在所述移動設(shè)備上安裝移動應(yīng)用程序的請求; 生成唯一地識別所述移動應(yīng)用程序的鍵值; 利用所述網(wǎng)絡(luò)接口將所述鍵值發(fā)送至服務(wù)器應(yīng)用程序; 利用所述網(wǎng)絡(luò)接口接收指示所述移動應(yīng)用程序的狀態(tài)的響應(yīng);并且 當(dāng)所述狀態(tài)指示所述移動應(yīng)用程序為惡意的時,阻止在所述移動設(shè)備上對所述移動應(yīng) 用程序的安裝。
17. -種用于識別應(yīng)用程序的狀態(tài)的方法,包括: 在后端服務(wù)器處理器上執(zhí)行的服務(wù)器應(yīng)用程序處通過網(wǎng)絡(luò)連接從移動設(shè)備接收應(yīng)用 程序標(biāo)識符; 通過所述服務(wù)器應(yīng)用程序利用所述應(yīng)用程序標(biāo)識符來確定來自記錄的數(shù)據(jù)庫的所述 應(yīng)用程序的狀態(tài),所述記錄的數(shù)據(jù)庫包括多個已分析的應(yīng)用程序; 通過所述服務(wù)器應(yīng)用程序通過所述網(wǎng)絡(luò)連接來將所述應(yīng)用程序的狀態(tài)發(fā)送至所述移 動設(shè)備。
18. 如權(quán)利要求17所述的方法,其中,所述應(yīng)用程序標(biāo)識符包括:唯一地識別所述應(yīng)用 程序的鍵值和與所述應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。
19. 如權(quán)利要求18所述的方法,其中,利用所述應(yīng)用程序標(biāo)識符來確定所述應(yīng)用程序 的狀態(tài)的動作包括:搜索所述數(shù)據(jù)庫以確定所述數(shù)據(jù)庫中是否存在與所述鍵值相匹配的記 錄。
20. 如權(quán)利要求19所述的方法,其中,利用所述應(yīng)用程序標(biāo)識符來確定所述應(yīng)用程序 的狀態(tài)的動作包括:當(dāng)確定所述數(shù)據(jù)庫中不存在與所述鍵值相匹配的記錄時,利用所述元 數(shù)據(jù)來暗示來自所述數(shù)據(jù)庫中的記錄的應(yīng)用程序的狀態(tài)。
21. -種非暫時性計算機(jī)可讀介質(zhì),其包括存儲于其上的計算機(jī)可執(zhí)行指令,使處理器 用于: 在后端服務(wù)器處理器上執(zhí)行的服務(wù)器應(yīng)用程序處通過網(wǎng)絡(luò)連接從移動設(shè)備接收應(yīng)用 程序標(biāo)識符; 通過所述服務(wù)器應(yīng)用程序利用所述應(yīng)用程序標(biāo)識符來確定來自記錄的數(shù)據(jù)庫的所述 應(yīng)用程序的狀態(tài),所述記錄的數(shù)據(jù)庫包括多個已分析的應(yīng)用程序; 通過所述服務(wù)器應(yīng)用程序?qū)⑺鰬?yīng)用程序的狀態(tài)通過所述網(wǎng)絡(luò)連接發(fā)送至所述移動 設(shè)備。
22. 如權(quán)利要求21所述的非暫時性計算機(jī)可讀介質(zhì),其中,所述應(yīng)用程序標(biāo)識符包括: 唯一地識別所述應(yīng)用程序的鍵值和與所述應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù)。
23. 如權(quán)利要求22所述的非暫時性計算機(jī)可讀介質(zhì),其中,利用所述應(yīng)用程序標(biāo)識符 來確定所述應(yīng)用程序的狀態(tài)的動作包括:搜索所述數(shù)據(jù)庫以確定所述數(shù)據(jù)庫中是否存在與 所述鍵值相匹配的記錄。
24. 如權(quán)利要求23所述的非暫時性計算機(jī)可讀介質(zhì),其中,利用所述應(yīng)用程序標(biāo)識來 確定所述應(yīng)用程序的狀態(tài)的動作包括:當(dāng)確定所述數(shù)據(jù)庫中不存在與所述鍵值相匹配的記 錄時,利用所述元數(shù)據(jù)來暗示來自所述數(shù)據(jù)庫中的記錄的應(yīng)用程序的狀態(tài)。
25. -種后端服務(wù)器,其包括: 存儲器; 網(wǎng)絡(luò)接口; 能夠操作地耦合至所述存儲器和所述網(wǎng)絡(luò)接口的處理器;以及 由所示處理器執(zhí)行的服務(wù)器應(yīng)用程序,用于: 通過網(wǎng)絡(luò)連接從移動設(shè)備接收應(yīng)用程序標(biāo)識符; 利用所述應(yīng)用程序標(biāo)識符來確定來自記錄的數(shù)據(jù)庫的應(yīng)用程序的狀態(tài),所述記錄的數(shù) 據(jù)庫包括多個已分析的應(yīng)用程序; 通過所述網(wǎng)絡(luò)連接將所述應(yīng)用程序的狀態(tài)發(fā)送至所述移動設(shè)備。
【文檔編號】G06F21/56GK104246788SQ201380016442
【公開日】2014年12月24日 申請日期:2013年4月17日 優(yōu)先權(quán)日:2012年4月18日
【發(fā)明者】S·達(dá)斯, J·迪瓦卡爾拉, P·夏爾馬 申請人:邁克菲公司