移動(dòng)和無線技術(shù)在過去幾年已經(jīng)得到爆炸式增長(zhǎng)。該增長(zhǎng)得益于更好的通信、硬件以及更可靠的協(xié)議。無線服務(wù)提供商現(xiàn)在能夠?yàn)槠湎M(fèi)者提供持續(xù)擴(kuò)展的特征和服務(wù)隊(duì)列,并且為用戶提供針對(duì)信息、資源和通信的史無前例的訪問級(jí)別。為了能夠跟上這些增長(zhǎng),移動(dòng)電子設(shè)備(例如,蜂窩電話、手表、耳機(jī)、遙控器等等)已經(jīng)變得比過去更為復(fù)雜,并且現(xiàn)在通常包括多個(gè)處理器、片上系統(tǒng)(SoC)以及其他資源,其允許移動(dòng)設(shè)備用戶在其移動(dòng)設(shè)備上執(zhí)行復(fù)雜且耗電量大的軟件應(yīng)用(例如,視頻流化、視頻處理等等)。隨著復(fù)雜度和功耗的增長(zhǎng),能夠更好地利用移動(dòng)設(shè)備的資源和能力的新的改進(jìn)的處理解決方案將會(huì)有利于消費(fèi)者。
技術(shù)實(shí)現(xiàn)要素:
各個(gè)方面包括用于通過如下方式來確定移動(dòng)設(shè)備中的軟件應(yīng)用的執(zhí)行狀態(tài)的方法:在所述移動(dòng)設(shè)備的處理器中監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng)以收集行為信息;基于所收集的行為信息來生成行為矢量;以及通過對(duì)所述行為矢量應(yīng)用分類器模型來確定所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)。在一個(gè)方面中,所述方法可以包括:基于所確定的執(zhí)行狀態(tài)來選擇節(jié)能方案,并實(shí)施所選擇的節(jié)能方案。在另一方面中,所述方法可以包括:通過對(duì)所述行為矢量應(yīng)用所述分類器模型來預(yù)測(cè)所述軟件應(yīng)用或進(jìn)程的未來執(zhí)行狀態(tài);以及向調(diào)度器通知所確定的未來執(zhí)行狀態(tài)以使得所述調(diào)度器能夠執(zhí)行與所確定的未來執(zhí)行狀態(tài)相一致的動(dòng)作。
在另一方面中,所述方法可以包括:確定所述軟件應(yīng)用或進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài);以及判斷所確定的操作系統(tǒng)執(zhí)行狀態(tài)是否與所確定的執(zhí)行狀態(tài)相同。在另一方面中,所述方法可以包括:響應(yīng)于判定操作系統(tǒng)執(zhí)行狀態(tài)與所確定的執(zhí)行狀態(tài)不相同,將所述軟件應(yīng)用分類為“非良性的(not benign)”。在另一方面中,所述方法可以包括:基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型;以及使用所選擇的行為分類器模型來判斷所述軟件應(yīng)用是否是“非良性的”。在另一方面中,基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:選擇特定于應(yīng)用的分類器模型(application specific classifier model)。在另一方面中,基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:識(shí)別所述軟件應(yīng)用所使用的移動(dòng)設(shè)備特征;以及選擇所述行為分類器模型以包含所識(shí)別的特征。
在另一方面中,所述方法可以包括:判斷所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)是否與所述活動(dòng)相關(guān);響應(yīng)于判定所述執(zhí)行狀態(tài)與所述活動(dòng)相關(guān),生成陰影特征值(shadow feature value),所述陰影特征值識(shí)別所述活動(dòng)被監(jiān)視期間所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài);生成將所述活動(dòng)與識(shí)別所述執(zhí)行狀態(tài)的所述陰影特征值相關(guān)聯(lián)的第二行為矢量;以及使用所述第二行為矢量來判斷所述活動(dòng)是否是“非良性的”。
其他方面包括一種計(jì)算設(shè)備,所述計(jì)算設(shè)備可以包括處理器,所述處理器由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng)以收集行為信息;基于所收集的行為信息來生成行為矢量;以及通過對(duì)所述行為矢量應(yīng)用分類器模型來確定所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)。在一個(gè)方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:基于所確定的執(zhí)行狀態(tài)來選擇節(jié)能方案;以及實(shí)施所選擇的節(jié)能方案。
在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:通過對(duì)所述行為矢量應(yīng)用所述分類器模型來預(yù)測(cè)所述軟件應(yīng)用或進(jìn)程的未來執(zhí)行狀態(tài);以及向調(diào)度器通知所確定的未來執(zhí)行狀態(tài)以使得所述調(diào)度器能夠執(zhí)行與所確定的未來執(zhí)行狀態(tài)相一致的動(dòng)作。在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:確定所述軟件應(yīng)用或進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài);以及判斷所確定的操作系統(tǒng)執(zhí)行狀態(tài)是否與所確定的執(zhí)行狀態(tài)相同。在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:響應(yīng)于判定操作系統(tǒng)執(zhí)行狀態(tài)與所確定的執(zhí)行狀態(tài)不相同,將所述軟件應(yīng)用分類為“非良性的”。
在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型;以及使用所選擇的行為分類器模型來判斷所述軟件應(yīng)用是否是“非良性的”。在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行操作以使得基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:選擇特定于應(yīng)用的分類器模型。在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行操作以使得基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:識(shí)別所述軟件應(yīng)用所使用的移動(dòng)設(shè)備特征;以及選擇所述行為分類器模型以包含所識(shí)別的特征。
在另一方面中,所述處理器可以由處理器可執(zhí)行指令配置為執(zhí)行包括如下的操作:判斷所述軟件應(yīng)用或進(jìn)程的所述執(zhí)行狀態(tài)是否與所述活動(dòng)相關(guān);響應(yīng)于判定所述執(zhí)行狀態(tài)與所述活動(dòng)相關(guān),生成陰影特征值,所述陰影特征值識(shí)別所述活動(dòng)被監(jiān)視期間所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài);生成將所述活動(dòng)與識(shí)別所述執(zhí)行狀態(tài)的所述陰影特征值相關(guān)聯(lián)的第二行為矢量;以及使用所述第二行為矢量來判斷所述活動(dòng)是否是“非良性的”。
其他方面包括具有存儲(chǔ)在其上的處理器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述處理器可執(zhí)行軟件指令被配置為導(dǎo)致移動(dòng)設(shè)備處理器執(zhí)行包括如下的操作:監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng)以收集行為信息;基于所收集的行為信息來生成行為矢量;以及通過對(duì)所述行為矢量應(yīng)用分類器模型來確定所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)。在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致接收機(jī)設(shè)備的處理器執(zhí)行包括以下的操作:基于所確定的執(zhí)行狀態(tài)來選擇節(jié)能方案;以及實(shí)施所選擇的節(jié)能方案。
在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行包括以下的操作:通過對(duì)所述行為矢量應(yīng)用所述分類器模型來預(yù)測(cè)所述軟件應(yīng)用或進(jìn)程的未來執(zhí)行狀態(tài);以及向調(diào)度器通知所確定的未來執(zhí)行狀態(tài)以使得所述調(diào)度器能夠執(zhí)行與所確定的未來執(zhí)行狀態(tài)相一致的動(dòng)作。在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行包括以下的操作:確定所述軟件應(yīng)用或進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài);以及判斷所確定的操作系統(tǒng)執(zhí)行狀態(tài)是否與所確定的執(zhí)行狀態(tài)相同。
在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行包括以下的操作:響應(yīng)于判定操作系統(tǒng)執(zhí)行狀態(tài)與所確定的執(zhí)行狀態(tài)不相同,將所述軟件應(yīng)用分類為“非良性的”。在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行包括以下的操作:基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型;以及使用所選擇的行為分類器模型來判斷所述軟件應(yīng)用是否是“非良性的”。在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行操作以使得基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:選擇特定于應(yīng)用的分類器模型。
在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行操作以使得基于所確定的執(zhí)行狀態(tài)來選擇行為分類器模型可以包括:識(shí)別所述軟件應(yīng)用所使用的移動(dòng)設(shè)備特征;以及選擇所述行為分類器模型以包含所識(shí)別的特征。在一個(gè)方面中,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以被配置為導(dǎo)致處理器執(zhí)行包括以下的操作:判斷所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)是否與所述活動(dòng)相關(guān);響應(yīng)于判定所述執(zhí)行狀態(tài)與所述活動(dòng)相關(guān),生成陰影特征值,所述陰影特征值識(shí)別所述活動(dòng)被監(jiān)視期間所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài);生成將所述活動(dòng)與識(shí)別所述執(zhí)行狀態(tài)的所述陰影特征值相關(guān)聯(lián)的第二行為矢量;以及使用所述第二行為矢量來判斷所述活動(dòng)是否不是良性的。
其他方面包括一種移動(dòng)計(jì)算設(shè)備,其具有:用于監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng)以收集行為信息的單元;用于基于所收集的行為信息來生成行為矢量的單元;以及用于通過對(duì)所述行為矢量應(yīng)用分類器模型來確定所述軟件應(yīng)用或進(jìn)程的執(zhí)行狀態(tài)的單元。在一個(gè)方面中,所述移動(dòng)計(jì)算設(shè)備可以包括:用于基于所確定的執(zhí)行狀態(tài)來選擇節(jié)能方案的單元;以及用于實(shí)施所選擇的節(jié)能方案的單元。在一個(gè)方面中,所述移動(dòng)計(jì)算設(shè)備可以包括:用于通過對(duì)所述行為矢量應(yīng)用所述分類器模型來預(yù)測(cè)所述軟件應(yīng)用或進(jìn)程的未來執(zhí)行狀態(tài)的單元;以及用于向調(diào)度器通知所確定的未來執(zhí)行狀態(tài)以使得所述調(diào)度器能夠執(zhí)行與所確定的未來執(zhí)行狀態(tài)相一致的動(dòng)作的單元。在其他方面中,所述移動(dòng)計(jì)算設(shè)備可以包括用于執(zhí)行與任意上述方法操作相對(duì)應(yīng)的功能的單元。
附圖說明
本文包含附圖并構(gòu)成本說明書的組成部分,附圖圖示了本發(fā)明的多個(gè)示例性方面,并且與以上給出的一般性說明和以下給出的詳細(xì)說明一起用于解釋本發(fā)明的多個(gè)特征。
圖1是適合于實(shí)施各個(gè)方面的示例性片上系統(tǒng)的組件方框圖。
圖2A是圖示根據(jù)一個(gè)方面的示例性移動(dòng)設(shè)備中的邏輯組件和信息流的方框圖,該移動(dòng)設(shè)備被配置為使用機(jī)器學(xué)習(xí)技術(shù)來確定軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)。
圖2B是圖示根據(jù)各個(gè)方面的示例性移動(dòng)設(shè)備中的邏輯組件和信息流的方框圖,該移動(dòng)設(shè)備被配置為基于軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來執(zhí)行動(dòng)態(tài)且自適應(yīng)的行為觀察和分析操作。
圖3A是圖示用于使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來判斷軟件應(yīng)用是“惡意的”還是“良性的”的一個(gè)方面的方法的過程流程圖。
圖3B是圖示用于使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來實(shí)施節(jié)能方案的一個(gè)方面的方法的過程流程圖。
圖3C是圖示用于使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來選擇分類器模型并改善綜合行為監(jiān)視與分析系統(tǒng)的準(zhǔn)確性和性能的一個(gè)方面的方法的過程流程圖。
圖3D是圖示用于使用所述實(shí)際執(zhí)行狀態(tài)來改善綜合行為監(jiān)視與分析系統(tǒng)的準(zhǔn)確性和性能并實(shí)施高效節(jié)能方案的另一個(gè)方面的方法的過程流程圖。
圖3E是圖示用于使用所述實(shí)際執(zhí)行狀態(tài)來確定未來執(zhí)行狀態(tài)并提高移動(dòng)設(shè)備性能的一個(gè)方面的方法的過程流程圖。
圖4是圖示用于智能地產(chǎn)生行為矢量的一個(gè)方面的方法的過程流程圖,所述行為矢量適用于判斷移動(dòng)設(shè)備行為是否與正常操作模式不一致,而不會(huì)消耗移動(dòng)設(shè)備大量的處理、存儲(chǔ)或電池資源。
圖5是圖示根據(jù)各個(gè)方面的在實(shí)施觀察器模塊和觀察器系統(tǒng)服務(wù)(observer daemons)的計(jì)算系統(tǒng)中的邏輯組件和信息流的組件方框圖。
圖6是圖示用于在移動(dòng)設(shè)備上執(zhí)行自適應(yīng)觀察的一個(gè)方面的方法的過程流程圖。
圖7是適用于各個(gè)方面的示例性移動(dòng)設(shè)備的組件方框圖。
圖8是適用于各個(gè)方面的示例性服務(wù)器計(jì)算機(jī)的組件方框圖。
具體實(shí)施方式
將參考附圖詳細(xì)說明各個(gè)方面。在任何可能時(shí),在全部附圖中使用相同的參考數(shù)字來指代相同或類似的部分。對(duì)于具體實(shí)例和實(shí)現(xiàn)方式的提及僅是為了舉例說明的目的,而不旨在限制本發(fā)明或權(quán)利要求的保護(hù)范圍。
總體而言,各個(gè)方面包括用于使用機(jī)器學(xué)習(xí)技術(shù)來確定移動(dòng)設(shè)備的軟件應(yīng)用的執(zhí)行狀態(tài)的方法,所述執(zhí)行狀態(tài)獨(dú)立于可從操作系統(tǒng)或軟件應(yīng)用獲得的執(zhí)行狀態(tài)信息,以及被配置為實(shí)現(xiàn)所述方法的移動(dòng)設(shè)備。在一個(gè)方面中,移動(dòng)設(shè)備的處理器可以被配置為使用該應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息(application-and-operating-system-agnostic execution state information)來實(shí)施不會(huì)改變?cè)O(shè)備功能或可靠性的高效節(jié)能方案。在另一方面中,移動(dòng)設(shè)備的處理器可以被配置為使用該應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息來改善綜合行為監(jiān)視與分析系統(tǒng)的準(zhǔn)確性和性能,并使得移動(dòng)設(shè)備能夠更好地預(yù)測(cè)移動(dòng)設(shè)備行為是否是良性的、可疑的、惡意的、或者造成移動(dòng)設(shè)備的性能和/或功耗特性的降級(jí)。
通常,常規(guī)解決方案需要計(jì)算設(shè)備將軟件應(yīng)用分類為處于操作系統(tǒng)(例如,Android、Windows 8等等)所預(yù)先定義的某種執(zhí)行狀態(tài)(例如,后臺(tái)、空、前臺(tái)、可察覺、服務(wù)和可見)中。然而,這些執(zhí)行狀態(tài)可能未準(zhǔn)確地說明軟件應(yīng)用的實(shí)際操作狀態(tài)。另外,該操作系統(tǒng)執(zhí)行狀態(tài)信息(即操作系統(tǒng)所提供的狀態(tài)信息)常常不包含可用于實(shí)施高效節(jié)能方案或準(zhǔn)確地評(píng)估復(fù)雜移動(dòng)設(shè)備行為的足夠精細(xì)粒度的信息或細(xì)節(jié)。
由于常規(guī)解決方案需要計(jì)算設(shè)備依賴于由操作系統(tǒng)或軟件應(yīng)用提供的該信息,因此如果軟件應(yīng)用是惡意的或者計(jì)算設(shè)備已經(jīng)被惡意軟件感染或劫持,則這些解決方案可能是無效的。例如,如果計(jì)算設(shè)備被惡意應(yīng)用感染,該惡意應(yīng)用攔截并修改在系統(tǒng)軟件與操作系統(tǒng)之間的通信,則系統(tǒng)軟件會(huì)接收到不正確的狀態(tài)信息并且由此不能使用該應(yīng)用的實(shí)際執(zhí)行狀態(tài)來準(zhǔn)確地判斷該應(yīng)用是否是惡意的。
為了克服常規(guī)解決方案的這些限制以及其他限制,各個(gè)方面包括方法和配有模塊或組件的移動(dòng)設(shè)備,其允許移動(dòng)設(shè)備確定軟件應(yīng)用的執(zhí)行狀態(tài),該執(zhí)行狀態(tài)獨(dú)立于可從軟件應(yīng)用或操作系統(tǒng)獲得的執(zhí)行狀態(tài)信息。
在一個(gè)方面中,移動(dòng)設(shè)備可以配有狀態(tài)估計(jì)與預(yù)測(cè)模塊(和/或應(yīng)用執(zhí)行狀態(tài)確定模塊),其被配置為從移動(dòng)設(shè)備的各種軟件和硬件組件接收?qǐng)?zhí)行、事件和/或行為信息。所述信息可以包括以下任意項(xiàng)或全部:操作狀態(tài)信息、事件信息(例如,表面觸摸、點(diǎn)擊、按鍵操作等等)、來自傳感器的用于指示活動(dòng)/非活動(dòng)的信息、CPU/GPU使用級(jí)別、電池消耗級(jí)別、標(biāo)識(shí)所實(shí)現(xiàn)功能的信息、資源狀態(tài)信息、存儲(chǔ)器事務(wù)信息、通信事務(wù)信息、以及與在移動(dòng)設(shè)備中進(jìn)行的有關(guān)于軟件應(yīng)用執(zhí)行的各種行為、活動(dòng)、操作和事件相關(guān)的其他類型的信息。
狀態(tài)估計(jì)與預(yù)測(cè)模塊(或應(yīng)用執(zhí)行狀態(tài)確定模塊)可以對(duì)其從軟件和硬件組件接收的信息應(yīng)用決策規(guī)則和機(jī)器學(xué)習(xí)算法,以推斷、估計(jì)、預(yù)測(cè)或確定軟件應(yīng)用的執(zhí)行狀態(tài),該執(zhí)行狀態(tài)獨(dú)立于可從操作系統(tǒng)或應(yīng)用獲得的執(zhí)行狀態(tài)信息。就是說,狀態(tài)估計(jì)與預(yù)測(cè)模塊可以生成應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息,該應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息與由操作系統(tǒng)或軟件應(yīng)用提供的狀態(tài)信息相比更為準(zhǔn)確、更為細(xì)節(jié)并且粒度更精細(xì)。例如,狀態(tài)估計(jì)與預(yù)測(cè)模塊可以生成該執(zhí)行狀態(tài)信息以包括關(guān)于如下的詳細(xì)統(tǒng)計(jì):資源被應(yīng)用軟件所使用的持續(xù)時(shí)間、或該軟件應(yīng)用請(qǐng)求使用該資源的頻率。移動(dòng)設(shè)備隨后可以使用該信息來判斷操作系統(tǒng)執(zhí)行狀態(tài)信息是否準(zhǔn)確,諸如被操作系統(tǒng)分類為處于“前臺(tái)”狀態(tài)中的軟件應(yīng)用是否實(shí)際上處于“空閑”執(zhí)行狀態(tài)中。
在一個(gè)方面中,移動(dòng)設(shè)備的功率管理模塊可以使用由狀態(tài)估計(jì)與預(yù)測(cè)模塊所提供的執(zhí)行狀態(tài)信息來在移動(dòng)設(shè)備中實(shí)施高效的節(jié)能方案,所述節(jié)能方案平衡了移動(dòng)設(shè)備的功耗和性能特性。在另一方面中,移動(dòng)設(shè)備的行為監(jiān)視與分析系統(tǒng)可以使用該執(zhí)行狀態(tài)信息來更好地預(yù)測(cè)移動(dòng)設(shè)備行為是“良性的”還是“惡意的”。例如,行為監(jiān)視與分析系統(tǒng)可以使用該應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息來識(shí)別并選擇特定于應(yīng)用的精簡(jiǎn)(lean)分類器模型,所述精簡(jiǎn)分類器模型評(píng)估與分析同軟件應(yīng)用的執(zhí)行相關(guān)聯(lián)的復(fù)雜移動(dòng)設(shè)備行為最相關(guān)的特征或狀況。
術(shù)語“移動(dòng)計(jì)算設(shè)備”和“移動(dòng)設(shè)備”在本文中可互換地使用,以指代以下任意一種或全部:蜂窩電話、智能電話、個(gè)人或移動(dòng)多媒體播放器、個(gè)人數(shù)字助理(PDA)、筆記本電腦、平板電腦、智能本、超級(jí)本、掌上電腦、無線電子郵件接收機(jī)、具有多媒體互聯(lián)網(wǎng)功能的蜂窩電話、無線游戲控制器、以及類似的個(gè)人電子設(shè)備,其包括存儲(chǔ)器和關(guān)注于性能的可編程處理器,并在電池供電下操作從而使得節(jié)電方法對(duì)其有利。雖然各個(gè)方面對(duì)于具有有限資源并在電池供電下運(yùn)行的移動(dòng)計(jì)算設(shè)備(諸如智能電話)而言特別有利,但是總的來說這些方面在包括處理器并執(zhí)行應(yīng)用程序的任何電子設(shè)備中都有用。
本文使用術(shù)語“性能降級(jí)”表示寬泛范圍的各種不期望的移動(dòng)設(shè)備操作和特性,諸如更長(zhǎng)的處理時(shí)間、更低的實(shí)時(shí)響應(yīng)、更低的電池使用時(shí)間、私有數(shù)據(jù)的丟失、惡意經(jīng)濟(jì)活動(dòng)(例如,發(fā)送未授權(quán)的付費(fèi)(premium)SMS消息),拒絕服務(wù)(DoS)、與強(qiáng)占有關(guān)的操作。
如上所述,基于所觀察的行為來確定應(yīng)用的狀態(tài)對(duì)于監(jiān)視移動(dòng)設(shè)備行為以識(shí)別造成性能降級(jí)的問題和惡意軟件的系統(tǒng)和方法而言是有用處的。通常,移動(dòng)設(shè)備的性能和功率效率隨時(shí)間而降級(jí)。最近,殺毒公司(例如,McAfee、Symantec等等)已經(jīng)開始出售移動(dòng)版殺毒、防火墻和加密產(chǎn)品,其目的是減緩該降級(jí)。然而,這些解決方案中的很多依賴于在移動(dòng)設(shè)備上周期地執(zhí)行計(jì)算量大的掃描引擎,這會(huì)消耗移動(dòng)設(shè)備很多的處理和電池資源,使得移動(dòng)設(shè)備在延長(zhǎng)的時(shí)間段內(nèi)速度變慢或者導(dǎo)致移動(dòng)設(shè)備無法使用,和/或以其他方式使用戶體驗(yàn)變差。另外,這些解決方案通常受限于檢測(cè)已知的病毒和惡意軟件,并且不解決經(jīng)常組合起來導(dǎo)致移動(dòng)設(shè)備隨時(shí)間性能降級(jí)的多種復(fù)雜因素和/或交互(例如,在性能降級(jí)不是由病毒或惡意軟件造成時(shí))。由于這些原因以及其他原因,現(xiàn)有的殺毒、防火墻和加密產(chǎn)品并不提供合適的解決方案來識(shí)別會(huì)造成移動(dòng)設(shè)備隨時(shí)間降級(jí)的大量因素,避免移動(dòng)設(shè)備降級(jí),或高效地將老舊移動(dòng)設(shè)備恢復(fù)到其原始狀況。
移動(dòng)設(shè)備是資源約束型系統(tǒng),其具有相對(duì)有限的處理、存儲(chǔ)器和功率資源?,F(xiàn)代移動(dòng)設(shè)備還是復(fù)雜系統(tǒng),并且存在大量因素會(huì)造成移動(dòng)移動(dòng)的性能和功率使用級(jí)別隨時(shí)間降級(jí),包括設(shè)計(jì)差的軟件應(yīng)用、惡意軟件、病毒、碎片化存儲(chǔ)器、后臺(tái)進(jìn)程等等。由于這些因素的數(shù)量、多樣性和復(fù)雜性,經(jīng)常無法評(píng)估會(huì)使得現(xiàn)代移動(dòng)設(shè)備的復(fù)雜但資源約束型系統(tǒng)的性能和/或功率使用級(jí)別降級(jí)的全部各種進(jìn)程、組件、行為或因素(或其組合)。因此,用戶、操作系統(tǒng)和/或應(yīng)用程序(例如,殺毒軟件等等)難以準(zhǔn)確且高效地識(shí)別這些問題的源頭。因此,移動(dòng)設(shè)備用戶當(dāng)前幾乎沒有什么補(bǔ)救措施能夠避免移動(dòng)設(shè)備的性能和功率使用級(jí)別隨時(shí)間而降級(jí),以及將老舊移動(dòng)設(shè)備恢復(fù)到其原始性能和功率使用級(jí)別。
用于確定應(yīng)用的狀態(tài)的各個(gè)方面可以由綜合行為監(jiān)視與分析系統(tǒng)用來智能地且高效地識(shí)別、避免、和/或糾正經(jīng)常造成移動(dòng)設(shè)備的性能和/或功率使用級(jí)別隨時(shí)間而降級(jí)的狀況、因素和/或移動(dòng)設(shè)備行為。在這種行為監(jiān)視與分析系統(tǒng)中,移動(dòng)設(shè)備的觀察器進(jìn)程、系統(tǒng)服務(wù)、模塊或子系統(tǒng)(本文中統(tǒng)稱為“模塊”)可以在移動(dòng)設(shè)備系統(tǒng)的各個(gè)級(jí)別上裝配或協(xié)調(diào)各種應(yīng)用程序編程接口(API)、寄存器、計(jì)數(shù)器或其他組件(本文中統(tǒng)稱為“裝配組件”)。觀察器模塊可以通過從裝配組件收集行為信息,來持續(xù)地(或接近持續(xù)地)監(jiān)視移動(dòng)設(shè)備行為。移動(dòng)設(shè)備還可以包括分析器模塊,并且觀察器模塊可以將所收集的行為信息發(fā)送給分析器模塊。分析器模塊可以被配置為執(zhí)行實(shí)時(shí)行為分析操作,其可以包括對(duì)所收集的行為信息執(zhí)行、運(yùn)行和/或應(yīng)用數(shù)據(jù)、算法、分類器或模型(本文統(tǒng)稱為“分類器模塊”),以判斷移動(dòng)設(shè)備行為是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)。移動(dòng)設(shè)備隨后可以使用該分析的結(jié)果來恢復(fù)、解決、隔離或以其他方式修復(fù)或應(yīng)對(duì)所識(shí)別的問題。
通常,在移動(dòng)設(shè)備上每個(gè)軟件應(yīng)用執(zhí)行多個(gè)任務(wù)或活動(dòng)。特定的任務(wù)/活動(dòng)固有地需要操作系統(tǒng)或軟件應(yīng)用(或進(jìn)程、線程等等)處于支持或兼容這些任務(wù)/活動(dòng)的執(zhí)行狀態(tài)中。例如,使用相機(jī)、激活麥克風(fēng)來錄制音頻、發(fā)送短消息服務(wù)(SMS)消息以及收集加速計(jì)數(shù)據(jù)都是通常需要用戶與移動(dòng)設(shè)備的某種形式的交互(例如,用戶按下相機(jī)的快門釋放按鍵、鍵入文本、點(diǎn)擊發(fā)送按鍵等等)的任務(wù)/活動(dòng)。因此,這些活動(dòng)通常必須在“前臺(tái)”執(zhí)行狀態(tài)中執(zhí)行,或者在支持用戶與移動(dòng)設(shè)備的交互的另一執(zhí)行狀態(tài)中執(zhí)行。
當(dāng)在某個(gè)不支持用戶與移動(dòng)設(shè)備的高級(jí)交互的執(zhí)行狀態(tài)中(例如在背景中)執(zhí)行這些任務(wù)/活動(dòng)或其他類似任務(wù)/活動(dòng)時(shí),該操作狀況可以是一個(gè)關(guān)于與該活動(dòng)相關(guān)聯(lián)的移動(dòng)設(shè)備行為是惡意的或者應(yīng)該受到額外或更為密切的監(jiān)管、監(jiān)視或分析的表征。就是說,在移動(dòng)設(shè)備中執(zhí)行特定任務(wù)/活動(dòng)的特定執(zhí)行狀態(tài)可以是一個(gè)關(guān)于移動(dòng)設(shè)備行為是否應(yīng)該受到額外或更為密切的監(jiān)管、監(jiān)視和/或分析的表征。然而,由操作系統(tǒng)和應(yīng)用程序提供的一般性且預(yù)定義的執(zhí)行狀態(tài)信息經(jīng)常不準(zhǔn)確,或者不包括可用于如下的信息:實(shí)施高效節(jié)能方案、判斷應(yīng)該使用哪些行為模式(或分類器模式)來評(píng)估應(yīng)用、和/或準(zhǔn)確地將與軟件應(yīng)用相關(guān)聯(lián)的復(fù)雜移動(dòng)設(shè)備行為分類為“惡意的”或“良性的”。
各個(gè)方面包括配有狀態(tài)估計(jì)與預(yù)測(cè)模塊(和/或應(yīng)用執(zhí)行狀態(tài)確定模塊)的移動(dòng)設(shè)備,所述模塊被配置為從移動(dòng)設(shè)備的各種軟件/硬件組件接收信息,并對(duì)所接收的信息應(yīng)用機(jī)器學(xué)習(xí)技術(shù)來計(jì)算該應(yīng)用的實(shí)際執(zhí)行狀態(tài)。這些軟件/硬件組件可以被配置為監(jiān)視由移動(dòng)設(shè)備中的軟件應(yīng)用所執(zhí)行的或與軟件應(yīng)用的執(zhí)行相關(guān)的寬泛的各種活動(dòng)和任務(wù),并且由此能夠訪問與通??蓮牟僮飨到y(tǒng)或軟件應(yīng)用獲得的信息相比而言額外的、更為詳細(xì)的、和/或粒度更精細(xì)的信息。因此,狀態(tài)估計(jì)與預(yù)測(cè)模塊可以產(chǎn)生與由軟件應(yīng)用或操作系統(tǒng)提供或可從軟件應(yīng)用或操作系統(tǒng)獲得的狀態(tài)信息相比更為準(zhǔn)確的執(zhí)行狀態(tài)信息。
另外,狀態(tài)估計(jì)與預(yù)測(cè)模塊可以產(chǎn)生與應(yīng)用或操作系統(tǒng)提供的狀態(tài)信息不同的執(zhí)行狀態(tài)信息。例如,狀態(tài)估計(jì)與預(yù)測(cè)模塊確定被操作系統(tǒng)分類為處于“前臺(tái)”執(zhí)行狀態(tài)中的軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)并未正在使用類似應(yīng)用所使用的資源、并未正在執(zhí)行與由類似應(yīng)用所執(zhí)行的操作類似的處理或存儲(chǔ)器訪問操作、并且在過去10秒內(nèi)并未接收用戶輸入。在該情況下,狀態(tài)估計(jì)與預(yù)測(cè)模塊確定該軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)是“空閑”。
通過確定所選軟件應(yīng)用(或進(jìn)程、線程等等)的實(shí)際執(zhí)行狀態(tài),各個(gè)方面允許移動(dòng)設(shè)備實(shí)施更為高效的節(jié)能方案。例如,移動(dòng)設(shè)備可以使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來識(shí)別該應(yīng)用的實(shí)際功耗或處理需要,并判斷應(yīng)該對(duì)處理核心增加供電還是減少供電來滿足這些需求。移動(dòng)設(shè)備還可以使用該信息來判斷何時(shí)應(yīng)該對(duì)特定的處理核心增加供電或減少供電以便增加其電池使用時(shí)間、減少延遲或提高性能。
移動(dòng)設(shè)備還可以使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來更好地選擇行為模型,將其操作集中在評(píng)估移動(dòng)設(shè)備的最重要的特征上,以及更好地預(yù)測(cè)某個(gè)行為是良性的還是惡意的。例如,觀察器和/或分析器模塊可以被配置為從狀態(tài)估計(jì)與預(yù)測(cè)模塊接收應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息,并使用該信息來將其操作集中在評(píng)估移動(dòng)設(shè)備的最相關(guān)特征上。
在各個(gè)方面中,分析器模塊可以被配置為使用應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息來選擇分類器模型,所述分類器模型關(guān)注于與以下最相關(guān)的特征:分析特定軟件應(yīng)用或行為、更好地確定軟件應(yīng)用的意圖(“惡意的”還是“良性的”)、和/或更好地判斷移動(dòng)設(shè)備行為是“造成性能降級(jí)的”還是“良性的”。類似地,觀察器模塊可以被配置為使用該信息更好地識(shí)別需要監(jiān)視的特征,和/或確定用以監(jiān)視所選特征的粒度。
在各個(gè)方面中,觀察器和/或分析器模塊可以被配置為使用應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息結(jié)合操作系統(tǒng)執(zhí)行狀態(tài)信息,來選擇特定于應(yīng)用的精簡(jiǎn)分類器模型,其包括被關(guān)注數(shù)據(jù)模型,該被關(guān)注數(shù)據(jù)模型僅包括/測(cè)試與判斷該特定軟件應(yīng)用是“良性的”還是“非良性的”(例如,“惡意的”或“造成性能降級(jí)的”)最相關(guān)的特征/條目。
各個(gè)方面可以包括被配置為執(zhí)行行為分析操作以確定應(yīng)用或進(jìn)程的狀態(tài)(例如,運(yùn)行于前臺(tái)、執(zhí)行特定活動(dòng)、空閑、訪問聯(lián)系列表等等)的組件。
各個(gè)方面還可以包括被配置為使用行為分析操作的結(jié)果和猜測(cè)/預(yù)測(cè)技術(shù)來預(yù)測(cè)移動(dòng)設(shè)備的未來行為或各種應(yīng)用或進(jìn)程的未來狀態(tài)或活動(dòng)的組件。移動(dòng)設(shè)備可以使用該預(yù)測(cè)的未來行為/狀態(tài)/活動(dòng)信息來識(shí)別很有可能在未來使用的資源,并執(zhí)行各種動(dòng)作或操作來為所述未來行為/狀態(tài)/活動(dòng)做準(zhǔn)備。例如,在一個(gè)方面中,移動(dòng)設(shè)備可以包括調(diào)度器組件,其被配置為基于預(yù)測(cè)的未來狀態(tài)來調(diào)度進(jìn)程或任務(wù)以在該設(shè)備的處理核心中執(zhí)行,和/或執(zhí)行與所確定的未來執(zhí)行狀態(tài)一致的其他動(dòng)作或操作。
例如,移動(dòng)設(shè)備可以確定所觀察的活動(dòng)/狀態(tài)包括讀取聯(lián)系列表,并使用該信息來確定/預(yù)測(cè)未來的活動(dòng)/狀態(tài)可能包括“發(fā)送SMS消息”或“建立語音通信鏈路”。移動(dòng)設(shè)備于是可以將這些預(yù)測(cè)的未來活動(dòng)/狀態(tài)通知給其操作系統(tǒng)調(diào)度器。調(diào)度器可以使用該信息執(zhí)行與所確定的未來執(zhí)行活動(dòng)/狀態(tài)一致的動(dòng)作或操作。例如,調(diào)度器可以響應(yīng)于確定所預(yù)測(cè)的未來活動(dòng)是大處理器開銷的、重要的、或具有高優(yōu)先級(jí),而從運(yùn)行隊(duì)列中移除低優(yōu)先級(jí)進(jìn)程。
各個(gè)方面可以在多個(gè)不同移動(dòng)設(shè)備中實(shí)施,包括單處理器系統(tǒng)和多處理器系統(tǒng)以及片上系統(tǒng)(SOC)。圖1示出了可以在實(shí)施各個(gè)方面的計(jì)算設(shè)備中使用的示例性SOC 100架構(gòu)。SOC 100可以包括多個(gè)異構(gòu)處理器,諸如數(shù)字信號(hào)處理器(DSP)101、調(diào)制解調(diào)處理器104、圖形處理器106和應(yīng)用處理器108。SOC 100還可以包括一個(gè)或多個(gè)協(xié)處理器110(例如,矢量協(xié)處理器),其連接到所述異構(gòu)處理器101、104、106、108中的一個(gè)或多個(gè)。每個(gè)處理器101、104、106、108、110可以包括一個(gè)或多個(gè)核心,并且每個(gè)處理器/核心可以獨(dú)立于其他處理器/核心來執(zhí)行操作。例如,SOC 100可以包括執(zhí)行第一類操作系統(tǒng)(例如,F(xiàn)reeBSD、LINIX、OS X等等)的處理器,和執(zhí)行第二類操作系統(tǒng)(例如Microsoft Windows 8)的處理器。
SOC 100還可以包括模擬電路和定制電路114,用于管理傳感器數(shù)據(jù)、模數(shù)轉(zhuǎn)換、無線數(shù)據(jù)傳輸,以及用于執(zhí)行其他專用操作,諸如處理游戲和電影的編碼音頻信號(hào)。SOC 100還可以包括系統(tǒng)組件和資源116,諸如電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外設(shè)橋、數(shù)據(jù)控制器、存儲(chǔ)器控制器、系統(tǒng)控制器、存取端口、定時(shí)器和用于支持處理器和運(yùn)行在計(jì)算設(shè)備上的客戶機(jī)的其他類似組件。
系統(tǒng)組件/資源116和定制電路114可以包括用于與諸如相機(jī)、電子顯示屏、無線通信設(shè)備、外部存儲(chǔ)器芯片等等的外設(shè)對(duì)接的電路。處理器101、104、106、108可以經(jīng)由互連/總線模塊124互連到一個(gè)或多個(gè)存儲(chǔ)器元件112、系統(tǒng)組件以及資源116和定制電路114,互連/總線模塊124可以包括可重配置的邏輯門陣列和/或?qū)嵤┛偩€架構(gòu)(例如,CoreConnect、AMBA等等)。通信可以由諸如高性能片上網(wǎng)絡(luò)(NoC)之類的高級(jí)互連來提供。
SOC 100還可以包括用于與SOC外部的資源(諸如時(shí)鐘118和電壓調(diào)節(jié)器120)通信的輸入/輸出模塊(未圖示)。SOC外部的資源(例如,時(shí)鐘118和電壓調(diào)節(jié)器120)可以由兩個(gè)或更多個(gè)內(nèi)部SOC處理器/核心(例如,DSP 101、調(diào)制解調(diào)處理器104、圖形處理器106、應(yīng)用處理器108等等)共享。
SOC 100還可以包括適合于從傳感器收集傳感器數(shù)據(jù)的硬件和/或軟件組件,包括揚(yáng)聲器、用戶接口元件(例如輸入按鍵、觸摸顯示屏等等)、麥克風(fēng)陣列、用于監(jiān)視物理狀況(例如,位置、方向、運(yùn)動(dòng)、定向、振動(dòng)、壓力等等)的傳感器、相機(jī)、羅盤、GPS接收機(jī)、通信電路(例如,WLAN、WiFi等等),以及現(xiàn)代電子設(shè)備的其他已知組件(例如,加速計(jì)等等)。
除了在上述SOC 100中實(shí)施之外,各個(gè)方面可以在寬泛的多種計(jì)算系統(tǒng)中實(shí)施,所述計(jì)算系統(tǒng)可以包括單個(gè)處理器、多個(gè)處理器、多核心處理器或其任意組合。
圖2A圖示在一個(gè)方面的移動(dòng)設(shè)備102中的示例性邏輯組件和信息流,移動(dòng)設(shè)備102被配置為使用機(jī)器學(xué)習(xí)技術(shù)來確定移動(dòng)設(shè)備的軟件應(yīng)用的執(zhí)行狀態(tài),該執(zhí)行狀態(tài)獨(dú)立于可從操作系統(tǒng)或軟件應(yīng)用獲得的狀態(tài)信息。在圖2A中圖示的示例中,移動(dòng)設(shè)備102包括應(yīng)用觀察器模塊202、應(yīng)用行為提取器模塊204、應(yīng)用執(zhí)行狀態(tài)確定模塊206、功率管理模塊208、行為觀察器模塊222和行為分析器模塊224。在一個(gè)方面中,應(yīng)用執(zhí)行狀態(tài)確定模塊206可以包括狀態(tài)估計(jì)與預(yù)測(cè)模塊(未圖示)。
每個(gè)模塊202-224可以實(shí)施為軟件、硬件或其任意組合。在各個(gè)方面中,模塊202-224可以實(shí)施在操作系統(tǒng)的多個(gè)部分中(例如,在內(nèi)核中,在內(nèi)核空間中,在用戶空間中等等)、在分開的程序或應(yīng)用中、在專用硬件緩沖器或處理器中、或其任意組合。在一個(gè)方面中,模塊202-224中的一個(gè)或多個(gè)模塊可以實(shí)施為在移動(dòng)設(shè)備102的一個(gè)或多個(gè)處理器上執(zhí)行的軟件指令。
應(yīng)用觀察器模塊202可以被配置為監(jiān)視移動(dòng)設(shè)備的各種軟件和硬件組件,并收集與以下相關(guān)的信息:通信、事務(wù)、事件、或與軟件應(yīng)用的操作或任務(wù)的性能或軟件應(yīng)用在移動(dòng)設(shè)備處理核心上的執(zhí)行相關(guān)聯(lián)的被監(jiān)視組件的操作。在各個(gè)方面,應(yīng)用觀察器模塊202可以被配置為監(jiān)視行為觀察器模塊222所監(jiān)視的特征、行為或組件中的任意或全部,行為觀察器模塊222還在圖2B中圖示并在以下更為詳細(xì)地論述。應(yīng)用觀察器模塊202還可以被配置為針對(duì)移動(dòng)設(shè)備持續(xù)地監(jiān)視由于軟件應(yīng)用的操作所導(dǎo)致的移動(dòng)設(shè)備的配置和/或狀態(tài)的改變。應(yīng)用觀察器模塊202還可以監(jiān)視會(huì)影響移動(dòng)設(shè)備的性能或效率的配置和/或狀態(tài)改變。應(yīng)用觀察器模塊202可以將所收集的信息存儲(chǔ)在存儲(chǔ)器中(例如在日志文件等等中)和/或向應(yīng)用行為提取器模塊204發(fā)送(例如經(jīng)由存儲(chǔ)器寫入、函數(shù)調(diào)用等等)所產(chǎn)生的觀察數(shù)據(jù)。
應(yīng)用行為提取器模塊204可以被配置為基于應(yīng)用觀察器模塊202收集的觀察數(shù)據(jù)或信息來產(chǎn)生一個(gè)或多個(gè)行為矢量。該信息可以包括:操作狀態(tài)信息、事件信息(例如,表面觸摸、點(diǎn)擊、按鍵操作等等)、來自傳感器的指示活動(dòng)/非活動(dòng)的信息、CPU/GPU使用級(jí)別、電池消耗級(jí)別、標(biāo)識(shí)所實(shí)施的功能的信息、資源狀態(tài)信息、存儲(chǔ)器事務(wù)信息、通信事務(wù)信息、以及與在移動(dòng)設(shè)備中進(jìn)行的各種活動(dòng)和事件相關(guān)的其他類型的信息。在各個(gè)方面中,應(yīng)用行為提取器模塊204可以被配置為執(zhí)行可由行為分析器模塊224(以下進(jìn)一步詳細(xì)論述)執(zhí)行的操作中的任意或全部,以提取軟件應(yīng)用的行為。應(yīng)用行為提取器模塊204可以將所生成的行為矢量和/或所提取的行為信息發(fā)送給應(yīng)用執(zhí)行狀態(tài)確定模塊206以便進(jìn)一步分析。
應(yīng)用執(zhí)行狀態(tài)確定模塊206可以接收行為矢量并將其與一個(gè)或多個(gè)行為模塊進(jìn)行比較來確定軟件應(yīng)用的精確執(zhí)行狀態(tài)。在一個(gè)方面中,這些行為模塊可以是分類器模塊,所述分類器模塊包括適合于評(píng)估或識(shí)別特定軟件應(yīng)用所使用的移動(dòng)設(shè)備特征的多個(gè)測(cè)試條件。特定軟件應(yīng)用或特定軟件應(yīng)用類型所使用的特征可以通過監(jiān)視或評(píng)估如下來確定:移動(dòng)設(shè)備操作、移動(dòng)設(shè)備事件、數(shù)據(jù)網(wǎng)絡(luò)活動(dòng)、系統(tǒng)資源使用、移動(dòng)設(shè)備狀態(tài)、進(jìn)程間通信、驅(qū)動(dòng)器統(tǒng)計(jì)、硬件組件狀態(tài)、硬件計(jì)數(shù)器、軟件應(yīng)用的動(dòng)作或操作、軟件下載、設(shè)備或組件設(shè)置的改變、應(yīng)用級(jí)的狀況或事件、無線電級(jí)的狀況和事件、傳感器級(jí)的狀況和事件、定位硬件、個(gè)域網(wǎng)硬件、麥克風(fēng)硬件、揚(yáng)聲器硬件、相機(jī)硬件、屏幕硬件、通用串行總線硬件、同步硬件、定位硬件驅(qū)動(dòng)器、個(gè)域網(wǎng)硬件驅(qū)動(dòng)器、近場(chǎng)通信硬件驅(qū)動(dòng)器、麥克風(fēng)硬件驅(qū)動(dòng)器、揚(yáng)聲器硬件驅(qū)動(dòng)器、相機(jī)硬件驅(qū)動(dòng)器、陀螺儀硬件驅(qū)動(dòng)器、瀏覽器支持硬件驅(qū)動(dòng)器、電池硬件驅(qū)動(dòng)器、通用串行總線硬件驅(qū)動(dòng)器、存儲(chǔ)設(shè)備硬件驅(qū)動(dòng)器、用戶接口硬件驅(qū)動(dòng)器、同步硬件驅(qū)動(dòng)器、無線電接口硬件驅(qū)動(dòng)器、以及定位硬件、近場(chǎng)通信(NFC)硬件、屏幕硬件、瀏覽器支持硬件、存儲(chǔ)設(shè)備硬件、加速計(jì)硬件、同步硬件、雙SIM硬件、無線電接口硬件和與任何專用硬件無關(guān)或相關(guān)的特征。
在一個(gè)方面中,應(yīng)用執(zhí)行狀態(tài)確定模塊206可以被配置為對(duì)行為矢量應(yīng)用分類器模型,以推斷、估計(jì)、預(yù)測(cè)或確定軟件應(yīng)用的執(zhí)行狀態(tài),該執(zhí)行狀態(tài)與從操作系統(tǒng)或軟件應(yīng)用獲得的狀態(tài)信息無關(guān)。就是說,應(yīng)用執(zhí)行狀態(tài)確定模塊206可以產(chǎn)生應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息,該應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息與由操作系統(tǒng)或軟件應(yīng)用提供的狀態(tài)信息相比更為準(zhǔn)確、更為細(xì)節(jié)并且粒度更精細(xì)。應(yīng)用執(zhí)行狀態(tài)確定模塊206還可以生成包含與使用資源的持續(xù)時(shí)間或應(yīng)用請(qǐng)求資源的頻率相關(guān)的詳細(xì)統(tǒng)計(jì)的應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息。在各個(gè)方面中,應(yīng)用執(zhí)行狀態(tài)確定模塊206可以被配置為執(zhí)行可由行為分析器模塊224執(zhí)行的操作中的任意或全部,以確定軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)。
應(yīng)用執(zhí)行狀態(tài)確定模塊206可以被配置為將所確定的執(zhí)行狀態(tài)信息發(fā)送給行為觀察器模塊222、行為分析器模塊224和/或功率管理模塊208。
功率管理模塊208可以被配置為使用執(zhí)行狀態(tài)信息來選擇或?qū)嵤┕?jié)能方案,所述節(jié)能方案將各種資源和處理核心置于低功率狀態(tài)。在各個(gè)方面中,功率管理模塊208可以使用執(zhí)行狀態(tài)信息來識(shí)別應(yīng)用軟件的功耗或處理要求,并基于這些功耗或處理要求來判斷應(yīng)該對(duì)處理核心增加供電還是減少供電。功率管理模塊208還可以判斷應(yīng)該何時(shí)對(duì)處理核心增加功率以便實(shí)現(xiàn)移動(dòng)計(jì)算設(shè)備上的功耗與性能的最佳平衡。
行為觀察器模塊222可以被配置為使用執(zhí)行狀態(tài)信息來將其操作集中于監(jiān)視與對(duì)軟件應(yīng)用或移動(dòng)設(shè)備的行為進(jìn)行分類最相關(guān)的特征或狀況。類似地,行為分析器模塊224可以被配置為使用狀態(tài)信息將其操作集中于分析與判斷軟件應(yīng)用或移動(dòng)設(shè)備的行為是“惡意的”還是“良性的”最相關(guān)的特征或狀況。例如,行為觀察器模塊222和/或行為分析器模塊224可以使用應(yīng)用及操作系統(tǒng)不可知的執(zhí)行狀態(tài)信息結(jié)合操作系統(tǒng)執(zhí)行狀態(tài)信息來選擇特定于應(yīng)用的精簡(jiǎn)分類器模型,其識(shí)別應(yīng)該被監(jiān)視和/或分析以便判斷軟件應(yīng)用或移動(dòng)設(shè)備行為是“惡意的”還是“良性的”的移動(dòng)設(shè)備特征。以下將參考圖2B更為詳細(xì)地論述行為觀察器模塊222和行為分析器模塊224。
圖2B圖示在一個(gè)方面的移動(dòng)設(shè)備102中的示例性邏輯組件和信息流,移動(dòng)設(shè)備102被配置為判斷特定的移動(dòng)設(shè)備行為、軟件應(yīng)用或進(jìn)程是惡意的/造成性能降級(jí)的、可疑的還是良性的。在圖2B中圖示的示例中,移動(dòng)設(shè)備102包括行為觀察器模塊222、行為分析器模塊224、外部上下文信息模塊226、和致動(dòng)器模塊228。
每個(gè)模塊222-228可以實(shí)施為軟件、硬件或其任意組合。在各個(gè)方面中,模塊222-228可以實(shí)施在操作系統(tǒng)的多個(gè)部分中(例如,在內(nèi)核中,在內(nèi)核空間中,在用戶空間中等等)、在分開的程序或應(yīng)用中、在專用硬件緩沖器或處理器中、或其任意組合。在一個(gè)方面中,模塊222-228中的一個(gè)或多個(gè)模塊可以實(shí)施為在移動(dòng)設(shè)備102的一個(gè)或多個(gè)處理器上執(zhí)行的軟件指令。
行為觀察器模塊222可以被配置為在移動(dòng)設(shè)備的各個(gè)級(jí)別/模塊中裝配或協(xié)調(diào)應(yīng)用程序編碼接口(API),以及經(jīng)由所裝配的API監(jiān)視/觀察在一個(gè)時(shí)間段內(nèi)在各個(gè)級(jí)別/模塊上的移動(dòng)設(shè)備的操作和事件(例如,系統(tǒng)事件、狀態(tài)改變等等),收集與所觀察的操作/事件相關(guān)的信息,智能地對(duì)所收集的信息進(jìn)行過濾,基于過濾后的信息產(chǎn)生一個(gè)或多個(gè)觀察數(shù)據(jù),并將所生成的觀察數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中(例如,在日志文件等等中)和/或?qū)⑺傻挠^察數(shù)據(jù)發(fā)送(例如經(jīng)由存儲(chǔ)器寫入、函數(shù)調(diào)用等等)到行為分析器模塊224。
行為觀察器模塊222可以通過收集與如下相關(guān)的信息來監(jiān)視/觀察移動(dòng)設(shè)備的操作和事件:在應(yīng)用框架中的庫應(yīng)用程序編程接口(API)或運(yùn)行時(shí)(run-time)庫、系統(tǒng)調(diào)用API、文件系統(tǒng)和聯(lián)網(wǎng)子系統(tǒng)操作、設(shè)備(包括傳感器設(shè)備)狀態(tài)改變和其他類似事件。行為觀察器模塊222還可以監(jiān)視文件系統(tǒng)活動(dòng),其可以包括搜索文件名、文件訪問的類別(個(gè)人信息或普通數(shù)據(jù)文件),創(chuàng)建或刪除文件(例如,類型exe、zip等等),文件讀出/寫入/搜索操作、改變文件權(quán)限等等。
行為觀察器模塊222還可以監(jiān)視數(shù)據(jù)網(wǎng)絡(luò)活動(dòng),其可以包括連接類型、協(xié)議、端口號(hào)、設(shè)備連接的服務(wù)器/客戶機(jī)、連接數(shù)量、通信量或通信頻率等等。行為觀察器模塊222可以監(jiān)視電話網(wǎng)絡(luò)活動(dòng),其可以包括監(jiān)視所發(fā)出的、接收的或截獲的呼叫或消息(例如SMS等等)的類型和數(shù)量(例如,所設(shè)置的付費(fèi)通話的數(shù)量)。
行為觀察器模塊222還可以監(jiān)視系統(tǒng)資源使用,其可以包括監(jiān)視分叉(forks)的數(shù)量、存儲(chǔ)器訪問操作、文件打開的數(shù)量等等。行為觀察器模塊222可以監(jiān)視移動(dòng)設(shè)備的狀態(tài),其可以包括監(jiān)視各種因素,諸如顯示屏是開還是關(guān)、設(shè)備被鎖還是未被解鎖、剩余電池量、相機(jī)狀態(tài)等等。行為觀察器模塊222還可以通過例如監(jiān)視針對(duì)關(guān)鍵服務(wù)(瀏覽器、協(xié)議提供者(contract provider))的意圖、進(jìn)程間通信的級(jí)別、彈出窗口等等,來監(jiān)視進(jìn)程間通信(IPC)。
行為觀察器模塊222還可以監(jiān)視/觀察驅(qū)動(dòng)器統(tǒng)計(jì)和/或一個(gè)或多個(gè)硬件組件的狀態(tài),所述硬件組件可以包括相機(jī)、傳感器、電子顯示屏、WiFi通信組件、數(shù)據(jù)控制器、存儲(chǔ)器控制器、系統(tǒng)控制器、訪問端口、定時(shí)器、外設(shè)、無線通信組件、外部存儲(chǔ)器芯片、電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外設(shè)橋、和用于支持處理器和運(yùn)行在移動(dòng)計(jì)算設(shè)備上的客戶機(jī)的其他類似組件。
行為觀察器模塊222還可以監(jiān)視/觀察一個(gè)或多個(gè)硬件計(jì)數(shù)器,所述硬件計(jì)數(shù)器指示移動(dòng)計(jì)算設(shè)備和/或移動(dòng)設(shè)備子系統(tǒng)的狀態(tài)或情況。硬件計(jì)數(shù)器可以包括處理器/核心的專用寄存器,其被配置為存儲(chǔ)在移動(dòng)計(jì)算設(shè)備中發(fā)生的與硬件相關(guān)的活動(dòng)或事件的計(jì)數(shù)或狀態(tài)。
行為觀察器模塊222還可以監(jiān)視/觀察如下的動(dòng)作或操作:軟件應(yīng)用、從應(yīng)用下載服務(wù)器(例如,的應(yīng)用商店服務(wù)器)下載軟件、軟件應(yīng)用所使用的移動(dòng)設(shè)備信息、呼叫信息、文本消息發(fā)送信息(例如,SendSMS、BlockSMS、ReadSMS等等)、媒體消息發(fā)送信息(例如,ReceiveMMS),用戶賬戶信息、定位信息、相機(jī)信息、加速計(jì)信息、瀏覽器信息、基于瀏覽器的通信的內(nèi)容、基于語音的通信的內(nèi)容、短距無線電通信(例如,藍(lán)牙、WiFi等等),基于文本的通信的內(nèi)容、所記錄的音頻文件的內(nèi)容、電話號(hào)碼本或聯(lián)系信息、聯(lián)系列表等等。
行為觀察器模塊222可以監(jiān)視/觀察移動(dòng)設(shè)備的傳輸或通信,包括包含如下的通信:語音郵件(VoiceMailComm)、設(shè)備標(biāo)識(shí)符(DeviceIDComm)、用戶賬戶信息(UserAccountComm)、日歷信息(CalendarComm)、定位信息(LocationComm)、所記錄的音頻信息(RecordAudioComm)、加速計(jì)信息(AccelerometerComm)等等。
行為觀察器模塊222可以監(jiān)視/觀察對(duì)如下的使用以及更新/改變:羅盤信息、移動(dòng)設(shè)備設(shè)置、電池使用時(shí)間、陀螺儀信息、壓力傳感器、磁傳感器、屏幕活動(dòng)等等。行為觀察器模塊222可以監(jiān)視/觀察向軟件應(yīng)用發(fā)送和從軟件應(yīng)用發(fā)送的通知(AppNotifications),應(yīng)用更新等等。行為觀察器模塊222可以監(jiān)視/觀察與第一軟件應(yīng)用請(qǐng)求下載和/或安裝第二軟件應(yīng)用相關(guān)的狀況或事件。行為觀察器模塊222可以監(jiān)視/觀察與用戶驗(yàn)證(諸如密碼輸入等等)相關(guān)的狀況或事件。
行為觀察器模塊222可以被配置為在一個(gè)時(shí)間段內(nèi)監(jiān)視/觀察任何移動(dòng)設(shè)備行為。這些觀察可以針對(duì)一個(gè)設(shè)置的時(shí)間段,或是可累積的,諸如在連續(xù)的學(xué)習(xí)過程中。因此,移動(dòng)設(shè)備操作時(shí)間越長(zhǎng),則可以收集越多的行為觀察數(shù)據(jù)。
行為觀察器模塊222還可以監(jiān)視/觀察在移動(dòng)設(shè)備的多個(gè)級(jí)別上的狀況或事件,包括應(yīng)用級(jí)、無線電級(jí)和傳感器級(jí)。應(yīng)用級(jí)觀察可以包括:經(jīng)由面部識(shí)別軟件來觀察用戶、觀察社交流、觀察用戶輸入的筆記、觀察與PassBook/Google Wallet/Paypal/等等的使用相關(guān)的事件。應(yīng)用級(jí)觀察還可以包括觀察與虛擬專用網(wǎng)(VPN)的使用相關(guān)的事件,以及與同步、語音搜索、語音控制(例如,通過說出一個(gè)單詞來鎖定/解鎖電話)、語言翻譯器、計(jì)算數(shù)據(jù)的卸載、視頻流化、無用戶活動(dòng)的相機(jī)使用、無用戶活動(dòng)的麥克風(fēng)使用等等相關(guān)的事件。
無線電級(jí)觀察可以包括確定以下任一個(gè)或多個(gè)的存在、存有或數(shù)量:在建立無線電通信鏈路或發(fā)送信息之前與移動(dòng)設(shè)備的用戶交互、雙/多用戶標(biāo)識(shí)模塊(SIM)卡、互聯(lián)網(wǎng)無線電、移動(dòng)電話綁定、計(jì)算數(shù)據(jù)的卸載、設(shè)備狀態(tài)通信、作為游戲控制器或家用控制器的使用、車輛通信、移動(dòng)設(shè)備同步等等。無線電級(jí)觀察還可以包括監(jiān)視用于定位、對(duì)等(p2p)通信、同步、車輛與車輛的通信和/或機(jī)器與機(jī)器通信(m2m)的無線電(WiFi、WiMax、藍(lán)牙等等)的使用。無線電級(jí)觀察還可以包括監(jiān)視網(wǎng)絡(luò)業(yè)務(wù)使用、統(tǒng)計(jì)或簡(jiǎn)檔。
傳感器級(jí)觀察可以包括:監(jiān)視磁傳感器或其他傳感器以確定移動(dòng)設(shè)備的使用和/或外部環(huán)境。例如,移動(dòng)設(shè)備處理器可以被配置為判斷電話是在套中(例如,經(jīng)由被配置為感測(cè)套中的磁體的磁傳感器)還是在用戶口袋中(例如,經(jīng)由相機(jī)或光傳感器所檢測(cè)的光的量)。檢測(cè)到移動(dòng)設(shè)備在套中可以與識(shí)別可疑行為相關(guān),這是因?yàn)?,例如,?dāng)移動(dòng)設(shè)備在套中時(shí)發(fā)生的與用戶的有效使用相關(guān)的活動(dòng)和功能(例如,拍照或視頻、發(fā)消息、進(jìn)行語音通話、記錄聲音等等)是在移動(dòng)設(shè)備上執(zhí)行的惡意進(jìn)程的標(biāo)志(例如,用于跟蹤或監(jiān)視用戶)。
與使用或外部環(huán)境相關(guān)的傳感器級(jí)觀察的其他示例可以包括:檢測(cè)NFC信號(hào)傳送、從信用卡掃描器、條碼掃描器或移動(dòng)標(biāo)簽讀取器收集信息、檢測(cè)通用串行總線(USB)充電電源的存在、檢測(cè)鍵盤或輔助設(shè)備已經(jīng)耦合到移動(dòng)設(shè)備、檢測(cè)移動(dòng)設(shè)備已經(jīng)耦合到計(jì)算設(shè)備(例如,經(jīng)由USB等等)、確定LED、閃光燈、閃光信號(hào)燈、或光源是否已經(jīng)被修改或無效(例如,惡意地?zé)o效緊急信號(hào)傳送應(yīng)用等等)、檢測(cè)揚(yáng)聲器或麥克風(fēng)已經(jīng)打開或上電、檢測(cè)充電或功率事件、檢測(cè)移動(dòng)設(shè)備正在被用作游戲控制器等等。傳感器級(jí)觀察還可以包括:從醫(yī)學(xué)或醫(yī)療傳感器或通過掃描用戶身體來收集信息,從插入U(xiǎn)SB/音頻插孔的外部傳感器收集信息、從觸覺或觸感傳感器(例如經(jīng)由振動(dòng)器接口等等)收集信息,收集與移動(dòng)設(shè)備的熱狀態(tài)相關(guān)的信息,等等。
為了將被監(jiān)視的因素?cái)?shù)量減少到一個(gè)可管理的水平,在一個(gè)方面中,行為觀察器模塊222可以通過監(jiān)視/觀察行為或因素的初始集合來執(zhí)行粗糙觀察,所述行為或因素的初始集合是會(huì)造成移動(dòng)設(shè)備降級(jí)的全部因素的一個(gè)小子集。在一個(gè)方面中,行為觀察器模塊222可以從服務(wù)器模塊和/或云服務(wù)或網(wǎng)絡(luò)中的組件接收該行為和/或因素的初始集合。在一個(gè)方面中,該行為/因素的初始集合可以在分類器模型中指定。
每個(gè)分類器模型可以是包括可由移動(dòng)設(shè)備處理器用于評(píng)估移動(dòng)設(shè)備的行為的特定特征或方面的數(shù)據(jù)和/或信息結(jié)構(gòu)(例如,特征矢量、行為矢量、組件列表等等)的行為模型。每個(gè)分類器模型還可以包括針對(duì)監(jiān)視移動(dòng)設(shè)備中的多個(gè)特征、因素、數(shù)據(jù)點(diǎn)、條目、API、狀態(tài)、狀況、行為、應(yīng)用、進(jìn)程、操作、組件(統(tǒng)稱為“特征”)的決策標(biāo)準(zhǔn)。分類器模型可以預(yù)先安裝在移動(dòng)設(shè)備上,從網(wǎng)絡(luò)服務(wù)器下載或接收,在移動(dòng)設(shè)備中生成,或其任意組合。分類器模型可以通過使用眾包解決方案(crowd sourcing solution)、行為建模技術(shù)、機(jī)器學(xué)習(xí)算法等等來產(chǎn)生。
每個(gè)分類器模型可以被分類為完備分類器模型或精簡(jiǎn)分類器模型。完備分類器模型可以是一個(gè)魯棒的數(shù)據(jù)模塊,其根據(jù)大訓(xùn)練數(shù)據(jù)集產(chǎn)生,所述大訓(xùn)練數(shù)據(jù)集可以包括幾千個(gè)特征和數(shù)十億條目。精簡(jiǎn)分類器模型可以是一個(gè)更集中的數(shù)據(jù)模型,其從精簡(jiǎn)數(shù)據(jù)集產(chǎn)生,所述精簡(jiǎn)數(shù)據(jù)集僅包括/測(cè)試與判斷特定移動(dòng)設(shè)備行為是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)最相關(guān)的特征/條目。
本地產(chǎn)生的精簡(jiǎn)分類器模型是在移動(dòng)設(shè)備中產(chǎn)生的精簡(jiǎn)分類器模型。基于應(yīng)用的分類器模型可以是特定于應(yīng)用的分類器模型或特定于應(yīng)用類型的分類器模型。特定于應(yīng)用的分類器模型是包括這樣的集中數(shù)據(jù)模型的分類器模型:所述集中數(shù)據(jù)模型僅包括/測(cè)試與判斷特定軟件應(yīng)用是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)最相關(guān)的特征/條目。特定于應(yīng)用類型的分類器模型是包括這樣的集中數(shù)據(jù)模型的分類器模型:所述集中數(shù)據(jù)模型僅包括/測(cè)試與判斷特定類型的軟件應(yīng)用是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)最相關(guān)的特征/條目。特定于設(shè)備的分類器模型可以是包括這樣的集中數(shù)據(jù)模型的分類器模型:所述集中數(shù)據(jù)模型僅包括/測(cè)試被確定為與對(duì)特定移動(dòng)設(shè)備中的行為進(jìn)行分類最相關(guān)的特定于移動(dòng)設(shè)備的特征/條目。特定于設(shè)備類型的分類器模型可以是包括這樣的集中數(shù)據(jù)模型的分類器模型:所述集中數(shù)據(jù)模型僅包括/測(cè)試與對(duì)特定類型(例如,相同的制造商、型號(hào)、配置等等)的移動(dòng)設(shè)備中的行為進(jìn)行分類最相關(guān)的特征/條目。
在一個(gè)方面中,行為分析器模塊224可以從行為觀察器模塊222接收觀察數(shù)據(jù),將接收的信息(即觀察數(shù)據(jù))與從外部上下文信息模塊226接收的上下文信息進(jìn)行比較,并將分類器模型應(yīng)用于接收的信息以識(shí)別與造成(或可能造成)設(shè)備隨時(shí)間降級(jí)或以其他方式造成設(shè)備上的問題的所接收觀察數(shù)據(jù)相關(guān)聯(lián)的子系統(tǒng)、進(jìn)程和/或應(yīng)用。
在一個(gè)方面中,行為分析器模塊224可以包括用于以下的智能:使用有限的信息集合(即,粗糙的觀察數(shù)據(jù))來識(shí)別正在造成(或可能造成)設(shè)備隨時(shí)間降級(jí)或以其他方式造成設(shè)備上的問題的行為、進(jìn)程或程序。例如,行為分析器模塊224可以被配置為分析從各個(gè)模塊(例如,行為觀察器模塊222、外部上下文信息模塊226等等)收集的信息(例如,采用觀察數(shù)據(jù)的形式),學(xué)習(xí)移動(dòng)設(shè)備的正常操作行為,并基于比較的結(jié)果產(chǎn)生一個(gè)或多個(gè)行為矢量。行為分析器模塊224還可以對(duì)分類器模塊應(yīng)用行為矢量來判斷特定的移動(dòng)設(shè)備行為、軟件應(yīng)用或進(jìn)程是否是造成性能降級(jí)的/惡意的、良性的、或可疑的。
當(dāng)行為分析器模塊224確定行為、軟件應(yīng)用或進(jìn)程是“惡意的”或“造成性能降級(jí)的”時(shí),行為分析器模塊224可以通知致動(dòng)器模塊228,致動(dòng)器模塊228可以執(zhí)行各種動(dòng)作或操作來糾正被判定為“惡意的”或“造成性能降級(jí)的”的移動(dòng)設(shè)備行為,和/或執(zhí)行操作來恢復(fù)、解決、隔離或以其他方式修復(fù)所識(shí)別的問題。
當(dāng)行為分析器模塊224確定行為、軟件應(yīng)用或進(jìn)程是可疑的時(shí),行為分析器模塊224可以通知行為觀察器模塊222,行為觀察器模塊222可以基于從行為分析器模塊224接收的信息(例如,實(shí)時(shí)分析操作的結(jié)果)調(diào)節(jié)其觀察粒度(即,對(duì)移動(dòng)設(shè)備行為進(jìn)行觀察的細(xì)節(jié)等級(jí))和/或改變被觀察的行為,產(chǎn)生或收集新的或額外的行為信息,并將該新的/額外的信息發(fā)送給行為分析器模塊224以便進(jìn)行進(jìn)一步分析/分類。在行為觀察器模塊222與行為分析器模塊224之間的這種反饋通信使得移動(dòng)設(shè)備102能夠遞歸地增加觀察粒度(即,進(jìn)行越來越精細(xì)或細(xì)節(jié)的觀察)或改變被觀察的特征/行為,直到識(shí)別出可疑的或造成性能降級(jí)的移動(dòng)設(shè)備行為的源頭為止、直到達(dá)到了處理或電池消耗閾值為止、或直到移動(dòng)設(shè)備處理器確定無法通過觀察粒度的進(jìn)一步增加識(shí)別可疑的或造成性能降級(jí)的移動(dòng)設(shè)備行為的源頭為止。這種反饋通信還使得移動(dòng)設(shè)備12能夠在移動(dòng)設(shè)備中本地調(diào)節(jié)或修改分類器模型,而不會(huì)消耗移動(dòng)設(shè)備大量的處理、存儲(chǔ)器或電量資源。
在一個(gè)方面中,行為觀察器模塊222和行為分析器模塊224可以分別地或一起來提供對(duì)計(jì)算系統(tǒng)的行為的實(shí)時(shí)行為分析,以便從有限且粗糙的觀察數(shù)據(jù)中識(shí)別可疑的行為,動(dòng)態(tài)地確定要進(jìn)行更細(xì)節(jié)觀察的行為,以及動(dòng)態(tài)地確定觀察所需的細(xì)節(jié)級(jí)別。以這種方式,行為觀察器模塊222使得移動(dòng)計(jì)算設(shè)備102能夠高效地識(shí)別并避免在移動(dòng)計(jì)算設(shè)備上發(fā)生的問題,而不會(huì)需要設(shè)備上的大量處理器、存儲(chǔ)器或電池資源。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為通過以下來分析移動(dòng)設(shè)備行為:識(shí)別需要密切監(jiān)視的關(guān)鍵數(shù)據(jù)資源,識(shí)別與關(guān)鍵數(shù)據(jù)資源相關(guān)聯(lián)的中間資源,監(jiān)視軟件應(yīng)用在訪問關(guān)鍵數(shù)據(jù)資源和中間資源時(shí)做出的API調(diào)用,識(shí)別由API調(diào)用所消耗或產(chǎn)生的移動(dòng)設(shè)備資源,識(shí)別軟件應(yīng)用的指示惡意活動(dòng)的API調(diào)用模式,基于所識(shí)別的API調(diào)用模式和所識(shí)別的移動(dòng)設(shè)備資源生成輕量級(jí)(light-weight)行為簽名,使用輕量級(jí)行為簽名執(zhí)行行為分析操作,并基于行為分析操作來判斷軟件應(yīng)用是惡意的還是良性的。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為通過以下來分析移動(dòng)設(shè)備行為:識(shí)別在移動(dòng)設(shè)備上執(zhí)行的軟件應(yīng)用使用最頻繁的API,在移動(dòng)設(shè)備的存儲(chǔ)器中的API日志中存儲(chǔ)關(guān)于所識(shí)別的熱門API的使用的信息,以及基于存儲(chǔ)在API日志中的信息來執(zhí)行行為分析操作以識(shí)別與正常操作模式不一致的移動(dòng)設(shè)備行為。在一個(gè)方面中,可以生成API日志,使得所述API日志被組織為:將在API調(diào)用間保持相同的通用字段的值存儲(chǔ)在與特定于每次API調(diào)用的特定字段的值分開的表格中。還可以生成API日志,使得特定字段的值存儲(chǔ)在表格中,并且哈希值存儲(chǔ)在存儲(chǔ)有所述通用字段的值的所述分開的表格中。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為通過以下來分析移動(dòng)設(shè)備行為:接收包括有限狀態(tài)機(jī)的完備分類器模型,所述有限狀態(tài)機(jī)適合于轉(zhuǎn)換或表示為多個(gè)Boosted決策樁(boosted decision stumps),基于完備分類器生成移動(dòng)設(shè)備中的精簡(jiǎn)分類器模型,并使用移動(dòng)設(shè)備中的精簡(jiǎn)分類器模型來將移動(dòng)設(shè)備的行為分類為良性的或非良性的(例如,惡意的,造成性能降級(jí)的,等等)。在一個(gè)方面中,基于完備分類器模型生成精簡(jiǎn)分類器模型可以包括:確定在不會(huì)消耗移動(dòng)設(shè)備大量的處理、存儲(chǔ)器或電量資源的情況下應(yīng)該被評(píng)估以對(duì)移動(dòng)設(shè)備行為進(jìn)行分類的唯一性測(cè)試條件的數(shù)量;通過以下來生成測(cè)量條件列表:順序地遍歷Boosted決策樁列表,并且將與每一個(gè)順序遍歷的Boosted決策樁相關(guān)聯(lián)的測(cè)試條件插入測(cè)試條件列表中,直到測(cè)試條件列表可以包括所確定數(shù)量的唯一性測(cè)試條件為止;以及,生成精簡(jiǎn)分類器模型以僅包含那些用于測(cè)試在所生成的測(cè)試條件列表中包含的多個(gè)測(cè)試條件之一的Boosted決策樁。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為使用移動(dòng)設(shè)備的特定于設(shè)備的信息(例如,能力和狀態(tài)信息),在多個(gè)測(cè)試條件中識(shí)別與對(duì)移動(dòng)設(shè)備的行為進(jìn)行分類相關(guān)的特定于移動(dòng)設(shè)備的測(cè)試條件,生成僅包括所識(shí)別的特定于移動(dòng)設(shè)備的測(cè)試條件的精簡(jiǎn)分類器模型,并使用在移動(dòng)設(shè)備中的所生成的精簡(jiǎn)分類器模型來對(duì)移動(dòng)設(shè)備的行為進(jìn)行分類。在一個(gè)方面中,可以生成精簡(jiǎn)分類器模型以僅包括用于評(píng)估與移動(dòng)設(shè)備的當(dāng)前操作狀態(tài)或配置相關(guān)的移動(dòng)設(shè)備特征的決策節(jié)點(diǎn)。在另一個(gè)方面中,生成精簡(jiǎn)分類器模型可以包括:確定在不會(huì)消耗移動(dòng)設(shè)備大量資源(例如,處理、存儲(chǔ)器或電量資源)的情況下應(yīng)該被評(píng)估以對(duì)行為進(jìn)行分類的唯一性測(cè)試條件的數(shù)量;通過以下來生成測(cè)量條件列表:在完備分類器模型中順序地遍歷所述多個(gè)測(cè)試條件;將那些與對(duì)移動(dòng)設(shè)備的行為進(jìn)行分類相關(guān)的測(cè)試條件插入測(cè)試條件列表中,直到測(cè)試條件列表包括所確定數(shù)量的唯一性測(cè)試條件為止;以及,生成精簡(jiǎn)分類器模型以包含在完備分類器模型中包括的、測(cè)試在所生成的測(cè)試條件列表中包括的條件之一的決策節(jié)點(diǎn)。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為通過以下來識(shí)別與移動(dòng)設(shè)備的正常操作模式不一致的移動(dòng)設(shè)備行為:監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng),確定軟件應(yīng)用/進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài),并且基于在活動(dòng)被監(jiān)視期間軟件應(yīng)用或進(jìn)程的活動(dòng)和/或操作系統(tǒng)執(zhí)行狀態(tài)來判斷所述活動(dòng)是否是良性的。在另一個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以判斷應(yīng)用軟件或進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài)是否與所述活動(dòng)相關(guān),生成陰影特征值,所述陰影特征值識(shí)別活動(dòng)被監(jiān)視期間軟件應(yīng)用或進(jìn)程的操作系統(tǒng)執(zhí)行狀態(tài),生成將所述活動(dòng)與識(shí)別所述操作系統(tǒng)執(zhí)行狀態(tài)的所述陰影特征值相關(guān)聯(lián)的行為矢量,以及使用所述行為矢量來判斷所述活動(dòng)是否是良性的、可疑的、或非良性的(例如,惡意的或造成性能降級(jí)的)。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為通過以下來識(shí)別與移動(dòng)設(shè)備的正常操作模式不一致的移動(dòng)設(shè)備行為:監(jiān)視軟件應(yīng)用或進(jìn)程的活動(dòng),確定軟件應(yīng)用/進(jìn)程的應(yīng)用及操作系統(tǒng)不可知執(zhí)行狀態(tài),并基于活動(dòng)被監(jiān)視期間軟件應(yīng)用的活動(dòng)和/或應(yīng)用及操作系統(tǒng)不可知執(zhí)行狀態(tài)來判斷所述活動(dòng)是否是良性的。在另一個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以判斷軟件應(yīng)用的應(yīng)用及操作系統(tǒng)不可知執(zhí)行狀態(tài)是否與所述活動(dòng)相關(guān),并生成將所述活動(dòng)與所述應(yīng)用及操作系統(tǒng)不可知執(zhí)行狀態(tài)相關(guān)聯(lián)的行為矢量,并使用所述行為矢量來判斷所述活動(dòng)是否是良性的、可疑的、或非良性的(例如,惡意的或造成性能降級(jí)的)。移動(dòng)設(shè)備還可以使用所述應(yīng)用及操作系統(tǒng)不可知執(zhí)行狀態(tài)來選擇分類器模型(例如,特定于應(yīng)用的分類器模型),并將所述行為矢量應(yīng)用于所選擇的分類器模型以判斷移動(dòng)設(shè)備行為是否與移動(dòng)設(shè)備的正常操作模式不一致。
在各個(gè)方面中,移動(dòng)設(shè)備102可以被配置為與網(wǎng)絡(luò)服務(wù)器結(jié)合工作,以智能地且高效地識(shí)別與判斷移動(dòng)設(shè)備行為是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)最相關(guān)的特征、因素和數(shù)據(jù)點(diǎn)。例如,移動(dòng)設(shè)備102可以被配置為從網(wǎng)絡(luò)服務(wù)器接收完備分類器,并使用所接收的完備分類器模型來生成特定于移動(dòng)設(shè)備的特征和功能或移動(dòng)設(shè)備的軟件應(yīng)用的精簡(jiǎn)分類器模型(即,數(shù)據(jù)/行為模型)。
在一個(gè)方面中,移動(dòng)設(shè)備102可以被配置為使用完備分類器模型來生成各種復(fù)雜度(或“精簡(jiǎn)度”)級(jí)別的精簡(jiǎn)分類器模型的家族。可以例行地應(yīng)用精簡(jiǎn)分類器模型的最精簡(jiǎn)家族(即,基于最少數(shù)量測(cè)量條件的精簡(jiǎn)分類器模型),直到遇到了該模型不能分類為“良性的”或“惡意的”的行為(并且由此被該模型分類為“可疑的”),此時(shí),可以應(yīng)用更為魯棒(即較為不精簡(jiǎn))的精簡(jiǎn)分類器模型以便嘗試將該行為分類為“良性的”或“惡意的”。可以應(yīng)用在所生成的精簡(jiǎn)分類器模型的家族中更進(jìn)一步魯棒的精簡(jiǎn)分類器模型,直到實(shí)現(xiàn)了對(duì)該行為的決定性分類為止。采用這種方式,觀察器和/或分析器模塊可以通過將最完備但資源使用量大的精簡(jiǎn)分類器模型的使用限制于那些需要魯棒的分類器模型來對(duì)行為進(jìn)行決定性分類的情況,來實(shí)現(xiàn)效率與準(zhǔn)確性之間的平衡。
在各個(gè)方面中,移動(dòng)設(shè)備102可以被配置為通過如下來生成一個(gè)或多個(gè)精簡(jiǎn)分類器模型:將有限狀態(tài)機(jī)表現(xiàn)/表示轉(zhuǎn)換為Boosted決策樁,基于特定于移動(dòng)設(shè)備的狀態(tài)、特征、行為、狀況或配置對(duì)Boosted決策樁的完備集合進(jìn)行修剪(pruning)或剔除(culling)以包括在完備分類器模型中包含的Boosted決策樁的一個(gè)或多個(gè)子集,并使用所述Boosted決策樁的一個(gè)或多個(gè)子集來智能地監(jiān)視、分析和/或分類移動(dòng)設(shè)備行為。
Boosted決策樁是一級(jí)決策樹,其僅具有一個(gè)節(jié)點(diǎn)(并由此僅具有一個(gè)測(cè)試問題或測(cè)試條件)和權(quán)重值,并且因此非常適合用于數(shù)據(jù)/行為的二值分類。就是說,將行為矢量應(yīng)用于Boosted決策樁得到了二值結(jié)果(例如,“是”或“否”)。例如,如果Boosted決策樁所測(cè)試的問題/條件是“短消息服務(wù)(SMS)傳輸?shù)念l率是否小于每分鐘x次”,將值“3”應(yīng)用于Boosted決策樁會(huì)得到“是”回答(對(duì)于“少于3個(gè)”SMS傳輸)或“否”回答(對(duì)于“3個(gè)或更多個(gè)”SMS傳輸)。
Boosted決策樁是高效的,因?yàn)槠浞浅:?jiǎn)單且基礎(chǔ)(并且因此不需要大量的處理資源)。Boosted決策樁還是非常并行化的,并且由此可以并行地/在相同時(shí)間應(yīng)用或測(cè)試多個(gè)樁(例如,通過移動(dòng)設(shè)備中的多個(gè)核心或處理器)。
在一個(gè)方面中,移動(dòng)設(shè)備102可以被配置為生成這樣的精簡(jiǎn)分類器模型:該精簡(jiǎn)分類器模型包括在完備分類器模型中包含的分類器標(biāo)準(zhǔn)的子集并且僅包括對(duì)應(yīng)于與移動(dòng)設(shè)備配置、功能和所連接的/所包含的硬件相關(guān)的特征的那些分類器標(biāo)準(zhǔn)。移動(dòng)設(shè)備102可以使用該一個(gè)(或多個(gè))精簡(jiǎn)分類器模型來僅監(jiān)視存在于該設(shè)備或與該設(shè)備相關(guān)的那些特征和功能。從而,移動(dòng)設(shè)備可以周期性地基于移動(dòng)設(shè)備的當(dāng)前狀態(tài)和配置來修改或重新生成該一個(gè)(或多個(gè))精簡(jiǎn)分類器模型,以包括或刪除各種特征和對(duì)應(yīng)的分類器標(biāo)準(zhǔn)。
例如,行為分析器模塊222可以被配置為接收具有與行為模型(例如分類器)的完備特征集合相關(guān)聯(lián)的決策樁的較大的Boosted決策樁分類器模型,并且行為分析器模塊224可以通過以下從該較大的分類器模型中導(dǎo)出一個(gè)或多個(gè)精簡(jiǎn)分類器模型:從該一個(gè)(或多個(gè))較大的分類器模型中僅選擇與移動(dòng)設(shè)備的當(dāng)前配置、功能、操作狀態(tài)和/或所連接的/所包含的硬件相關(guān)的特征,并在精簡(jiǎn)分類器模型中包含與所選擇的特征對(duì)應(yīng)的Boosted決策樁的子集。在該方面中,對(duì)應(yīng)于與移動(dòng)設(shè)備相關(guān)的特征的分類器標(biāo)準(zhǔn)可以是在該較大分類器模型中所包括的測(cè)試所選擇的特征中至少一個(gè)特征的那些Boosted決策樁。從而,行為分析器模塊224可以周期性地基于移動(dòng)設(shè)備的當(dāng)前狀態(tài)和配置來修改或重新生成該一個(gè)(或多個(gè))Boosted決策樁精簡(jiǎn)分類器模型以包括或刪除各種特征,從而使得精簡(jiǎn)分類器模型持續(xù)地包括特定于應(yīng)用或特定于設(shè)備的特征的Boosted決策樁。
另外,移動(dòng)設(shè)備102還可以動(dòng)態(tài)地生成這樣的特定于應(yīng)用和/或特定于應(yīng)用類型的分類器模型:所述特定于應(yīng)用和/或特定于應(yīng)用類型的分類器模型識(shí)別與特定軟件應(yīng)用(wallet)和/或特定軟件應(yīng)用類型(例如,游戲、導(dǎo)航、金融、新聞、生產(chǎn)等等)相關(guān)的狀況或特征。在一個(gè)方面中,可以生成這些基于應(yīng)用的分類器模型(即,特定于應(yīng)用和特定于應(yīng)用類型的分類器模型)以包含在所接收的完備分類器模型中所包括的決策節(jié)點(diǎn)的精簡(jiǎn)且更為集中的子集或從所接收的完備分類器模型生成的精簡(jiǎn)分類器模型中所包括的決策節(jié)點(diǎn)的精簡(jiǎn)且更為集中的子集。
在各個(gè)方面中,移動(dòng)設(shè)備102可以被配置為:為系統(tǒng)中的每個(gè)軟件應(yīng)用和/或系統(tǒng)中的每個(gè)軟件應(yīng)用類型生成特定于應(yīng)用的分類器模型。移動(dòng)設(shè)備102還可以被配置為:動(dòng)態(tài)地識(shí)別具有被濫用的高風(fēng)險(xiǎn)或容易被濫用的軟件應(yīng)用和/或應(yīng)用類型(例如,金融應(yīng)用、銷售點(diǎn)應(yīng)用、生物傳感器應(yīng)用等等),并僅為被識(shí)別為具有被濫用的高風(fēng)險(xiǎn)或容易被濫用的軟件應(yīng)用和/或應(yīng)用類型生成基于應(yīng)用的分類器模型。在各個(gè)方面中,移動(dòng)設(shè)備102可以被配置為:動(dòng)態(tài)地、反應(yīng)性地、前攝地和/或每次安裝或更新新的應(yīng)用時(shí)生成基于應(yīng)用的分類器模型。
在一個(gè)方面中,移動(dòng)設(shè)備102可以被配置為并行地使用或應(yīng)用多個(gè)分類器模型。在各個(gè)方面中,移動(dòng)設(shè)備102可以被配置為:在評(píng)估一個(gè)特定軟件應(yīng)用時(shí),相對(duì)于通過將更為一般性且在本地生成的精簡(jiǎn)分類器模型應(yīng)用于行為/特征矢量產(chǎn)生的結(jié)果,給予通過將基于應(yīng)用的分類器模型應(yīng)用于該相同的或不同的行為/特征矢量生成的結(jié)果優(yōu)選性或優(yōu)先級(jí)。在各個(gè)方面中,移動(dòng)設(shè)備102可以使用應(yīng)用分類器模型的結(jié)果來預(yù)測(cè)軟件應(yīng)用、進(jìn)程、或復(fù)雜移動(dòng)設(shè)備行為是良性的還是造成移動(dòng)設(shè)備的性能或功耗特性的降級(jí)的。
如上所述的,每個(gè)軟件應(yīng)用通常在移動(dòng)設(shè)備上執(zhí)行多個(gè)任務(wù)或活動(dòng),并且在移動(dòng)設(shè)備中執(zhí)行特定任務(wù)/活動(dòng)時(shí)的特定執(zhí)行狀態(tài)可以是關(guān)于移動(dòng)設(shè)備行為是否應(yīng)該進(jìn)行額外或更密切的監(jiān)督、監(jiān)視和/或分析的一個(gè)有力表征。由此,在各個(gè)方面中,移動(dòng)設(shè)備102的處理器可以由處理器可執(zhí)行指令配置為:使用用于識(shí)別執(zhí)行特定任務(wù)/活動(dòng)時(shí)的實(shí)際執(zhí)行狀態(tài)的信息來集中其監(jiān)視與分析操作,并更好地判斷移動(dòng)設(shè)備行為是良性的、可疑的還是惡意的/造成性能降級(jí)的。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為將由軟件應(yīng)用執(zhí)行的活動(dòng)/任務(wù)與這些活動(dòng)/任務(wù)被執(zhí)行時(shí)的執(zhí)行狀態(tài)相關(guān)聯(lián)。例如,觀察器模塊可以被配置為生成行為矢量,其將通過監(jiān)視所裝配的組件而收集的行為信息包含在子矢量或數(shù)據(jù)結(jié)構(gòu)中,所述子矢量或數(shù)據(jù)結(jié)構(gòu)列出了與該執(zhí)行狀態(tài)相關(guān)的軟件的特征、活動(dòng)或操作(例如,位置訪問、SMS讀取操作、傳感器訪問等等)。在一個(gè)方面中,該子矢量/數(shù)據(jù)結(jié)構(gòu)可以與陰影特征值子矢量/數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)地存儲(chǔ),所述陰影特征值子矢量/數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)在每個(gè)特征/活動(dòng)/操作被觀察時(shí)的執(zhí)行狀態(tài)。例如,觀察器模塊可以生成包括“l(fā)ocation_background(位置_后臺(tái))”數(shù)據(jù)字段的行為矢量,該數(shù)據(jù)字段的值標(biāo)識(shí)當(dāng)軟件應(yīng)用在后臺(tái)狀態(tài)中操作時(shí),軟件應(yīng)用訪問位置信息的次數(shù)或速率。這允許分析器模塊以與移動(dòng)設(shè)備的其他被觀察行為無關(guān)的和/或并行的方式來分析該執(zhí)行狀態(tài)信息。以這種方式生成行為矢量還允許系統(tǒng)隨時(shí)間而積累信息(例如,頻率或速率)。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為生成行為矢量來包括被觀察行為的簡(jiǎn)約定義。行為矢量可以在值或矢量數(shù)據(jù)結(jié)構(gòu)中(例如,以數(shù)字串的形式等等)簡(jiǎn)潔地表述移動(dòng)設(shè)備、軟件應(yīng)用或進(jìn)程的被觀察行為。行為矢量還可以用作使得移動(dòng)設(shè)備能夠快速地分辨、識(shí)別和/或分析移動(dòng)設(shè)備行為的標(biāo)識(shí)符。在各個(gè)方面中,觀察器和/或分析器模塊可以被配置為生成行為矢量以包括數(shù)字序列,其每個(gè)數(shù)字表示移動(dòng)設(shè)備的一個(gè)特征或行為。例如,在行為矢量中包含的數(shù)字可以表示移動(dòng)設(shè)備的相機(jī)是否處于使用中(例如,按照0或1),已經(jīng)從移動(dòng)設(shè)備發(fā)送或生成了多少網(wǎng)絡(luò)業(yè)務(wù)(例如,20KB/秒,等等),已經(jīng)傳輸了多少互聯(lián)網(wǎng)消息(例如,SMS消息的數(shù)量等等),等等。
在各個(gè)方面中,行為觀察器模塊222和/或行為分析器模塊224可以被配置為生成行為矢量以包括執(zhí)行信息。所述執(zhí)行信息可以被包括在行為矢量中作為行為的一部分(例如,后臺(tái)進(jìn)程在3秒內(nèi)使用了5次相機(jī),前臺(tái)進(jìn)程在3秒內(nèi)使用了3次相機(jī)等等)或獨(dú)立特征的一部分。在一個(gè)方面中,所述執(zhí)行狀態(tài)信息可以被包括在行為矢量中作為陰影特征值子矢量或數(shù)據(jù)結(jié)構(gòu)。在一個(gè)方面中,所述行為矢量可以與涉及所述執(zhí)行狀態(tài)的特征、活動(dòng)、任務(wù)相關(guān)聯(lián)地存儲(chǔ)陰影特征值子矢量/數(shù)據(jù)結(jié)構(gòu)。
圖3A-E圖示了可由移動(dòng)設(shè)備102的處理核心執(zhí)行來確定并使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)以改善移動(dòng)設(shè)備102的性能和功耗特性的多個(gè)方面的方法。
圖3A圖示了用于確定并使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來判斷該軟件應(yīng)用是“惡意的”還是“良性的”的方面的方法300。方法300可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。
在方框302中,移動(dòng)設(shè)備的處理器可以監(jiān)視移動(dòng)設(shè)備的軟件應(yīng)用在移動(dòng)設(shè)備的各個(gè)軟件和硬件組件中的活動(dòng)。在方框304中,移動(dòng)設(shè)備處理器可以基于由各個(gè)軟件和硬件組件收集的執(zhí)行、事件和/或行為信息來生成行為矢量。在方框306中,移動(dòng)設(shè)備處理器可以對(duì)行為矢量應(yīng)用決策規(guī)則和機(jī)器學(xué)習(xí)算法(例如,分類器模型),以確定軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)。在方框308中,移動(dòng)設(shè)備處理器可以基于對(duì)行為矢量應(yīng)用決策規(guī)則和機(jī)器學(xué)習(xí)算法(例如,分類器模型)的結(jié)果,來確定軟件應(yīng)用的操作系統(tǒng)執(zhí)行狀態(tài)。在方框310中,移動(dòng)設(shè)備處理器可以將所述操作系統(tǒng)執(zhí)行狀態(tài)與所確定的實(shí)際執(zhí)行狀態(tài)進(jìn)行比較來識(shí)別在實(shí)際執(zhí)行狀態(tài)與所報(bào)告的執(zhí)行狀態(tài)之間的差異。
在判斷框312中,移動(dòng)設(shè)備處理器可以判斷在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間是否存在任何差異。響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間存在差異(即,判斷框312=“是”),移動(dòng)設(shè)備處理器可以在方框314中將該軟件應(yīng)用分類為“惡意的”。作出該判定的原因在于,與操作系統(tǒng)所知的執(zhí)行狀態(tài)不同的執(zhí)行狀態(tài)表示該應(yīng)用正在進(jìn)行的行為不尋?;蚺c操作系統(tǒng)不一致。
響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間不存在差異(即,判斷框312=“否”),移動(dòng)設(shè)備處理器可以在方框316中使用該軟件應(yīng)用的操作系統(tǒng)執(zhí)行狀態(tài)來選擇適當(dāng)?shù)姆诸惼髂P鸵杂糜诒O(jiān)視移動(dòng)設(shè)備行為。因此,如果執(zhí)行狀態(tài)與操作系統(tǒng)所知的狀態(tài)一致,則可以使用該執(zhí)行狀態(tài)來選擇特定于狀態(tài)的分類器模型以便由觀察器和分析器模塊用于監(jiān)視執(zhí)行該應(yīng)用的移動(dòng)設(shè)備的行為。在方框318中,移動(dòng)設(shè)備處理器可以使用所選擇的分類器模型來確定應(yīng)該被觀察器模塊222監(jiān)視和/或被分析器模塊224分析來判斷軟件應(yīng)用是“惡意的”還是“良性的”的移動(dòng)設(shè)備特征。
圖3B圖示了用于確定并使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來實(shí)施高效節(jié)能方案的方面的方法320。方法320可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。在方框302-312中,移動(dòng)設(shè)備處理器可以執(zhí)行與以上參考圖3A的類似編號(hào)的方框所描述的操作相同或類似的操作。就是說,在方框302中,移動(dòng)設(shè)備處理器可以監(jiān)視移動(dòng)設(shè)備的軟件應(yīng)用在移動(dòng)設(shè)備的各個(gè)軟件和硬件組件中的活動(dòng)。在方框304中,移動(dòng)設(shè)備處理器可以基于由各個(gè)軟件和硬件組件收集的執(zhí)行、事件和/或行為信息來生成行為矢量。在方框306中,移動(dòng)設(shè)備處理器可以對(duì)行為矢量應(yīng)用決策規(guī)則和機(jī)器學(xué)習(xí)算法(例如,分類器模型),以確定軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)。在方框308中,移動(dòng)設(shè)備處理器可以確定軟件應(yīng)用的操作系統(tǒng)執(zhí)行狀態(tài)。在方框310中,移動(dòng)設(shè)備處理器可以將所述操作系統(tǒng)執(zhí)行狀態(tài)與所確定的實(shí)際執(zhí)行狀態(tài)進(jìn)行比較來識(shí)別在實(shí)際執(zhí)行狀態(tài)與所報(bào)告的執(zhí)行狀態(tài)之間的差異。在判斷框312中,移動(dòng)設(shè)備處理器可以判斷在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間是否存在任何差異。
響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間存在差異(即,判斷框312=“是”),移動(dòng)設(shè)備處理器可以在方框334中使用實(shí)際執(zhí)行狀態(tài)信息來確定或選擇節(jié)能方案。例如,移動(dòng)設(shè)備處理器可以使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來識(shí)別該應(yīng)用的實(shí)際功耗或處理要求,確定應(yīng)該對(duì)處理核心增加供電還是減少供電來滿足這些要求,確定應(yīng)該對(duì)處理核心增加供電或減少供電的時(shí)間,以便平衡移動(dòng)設(shè)備的功耗與性能特性,并基于該信息選擇節(jié)能方案。
響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間不存在差異(即,判斷框312=“否”),移動(dòng)設(shè)備處理器可以在方框336中使用該軟件應(yīng)用的操作系統(tǒng)執(zhí)行狀態(tài)來確定并選擇節(jié)能方案??商鎿Q地,在方框336中,移動(dòng)設(shè)備處理器可以使用本領(lǐng)域公知的任何常規(guī)解決方案來識(shí)別并選擇節(jié)能方案。在方框338中,移動(dòng)設(shè)備處理器可以使用所選擇的節(jié)能方案來實(shí)施更為高效的節(jié)能方案。實(shí)施節(jié)能方案可以包括:基于所計(jì)算的實(shí)際執(zhí)行狀態(tài)將一個(gè)或多個(gè)處理器和設(shè)備資源置于低功率狀態(tài)。實(shí)施節(jié)能方案可以包括:監(jiān)視處理器的操作頻率來確定其當(dāng)前操作頻率,基于所計(jì)算的實(shí)際執(zhí)行狀態(tài)來計(jì)算處理器的所預(yù)測(cè)的操作頻率值,并基于所預(yù)測(cè)的操作頻率來更新(即增加或降低)處理器頻率。
圖3C圖示了用于確定并使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來改善復(fù)雜行為監(jiān)視與分析系統(tǒng)的準(zhǔn)確性和性能的方面的方法340。方法340可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。在方框302-312中,移動(dòng)設(shè)備處理器可以執(zhí)行與以上參考圖3A的類似編號(hào)的方框所描述的操作相同或類似的操作。
在方框354中,響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間存在差異(即,判斷框352=“是”),移動(dòng)設(shè)備處理器可以使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)信息來選擇分類器模型,所述分類器模型集中在與分析軟件應(yīng)用最相關(guān)的特征或與移動(dòng)設(shè)備中軟件應(yīng)用的執(zhí)行相關(guān)的軟件設(shè)備行為上。在方框358中,移動(dòng)設(shè)備處理器可以使用所選擇的分類器模型來確定應(yīng)該被監(jiān)視和/或分析以判斷軟件應(yīng)用是“惡意的”還是“良性的”的移動(dòng)設(shè)備特征。可替換地,在方框354和358中,移動(dòng)設(shè)備處理器可以監(jiān)視軟件應(yīng)用的活動(dòng),并基于活動(dòng)被監(jiān)視期間軟件應(yīng)用的活動(dòng)和實(shí)際執(zhí)行狀態(tài)來判斷活動(dòng)是“惡意的”還是“良性的”。
響應(yīng)于判定在操作系統(tǒng)執(zhí)行狀態(tài)與所計(jì)算的實(shí)際執(zhí)行狀態(tài)之間不存在差異(即,判斷框322=“否”),移動(dòng)設(shè)備處理器可以使用常規(guī)解決方案或操作系統(tǒng)執(zhí)行狀態(tài)來選擇分類器模型。在方框358中,移動(dòng)設(shè)備處理器可以使用所選擇的分類器模型來確定應(yīng)該被監(jiān)視和/或分析以判斷軟件應(yīng)用是“惡意的”還是“良性的”的移動(dòng)設(shè)備特征。
圖3D圖示了用于確定并使用實(shí)際執(zhí)行狀態(tài)來改善復(fù)雜行為監(jiān)視與分析系統(tǒng)的準(zhǔn)確性和性能和/或?qū)嵤└咝Ч?jié)能方案的方面的方法360。方法360可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。在方框302-306中,移動(dòng)設(shè)備處理器可以執(zhí)行與以上參考圖3A的類似編號(hào)的方框所描述的操作相同或類似的操作。在方框368中,移動(dòng)設(shè)備處理器可以使用實(shí)際執(zhí)行狀態(tài)信息來確定或選擇節(jié)能方案。在方框370中,移動(dòng)設(shè)備處理器可以實(shí)施所選擇的節(jié)能方案來實(shí)施節(jié)能方案。
在方框372中,移動(dòng)設(shè)備處理器可以使用軟件應(yīng)用的實(shí)際執(zhí)行狀態(tài)來選擇分類器模型,所述分類器模型集中在與分析軟件應(yīng)用最相關(guān)的特征或與移動(dòng)設(shè)備中軟件應(yīng)用的執(zhí)行相關(guān)的軟件設(shè)備行為上。在方框374中,移動(dòng)設(shè)備處理器可以使用所選擇的分類器模型來確定應(yīng)該被監(jiān)視和/或分析以判斷軟件應(yīng)用是“惡意的”還是“良性的”的移動(dòng)設(shè)備特征。
圖3E圖示了用于確定并使用實(shí)際執(zhí)行狀態(tài)來確定、預(yù)測(cè)、預(yù)見未來執(zhí)行狀態(tài)的方面的方法380,所述未來執(zhí)行狀態(tài)可以用于改善計(jì)算設(shè)備的性能。方法380可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。在方框302-306中,移動(dòng)設(shè)備處理器可以執(zhí)行與以上參考圖3A的類似編號(hào)的方框所描述的操作相同或類似的操作。
在方框382中,移動(dòng)設(shè)備處理器可以基于所確定的實(shí)際執(zhí)行狀態(tài),使用實(shí)際執(zhí)行狀態(tài)信息來確定或預(yù)測(cè)未來活動(dòng)或執(zhí)行狀態(tài)。在一個(gè)方面中,這可以通過對(duì)行為矢量應(yīng)用分類器模型來實(shí)現(xiàn)。在方框384中,移動(dòng)設(shè)備處理器可以采取與所確定的未來執(zhí)行狀態(tài)一致的動(dòng)作。例如,移動(dòng)設(shè)備處理器可以執(zhí)行操作以向移動(dòng)設(shè)備的操作系統(tǒng)調(diào)度器通知所預(yù)測(cè)的未來狀態(tài)。作為響應(yīng),調(diào)度器可以執(zhí)行該所確定的未來執(zhí)行活動(dòng)/狀態(tài)一致的動(dòng)作或操作,諸如從執(zhí)行或運(yùn)行隊(duì)列中移除低優(yōu)先級(jí)進(jìn)程。
圖4圖示了用于智能地生成行為矢量的方面的方法400,所述行為矢量適合用于高效地判斷移動(dòng)設(shè)備行為是否與正常操作模式不一致,而不會(huì)消耗移動(dòng)設(shè)備大量的處理、存儲(chǔ)器或電池資源。方法400可以由移動(dòng)設(shè)備102的處理核心執(zhí)行。
在方框402中,移動(dòng)設(shè)備處理器可以監(jiān)視在移動(dòng)設(shè)備上執(zhí)行的軟件應(yīng)用的活動(dòng)。在判斷框404中,處理核心可以判斷該活動(dòng)的執(zhí)行期間軟件應(yīng)用的執(zhí)行狀態(tài)是否有關(guān)于判斷任何移動(dòng)設(shè)備行為、軟件應(yīng)用、進(jìn)程、任務(wù)、活動(dòng)等等是否是惡意的或與移動(dòng)設(shè)備的正常操作模式不一致。在一個(gè)方面中,這可以通過訪問執(zhí)行狀態(tài)關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),所述執(zhí)行狀態(tài)關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)包括與執(zhí)行狀態(tài)相關(guān)的全部的各種行為、軟件應(yīng)用、活動(dòng)和/或任務(wù)。
響應(yīng)于判定該活動(dòng)的執(zhí)行期間軟件應(yīng)用的執(zhí)行狀態(tài)是不相關(guān)的(即,判斷框404=“否”),在方框406中,處理核心可以生成不包括執(zhí)行狀態(tài)信息的行為矢量。在方框408中,處理核心可以在不考慮該活動(dòng)發(fā)生時(shí)的執(zhí)行狀態(tài)的情況下,基于通過對(duì)組件進(jìn)行觀察/監(jiān)視而收集的行為信息來判斷該活動(dòng)是惡意的還是良性的。
響應(yīng)于判定該活動(dòng)的執(zhí)行期間軟件應(yīng)用的執(zhí)行狀態(tài)是與所監(jiān)視的活動(dòng)相關(guān)的(即,判斷框404=“是”),在方框412中,處理核心可以生成陰影特征值,所述陰影特征值識(shí)別活動(dòng)被監(jiān)視期間軟件應(yīng)用的執(zhí)行狀態(tài)。在方框414中,處理核心可以生成將被監(jiān)視的活動(dòng)與識(shí)別執(zhí)行狀態(tài)的陰影特征值相關(guān)聯(lián)的行為矢量。在方框416中,處理核心可以基于與活動(dòng)相關(guān)聯(lián)的執(zhí)行狀態(tài)來判斷該活動(dòng)是惡意的還是良性的。
如上所述地,特定任務(wù)/活動(dòng)固有地需要操作系統(tǒng)或軟件應(yīng)用處于支持或兼容這些任務(wù)/活動(dòng)的執(zhí)行狀態(tài)中。例如,相機(jī)的使用、激活麥克風(fēng)來錄制音頻、發(fā)送SMS消息和收集加速計(jì)數(shù)據(jù)都是需要與移動(dòng)設(shè)備的某種形式的用戶交互的任務(wù)/活動(dòng),并且由此這些活動(dòng)通常必須在前臺(tái)執(zhí)行,或者在支持與移動(dòng)設(shè)備的用戶交互的執(zhí)行狀態(tài)中執(zhí)行。
作為另一示例,在操作系統(tǒng)或軟件應(yīng)用處于特定執(zhí)行狀態(tài)中時(shí)特定任務(wù)/活動(dòng)在移動(dòng)設(shè)備中被執(zhí)行的頻率可以是關(guān)于與該活動(dòng)相關(guān)的移動(dòng)設(shè)備行為應(yīng)該進(jìn)行額外或更為密切的監(jiān)督、監(jiān)視和/或分析的一個(gè)有力表征。就是說,諸如對(duì)傳感器數(shù)據(jù)(例如,加速計(jì)、陀螺儀、羅盤、壓力傳感器等等)進(jìn)行采樣、對(duì)位置數(shù)據(jù)進(jìn)行采樣、執(zhí)行WiFi掃描等等的活動(dòng),可以在相關(guān)軟件應(yīng)用運(yùn)行在前臺(tái)中時(shí)頻繁地執(zhí)行,作為正?;蛄夹缘囊苿?dòng)設(shè)備行為/操作的一部分,但是,當(dāng)相關(guān)軟件應(yīng)用運(yùn)行在后臺(tái)中時(shí)不應(yīng)被以相同的頻率執(zhí)行。例如,當(dāng)應(yīng)用處于后臺(tái)中時(shí)頻繁地采樣傳感器信息可以表示傳感器信息正在被惡意應(yīng)用濫用,而在應(yīng)用處于前臺(tái)中時(shí)以相同的頻率對(duì)相同的傳感器信息采樣則可以是良性的移動(dòng)設(shè)備行為的一部分。類似地,在應(yīng)用處于后臺(tái)狀態(tài)中時(shí)頻繁的WiFi掃描可以表示對(duì)位置API的調(diào)用正在被惡意軟件應(yīng)用繞開或者WiFi系統(tǒng)正在被不正確地使用和/或正在造成移動(dòng)設(shè)備的性能和功耗特性的降級(jí)。
在一個(gè)方面中,移動(dòng)設(shè)備處理器可以被配置為通過從在移動(dòng)設(shè)備的存儲(chǔ)器中所存儲(chǔ)的執(zhí)行狀態(tài)關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)(例如,列表、表、圖等等)中讀出信息,來識(shí)別需要操作系統(tǒng)或軟件應(yīng)用處于支持或兼容這些任務(wù)/活動(dòng)的執(zhí)行狀態(tài)中的任務(wù)/活動(dòng)。在一個(gè)方面中,移動(dòng)設(shè)備處理器可以被處理器可執(zhí)行指令配置為,基于歷史信息(例如,從先前執(zhí)行、先前對(duì)行為模型的應(yīng)用中收集的歷史信息,等等)、新信息、機(jī)器學(xué)習(xí)、上下文建模、以及在可用信息、移動(dòng)設(shè)備狀態(tài)、環(huán)境狀況、網(wǎng)絡(luò)狀況、移動(dòng)設(shè)備性能、電池消耗水平等等中所檢測(cè)到的改變,來智能地在執(zhí)行狀態(tài)關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)中添加或刪除條目、特征和執(zhí)行狀態(tài)。
圖5示出了在實(shí)施一個(gè)方面的觀察器系統(tǒng)服務(wù)的計(jì)算系統(tǒng)500中的邏輯組件和信息流。在圖5所示的示例中,計(jì)算系統(tǒng)500包括在用戶空間中的行為檢測(cè)器模塊502、數(shù)據(jù)庫引擎模塊504以及行為分析器模塊224,以及在內(nèi)核空間520中的環(huán)形緩沖器514、濾波器規(guī)則模塊516、節(jié)流(throttling)規(guī)則模塊518和安全緩沖器。計(jì)算系統(tǒng)500還可以包括觀察器系統(tǒng)服務(wù),其包括在用戶空間中的行為檢測(cè)器模塊502和數(shù)據(jù)庫引擎504,以及在內(nèi)核空間中的安全緩沖器管理器506、規(guī)則管理器508和系統(tǒng)健康監(jiān)視器510。
各個(gè)方面可以在移動(dòng)設(shè)備上提供跨層觀察,涵蓋了webkit、SDK、NDK、內(nèi)核、驅(qū)動(dòng)器和硬件,以便表征系統(tǒng)行為。行為觀察可以實(shí)時(shí)地進(jìn)行。
圖6圖示了根據(jù)一個(gè)方面的用于執(zhí)行動(dòng)態(tài)且自適應(yīng)的觀察的示例性方法600。在方框602中,移動(dòng)設(shè)備處理器可以通過監(jiān)視/觀察會(huì)造成移動(dòng)設(shè)備降級(jí)的大量因素/行為的子集,來執(zhí)行粗糙觀察。在方框603中,移動(dòng)設(shè)備處理器可以基于所述粗糙觀察生成表征所述粗糙觀察和/或移動(dòng)設(shè)備行為的行為矢量。在方框604中,移動(dòng)設(shè)備處理器可以識(shí)別可能潛在地造成移動(dòng)設(shè)備降級(jí)的與所述粗糙觀察相關(guān)聯(lián)的子系統(tǒng)、進(jìn)程和/或應(yīng)用。例如,這可以通過將從多個(gè)來源接收的信息與從移動(dòng)設(shè)備的傳感器接收的上下文信息進(jìn)行比較來實(shí)現(xiàn)。在方框606中,移動(dòng)設(shè)備處理器可以基于所述粗糙觀察來執(zhí)行行為分析操作。在一個(gè)方面中,作為方框603和604的一部分,移動(dòng)設(shè)備處理器可以執(zhí)行如上所述的一個(gè)或多個(gè)操作。
在判斷框608中,移動(dòng)設(shè)備處理器可以判斷是否能夠基于行為分析的結(jié)果識(shí)別并糾正可疑的行為或潛在的問題。當(dāng)移動(dòng)設(shè)備處理器判定能夠基于行為分析的結(jié)果識(shí)別并糾正可疑的行為或潛在的問題時(shí)(即,判斷框608=“是”),在方框618中,處理器可以初始化一進(jìn)程來糾正該行為,并返回方框602以執(zhí)行額外的粗糙觀察。
響應(yīng)于判定不能基于行為分析的結(jié)果識(shí)別和/或糾正可疑的行為或潛在的問題(即,判斷框608=“否”),在判斷框609中,移動(dòng)設(shè)備處理器可以判斷是否具有存在問題的可能性。在一個(gè)方面中,移動(dòng)設(shè)備處理器可以通過如下來確定具有存在問題的可能性:計(jì)算移動(dòng)設(shè)備遇到潛在問題和/或參與可疑行為的概率,并判斷所計(jì)算的概率是否大于預(yù)定閾值。當(dāng)移動(dòng)設(shè)備處理器判定所計(jì)算的概率不大于預(yù)定閾值和/或沒有可疑行為或潛在問題存在和/或可檢測(cè)的可能性時(shí)(即,判斷框609=“否”),處理器可以返回方框602來執(zhí)行額外的粗糙觀察。
響應(yīng)于判定具有可疑行為或潛在問題存在和/或可檢測(cè)的可能性時(shí)(即,判斷框609=“是”),在方框610中,移動(dòng)設(shè)備處理器可以對(duì)所識(shí)別的子系統(tǒng)、進(jìn)程或應(yīng)用執(zhí)行更深的日志記錄/觀察或最終日志記錄。在方框612中,移動(dòng)設(shè)備處理器可以對(duì)所識(shí)別的子系統(tǒng)、進(jìn)程或應(yīng)用執(zhí)行更深且更細(xì)致的觀察。在方框614中,移動(dòng)設(shè)備處理器可以基于該更深且更細(xì)致的觀察,來執(zhí)行進(jìn)一步和/或更深的行為分析。在判斷框608中,移動(dòng)設(shè)備處理器可以再一次判斷是否能夠基于該更深的行為分析的結(jié)果識(shí)別并校正可疑的行為或潛在問題。響應(yīng)于判定不能基于該更深的行為分析的結(jié)果識(shí)別并校正可疑的行為或潛在問題(即,判斷框608=“否”),處理器可以重復(fù)方框610-614中的操作,直到細(xì)節(jié)級(jí)別足夠細(xì)致以至于能夠識(shí)別問題,或直到確定該問題不能使用額外的細(xì)節(jié)來識(shí)別或不存在問題。
響應(yīng)于判定能夠基于該更深的行為分析的結(jié)果識(shí)別并校正可疑的行為或潛在的問題(即,判斷框608=“是”),在方框618中,移動(dòng)設(shè)備處理器可以執(zhí)行操作以校正問題/行為,并且處理器可以返回方框602以執(zhí)行額外操作。
在一個(gè)方面中,作為方法600的方框602-618的一部分,移動(dòng)設(shè)備處理器可以執(zhí)行系統(tǒng)行為的實(shí)時(shí)行為分析,以從有限且粗糙的觀察中識(shí)別可疑的行為,動(dòng)態(tài)地確定需要以更多細(xì)節(jié)來觀察的行為,并且動(dòng)態(tài)地確定觀察所需要的準(zhǔn)確細(xì)節(jié)等級(jí)。這使得移動(dòng)設(shè)備處理器能夠高效地識(shí)別問題并避免問題發(fā)生,而不需要使用設(shè)備上大量的處理器、存儲(chǔ)器或電池資源。
當(dāng)前,存在各種解決方案用于對(duì)在計(jì)算設(shè)備上執(zhí)行的應(yīng)用程序的行為進(jìn)行建模,并且這些解決方案可以與機(jī)器學(xué)習(xí)技術(shù)一起使用來判斷軟件應(yīng)用是惡意的還是良性的。然而,這些技術(shù)方案并不適合用于移動(dòng)計(jì)算設(shè)備,因?yàn)樗鼈冃枰u(píng)估非常大量的行為信息,不動(dòng)態(tài)地產(chǎn)生行為模型,不應(yīng)對(duì)移動(dòng)計(jì)算設(shè)備的能力和狀態(tài),不智能地對(duì)行為模型中的特征進(jìn)行優(yōu)先級(jí)排序,受限于評(píng)估單個(gè)應(yīng)用程序或進(jìn)程,和/或需要在移動(dòng)計(jì)算設(shè)備上執(zhí)行大計(jì)算量的進(jìn)程。由此,這些現(xiàn)有解決方案在移動(dòng)計(jì)算設(shè)備中的實(shí)施、實(shí)現(xiàn)或執(zhí)行會(huì)對(duì)移動(dòng)計(jì)算設(shè)備的響應(yīng)、性能或功耗特性造成巨大的負(fù)面和/或用戶可察覺的影響。
例如,計(jì)算設(shè)備可以被配置為使用現(xiàn)有的基于機(jī)器學(xué)習(xí)的解決方案來訪問并使用大量訓(xùn)練數(shù)據(jù),推導(dǎo)出以特征矢量為輸入的模型,并使用該模型來判斷計(jì)算設(shè)備的軟件應(yīng)用是惡意的還是良性的。然而,這種解決方案不能生成用于采用可用來生成精簡(jiǎn)分類器模型的格式或信息結(jié)構(gòu)(例如有限狀態(tài)機(jī)等等)描述大量行為信息的完備分類器模型(即,魯棒的數(shù)據(jù)或行為模型)。另外,該解決方案不從移動(dòng)計(jì)算設(shè)備接收描述該設(shè)備的能力、功能、特征、配置、當(dāng)前狀態(tài)、設(shè)置和/或參數(shù)的識(shí)別信息。至少由于這些原因,這種解決方案并不允許服務(wù)器和/或移動(dòng)計(jì)算設(shè)備快速且高效地生成用于包括、測(cè)試或應(yīng)對(duì)移動(dòng)計(jì)算設(shè)備的能力和操作狀態(tài)的分類器模型。另外,該解決解決方案并不允許服務(wù)器或移動(dòng)計(jì)算設(shè)備生成用于以下的精簡(jiǎn)分類器模型:根據(jù)特征與要使用所述模型的特定移動(dòng)計(jì)算設(shè)備中的特定行為進(jìn)行分類的相關(guān)性,來智能地識(shí)別這些特征或?qū)ζ溥M(jìn)行優(yōu)先級(jí)排序。由于這些原因及其其他原因,該解決方案不能用于快速且高效地識(shí)別、分析或分類復(fù)雜的移動(dòng)計(jì)算設(shè)備行為而不會(huì)對(duì)移動(dòng)計(jì)算設(shè)備的響應(yīng)、性能或功耗特性造成巨大的負(fù)面或用戶可察覺的影響。
除了現(xiàn)有解決方案的上述局限之外,很多行為建模解決方案實(shí)施“一個(gè)尺寸匹配全部(one-size-fits-all)”的方法來對(duì)計(jì)算設(shè)備的行為進(jìn)行建模,并且因此并不適用于移動(dòng)設(shè)備。就是說,這些解決方案通常產(chǎn)生行為模型以使得所述行為模型是一般性的并可以用于很多計(jì)算設(shè)備和/或各種不同硬件和軟件配置。這樣,這些一般性行為模型經(jīng)常包括/測(cè)試非常大數(shù)量的特征,這些特征很多是與(并且不能用于)對(duì)其實(shí)際被使用的特定計(jì)算設(shè)備中的行為進(jìn)行識(shí)別、分析或分類無關(guān)的。另外,這些解決方案并不基于特征與使用該模型的特定移動(dòng)設(shè)備中的特定行為進(jìn)行分類的相關(guān)性來為所述特征分配相對(duì)優(yōu)先級(jí)。因此,這些解決方案通常需要計(jì)算設(shè)備應(yīng)用包括大量未組織的、不適當(dāng)優(yōu)先級(jí)劃分的或無關(guān)的特征的行為模型。這些模型不適用于資源受限的移動(dòng)設(shè)備,因?yàn)檫@些模型會(huì)造成移動(dòng)設(shè)備處理器分析大量的對(duì)于識(shí)別造成移動(dòng)設(shè)備隨時(shí)間降級(jí)的原因或源頭而言無用的特征。由此,這些現(xiàn)有解決方案并不適應(yīng)于復(fù)雜但資源受限的移動(dòng)設(shè)備。
現(xiàn)代移動(dòng)設(shè)備是高可配置性且復(fù)雜的系統(tǒng)。由此,對(duì)于判斷特定移動(dòng)設(shè)備行為是“良性的”還是“非良性的”(例如,惡意的或造成性能降級(jí)的)而言最重要的特征在各個(gè)移動(dòng)設(shè)備中可能會(huì)是不同的。此外,可能會(huì)需要在每個(gè)移動(dòng)設(shè)備中監(jiān)視和/或分析不同的特征組合,以便該移動(dòng)設(shè)備快速且高效地判斷特定行為是良性的還是非良性的。然后,需要進(jìn)行監(jiān)視和分析的準(zhǔn)確特征組合以及每個(gè)特征或特征組合的相對(duì)優(yōu)先級(jí)或重要性,經(jīng)常僅能夠使用從要對(duì)行為進(jìn)行監(jiān)視或分析的特定移動(dòng)設(shè)備獲得的特定于設(shè)備的信息來確定。由于這些原因以及其他原因,在使用行為模型的特定設(shè)備之外的其他任何計(jì)算設(shè)備中生成的行為模型不能包括用于識(shí)別對(duì)于在該設(shè)備中的行為進(jìn)行分類而言最重要的準(zhǔn)確特征組合的信息。
例如,如果第一移動(dòng)設(shè)備被配置為使用其生理傳感器(例如,指紋讀取器、語音識(shí)別子系統(tǒng)、視網(wǎng)膜掃描器等等)來授權(quán)金融事務(wù),則用于測(cè)試與所述生物傳感器的訪問和使用相關(guān)的條件的特征,有可能有關(guān)于判斷在該移動(dòng)設(shè)備中所觀察到的訪問金融軟件的行為是惡意的還是良性的。例如,在第一移動(dòng)設(shè)備中的生物傳感器的訪問和使用可以表示惡意應(yīng)用正在在用戶不知道或未同意的情況下授權(quán)金融事務(wù)。另一方面,在未被配置為使用其生物傳感器來授權(quán)金融事務(wù)的第二移動(dòng)設(shè)備中,用于測(cè)試與這些傳感器的訪問和使用相關(guān)的條件的特征,不可能有關(guān)于判斷所觀察到的訪問金融軟件的行為是惡意的還是良性的。就是說,由于第一和第二設(shè)備除了它們對(duì)其生物傳感器的使用的配置之外的所有方面(即,相同的類型、型號(hào)、操作系統(tǒng)、軟件等等)都相同,對(duì)于生成用于準(zhǔn)確地識(shí)別用來評(píng)估與這兩個(gè)設(shè)備的生物傳感器的訪問和使用相關(guān)的條件的特征的一般性行為模型而言,將會(huì)存在問題。更大的問題是,生成用于在幾十萬(或幾百萬)具有類似配件但具有獨(dú)立可配置性的移動(dòng)設(shè)備上測(cè)試更為復(fù)雜的條件或特征的一般性模型。
各個(gè)方面可以通過如下來克服這些局限性:配置網(wǎng)絡(luò)服務(wù)器和移動(dòng)設(shè)備來彼此結(jié)合地工作以高效地識(shí)別、分類、建模、避免和/或糾正經(jīng)常造成移動(dòng)設(shè)備的性能和/或功率使用級(jí)別隨時(shí)間降級(jí)的條件和/或移動(dòng)設(shè)備行為。網(wǎng)絡(luò)服務(wù)器可以被配置為從中央數(shù)據(jù)庫(例如,“云”)接收關(guān)于各種條件、特征、行為、可糾正動(dòng)作的信息,并使用該信息生成完備分類器模型(即,數(shù)據(jù)或行為模型),所述完備分類器模型采用能夠由移動(dòng)設(shè)備快速地轉(zhuǎn)換為一個(gè)或多個(gè)精簡(jiǎn)分類器模型的格式或結(jié)構(gòu)(例如,有限狀態(tài)機(jī))描述了大量行為信息。在一個(gè)方面中,該完備分類器模型可以是所述大量行為信息的有限狀態(tài)機(jī)描述或表示。在一個(gè)方面中,有限狀態(tài)機(jī)可以包括適合于被表示為多個(gè)節(jié)點(diǎn)、Boosted決策樹或決策樁的信息,這些節(jié)點(diǎn)、Boosted決策樹或決策樁中的每一個(gè)測(cè)試一個(gè)或多個(gè)特征。例如,有限狀態(tài)機(jī)可以是可被表示為Boosted決策樁家族的信息結(jié)構(gòu),所述Boosted決策樁家族共同地識(shí)別、描述、測(cè)試或評(píng)估與判斷移動(dòng)設(shè)備行為是良性的還是正在造成移動(dòng)設(shè)備的性能隨時(shí)間降級(jí)相關(guān)的特征和數(shù)據(jù)點(diǎn)中的全部或多個(gè)。網(wǎng)絡(luò)服務(wù)器隨后可以將該完備分類器模型(即,包括有限狀態(tài)機(jī)和/或Boosted決策樁家族等等的信息結(jié)構(gòu))發(fā)送給移動(dòng)設(shè)備。
在各個(gè)方面中,移動(dòng)設(shè)備處理器可以被處理器可執(zhí)行指令配置為,接收并使用完備分類器模型來生成特定于設(shè)備和/或特定于設(shè)備狀態(tài)的精簡(jiǎn)分類器模型或具有可變復(fù)雜度(或“精簡(jiǎn)性”)級(jí)別的精簡(jiǎn)分類器模型的家族。為了實(shí)現(xiàn)該目的,移動(dòng)設(shè)備處理器可以對(duì)從網(wǎng)絡(luò)服務(wù)器接收的完備分類器模型中包括的魯棒的Boosted決策樹家族(本文中為“完備Boosted決策樹分類器模型”)進(jìn)行修剪或剔除,以生成包括精簡(jiǎn)數(shù)量的Boosted決策樹和/或用于評(píng)估有限數(shù)量的測(cè)試條件或特征的精簡(jiǎn)分類器模型。移動(dòng)設(shè)備處理器隨后可以使用該在本地生成的特定于設(shè)備和/或特定于設(shè)備狀態(tài)的分類器模型來執(zhí)行實(shí)時(shí)行為監(jiān)視與分析操作,并識(shí)別不期望的或造成性能降級(jí)的移動(dòng)設(shè)備行為的來源或原因。
通過生成完備分類器模型且該完備分類器模型將大量行為信息描述或表示為能夠被修改、剔除、擴(kuò)展或以其他方式用于生成精簡(jiǎn)分類器模型的有限狀態(tài)機(jī)、決策節(jié)點(diǎn)、決策樹或其他類似信息結(jié)構(gòu),各個(gè)方面允許移動(dòng)設(shè)備快速地且高效地生成精簡(jiǎn)分類器模型而不需要訪問訓(xùn)練數(shù)據(jù)或者與網(wǎng)絡(luò)服務(wù)器、中央數(shù)據(jù)庫或云網(wǎng)絡(luò)/服務(wù)器進(jìn)行進(jìn)一步通信。這顯著地降低了移動(dòng)設(shè)備對(duì)網(wǎng)絡(luò)的依賴性,并改善了移動(dòng)設(shè)備的性能和功耗特性。
此外,通過在移動(dòng)設(shè)備中本地生成精簡(jiǎn)分類器模型來應(yīng)對(duì)特定于應(yīng)用或設(shè)備的特征,各個(gè)方面允許移動(dòng)設(shè)備將其監(jiān)視操作集中在對(duì)于識(shí)別不期望的或造成性能降級(jí)的移動(dòng)設(shè)備行為的來源或原因而言最重要的特征或因素。這允許移動(dòng)設(shè)備識(shí)別并響應(yīng)不期望的或造成性能降級(jí)的移動(dòng)設(shè)備行為,而不會(huì)對(duì)移動(dòng)計(jì)算設(shè)備的響應(yīng)、性能或功耗特性造成巨大的負(fù)面或用戶可察覺的改變。
另外,通過使移動(dòng)設(shè)備配有狀態(tài)估計(jì)與預(yù)測(cè)模塊(即,圖2A圖示的應(yīng)用執(zhí)行狀態(tài)確定模塊208)且該狀態(tài)估計(jì)與預(yù)測(cè)模塊被配置為對(duì)其從移動(dòng)設(shè)備的各個(gè)軟件和硬件組件接收的信息應(yīng)用決策規(guī)則和機(jī)器學(xué)習(xí)算法來推測(cè)、估計(jì)、預(yù)測(cè)或確定軟件應(yīng)用的當(dāng)前執(zhí)行狀態(tài)或未來執(zhí)行狀態(tài),各個(gè)方面允許移動(dòng)設(shè)備生成并使用獨(dú)立于可從操作系統(tǒng)或獲得的狀態(tài)信息,且與該可獲得的狀態(tài)信息更為準(zhǔn)確且更為細(xì)節(jié)的應(yīng)用執(zhí)行狀態(tài)信息。這種高準(zhǔn)確性、高細(xì)節(jié)性且高精細(xì)粒度的執(zhí)行狀態(tài)信息可以由移動(dòng)設(shè)備用來實(shí)施更為高效的節(jié)能方案,或者由移動(dòng)設(shè)備的行為監(jiān)視與分析系統(tǒng)來選擇最相關(guān)的特定于應(yīng)用的精簡(jiǎn)分類器模型。這允許系統(tǒng)更好地預(yù)測(cè)移動(dòng)設(shè)備行為是良性的還是惡意的。
各個(gè)方面可以在各種移動(dòng)計(jì)算設(shè)備上實(shí)施,所述移動(dòng)計(jì)算設(shè)備的一個(gè)示例在圖7中以智能電話700的形式示出。智能電話700可以包括處理器702,其耦合到觸摸屏控制器704和內(nèi)部存儲(chǔ)器706。處理器702可以是被設(shè)計(jì)用于通用或?qū)S锰幚砣蝿?wù)的一個(gè)或多個(gè)多核IC。內(nèi)部存儲(chǔ)器706可以是易失性或非易失性存儲(chǔ)器,并且還可以是安全存儲(chǔ)器和/或加密存儲(chǔ)器,或不完全和/或未加密存儲(chǔ)器,或其任何組合。觸摸屏控制器704和處理器702還可以耦合到觸摸屏面板712,諸如電阻感測(cè)型觸摸屏、電容感測(cè)型觸摸屏、紅外感測(cè)型觸摸屏等等。
智能電話700可以具有用于發(fā)送和接收的一個(gè)或多個(gè)無線信號(hào)收發(fā)機(jī)708(例如,Wi-Fi,無線射頻)和天線710,其彼此耦合和/或耦合到處理器702。收發(fā)機(jī)708和天線710可以與上述電路一起用于實(shí)施各種無線傳輸協(xié)議棧和接口。多核設(shè)備700可以包括蜂窩網(wǎng)絡(luò)無線調(diào)制解調(diào)芯片716,其實(shí)現(xiàn)經(jīng)由蜂窩網(wǎng)絡(luò)的通信并耦合到處理器702。智能電話700通常還包括揚(yáng)聲器714和用于接收用戶輸入的菜單選擇按鍵或翹板開關(guān)(rocker switch)718。
典型的智能電話700還包括聲音編碼/解碼(CODEC)電路722,其將從麥克風(fēng)接收的聲音數(shù)字化為適合于無線傳輸?shù)臄?shù)據(jù)分組,并將接收的聲音數(shù)據(jù)分組進(jìn)行解碼來生成模擬信號(hào),模擬信號(hào)被提供給揚(yáng)聲器來產(chǎn)生聲音。另外,處理器702、無線收發(fā)機(jī)705和CODEC 722中的一個(gè)或多個(gè)還可以包括數(shù)字信號(hào)處理器(DSP)電路(未單獨(dú)示出)。
所述方面的方法的多個(gè)部分可以實(shí)現(xiàn)在客戶機(jī)-服務(wù)器架構(gòu)中,其中一些處理可以在服務(wù)器中進(jìn)行,諸如維護(hù)正常操作行為數(shù)據(jù)庫,該數(shù)據(jù)庫可由移動(dòng)設(shè)備處理器在執(zhí)行所述方面的方法時(shí)訪問。這些方面可以實(shí)施在各種市場(chǎng)上可獲得的服務(wù)器設(shè)備中的任何服務(wù)器設(shè)備上,諸如圖8所示的服務(wù)器800。該服務(wù)器800通常包括處理器801,其耦合到易失性存儲(chǔ)器802和大容量非易失性存儲(chǔ)器,諸如硬盤驅(qū)動(dòng)器803。服務(wù)器800還可以包括軟盤驅(qū)動(dòng)器、壓縮光盤(CD)或數(shù)字多用途光盤(DVD)光盤驅(qū)動(dòng)器804,其耦合到處理器801。服務(wù)器800還可以包括網(wǎng)絡(luò)訪問端口806,其耦合到處理器801,用于建立與網(wǎng)絡(luò)805的數(shù)據(jù)連接,所述網(wǎng)絡(luò)805諸如為耦合到其他廣播系統(tǒng)計(jì)算機(jī)和服務(wù)器的局域網(wǎng)。
處理器702、801可以是任何可編程微處理器、微計(jì)算機(jī)或多處理器芯片,其可由軟件指令(應(yīng)用)配置來執(zhí)行各種功能,包括如下所述的各個(gè)方面的功能。在一些移動(dòng)設(shè)備中,可以提供多個(gè)處理器702,諸如一個(gè)專用于無線通信功能的處理器,以及一個(gè)專用于運(yùn)行其他應(yīng)用的處理器。通常,軟件應(yīng)用在其被訪問并裝載到處理器702、801之前,可以存儲(chǔ)在內(nèi)部存儲(chǔ)器706、802、803中。處理器702、801可以包括足以存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器。
在本發(fā)明中所使用的術(shù)語“性能降級(jí)(performance degradation)”表示寬泛范圍的各種不期望的移動(dòng)設(shè)備操作和特性,諸如更長(zhǎng)的處理時(shí)間、更慢的實(shí)時(shí)響應(yīng)、更低的電池使用時(shí)間、私有數(shù)據(jù)的丟失、惡意經(jīng)濟(jì)活動(dòng)(例如,發(fā)送未授權(quán)的付費(fèi)SMS消息),拒絕服務(wù)(DoS)、與強(qiáng)占移動(dòng)設(shè)備有關(guān)的操作、或?qū)㈦娫捰糜陂g諜活動(dòng)或僵尸網(wǎng)絡(luò)活動(dòng)等等。
通常,行為矢量可以是一維隊(duì)列、數(shù)字特征的n維隊(duì)列、經(jīng)排序的事件列表、特征矢量、一個(gè)或多個(gè)對(duì)象、條件或事件的數(shù)字表示、狀態(tài)機(jī)等等。在一個(gè)方面中,行為矢量可以包括一個(gè)或多個(gè)行為。在各個(gè)方面中,行為可以被表示為數(shù)值或存儲(chǔ)多個(gè)數(shù)值的結(jié)構(gòu)(例如,矢量、列表、隊(duì)列等等)。
在可編程處理器上執(zhí)行以實(shí)施各個(gè)方面的操作的計(jì)算機(jī)程序代碼或“程序代碼”可以用高級(jí)編程語言編寫,諸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、結(jié)構(gòu)查詢語言(例如,Transact-SQL)、Perl,或采用各種其他編程語言編寫。存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的程序代碼或程序當(dāng)在該應(yīng)用中使用時(shí),可以指代形式可由處理器所理解的機(jī)器語言代碼(諸如對(duì)象代碼)。
很多移動(dòng)計(jì)算設(shè)備操作系統(tǒng)核心被組織為用戶空間(其中沒有特權(quán)代碼運(yùn)行)和內(nèi)核空間(其中有特權(quán)代碼運(yùn)行)。這種劃分在中和其他通用公共許可(GPL)環(huán)境中特別重要,在這些環(huán)境中,作為內(nèi)核空間的一部分的代碼必須被GPL許可,而在用戶空間中運(yùn)行的代碼可以不是GPL許可的。應(yīng)該理解,本文所討論的各種軟件組件/模塊可以在內(nèi)核空間中或用戶空間中實(shí)施,除非另有明確聲明。
以上的方法描述和過程流示意圖僅是作為說明性示例提供,而并非旨在要求或暗示各個(gè)方面的步驟必須按照所給出的順序執(zhí)行。本領(lǐng)域技術(shù)人員將會(huì)理解,上述方面的步驟的順序可以是按照任何順序執(zhí)行的。諸如“以下”、“于是”、“隨后”等等的單詞并非旨在限定步驟的順序;這些單詞僅是簡(jiǎn)單地用于引導(dǎo)讀者閱讀方法的說明書。此外,對(duì)權(quán)利要求元素的任何單數(shù)指代,例如,使用冠詞“一”、“一個(gè)”、“所述”,不應(yīng)被理解為將該元素限制于單數(shù)。
在本發(fā)明中所使用的術(shù)語“組件”、“模塊”、“系統(tǒng)”、“引擎”、“產(chǎn)生器”、“管理器”、“調(diào)度器”等等旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,諸如但不限于被配置為執(zhí)行特定操作或功能的硬件、固件、硬件與軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是但不限于在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行體、執(zhí)行線程、程序和/或計(jì)算機(jī)。舉例而言,運(yùn)行在計(jì)算設(shè)備上的應(yīng)用和該計(jì)算設(shè)備可以被稱為組件。一個(gè)或多個(gè)組件可以位于執(zhí)行進(jìn)程和/或線程中,組件可以位于一個(gè)處理器或核心上和/或分布在兩個(gè)或更多個(gè)處理器或核心中。另外,這些組件可以從各種非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)執(zhí)行,所述非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)具有存儲(chǔ)在其上的各種指令和/或數(shù)據(jù)結(jié)構(gòu)。組件可以借助于本地和/或遠(yuǎn)程進(jìn)程、功能或過程調(diào)用、電子信號(hào)、數(shù)據(jù)分組、存儲(chǔ)器讀/寫和其他已知的與網(wǎng)絡(luò)、計(jì)算機(jī)、處理器和/或進(jìn)程相關(guān)通信方法來進(jìn)行通信。
結(jié)合本文公開的各個(gè)方面所描述的各個(gè)示例性邏輯塊、模塊、電路和算法步驟可以實(shí)施為電子硬件、計(jì)算機(jī)軟件或二者的組合。為了清楚地說明軟件和硬件的這種可互換性,以上已經(jīng)按照各個(gè)說明性組件、塊、模塊、電路和步驟的功能對(duì)其進(jìn)行了描述。至于所述功能是實(shí)現(xiàn)為硬件還是軟件則取決于具體應(yīng)用和施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。本領(lǐng)域技術(shù)人員可以針對(duì)各個(gè)特定應(yīng)用以可變的方式來實(shí)施所描述的功能,但這種實(shí)施決策不應(yīng)被解釋為導(dǎo)致脫離本發(fā)明的范圍。
被設(shè)計(jì)為執(zhí)行本文所描述的功能的通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或者晶體管邏輯、分立硬件組件、或者它們的任意組合,可以實(shí)施或執(zhí)行用于實(shí)施結(jié)合本文所公開的各個(gè)方面所描述的各種示例性的邏輯、邏輯塊、模塊和電路的硬件。通用處理器可以是多處理器,但是可替換地,該處理器也可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機(jī)。處理器也可以實(shí)現(xiàn)為計(jì)算器件的組合,例如,DSP和多處理器的組合、多個(gè)多處理器、與DSP核相結(jié)合的一個(gè)或多個(gè)多處理器、或者任何其它這類結(jié)構(gòu)??商鎿Q地,一些步驟或方法可以由專用于給定功能的電路來執(zhí)行。
在一個(gè)或多個(gè)方面,可以通過硬件、軟件、固件、或其任意組合來實(shí)現(xiàn)所描述的功能。如果通過軟件實(shí)現(xiàn),則這些功能可以作為一條或多條指令或代碼保存在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)或非瞬態(tài)處理器可讀介質(zhì)上。本文所公開的方法或算法的步驟可以實(shí)現(xiàn)為處理器可執(zhí)行軟件模塊,其可以位于非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)上。非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)可以是可由計(jì)算機(jī)或處理器訪問的任何存儲(chǔ)介質(zhì)。作為一個(gè)非限定性示例,所述非瞬態(tài)計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)可以包括RAM、ROM、EEPROM、閃存、CD-ROM或其它光盤存儲(chǔ)設(shè)備、磁盤存儲(chǔ)設(shè)備或其它磁性存儲(chǔ)設(shè)備、或者能夠用來存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的所期望的程序代碼并且能夠被計(jì)算機(jī)訪問的任何其它介質(zhì)。如本文所使用的磁盤和光盤包括壓縮光盤(CD)、激光光盤、光盤、數(shù)字多功能光盤(DVD)、軟盤以及藍(lán)光光盤,其中,磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光碟是由激光器以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述的組合也應(yīng)該被包括在非瞬態(tài)計(jì)算機(jī)可讀和處理器可讀存儲(chǔ)介質(zhì)的范圍內(nèi)。另外,方法或算法的操作可以作為代碼和/或指令的一個(gè)或任意組合或集合而位于非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上,其可以并入計(jì)算機(jī)程序產(chǎn)品中。
為使本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明,上面提供了對(duì)所公開的各個(gè)方面的描述。對(duì)于本領(lǐng)域普通技術(shù)人員來說,對(duì)這些方面的各種修改將是顯而易見的,并且,本文定義的總體原理可以在不脫離本發(fā)明的精神或范圍的前提下應(yīng)用于其它方面。因此,本發(fā)明并非旨在局限于本申請(qǐng)所示出的各個(gè)方面,而是與所附權(quán)利要求以及本申請(qǐng)公開的原理和新穎特征的最寬范圍相一致。