背景技術(shù):
近幾年來,蜂窩技術(shù)和無線通信技術(shù)迅猛發(fā)展。無線服務供應商現(xiàn)在提供大量特征和服務,所述特征和服務向其用戶提供對信息、資源及通信的前所未有的水平的存取。為了與這些增強保持同步,個人和消費型電子裝置(例如,蜂窩式電話、手表、頭戴受話器、遠程控件等)變得前所未有的強大和復雜,且現(xiàn)在所述電子裝置通常包括強力的處理器、大型存儲器和允許在它們的裝置上執(zhí)行復雜和強力的軟件應用程序的其它資源。
由于這些和其它改進,個人和消費型電子裝置在現(xiàn)代生活中變得普遍存在,且具有對由其用戶產(chǎn)生或涉及其用戶的信息的前所未有的存取水平。另外,人們頻繁地使用其裝置來存儲敏感信息(例如,信用卡信息、聯(lián)系人等)和/或?qū)崿F(xiàn)安全性重要的任務。舉例來說,移動裝置用戶頻繁地使用他們的裝置來購買貨物、發(fā)送和接收敏感通信、支付賬單、管理銀行賬戶并且進行其它涉密交易。由于這些趨勢,個人和消費型電子裝置快速地變成惡意軟件和網(wǎng)絡攻擊的下一前線。因而,更好的保護資源受限制的計算裝置(例如,移動和無線裝置)的新的且改進的安全解決方案將有利于消費者。
技術(shù)實現(xiàn)要素:
各種實施例包含一種分析在計算裝置上操作的軟件應用程序的活動的方法,其包含:將從所述計算裝置的用戶輸入裝置接收的原始數(shù)據(jù)與在所述計算裝置中接收的用戶交互事件信息進行比較以產(chǎn)生分析結(jié)果;以及使用所述產(chǎn)生的分析結(jié)果以確定用戶交互(ui)事件是否與所述計算裝置的用戶相關(guān)。在另一實施例中,從所述用戶輸入裝置接收的所述原始數(shù)據(jù)可包含從裝置驅(qū)動器接收的原始數(shù)據(jù),且在所述計算裝置中接收的所述用戶交互事件信息可包含從所述計算裝置的高層級操作系統(tǒng)接收的交互信息。
在另一實施例中,所述方法可包含響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而將所述軟件應用程序的所述活動分類為非良性的。在另一實施例中,所述方法可包含:產(chǎn)生表征所述軟件應用程序的所述活動的行為向量;響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而將所述產(chǎn)生的行為向量應用于可包含決策節(jié)點的分類器模型,所述決策節(jié)點評估是否存在對應于所述活動的用戶交互事件;以及使用將所述產(chǎn)生的行為向量應用于所述分類器模型的結(jié)果以確定所述軟件應用程序的所述活動是否為非良性的。
在另一實施例中,所述方法可包含:產(chǎn)生表征所述軟件應用程序的所述活動的行為向量;響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而選擇不包含決策節(jié)點的分類器模型,所述決策節(jié)點測試是否存在對應于所述活動的用戶交互事件;將所述產(chǎn)生的行為向量應用于所述選定分類器模型以產(chǎn)生額外分析結(jié)果;以及使用所述產(chǎn)生的額外分析結(jié)果以確定所述軟件應用程序的所述活動是否為非良性的。
在另一實施例中,所述方法可包含:響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而選擇一系列穩(wěn)健分類器模型;以及將多個行為向量應用于所述選定系列的穩(wěn)健分類器模型以確定所述軟件應用程序的所述活動是否為非良性的。在另一實施例中,所述方法可包含:將從所述計算裝置的第一傳感器接收的原始數(shù)據(jù)與從所述計算裝置的第二傳感器接收的原始數(shù)據(jù)進行比較以確定從所述第一傳感器接收的所述原始數(shù)據(jù)是否與從所述第二傳感器接收的所述原始數(shù)據(jù)一致,其中將從所述計算裝置的所述用戶輸入裝置接收的原始數(shù)據(jù)與在所述計算裝置中接收的所述用戶交互事件信息進行比較以產(chǎn)生所述分析結(jié)果是響應于確定從所述第一傳感器接收的所述原始數(shù)據(jù)與從所述第二傳感器接收的所述原始數(shù)據(jù)一致而執(zhí)行的。
在另一實施例中,將從所述第一傳感器接收的原始數(shù)據(jù)與從所述第二傳感器接收的所述原始數(shù)據(jù)進行比較可包含比較將行為向量應用于分類器模型的結(jié)果。在另一實施例中,從所述用戶輸入裝置接收的所述原始數(shù)據(jù)可包含從用戶輸入傳感器接收的原始數(shù)據(jù);在所述計算裝置中接收的所述用戶交互事件信息可包含從用于所述用戶輸入傳感器的裝置驅(qū)動器接收的數(shù)據(jù);且使用所述產(chǎn)生的分析結(jié)果以確定所述用戶交互事件是否與所述計算裝置的用戶相關(guān)可包含響應于從所述用戶輸入傳感器接收的所述原始數(shù)據(jù)不相關(guān)于從用于所述用戶輸入傳感器的所述裝置驅(qū)動器接收的所述數(shù)據(jù)而確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)。
在另一實施例中,所述用戶輸入傳感器可包含觸摸屏,且所述裝置驅(qū)動器可包含觸摸屏裝置驅(qū)動器。在另一實施例中,所述方法可包含響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而將所述軟件應用程序的所述活動分類為非良性的。在另一實施例中,所述方法可包含:產(chǎn)生表征所述軟件應用程序的所述活動的行為向量;響應于確定所述用戶交互事件不與所述計算裝置的用戶相關(guān)而將所述產(chǎn)生的行為向量應用于不包含決策節(jié)點的分類器模型,所述決策節(jié)點評估涉及與所述計算裝置的用戶交互的條件;以及使用將所述產(chǎn)生的行為向量應用于所述分類器模型的結(jié)果以確定所述軟件應用程序的所述活動是否為非良性的。
另外的實施例可包含計算裝置,其具有處理器,所述處理器以處理器可執(zhí)行指令配置以執(zhí)行對應于上文所論述的方法的各種操作。
另外的實施例可包含具有用于執(zhí)行對應于上文所論述的方法操作的功能的各種裝置的計算裝置。
其它實施例可包含非暫時性處理器可讀存儲媒體,所述非暫時性處理器可讀存儲媒體在其上存儲有處理器可執(zhí)行指令,所述處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行對應于上文所論述的方法操作的各種操作。
附圖說明
并入本文中并且構(gòu)成本說明書一部分的隨附圖式展示本發(fā)明的示范性實施例,并且與上文給出的一般描述和下文給出的詳細描述一起用來解釋本發(fā)明的特征。
圖1是適合于實施各種實施例的實例芯片上系統(tǒng)的架構(gòu)圖式。
圖2是說明根據(jù)各種實施例在一實施例計算裝置中的實例邏輯組件和信息流的框圖,所述計算裝置包含經(jīng)配置以識別且響應于虛假用戶交互(ui)事件的虛假ui事件檢測模塊。
圖3是說明在一實施例計算裝置中的實例邏輯組件和信息流的框圖,所述計算裝置經(jīng)配置以確定特定移動裝置行為是否為良性或非良性的。
圖4a和4b是說明根據(jù)各種實施例檢測且響應于虛假ui事件的方法的過程流程圖。
圖4c是說明根據(jù)一實施例檢測且響應于泄密的用戶輸入傳感器裝置驅(qū)動器的方法的過程流程圖。
圖5是說明根據(jù)一實施例使用一系列分類器模型對裝置行為進行分類的方法的過程流程圖。
圖6是可產(chǎn)生且用以產(chǎn)生分類器模型的實例決策節(jié)點的圖示。
圖7是說明根據(jù)一實施例執(zhí)行自適應觀測的方法的過程流程圖。
圖8是適合于在一實施例中使用的移動裝置的組件框圖。
具體實施方式
將參看隨附圖式詳細描述各種實施例。只要可能,便將在圖式中使用相同參考標號來指代相同或相似部分。對特定實例和實施方案進行的參考是用于說明性目的,且不希望限制本發(fā)明或權(quán)利要求書的范圍。
概括來說,各種實施例包含使用基于行為且機器學習的技術(shù)來檢測且響應于虛假用戶交互(ui)事件的方法以及經(jīng)配置以實施所述方法的計算裝置。在實施例中,計算裝置可經(jīng)配置以實施與由高層級操作系統(tǒng)產(chǎn)生或接收的ui信息結(jié)合而分析由一或多個硬件驅(qū)動器或用戶輸入裝置產(chǎn)生的原始數(shù)據(jù)的方法,且使用此分析的結(jié)果來確定ui事件是否與計算裝置的用戶相關(guān)和/或?qū)⑺鶛z測ui事件分類為真實ui事件或虛假ui事件。所述計算裝置還可包含綜合的基于行為的安全系統(tǒng),其經(jīng)配置以基于ui事件是否為真實或虛假ui事件而識別且響應于非良性裝置行為(例如,由惡意或使性能降級的軟件應用程序等造成的行為)。
大體上,每一軟件應用程序在計算裝置上執(zhí)行多個任務或活動。一些應用程序任務/活動直接或固有地涉及或需要與裝置的某一形式的用戶交互。舉例來說,相機的使用、激活麥克風以記錄音頻以及發(fā)送優(yōu)質(zhì)短消息服務(sms)消息是涉及與裝置的某一形式的用戶交互的所有任務/活動,例如用戶致動相機的快門釋放按鈕,按壓記錄按鈕以激活麥克風,鍵入文字且觸摸發(fā)送按鈕以發(fā)送sms消息等等。
與裝置的大多數(shù)用戶交互將致使計算裝置產(chǎn)生一或多個ui事件(例如,view::ontouchevent、onkeydown、onkeyup、ontrackballevent等等)。舉例來說,觸摸計算裝置的電子觸摸屏顯示器可致使裝置驅(qū)動器產(chǎn)生“觸摸事件”,其識別觸摸的區(qū)域(例如,經(jīng)由矩形坐標x和y等等)。操作系統(tǒng)可從裝置驅(qū)動器接收ui事件(例如,“觸摸事件”),且作為響應而執(zhí)行ui事件相關(guān)的軟件應用程序的程序。
因此,一些任務/活動直接或固有地涉及或需要某一形式的用戶交互,且大多數(shù)用戶交互產(chǎn)生某一形式的ui事件。因此,不具有對應ui事件的應用程序的某些任務/活動的執(zhí)行可能是所述應用程序為非良性或另外應得到更靠近的審查、監(jiān)視或分析的強指示符。因此,在一些實施例中,計算裝置的基于行為的安全系統(tǒng)可經(jīng)配置以對直接或固有地涉及或需要用戶交互但并不與ui事件相關(guān)聯(lián)的活動分類為可疑或非良性。舉例來說,在實施例中,基于行為的安全系統(tǒng)可經(jīng)配置以監(jiān)視軟件應用程序的活動,確定所監(jiān)視活動(例如,相機的使用等)是否直接或固有地涉及或需要某一形式的用戶交互,響應于確定所監(jiān)視活動直接或固有地涉及或需要用戶交互而確定是否存在對應于所監(jiān)視活動的ui事件(例如,ontouchevent等),且響應于確定所監(jiān)視直接或固有地涉及或需要用戶交互且不存在對應于所監(jiān)視活動的ui事件而將所述應用程序分類為非良性(或需要更靠近的審查、較詳細的分析等)。
基于行為的安全系統(tǒng)大體上有效于識別非良性行為且防止裝置隨時間的性能和電力利用水平的降級。舉例來說,通過使用ui事件信息作為活動或軟件應用程序是否為非良性的指示符,基于行為的安全系統(tǒng)允許計算裝置識別且響應于非良性裝置行為(例如,惡意軟件應用程序等)而不會消耗過量的其處理、存儲器或電池資源。因此,基于行為的安全系統(tǒng)較適合于包含在移動裝置和資源受限制的計算裝置中且在移動裝置和資源受限制的計算裝置中使用,所述資源受限制的計算裝置例如智能電話,其具有有限的資源、通過電池電力運行且性能和安全是重要的。
雖然上述系統(tǒng)是大體上有效的,但惡意軟件應用程序可能通過產(chǎn)生且發(fā)送虛假ui事件信息到裝置的操作系統(tǒng)而避開或躲避安全系統(tǒng)的檢測。舉例來說,惡意軟件應用程序可激活計算裝置的相機以捕獲圖像而不需要用戶的知道或同意,并且然后將虛假ontouchevent發(fā)送到裝置的操作系統(tǒng)以致使安全系統(tǒng)不正確地確定所檢測活動(相機的激活)與對應ui事件相關(guān)聯(lián)。這可致使安全系統(tǒng)將惡意應用程序不正確地分類為良性。
通過使用基于行為且機器學習的技術(shù)與由高層級操作系統(tǒng)接收的ui事件信息結(jié)合來分析由一或多個硬件/裝置驅(qū)動器產(chǎn)生的原始數(shù)據(jù),各種實施例允許計算裝置確定ui事件是否為虛假ui事件,且當分析裝置行為時使用此信息以便防止惡意軟件應用程序使用虛假ui事件信息來避開或躲避檢測。
各種實施例通過允許裝置更準確且高效地識別、防止、校正和/或另外響應于非良性軟件應用程序而改進計算裝置的功能。各種實施例還通過允許計算裝置(或其基于行為的安全系統(tǒng))使用ui事件信息來智能地聚焦其監(jiān)視和/或分析操作而改進計算裝置的功能,進而減少其對裝置的響應性、性能和電力消耗特性的影響。
計算裝置的功能、功能性和/或機能的額外的改進從下文所提供的實施例的詳細描述中是顯而易見的。
術(shù)語“性能降級”在本申請案中用于指代計算裝置的廣泛多種不合意的操作和特性,例如較長處理時間、較慢實時響應性、較低電池壽命、私人數(shù)據(jù)的損失、惡意經(jīng)濟活動(例如,發(fā)送未經(jīng)授權(quán)的優(yōu)質(zhì)sms消息)、拒絕服務(dos)、不良寫入或設計的軟件應用程序、惡意的軟件、惡意軟件、病毒、分段存儲器、與強占移動裝置或利用電話用于間諜或僵尸網(wǎng)絡活動相關(guān)的操作等等。并且,出于這些原因中的任一者而使性能降級的行為、活動和條件在本文中被稱作“不是良性”或“非良性”。
術(shù)語“移動計算裝置”和“移動裝置”在本文中互換地使用以指代以下各項中的任何一者或全部:蜂窩式電話、智能電話、個人或移動多媒體播放器、個人數(shù)據(jù)助理(pda)、膝上型計算機、平板計算機、智能本、超級本、掌上型計算機、無線電子郵件接收器、具多媒體互聯(lián)網(wǎng)功能的蜂窩式電話、無線游戲控制器,以及包括存儲器和可編程處理器的類似的個人電子裝置,對于所述電子裝置性能是重要的,并且所述電子裝置在電池電力下運行使得節(jié)約電力的方法是有益的。雖然各種實施例對于移動計算裝置(例如,具有有限的資源且通過電池運行的智能電話)是尤其有用的,但是實施例通常在包括處理器且執(zhí)行應用程序的任何電子裝置中是有用的。
一般而言,移動裝置的性能和功率效率隨時間推移降低。近年來,殺毒軟件公司(例如,mcafee、symantec等)已經(jīng)開始營銷旨在減緩這種降低的手機殺毒軟件、防火墻和加密產(chǎn)品。然而,這些解決方案中的許多依賴于在移動裝置上周期性地執(zhí)行計算密集型掃描引擎,這可能消耗許多的移動裝置的處理和電池資源、在延長的時間周期減緩或放棄移動裝置和/或另外降低用戶體驗。另外,這些解決方案是通常限制在檢測已知的病毒和惡意代碼,且并不解決通常結(jié)合以導致移動裝置的隨時間推移的降低的多個復雜的因素和/或相互作用(例如,當性能下降并不是由病毒或惡意代碼引起的時)。出于這些和其它原因,現(xiàn)有殺毒軟件、防火墻和加密產(chǎn)品并不提供可以勝任以下問題的解決方案:識別可以造成移動裝置隨時間推移降級的多個因素、防止移動裝置降級或者有效恢復老化的移動裝置到其初始狀態(tài)。
另外,現(xiàn)代移動裝置是高度可配置的并且是復雜的系統(tǒng)。因而,對于確定特定裝置行為是否是良性或非良性(例如,惡意或性能降級)的最重要特征可能在每個移動裝置中不同。另外,存在可以造成隨時間推移的移動計算裝置的性能和電力利用水平下降的各種各樣的因素,其包括不充分地編寫或設計的軟件應用程序、惡意代碼、病毒、分段存儲器、后臺進程等。由于這些因素的數(shù)量多、種類廣和其復雜性,評估在現(xiàn)代移動計算裝置的復雜而資源受限制的系統(tǒng)的性能和/或電力利用水平中造成下降的全部因素通常是不可行的。因而,對于用戶、操作系統(tǒng)和/或應用程序(例如,殺毒軟件等)而言準確地且有效地識別問題的來源是困難的。因此,當前移動裝置用戶幾乎沒有防止隨時間推移在移動裝置的性能和電力利用水平中的降級的補救措施,或者恢復老化的移動裝置到其初始性能和電力利用水平的補救措施。
為了克服現(xiàn)有解決方案的限制,各種實施例包含配備有行為監(jiān)視和分析系統(tǒng)的計算裝置,所述系統(tǒng)經(jīng)配置以快速且高效地識別非良性軟件應用程序(例如,惡意的、不良寫入的、不與裝置兼容的應用程序等),且防止這些應用程序使計算裝置的性能、電力利用水平、網(wǎng)絡使用水平、安全性和/或隱私隨時間而降級。所述行為監(jiān)視和分析系統(tǒng)可經(jīng)配置以識別、防止且校正所識別的問題而對計算裝置的響應性、性能或電力消耗特性沒有顯著、不利或用戶可察覺的影響。在實施例中,所述行為監(jiān)視和分析系統(tǒng)可為基于行為的安全系統(tǒng)。
基于行為的監(jiān)視和分析系統(tǒng)可包含觀測器過程、后臺程序、模塊或子系統(tǒng)(本文中統(tǒng)稱為“模塊”)行為提取器模塊和分析器模塊。觀測器模塊可經(jīng)配置以在計算裝置系統(tǒng)的各種層級儀表化或協(xié)調(diào)各種應用程序編程接口(api)、寄存器、計數(shù)器或其它裝置組件(本文統(tǒng)稱為“儀表化組件”),從儀表化組件收集行為信息,且將收集的行為信息傳送(例如,經(jīng)由存儲器寫入操作、功能調(diào)用等)到行為提取器模塊。行為提取器模塊可以使用所收集的行為信息以產(chǎn)生各自表示或表征與裝置的一或多個特定的線程、過程、軟件應用程序、模塊或組件相關(guān)聯(lián)的許多或全部觀測到的事件、條件、任務、活動和/或行為(本文中統(tǒng)稱為“行為”)的行為向量。行為提取器模塊可將所產(chǎn)生行為向量傳送(例如,經(jīng)由存儲器寫入操作、功能調(diào)用等)到分析器模塊,所述分析器模塊可將行為向量應用于分類器模型以產(chǎn)生分析結(jié)果,且使用分析結(jié)果以確定軟件應用程序或裝置行為是否為良性或非良性(例如,惡意、不良寫入、性能降低等)。裝置處理器可隨后執(zhí)行各種操作以校正、治愈、解決、隔離或者另外修復所識別的問題(例如,確定為非良性的行為)。
每個行為向量可以為包含或囊封一或多個“行為特征”的信息結(jié)構(gòu)。行為特征可以為表示在計算裝置中觀測到的事件、條件、活動、操作、關(guān)系、交互或行為的全部或一部分的數(shù)字或符號。每個行為特征可以與識別一系列可能值的數(shù)據(jù)類型以及可以在那些值、值的含義和其它類似信息上執(zhí)行的操作相關(guān)聯(lián)。數(shù)據(jù)類型可以由計算裝置使用以確定應當如何測量、分析、加權(quán)或使用對應的行為特征(或特征值)。
分類器模型可以為包括數(shù)據(jù)、條目、決策節(jié)點、決策標準和/或信息結(jié)構(gòu)的行為模型,所述結(jié)構(gòu)信息可以由裝置處理器使用以快速地且有效地測試或評估特定的特征、因素、數(shù)據(jù)點、條目、api、狀態(tài)、狀況、行為、軟件應用程序、過程、操作、組件等(本文中統(tǒng)稱為“特征”)或裝置行為的其它實施例。分類器模型還可以包括可以由裝置處理器使用以確定軟件應用程序之間關(guān)系的本質(zhì)和/或在移動裝置中所監(jiān)視的行為的信息。
每個分類器模型可以分類為完整分類器模型或精益分類器模型。完整分類器模型可以為穩(wěn)健數(shù)據(jù)模型,所述數(shù)據(jù)模型是作為大量培訓數(shù)據(jù)集的函數(shù)產(chǎn)生的,其可以包括數(shù)千特征和數(shù)十億的條目。精益分類器模型可以為更為集中的數(shù)據(jù)模型,所述數(shù)據(jù)模型由簡化數(shù)據(jù)集產(chǎn)生,所述簡化數(shù)據(jù)集包括或優(yōu)先考慮與確定特定移動裝置行為是否是非良性的最相關(guān)的特征/條目上的測試。本地分類器模型可以為在計算裝置中產(chǎn)生的精益分類器模型。用戶特定分類器模型可為包含高度聚焦數(shù)據(jù)模型的本地分類器模型,所述數(shù)據(jù)模型包含決策節(jié)點或?qū)Q策節(jié)點列入優(yōu)先,所述節(jié)點測試或評估最相關(guān)的裝置特征/條目以用于確定裝置行為是否與特定用戶對計算裝置的普通使用一致。
每個人大體上以唯一或相異方式與他/她的計算裝置交互。舉例來說,移動裝置用戶常常具有相異的工作或通信方式,使用特定軟件應用程序或特定類型的軟件應用程序,使用其移動裝置執(zhí)行特定活動或?qū)崿F(xiàn)特定任務,以特定次序執(zhí)行活動,在特定時間執(zhí)行特定活動,以特定方式與特定軟件應用程序交互等等。用戶與她的/她的裝置交互的相異方式可隨時間而學習,且用以確定軟件應用程序是否為非良性的。舉例來說,在實施例中,計算裝置可經(jīng)配置以學習用戶隨時間與他的/她的裝置交互的相異方式,使用此信息以確定活動、任務或行為是否應當與對應ui事件相關(guān)聯(lián),產(chǎn)生考慮對應ui事件的存在的行為向量和/或分類器模型,將行為向量應用于分類器模型以產(chǎn)生分析結(jié)果,且使用分析結(jié)果以確定與所述活動、任務或行為相關(guān)聯(lián)的軟件應用程序是否為非良性的(例如,惡意等)。
現(xiàn)代計算裝置具有對由其用戶產(chǎn)生或涉及其用戶的信息的前所未有的存取水平。舉例來說,移動計算裝置常常配備有收集或產(chǎn)生關(guān)于用戶的詳細個人信息的傳感器(例如,加速度計、陀螺儀、地理空間定位傳感器、相機、心率監(jiān)視器、血糖儀等)。另外,移動計算裝置現(xiàn)在包含允許執(zhí)行復雜的軟件應用程序的強力處理器,所述軟件應用程序包含用于導覽網(wǎng)頁、購買商品、監(jiān)視用戶的健康、控制家用電器、玩游戲、觀看/記錄視頻、導航新城市、跟蹤鍛煉、進行金融交易等等的應用程序。這些軟件應用程序常常收集或產(chǎn)生關(guān)于用戶的詳細個人信息。由這些軟件應用程序和傳感器收集、產(chǎn)生或使用的信息可由實施例計算裝置使用以產(chǎn)生表征用戶的活動、偏好、年齡、職業(yè)、習慣、情緒、感情狀態(tài)、個性等的用戶個人信息。實施例計算裝置可經(jīng)配置以收集和使用這些用戶個人信息以確定裝置隨時間的正常操作模式,包含活動、任務或行為是否應當與對應ui事件相關(guān)聯(lián)。用戶個人信息也可以用以產(chǎn)生適合用于確定軟件應用程序是否為非良性的行為向量和/或分類器模型(例如,用戶特定的分類器模型等)。
某些任務/活動直接或固有地涉及或需要操作系統(tǒng)或軟件應用程序(或進程、線程等)處于支持那些任務/活動或與其兼容的執(zhí)行狀態(tài)。舉例來說,相機的使用、發(fā)送短消息服務(sms)消息以及收集加速度計數(shù)據(jù)是通常需要與裝置的某一形式的用戶交互的所有任務/活動。因此,這些活動大體上必須在“前臺”執(zhí)行狀態(tài)中或在支持與計算裝置的用戶交互的另一執(zhí)行狀態(tài)中執(zhí)行。當這些或其它相似任務/活動在不支持與裝置的高度用戶交互的執(zhí)行狀態(tài)中(例如在后臺執(zhí)行狀態(tài)中)執(zhí)行時,此操作條件可為與所述活動相關(guān)聯(lián)的裝置行為是非良性或另外應得到額外或更靠近的審查、監(jiān)視或分析的指示符。因此,在實施例中,計算裝置可經(jīng)配置以使用特定執(zhí)行狀態(tài),其中執(zhí)行活動或任務以確定活動、任務或行為是否應當與對應ui事件相關(guān)聯(lián),產(chǎn)生考慮執(zhí)行狀態(tài)和/或?qū)猽i事件的存在的行為向量和/或分類器模型,將行為向量應用于分類器模型以產(chǎn)生分析結(jié)果,且使用分析結(jié)果以確定軟件應用程序是否為非良性的。
在實施例中,行為監(jiān)視和分析系統(tǒng)可使用ui事件的存在作為當產(chǎn)生用以確定軟件應用程序是否為非良性的分析結(jié)果時測試/評估(例如,經(jīng)由將行為向量應用于分類器模型等)的因數(shù)。
在上述實例中,計算裝置使用經(jīng)由與裝置的用戶交互產(chǎn)生的信息,例如對應ui事件的存在,以確定軟件應用程序是否為非良性的。此信息通常包含(例如,當用戶觸摸裝置的觸摸屏等時)由裝置的傳感器或硬件產(chǎn)生的數(shù)據(jù),其發(fā)送到操作系統(tǒng)以用于轉(zhuǎn)發(fā)到行為監(jiān)視和分析系統(tǒng)(例如,經(jīng)由操作系統(tǒng)將信息存儲在日志中等)。由于行為監(jiān)視和分析系統(tǒng)使用此信息以確定軟件應用程序是否為非良性的,所以惡意軟件應用程序可能通過產(chǎn)生且發(fā)送虛假ui事件信息到操作系統(tǒng),以便致使操作系統(tǒng)向行為監(jiān)視和分析系統(tǒng)不正確地報告ui事件的存在,來嘗試躲避或避開系統(tǒng)的檢測。
為了防止產(chǎn)生虛假用戶交互信息(例如,虛假ui事件)的軟件應用程序躲避或避開行為監(jiān)視和分析系統(tǒng)(例如,基于行為的安全系統(tǒng))的檢測,在實施例中,計算裝置可配備有虛假ui事件檢測模塊,其經(jīng)配置以接收來自傳感器和硬件驅(qū)動器的原始數(shù)據(jù)以及來自操作系統(tǒng)的ui事件信息,比較所接收原始數(shù)據(jù)與所接收ui事件信息以確定ui事件是真實ui事件還是虛假ui事件,且將虛假ui事件事件報告給行為監(jiān)視和分析系統(tǒng)。
在實施例中,行為監(jiān)視和分析系統(tǒng)可經(jīng)配置以將與虛假ui事件相關(guān)聯(lián)的軟件應用程序分類為非良性的。
在實施例中,行為監(jiān)視和分析系統(tǒng)可經(jīng)配置以將與虛假ui事件相關(guān)聯(lián)的軟件應用程序分類為可疑的,且增加其審查或分析等級(例如,通過使用更穩(wěn)健的分類器模型、監(jiān)視軟件應用程序的更多活動、產(chǎn)生更大行為向量等)。
在實施例中,行為監(jiān)視和分析系統(tǒng)可經(jīng)配置以例如通過使用不測試與對應ui事件的存在或現(xiàn)存相關(guān)的條件的分類器模型而忽略經(jīng)確定為虛假ui事件的ui事件。這允許系統(tǒng)聚焦于其監(jiān)視和/或分析操作是對確定活動或行為是否為非良性來說最重要的特征或因數(shù)。
在實施例中,計算裝置的裝置處理器可經(jīng)配置以比較從不同裝置驅(qū)動器或硬件組件接收的信息且使其相關(guān)以確定所檢測ui事件是否為虛假ui事件。舉例來說,用戶觸摸計算裝置的觸摸屏顯示器可致使顯示器產(chǎn)生呈識別顯示器被觸摸的時間的時戳以及識別所觸摸顯示區(qū)域的坐標信息的形式的原始數(shù)據(jù)。另外,由于計算裝置當其顯示器被觸摸時通常移動(由于用戶的觸摸的力),因此其陀螺儀和加速度計可產(chǎn)生指示所述裝置在所述觸摸事件的同時稍微移動的原始數(shù)據(jù)。因此,裝置處理器可確定在觸摸事件產(chǎn)生時裝置的移動是否與用戶交互一致。
各種實施例(包含參考圖2到7描述的實施例)可在許多不同移動裝置中實施,包含單處理器和多處理器系統(tǒng)以及芯片上系統(tǒng)(soc)。圖1是說明可以用于實施各種實施例的計算裝置中的實例芯片上系統(tǒng)(soc)100架構(gòu)的架構(gòu)圖。soc100可包含若干異構(gòu)處理器,例如數(shù)字信號處理器(dsp)102、調(diào)制解調(diào)器處理器104、圖形處理器106以及應用程序處理器108。soc100還可包含連接到異構(gòu)處理器102、104、106、108中的一或多者的一或多個協(xié)處理器110(例如,向量協(xié)處理器)。每一處理器102、104、106、108、110可包含一或多個核心,且每一處理器/核心可獨立于其它處理器/核心而執(zhí)行操作。舉例來說,soc100可包含執(zhí)行第一類型的操作系統(tǒng)(例如,freebsd、linux、osx等)的處理器和執(zhí)行第二類型的操作系統(tǒng)(例如,微軟視窗10)的處理器。
soc100還可包含模擬電路和定制電路114,以用于管理傳感器數(shù)據(jù)、模/數(shù)轉(zhuǎn)換、無線數(shù)據(jù)發(fā)射,且用于執(zhí)行其它專用操作,例如處理用于游戲和電影的經(jīng)編碼音頻信號。soc100可進一步包含系統(tǒng)組件/資源116,例如,電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍橋接器、數(shù)據(jù)控制器、存儲器控制器、系統(tǒng)控制器、存取端口、計時器和用于支持在計算裝置上運行的處理器和客戶端的其它類似組件。
系統(tǒng)組件/資源116和定制電路114可包含用以與例如相機、電子顯示器、無線通信裝置、外部存儲器芯片等外圍裝置介接的電路。處理器102、104、106、108可經(jīng)由互連/總線模塊124互連到一或多個存儲器元件112、系統(tǒng)組件/資源116和定制電路114,所述互連/總線模塊可包含可配置邏輯門的陣列和/或?qū)嵤┛偩€架構(gòu)(例如,coreconnect、amba等)。通信可由例如高性能芯片上網(wǎng)絡(noc)等高級互連件提供。
soc100可進一步包含用于與soc外部的資源通信的輸入/輸出模塊(未示出),所述資源例如時鐘118和電壓調(diào)節(jié)器120。soc外部的資源(例如,時鐘118、電壓調(diào)節(jié)器120)可由內(nèi)部soc處理器/核心(例如,dsp102、調(diào)制解調(diào)器處理器104、圖形處理器106、應用程序處理器108等)中的兩個或更多個共享。
soc100還可包含適用于從傳感器收集傳感器數(shù)據(jù)的硬件和/或軟件組件,包含揚聲器、用戶接口元件(例如,輸入按鈕、觸摸屏顯示器等)、麥克風陣列、用于監(jiān)視物理狀態(tài)(例如,位置、方向、運動、取向、振動、壓力等)的傳感器、相機、羅盤、gps接收器、通信電路系統(tǒng)(例如,
除了上文所論述的soc100之外,各種實施例還可以在多種多樣的計算系統(tǒng)中實施,所述計算系統(tǒng)可包含單個處理器、多個處理器、多核心處理器或其任何組合。
圖2說明根據(jù)各種實施例的在經(jīng)配置以識別虛假ui事件的實施例計算裝置200中的實例邏輯組件和信息流。在圖2中說明的實例中,計算裝置200包含各種傳感器和硬件組件202、裝置驅(qū)動器模塊204、操作系統(tǒng)206、虛假ui事件檢測模塊212、基于行為的安全模塊214以及動作日志220。所述計算裝置還包含軟件應用程序208和惡意軟件應用程序210,其兩者可經(jīng)由計算裝置200的處理器或處理核心中的一或多者而在所述計算裝置上操作或執(zhí)行。
軟件應用程序208、210可使用應用程序接口(api)來調(diào)用操作系統(tǒng)206的服務。操作系統(tǒng)206可經(jīng)由裝置驅(qū)動器模塊204與傳感器/硬件組件202通信,所述裝置驅(qū)動器模塊可充當或提供傳感器/硬件組件202與操作系統(tǒng)206之間的軟件接口。裝置驅(qū)動器模塊204可經(jīng)配置以經(jīng)由由傳感器/硬件組件202實施的操作代碼(操作碼)和原生命令而控制或與傳感器/硬件組件202通信。裝置驅(qū)動器模塊204可經(jīng)配置以使用從傳感器/硬件組件202接收的原始數(shù)據(jù)以產(chǎn)生適合于由操作系統(tǒng)206解譯和使用的信息。
傳感器/硬件組件202可經(jīng)配置以響應于檢測到用戶交互事件而產(chǎn)生原始數(shù)據(jù)且將原始數(shù)據(jù)發(fā)送到裝置驅(qū)動器模塊204,且裝置驅(qū)動器模塊204可經(jīng)配置以使用從傳感器/硬件組件202接收的原始數(shù)據(jù)以產(chǎn)生適合于由操作系統(tǒng)206解譯和使用的ui事件信息。舉例來說,傳感器/硬件組件202可包含電子觸摸屏顯示器(例如,電容式感測觸摸屏面板等),其經(jīng)配置以在每次用戶觸摸觸摸屏時以x和y位置坐標的形式將原始數(shù)據(jù)發(fā)送到裝置驅(qū)動器模塊204。裝置驅(qū)動器模塊204可經(jīng)配置以將此原始數(shù)據(jù)(即,位置坐標x和y)轉(zhuǎn)換為適合于由操作系統(tǒng)206解譯和使用的ui事件信息(例如,screentouch(x,y))。操作系統(tǒng)206可接收且使用所述ui事件信息以確定應當調(diào)用軟件應用程序208的ontouch(x,y)功能,且致使軟件應用程序208執(zhí)行ontouch(x,y)功能的操作。這些操作可包含打開相機快門、捕獲圖像、處理所捕獲圖像等。
操作系統(tǒng)206和軟件應用程序208兩者可在動作日志220中記錄其相應操作、活動和/或任務。舉例來說,操作系統(tǒng)可在動作日志220中記錄ui事件(例如,screentouch(x,y))的檢測,且軟件應用程序208可在動作日志220中記錄操作(例如,打開相機快門、捕獲圖像、將信息寫入到存儲器等)或其相關(guān)聯(lián)api調(diào)用。
基于行為的安全模塊214可經(jīng)配置以監(jiān)視軟件應用程序208的操作、活動,從動作日志220收集行為信息,使用所收集行為信息以產(chǎn)生行為向量結(jié)構(gòu),將所產(chǎn)生行為向量結(jié)構(gòu)應用于分類器模型以產(chǎn)生分析結(jié)果,且使用分析結(jié)果以確定軟件應用程序208是否為非良性的。作為這些操作的部分,基于行為的安全模塊214可確定軟件應用程序208的行為或活動直接或固有地涉及或需要與裝置的某一形式的用戶交互,響應于確定所述行為/活動直接或固有地涉及或需要用戶交互而確定動作日志220是否包含對應于所述行為/活動的ui事件,且當確定軟件應用程序208是否為非良性時使用評估對應ui事件的存在或現(xiàn)存的行為向量和/或分類器模型。
在圖2中說明的實例中,惡意軟件應用程序210通過產(chǎn)生且發(fā)送虛假ui事件到操作系統(tǒng)而嘗試躲避或避開基于行為的安全模塊214的檢測。舉例來說,惡意軟件應用程序210可激活相機以捕獲圖像而沒有用戶的知道同意,且致使操作系統(tǒng)不正確地記錄對應相機的激活的ui事件的存在。這可致使基于行為的安全模塊214不正確地確定存在對應于受監(jiān)視活動的ui事件。
虛假ui事件檢測模塊212可經(jīng)配置以防止惡意軟件應用程序210躲避或避開基于行為的安全模塊214的檢測。裝置驅(qū)動器模塊204可包含驅(qū)動器儀表化模塊216,其經(jīng)配置以將原始數(shù)據(jù)發(fā)送到虛假ui事件檢測模塊212,且操作系統(tǒng)206可包含操作系統(tǒng)儀表化模塊218,其經(jīng)配置以將ui事件信息發(fā)送到虛假ui事件檢測模塊212。虛假ui事件檢測模塊212可經(jīng)配置以接收來自驅(qū)動器儀表化模塊216的原始數(shù)據(jù)以及來自操作系統(tǒng)儀表化模塊218的ui事件信息,比較所接收原始數(shù)據(jù)與所接收ui事件信息以確定所述ui事件是真實ui事件還是虛假ui事件,且向基于行為的安全模塊214報告虛假ui事件事件。
響應于接收到虛假ui事件的報告,基于行為的安全模塊214可將與虛假ui事件相關(guān)聯(lián)的軟件應用程序分類為非良性的,將與虛假ui事件相關(guān)聯(lián)的軟件應用程序分類為可疑的,更新分類器模型以排除測試與ui事件的存在/現(xiàn)存相關(guān)的條件的決策節(jié)點,或選擇/使用并不測試與ui事件的存在/現(xiàn)存相關(guān)的條件的行為向量和分類器模型。
圖3說明在一個實施例移動計算裝置中的實例邏輯組件和信息流,所述移動計算裝置包含經(jīng)配置以使用行為分析技術(shù)來識別和響應于非良性裝置行為的基于行為的安全模塊214。在圖3中說明的實例中,所述計算裝置是包含裝置處理器(即,移動裝置處理器)的移動裝置300,所述處理器被配置成具有可執(zhí)行指令模塊,所述模塊包含行為觀測器模塊302、行為提取器模塊304、行為分析器模塊306以及致動器模塊308。模塊302到308中的每一者可為以軟件、硬件或其組合實施的線程、進程、后臺程序、模塊、子系統(tǒng)或組件。在各種實施例中,模塊302到308可在操作系統(tǒng)的部分內(nèi)(例如,內(nèi)核內(nèi)、內(nèi)核空間中、用戶空間中等)、單獨程序或應用程序內(nèi)、專用硬件緩沖器或處理器中或其任何組合內(nèi)實施。在一實施例中,模塊302到308中的一或多個可以被實施為在移動裝置300的一或多個處理器上執(zhí)行的軟件指令。
行為觀測器模塊302可經(jīng)配置以在裝置的各種層級/模塊處儀表化應用程序編程接口(api)、計數(shù)器、硬件監(jiān)視器等,且監(jiān)視在一時間周期內(nèi)在各種層級/模塊處的活動、條件、操作和事件(例如,系統(tǒng)事件、狀態(tài)改變等)。行為觀測器模塊302可以收集關(guān)于所監(jiān)視的活動、條件、操作或事件的行為信息,并且將所收集的信息存儲在存儲器中(例如,在日志文件中等)。
在一些實施例中,行為觀測器模塊302可經(jīng)配置以從在計算裝置中操作的軟件應用程序、計算裝置的傳感器和/或從用戶與計算裝置或其軟件應用程序的交互收集基于用戶的信息(例如,用戶個人信息等)。基于用戶的信息可包含適合于識別或表征裝置用戶的活動、裝置使用模式、習慣、情緒、職業(yè)和/或感情狀態(tài)的任何信息。舉例來說,基于用戶的信息可包含識別用戶與裝置的交互、在裝置上執(zhí)行的定制的數(shù)目和類型、由用戶下載或使用的軟件應用程序的類型、用戶觸摸或與屏幕交互的速率、裝置的圖形處理單元(gpu)使用水平、用戶使用裝置與他人通信的頻率、用戶的優(yōu)選通信方法(例如,文字對話音)、用戶通信有多快、裝置存儲器大小等的信息。裝置處理器可使用所收集基于用戶的信息來學習用戶通常如何與計算裝置交互,確定裝置的正常操作模式和/或確定活動、任務或行為是否應當與ui事件相關(guān)聯(lián)。舉例來說,裝置過程可使用基于用戶的信息以確定裝置的正常操作模式是否指示特定活動與特定ui事件相關(guān)聯(lián)和/或不具有其相應ui事件的特定活動的執(zhí)行不與裝置的正常操作模式一致。
行為觀測器模塊302可經(jīng)配置以通過監(jiān)視多種軟件應用程序(或軟件應用程序類型)中的任一者來收集用戶個人信息,所述軟件應用程序包含:日歷應用程序、提醒應用程序、通信應用程序、金融應用程序、用于實現(xiàn)特定任務(例如,文字處理、準備稅制改革、演示應用程序、會計應用程序等)的應用程序、基于位置的應用程序(例如,測繪和地理位置應用程序等)、社交媒體應用程序、網(wǎng)絡瀏覽器(例如,獲得關(guān)于過去搜索、瀏覽歷史、訪問網(wǎng)站類型、訪問網(wǎng)站內(nèi)容等的信息)、娛樂應用程序(例如,音頻或多媒體播放器應用程序)、用于接入用戶帳戶的應用程序(例如,銀行應用程序等)、個人訓練和開發(fā)應用程序等等。
行為觀測器模塊302還可通過從心率監(jiān)視器、血壓監(jiān)視器、溫度計、計步器、血糖儀、濕度傳感器、體內(nèi)酒量測定器、皮膚電響應傳感器或裝置中的其它傳感器獲得數(shù)據(jù)而收集用戶個人信息。舉例來說,行為觀測器模塊302可通過以下方式來收集用戶個人信息:監(jiān)視裝置的地理空間定位和導航系統(tǒng)以確定用戶的當前位置(例如,在辦公室、在家、在餐館、健身房、旅行等)、用戶的當前移動(例如,當前在旅行、在鍛煉、靜止等)、移動歷史(例如,廣泛地旅行、從不離開城鎮(zhèn)等)、用戶是否遵循他的/她的所建立例程(例如,準時上班、仍在工作)或脫離他的/她的例程(例如,比通常更晚到達、比通常更早離開)。
在一些實施例中,移動裝置300的裝置處理器可經(jīng)配置以使用用戶個人信息和/或表征用戶與裝置的交互的信息以產(chǎn)生行為向量和/或分類器模型。舉例來說,裝置處理器可經(jīng)配置以使用用戶交互信息來動態(tài)確定受監(jiān)視的裝置特征、包含在行為向量中的行為信息、包含在分類器模型中(且因此由其評估)的特定裝置特征等等。作為另一實例,裝置處理器可經(jīng)配置以產(chǎn)生分類器模型,所述分類器模型評估聚焦于在某些類型的軟件應用程序(例如,游戲等)的使用或執(zhí)行期間識別ui事件的存在的條件/特征。
在一些實施例中,裝置處理器可經(jīng)配置以確定用戶交互信息是否與分析所收集行為信息的全部或部分相關(guān),產(chǎn)生包含相對于用戶交互(如果相關(guān))評估裝置特征的決策節(jié)點的分類器模型,產(chǎn)生使用戶交互相關(guān)的所收集行為信息相關(guān)的行為向量,且將所產(chǎn)生行為向量應用于所產(chǎn)生分類器模型以確定裝置行為是否為非良性的。
行為觀測器模塊302還可經(jīng)配置以通過收集關(guān)于以下各項的信息而監(jiān)視移動裝置300的活動:應用程序框架或運行時間庫中的庫應用程序編程接口(api)調(diào)用、系統(tǒng)調(diào)用api、文件系統(tǒng)和聯(lián)網(wǎng)子系統(tǒng)操作、裝置(包含傳感器裝置)狀態(tài)改變,以及其它相似事件。另外,行為觀測器模塊302可以監(jiān)視文件系統(tǒng)活動,文件系統(tǒng)活動可包含搜索文件名稱、文件存取的類別(個人信息或普通數(shù)據(jù)文件)、創(chuàng)建或刪除文件(例如,類型exe、zip等)、文件讀取/寫入/搜尋操作、改變文件許可等。
行為觀測器模塊302還可通過監(jiān)視數(shù)據(jù)網(wǎng)絡活動而監(jiān)視移動裝置300的活動,其可包含連接類型、協(xié)議、端口號、裝置連接到的服務器/客戶端、連接的數(shù)目、通信的量或頻率等。行為觀測器模塊302可監(jiān)視電話網(wǎng)絡活動,其可包含監(jiān)視發(fā)出、接收或攔截的呼叫或消息(例如,sms等)的類型和數(shù)目(例如,進行的優(yōu)質(zhì)呼叫的數(shù)目)。
行為觀測器模塊302還可通過監(jiān)視系統(tǒng)資源使用而監(jiān)視移動裝置300的活動,其可包含監(jiān)視復刻的數(shù)目、存儲器存取操作、打開的文件的數(shù)目等。行為觀測器模塊302可監(jiān)視移動裝置300的狀態(tài),其可包含監(jiān)視各種因數(shù),例如顯示器是接通還是斷開、裝置是鎖定還是解鎖、剩余的電池量、相機的狀態(tài)等等。行為觀測器模塊302還可通過例如監(jiān)視關(guān)鍵服務(瀏覽器、聯(lián)系人提供器等)的意圖、進程間通信的程度、彈出式窗口等而監(jiān)視進程間通信(ipc)。
行為觀測器模塊302也可以通過監(jiān)視一或多個硬件組件的驅(qū)動器統(tǒng)計數(shù)據(jù)和/或狀態(tài)來監(jiān)視移動裝置300的活動,這些硬件組件可包含相機、傳感器、電子顯示器、wifi通信組件、數(shù)據(jù)控制器、存儲器控制器、系統(tǒng)控制器、存取端口、計時器、外圍裝置、無線通信組件、外部存儲器芯片、電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍橋接器以及用于支持在移動裝置300上運行的處理器和客戶端的其它類似組件。
行為觀測器模塊302還可通過監(jiān)視表示移動裝置300和/或計算裝置子系統(tǒng)的狀態(tài)的一或多個硬件計數(shù)器而監(jiān)視移動裝置300的活動。硬件計數(shù)器可包含經(jīng)配置以存儲發(fā)生在移動裝置300中的硬件相關(guān)活動或事件的計數(shù)值或狀態(tài)的處理器/核心的專用寄存器。
行為觀測器模塊302還可通過監(jiān)視軟件應用程序的動作或操作、從應用程序下載服務器(例如,
行為觀測器模塊302還可通過監(jiān)視移動裝置300的發(fā)射或通信來監(jiān)視移動裝置300的活動,所述通信包括包含以下各項的通信:話音郵件(voicemailcomm)、裝置識別符(deviceidcomm)、用戶帳戶信息(useraccountcomm)、日歷信息(calendarcomm)、位置信息(locationcomm)、所記錄的音頻信息(recordaudiocomm)、加速度計信息(accelerometercomm)等。
行為觀測器模塊302還可通過監(jiān)視指南針信息、計算裝置設定、電池壽命、陀螺儀信息、壓力傳感器、磁體傳感器、屏幕活動等的使用以及對其的更新/改變而監(jiān)視移動裝置300的活動。行為觀測器模塊302可監(jiān)視傳送到軟件應用程序和從軟件應用程序傳送的通知(appnotifications)、應用程序更新等。行為觀測器模塊302可監(jiān)視關(guān)于第一軟件應用程序請求第二軟件應用程序的下載和/或安裝的條件或事件。行為觀測器模塊302可以監(jiān)視關(guān)于用戶檢驗的條件或事件,例如密碼的輸入等。
行為觀測器模塊302還可通過監(jiān)視在移動裝置300的多個層級處的條件或事件來監(jiān)視移動裝置300的活動,這些層級包括應用程序?qū)蛹墶o線電層級和傳感器層級。應用程序?qū)蛹売^測可包含經(jīng)由面部辨識軟件來觀測用戶、觀測社交流、觀測用戶輸入的筆記、觀測關(guān)于
無線電層級觀測可包含確定以下各項中的任一者或更多的存在、現(xiàn)存或量:在建立無線電通信鏈路或發(fā)射信息之前與移動裝置300的用戶交互、雙/多訂戶識別模塊(sim)卡、因特網(wǎng)無線電、移動電話網(wǎng)絡共享、卸載用于計算的數(shù)據(jù)、裝置狀態(tài)通信、作為游戲控制器或家庭控制器的使用、交通工具通信、計算裝置同步等。無線電層級觀測還可包含監(jiān)視無線電(wifi、wimax、藍牙等)的使用以用于定位、對等式(p2p)通信、同步、交通工具到交通工具通信,和/或機器到機器(m2m)。無線電層級觀測可以進一步包括監(jiān)視網(wǎng)絡業(yè)務使用、統(tǒng)計數(shù)據(jù)或簡檔。
傳感器層級觀測可包含監(jiān)視磁體傳感器或其它傳感器以確定移動裝置300的使用和/或外部環(huán)境。舉例來說,計算裝置處理器可經(jīng)配置以確定裝置是否在皮套中(例如,經(jīng)由皮套內(nèi)的經(jīng)配置以感測磁體的磁體傳感器)或在用戶的口袋中(例如,經(jīng)由相機或光傳感器檢測到的光量)。檢測移動裝置300在皮套中可以與辨識可疑行為相關(guān),舉例來說,因為與用戶的主動使用相關(guān)的活動和功能(例如,拍攝照片或視頻、發(fā)送消息、進行話音呼叫、記錄聲音等)在移動裝置300裝在皮套中的同時發(fā)生可以是在裝置上執(zhí)行違法過程(例如,跟蹤或監(jiān)視用戶)的征兆。
與使用或外部環(huán)境相關(guān)的傳感器層級觀測的其它實例可包含:檢測近場通信(nfc)信令、從信用卡掃描儀、條形碼掃描儀或移動標簽讀取器收集信息、檢測通用串行總線(usb)電力充電源的存在、檢測已經(jīng)耦合到移動裝置300的鍵盤或輔助裝置、檢測移動裝置300已經(jīng)耦合到另一計算裝置(例如,經(jīng)由usb等)、確定led、閃光燈、手電筒或光源是否已經(jīng)是經(jīng)修改或停用的(例如,惡意停用緊急信令應用程序等)、檢測揚聲器或麥克風已經(jīng)接通或供電、檢測充電或電源事件、檢測移動裝置300被用作游戲控制器等。傳感器層級觀測還可包含:從醫(yī)學或醫(yī)療傳感器中收集信息或者通過掃描用戶的身體收集信息、從插入到usb/音頻插孔中的外部傳感器收集信息、從觸感或觸覺傳感器收集信息(例如,經(jīng)由振動器接口等)、收集關(guān)于移動裝置300的熱狀態(tài)的信息等。
為了將所監(jiān)視因數(shù)的數(shù)目減少到可管理的水平,在一個實施例中,行為觀測器模塊302可經(jīng)配置以通過監(jiān)視/觀測行為或因數(shù)的初始集合來執(zhí)行粗略觀測,所述行為或因數(shù)的初始集合是可以造成計算裝置的降級的全部因數(shù)的較小子集。在一個實施例中,行為觀測器模塊302可以從云服務或網(wǎng)絡中的服務器和/或組件中接收行為和/或因數(shù)的初始集合。在一個實施例中,可以在機器學習分類器模型中指定行為/因數(shù)的初始集合。
行為觀測器模塊302可將所收集行為信息傳送(例如,經(jīng)由存儲器寫入操作、功能調(diào)用等)到行為提取器模塊304。行為提取器模塊304可經(jīng)配置以接收或檢索所收集行為信息,且使用此信息以產(chǎn)生一或多個行為向量。每一行為向量可在值或向量數(shù)據(jù)結(jié)構(gòu)中簡明地描述裝置、軟件應用程序或進程的行為。向量數(shù)據(jù)結(jié)構(gòu)可包含數(shù)字的系列,其中的每一系列表示移動裝置的特征或行為,例如移動裝置的相機是否在使用中(例如,為零或一)、已從移動裝置發(fā)射或產(chǎn)生多少網(wǎng)絡業(yè)務(例如,20kb/秒等)、已經(jīng)傳送多少因特網(wǎng)消息(例如,sms消息的數(shù)目等),和/或由行為觀測器模塊302收集的任何其它行為信息。在實施例中,行為提取器模塊304可經(jīng)配置以產(chǎn)生行為向量以使得它們充當識別符,所述識別符使得移動裝置系統(tǒng)(例如,行為分析器模塊306)能夠快速地辨識、識別或分析裝置的行為。
在實施例中,行為提取器模塊304可經(jīng)配置以產(chǎn)生行為向量以包含可輸入到機器學習分類器中的特征/決策節(jié)點的信息以產(chǎn)生對關(guān)于所監(jiān)視的一或多個活動的詢問的回答。
在實施例中,行為提取器模塊304可經(jīng)配置以產(chǎn)生行為向量以包含執(zhí)行信息。執(zhí)行信息可以包含于行為向量中作為行為的一部分(例如,通過后臺過程相機在三秒中使用五次、通過前臺過程相機在三秒中使用三次等)或者作為獨立特征的一部分。在一個實施例中,執(zhí)行狀態(tài)信息可以包含于行為向量中作為陰影特征值子向量或數(shù)據(jù)結(jié)構(gòu)。在一實施例中,行為向量可存儲與同執(zhí)行狀態(tài)相關(guān)的特征、活動、任務相關(guān)聯(lián)的陰影特征值子向量/數(shù)據(jù)結(jié)構(gòu)。
行為提取器模塊304可將所產(chǎn)生行為向量傳送(例如,經(jīng)由存儲器寫入操作、功能調(diào)用等)到行為分析器模塊306。行為分析器模塊306可經(jīng)配置以將行為向量應用于分類器模塊以確定裝置行為是否為隨時間而貢獻于(或可能貢獻于)裝置的降級和/或可能另外對裝置造成問題的非良性行為。
每一分類器模型可以是包含數(shù)據(jù)和/或信息結(jié)構(gòu)(例如,特征向量、行為向量、組件列表等)的行為模型,所述數(shù)據(jù)和/或信息結(jié)構(gòu)可以由計算裝置處理器使用以評估計算裝置的行為的特定特征或?qū)嵤├?。每個分類器模型還可以包括用于監(jiān)視計算裝置中的多個特征、因數(shù)、數(shù)據(jù)點、條目、api、狀態(tài)、條件、行為、應用程序、過程、操作、組件等(本文中統(tǒng)稱為“特征”)的決策標準。分類器模型可以預先安裝在計算裝置上、從網(wǎng)絡服務器中下載或接收、產(chǎn)生于計算裝置中,或其任何組合。分類器模型可以通過使用眾包解決方案、行為模擬技術(shù)、機器學習算法等產(chǎn)生。
每個分類器模型可以分類為完整分類器模型或精益分類器模型。完整分類器模型可以為穩(wěn)健數(shù)據(jù)模型,所述數(shù)據(jù)模型是作為大量培訓數(shù)據(jù)集的函數(shù)產(chǎn)生的,其可包含數(shù)千特征和數(shù)十億的條目。精益分類器模型可以是從簡化數(shù)據(jù)集中產(chǎn)生的更集中的數(shù)據(jù)模型,其僅包含/測試與用于確定特定活動是否是進行中的關(guān)鍵活動和/或特定計算裝置行為是否并不是良性的最相關(guān)的特征/條目。作為實例,裝置處理器可以是可經(jīng)配置以從網(wǎng)絡服務器中接收完整分類器模型、在移動裝置中基于完整分類器產(chǎn)生精益分類器模型,并且使用本地產(chǎn)生的精益分類器模型來將裝置的行為分類為良性或非良性的(即,惡意、性能降級等)。
本地產(chǎn)生的精益分類器模型是產(chǎn)生于計算裝置中的精益分類器模型。即,由于移動裝置是高度可配置且復雜的系統(tǒng),因此對于確定特定裝置行為是否為非良性的(例如,惡意或性能降級)來說最重要的特征可能在每一裝置中不同。另外,可能需要在每個裝置中監(jiān)視和/或分析特征的不同組合以便所述裝置快速地且有效地確定特定行為是否為非良性的。然而,需要監(jiān)視和分析的特征的精確組合和每個特征或特征組合的相對優(yōu)先級或重要性通常僅可以使用從其中行為待監(jiān)視或分析的特定的裝置中獲得的信息來確定。出于這些和其它原因,各種實施例可以在其中使用模型的移動裝置中產(chǎn)生分類器模型。這些本地分類器模型使得裝置處理器能夠準確地識別在確定特定的裝置上的行為是否是非良性的(例如,貢獻于裝置性能降級)中最重要的特定特征。本地分類器模型還允許裝置處理器根據(jù)特征的相對重要性將所測試或評估的特征區(qū)分優(yōu)先級以對所述特定裝置中的行為進行分類。
裝置特定的分類器模型是包括集中數(shù)據(jù)模型的分類器模型,所述集中數(shù)據(jù)模型僅包含/測試經(jīng)確定為與對特定計算裝置中的活動或行為進行分類最相關(guān)的計算裝置特定的特征/條目。
應用程序特定的分類器模型是包含集中數(shù)據(jù)模型的分類器模型,所述集中數(shù)據(jù)模型僅包含/測試與用于評估特定軟件應用程序最相關(guān)的特征/條目。
用戶特定的分類器模型可為包含集中數(shù)據(jù)模型的本地分類器模型,所述集中數(shù)據(jù)模型包含或?qū)εc以下各項最相關(guān)的特征/條目的測試區(qū)分優(yōu)先級:識別裝置的用戶、確定用戶的個人信息、確定裝置行為是否與經(jīng)識別用戶的個人信息一致、確定裝置行為是否與其經(jīng)識別用戶中的一者對所述裝置的普通使用一致,或確定用戶的活動是否指示非良性裝置行為。
通過在移動裝置中本地動態(tài)地產(chǎn)生用戶特定、裝置特定和/或應用程序特定的分類器模型,各種實施例允許裝置處理器將其監(jiān)視和分析操作集中于對確定所述特定移動裝置和/或在所述裝置中操作的特定軟件應用程序的操作是否與所述特定裝置的已知用戶的個性、習慣或普通使用模式一致而言最重要的少數(shù)特征。
在實施例中,行為分析器模塊306可經(jīng)配置以當其行為分析操作的結(jié)果并不提供足夠信息以將裝置行為分類為良性或非良性時將行為分類為“可疑”。行為分析器模塊306可經(jīng)配置以響應于確定裝置行為是可疑的而通知行為觀測器模塊302。作為響應,行為觀測器模塊302可調(diào)整其觀測的粒度(即,監(jiān)視到計算裝置特征的細節(jié)水平)和/或改變基于從行為分析器模塊306接收的信息(例如,實時分析操作的結(jié)果)監(jiān)視的因數(shù)或行為,產(chǎn)生或收集新的或額外的行為信息,并且發(fā)送新的/額外的信息到行為分析器模塊306以用于進一步的分析/分類。行為觀測器模塊302與行為分析器模塊306之間的此類反饋通信使得移動裝置300能夠以遞歸方式增大觀測的粒度(即,進行更加精細或更加詳細的觀測)或改變所觀測到的特征/行為直到共同行為被分類為良性或非良性的、識別出可疑或性能降級行為的來源、直到達到處理或電池消耗閾值為止,或直到裝置處理器確定可疑或性能降級裝置行為的來源無法通過觀測粒度的進一步的改變、調(diào)整或增加而識別為止。此類反饋通信還使得移動裝置300能夠調(diào)整或修改行為向量和分類器模型而不會消耗過量的計算裝置的處理、存儲器或能量資源。
在實施例中,行為分析器模塊306可經(jīng)配置以接收且分析由各種移動裝置子系統(tǒng)和/或在各種時間周期中收集的信息以學習移動裝置在多種情境和條件下的正常操作行為,且產(chǎn)生在各種情境/條件下的正常移動裝置行為的模型(例如,呈分類器模型等的形式)。在實施例中,行為分析器模塊306可經(jīng)配置以對照所產(chǎn)生行為模型使所收集行為信息或行為向量相關(guān),且基于所述相關(guān)而執(zhí)行行為分析操作以確定所接收觀測是否與學習的正常操作行為沖突(或不匹配)。
作為高級實例,移動裝置300可能檢測(經(jīng)由所收集行為信息)到相機已經(jīng)使用、移動裝置300正在嘗試將圖片上載到服務器,以及當裝置在皮套中且附接到用戶的皮帶時在移動裝置上的應用程序拍攝照片。移動裝置300可確定此檢測到的行為(例如,在皮套中時相機的使用)是否為對于用戶可接受或常見的行為。這可通過將所檢測行為(例如,所產(chǎn)生行為向量)與移動裝置300或用戶的過去行為進行比較而實現(xiàn)。由于在皮套中時拍攝照片且將照片上載到服務器是不尋常的行為(如從在皮套中的情境中觀測到的正常行為可確定),因此在此情形下,計算裝置可將此辨識為與用戶對計算裝置的普通使用模式不一致,且起始適當?shù)捻憫?例如,關(guān)斷相機、發(fā)出警報聲等)。
在各種實施例中,移動裝置300可經(jīng)配置以結(jié)合網(wǎng)絡服務器工作以智能地且有效地識別與確定活動或行為是否是非良性的最相關(guān)的特征、因數(shù)和數(shù)據(jù)點。舉例來說,裝置處理器可經(jīng)配置以從網(wǎng)絡服務器接收完整分類器模型,并且使用接收到的完整分類器模型來產(chǎn)生特定針對于裝置的用戶和/或裝置或其軟件應用程序的特征和功能性的精益分類器模型(即,數(shù)據(jù)/行為模型)。裝置處理器可使用完整分類器模型來產(chǎn)生不同復雜度水平(或“精益度”)的一系列精益分類器模型。可以常規(guī)地應用最精益系列的精益分類器模型(即,基于最少數(shù)目的測試條件的精益分類器模型)直到遇到分類器模型無法將其分類為良性或非良性(并且因此被模型分類為可疑)的行為,此時可以應用更加穩(wěn)健(即,不太精益)的精益分類器模型以嘗試對所述行為進行分類。可以應用在所述系列的所產(chǎn)生精益分類器模型內(nèi)的甚至更加穩(wěn)健的精益分類器模型的應用直到實現(xiàn)行為的確定性分類。以此方式,裝置處理器可以通過將最完整但是資源密集型精益分類器模型的使用限制于其中需要穩(wěn)健分類器模型以確定性地對行為進行分類的那些情況而在效率與準確性之間形成均衡。
在各種實施例中,裝置處理器可經(jīng)配置以通過將包含于完整分類器模型中的有限狀態(tài)機表示或表達轉(zhuǎn)換為增強的決策柱而產(chǎn)生精益分類器模型。裝置處理器可基于用戶個人信息或用戶特定的裝置特征而刪除或挑選增強的決策柱的完整集合以產(chǎn)生包括包含于完整分類器模型中的增強的決策柱的子集的精益分類器模型。裝置處理器可隨后使用精益分類器模型以智能地監(jiān)視、分析裝置行為和/或?qū)ρb置行為進行分類。
增強的決策柱是具有恰好一個節(jié)點(并且因此一個測試問題或測試條件)和權(quán)重值的一個層級決策樹,并且因此較適合于在數(shù)據(jù)/行為的二進制分類中使用。也就是說,將行為向量應用于增強的決策柱引起二進制回答(例如,是或否)。舉例來說,如果通過增強的決策柱測試的問題/條件是“短消息服務(sms)發(fā)射的頻率小于每分鐘x”,那么將“3”的值應用于增強的決策柱將引起“是”的回答(對于“小于3”的sms發(fā)射)或“否”的回答(對于“3或大于3的”sms發(fā)射)。增強的決策柱是高效的因為它們是非常簡單且原始的(并且因此并不需要相當大的處理資源)。增強的決策柱也是非??刹⑿谢模⑶乙虼嗽S多柱可以并行/同時應用或測試(例如,通過計算裝置中的多個核心或處理器)。
圖4a說明根據(jù)一實施例的檢測且響應于虛假ui事件的方法400。方法400可由移動或資源受限的計算裝置的裝置處理器執(zhí)行。在框402中,裝置處理器可從計算裝置的一或多個裝置驅(qū)動器接收原始數(shù)據(jù)。在框404中,裝置處理器可從計算裝置的高層級操作系統(tǒng)(hlos)接收用戶交互(ui)信息。在框406中,裝置處理器可將從裝置驅(qū)動器接收的原始數(shù)據(jù)與從hlos接收的用戶交互事件信息進行比較以產(chǎn)生第一分析結(jié)果。
在確定框408中,裝置處理器可使用所產(chǎn)生第一分析結(jié)果以確定用戶交互(ui)事件是否與用戶交互相關(guān)。此確定可評估從一或多個裝置驅(qū)動器接收的原始數(shù)據(jù)是否匹配或另外相關(guān)于報告給hlos/由hlos報告的ui事件。如果裝置驅(qū)動器原始數(shù)據(jù)不相關(guān)(或匹配)于來自hlos的ui信息,那么這可指示所接收ui事件是虛假的,且計算裝置可將所檢測ui事件分類為虛假ui事件。
響應于確定ui事件與用戶交互相關(guān),且因此ui事件不是虛假ui事件(即,確定框408=“是”),裝置處理器可在框410中將行為向量應用于分類器模型以產(chǎn)生第二分析結(jié)果。在框412中,裝置處理器可使用第二分析結(jié)果以確定裝置行為是否為非良性的。作為框410和412的操作的部分,裝置處理器可執(zhí)行上文參考圖3論述的操作中的任一者或全部。
響應于確定ui事件不與用戶交互相關(guān),且因此ui事件是虛假ui事件(即,確定框408=“否”),裝置處理器可在框414中向計算裝置的基于行為的安全系統(tǒng)報告虛假ui事件。在框414中,裝置處理器可(例如,經(jīng)由基于行為的安全系統(tǒng))將所述裝置行為分類為非良性的。因此,在實施例中,基于行為的安全系統(tǒng)可經(jīng)配置以將經(jīng)確定為與虛假ui事件相關(guān)聯(lián)的所有軟件應用程序分類為非良性的。
圖4b說明根據(jù)另一實施例的檢測且響應于虛假ui事件的另一方法420。方法420可由移動或資源受限的計算裝置的裝置處理器執(zhí)行,所述計算裝置以處理器可執(zhí)行指令配置以執(zhí)行所述方法的操作。在框422中,裝置處理器可將從一或多個裝置驅(qū)動器接收的原始數(shù)據(jù)與從hlos接收的ui信息進行比較。在確定框424中,裝置處理器可使用所述比較結(jié)果以確定ui事件是否與用戶交互相關(guān)且因此是或不是虛假ui事件。響應于確定ui事件與用戶交互相關(guān),且因此ui事件不是虛假ui事件(即,確定框424=“是”),裝置處理器可在框426中通過將行為向量應用于分類器模型而產(chǎn)生分析結(jié)果,所述分類器模型包含測試與用戶交互相關(guān)的條件的決策節(jié)點。在框428中,裝置處理器可使用所述分析結(jié)果以確定裝置行為(例如,軟件應用程序的活動等)是否為非良性的。
響應于確定ui事件不與用戶交互相關(guān),且因此ui事件是虛假ui事件(即,確定框424=“否”),裝置處理器可在框430中向基于行為的安全系統(tǒng)報告虛假ui事件。在框432中,裝置處理器可通過在框426中將行為向量應用于分類器模型而產(chǎn)生分析結(jié)果,所述分類器模型不包含測試與用戶交互相關(guān)的條件的任何決策節(jié)點。在框428中,使用分析結(jié)果以確定裝置行為(例如,軟件應用程序的活動等)是否為非良性的。
各種實施例也可以用來辨識或至少識別泄密的用戶輸入傳感器裝置驅(qū)動器的可能性。這些能力可有用于辨識惡意軟件何時已包括或?qū)⒚娌縰i事件插入到用于用戶輸入裝置或傳感器的裝置驅(qū)動器中。舉例來說,如果用于觸摸屏的裝置驅(qū)動器已泄密,那么從裝置驅(qū)動器接收(例如,在框402中)的原始數(shù)據(jù)可能自身為虛假的,在此情況下比較來自hlos的ui信息可能不足以檢測此水平的攻擊。
為了解決此可能,圖4c說明根據(jù)另一實施例的用于檢測且響應于泄密的用戶輸入傳感器裝置驅(qū)動器的另一方法450。方法450可由移動或資源受限的計算裝置的裝置處理器執(zhí)行,且可除上述方法400和420之外或作為其中任一者的替代而執(zhí)行。在框452中,裝置處理器可比較從一或多個用戶輸入傳感器接收的原始數(shù)據(jù)與從輸入傳感器裝置驅(qū)動器接收的數(shù)據(jù)。舉例來說,裝置處理器可接收由觸摸屏提供的原始輸出數(shù)據(jù)且比較所述數(shù)據(jù)與從觸摸屏裝置驅(qū)動器接收的數(shù)據(jù)。
在確定框454中,裝置處理器可使用所述比較結(jié)果以確定用戶輸入傳感器數(shù)據(jù)是否與對應裝置驅(qū)動器數(shù)據(jù)相關(guān)。此確定可考慮傳感器數(shù)據(jù)和裝置驅(qū)動器數(shù)據(jù)的不同格式。舉例來說,裝置處理器可以類似于裝置驅(qū)動器的方式應用變換或分析原始傳感器數(shù)據(jù)以便基于原始傳感器數(shù)據(jù)確定應當接收的裝置驅(qū)動器輸出數(shù)據(jù),且然后比較所接收裝置驅(qū)動器數(shù)據(jù)與預期數(shù)據(jù)以確定是否存在匹配。舉例來說,在確定框454中,裝置處理器可進入由觸摸屏提供的輸出數(shù)據(jù)流,處理觸摸屏幕數(shù)據(jù)流以確定來自觸摸屏裝置驅(qū)動器的適當輸出,且然后比較所確定的適當輸出與由觸摸屏裝置驅(qū)動器產(chǎn)生的原始數(shù)據(jù)。
響應于確定原始ui傳感器數(shù)據(jù)與從用于所述傳感器的裝置驅(qū)動器接收的原始數(shù)據(jù)相關(guān)(即,確定框454=“是”),裝置處理器可通過如上文所描述在框426中將行為向量應用于分類器模型而產(chǎn)生分析結(jié)果,所述分類器模型包含測試與用戶交互相關(guān)的條件的決策節(jié)點。
響應于確定原始ui傳感器數(shù)據(jù)與從用于所述傳感器的裝置驅(qū)動器接收的原始數(shù)據(jù)相關(guān)(即,確定框424=“否”),裝置處理器可在框456中向基于行為的安全系統(tǒng)報告裝置驅(qū)動器潛在地被破壞。在一些實施例中,缺乏原始傳感器數(shù)據(jù)到裝置驅(qū)動器數(shù)據(jù)的相關(guān)可足以確定惡意軟件或類似地不可接受的條件存在,在此情況下向基于行為的安全系統(tǒng)的報告可足以將裝置行為(例如,軟件應用程序的活動)分類為非良性。然而,在一些實施例中,原始傳感器數(shù)據(jù)與裝置驅(qū)動器數(shù)據(jù)的比較可能不足以確定性地確定裝置驅(qū)動器泄密,因為數(shù)據(jù)失配可能是由于傳感器的問題、傳感器與裝置驅(qū)動器之間的連接中的噪聲、裝置驅(qū)動器是與在確定框454中由裝置處理器模擬的版本不同的版本等等。因此,在此類實施例中,向安全系統(tǒng)的報告可能僅為存在裝置驅(qū)動器已泄密的可能,并且基于行為的安全系統(tǒng)的進一步分析可為必要的(例如,框432和428中)以便將裝置行為分類為良性或非良性。
在框432中,裝置處理器可如上文所描述通過將行為向量應用于分類器模型而產(chǎn)生分析結(jié)果,所述分類器模型不包含測試與用戶交互相關(guān)的條件的任何決策節(jié)點。此分析可避免受到在裝置驅(qū)動器層級起始的虛假ui事件的欺騙,以及避免可能由ui傳感器和傳感器的裝置驅(qū)動器中的任一者中或之間的故障引起的錯誤肯定。
在框428中,裝置處理器可如上文所描述使用來自框426或432的分析結(jié)果以確定裝置行為(例如,軟件應用程序的活動等)是否為非良性的。
圖5說明使用一系列精益分類器模型對計算裝置中的裝置行為進行分類的實施例方法500。方法500可由移動或資源受限的計算裝置的裝置處理器執(zhí)行,所述計算裝置以處理器可執(zhí)行指令配置以執(zhí)行所述方法的操作。
在框502中,裝置處理器可執(zhí)行觀測以從在移動裝置系統(tǒng)的各種層級處儀表化的各種組件收集行為信息。在實施例中,這可經(jīng)由上文參考圖3所論述的行為觀測器模塊302而實現(xiàn)。在框504中,裝置處理器可產(chǎn)生表征所收集行為信息和/或移動裝置行為的行為向量。另外,在框504中,裝置處理器可以使用從網(wǎng)絡服務器接收的完整分類器模型以產(chǎn)生不同復雜度水平(或“精益度”)的精益分類器模型或一系列精益分類器模型。為了實現(xiàn)這一點,裝置處理器可以剔除包含于完整分類器模型中的一系列增強的決策柱以產(chǎn)生包含減少的數(shù)目的增強的決策柱和/或評估有限數(shù)目的測試條件的精益分類器模型。在實施例中,精益分類器模型中的一或多者可為用戶特定的分類器模型。
在框506中,裝置處理器可以選擇在所述系列的精益分類器模型中的最精益的分類器(即,基于最少數(shù)目的不同的移動裝置狀態(tài)、特征、行為或條件的模型),但所述最精益的分類器尚未由移動裝置評估或應用。在一實施例中,這可以通過裝置處理器選擇分類器模型的有序列表中的第一分類器模型而實現(xiàn)。在框508中,裝置處理器可以將所收集的行為信息或行為向量應用于所選擇的精益分類器模型中的每個增強的決策柱。因為增強的決策柱是二進制決策并且精益分類器模型是通過基于同一測試條件選擇許多二進制決策產(chǎn)生的,所以將行為向量應用于精益分類器模型中的增強的決策柱的過程可以在并行操作中執(zhí)行。替代地,行為向量可經(jīng)截斷或過濾以僅包含有限數(shù)目的包含于精益分類器模型中的測試條件參數(shù),從而進一步減少應用所述模型時的計算努力。
在框510中,裝置處理器可以計算或確定將所收集的行為信息應用于精益分類器模型中的每個增強的決策柱的結(jié)果的加權(quán)平均。在框512中,裝置處理器可將所計算加權(quán)平均與閾值進行比較。在確定框514中,裝置處理器可以確定此比較的結(jié)果和/或通過應用所選擇的精益分類器模型產(chǎn)生的結(jié)果是否為可疑的。舉例來說,裝置處理器可以確定這些結(jié)果是否可用于以較高程度的置信度將行為分類為惡意或良性的,并且如果不是則將行為作為可疑的對待。
如果裝置處理器確定所述結(jié)果是可疑的(例如,確定框514=“是”),那么裝置處理器可重復框506到512中的操作以選擇和應用較強(即,較不精益)分類器模型,其評估更多裝置狀態(tài)、特征、行為或條件直到以高度的置信度將行為分類為惡意或良性的。如果裝置處理器確定結(jié)果不是可疑的(例如,確定框514=“否”),例如通過確定行為可以高度的置信度被分類為惡意或良性的,那么在框516中,裝置處理器可以使用產(chǎn)生于框512中的比較的結(jié)果以將移動裝置的行為分類為良性或潛在惡意的。
在替代實施例方法中,上文所述的操作可以依序通過以下各項而實現(xiàn):選擇并非已經(jīng)在精益分類器模型中的增強的決策柱;識別取決于與所選擇的決策柱相同的移動裝置狀態(tài)、特征、行為或條件(且因此可以基于一個確定結(jié)果應用)的全部其它增強的決策柱;在精益分類器模型中包含所選擇的和取決于相同移動裝置狀態(tài)、特征、行為或條件的全部所識別的其它增強的決策柱;并且以等于測試條件的所確定數(shù)目的次數(shù)重復所述過程。因為取決于與所選擇的增強的決策柱相同的測試條件的全部增強的決策柱每次被添加到精益分類器模型,所以限制執(zhí)行這一過程的次數(shù)將限制包含于精益分類器模型中的測試條件的數(shù)目。
圖6說明根據(jù)各種實施例的適合于產(chǎn)生適合使用的決策樹/分類器的實例方法600。方法600可由移動或資源受限的計算裝置的裝置處理器執(zhí)行,所述計算裝置以處理器可執(zhí)行指令配置以執(zhí)行所述方法的操作。在框602中,裝置處理器可以產(chǎn)生和/或執(zhí)行決策樹/分類器、從決策樹/分類器的執(zhí)行中收集訓練樣本,并且基于訓練樣本產(chǎn)生新的分類器模型(h1(x))。訓練樣本可包含從移動裝置行為、軟件應用程序或移動裝置中的過程的先前觀測或分析中收集的信息。訓練樣本和/或新的分類器模型(h1(x))可基于包含在先前分類器中的問題或測試條件的類型和/或基于從先前數(shù)據(jù)/行為模型或分類器的執(zhí)行/應用中收集的準確性或性能特性而產(chǎn)生。
在框604中,裝置處理器可以增強(或增加)通過所產(chǎn)生的決策樹/分類器(h1(x))錯分類的條目的權(quán)重以產(chǎn)生第二新樹/分類器(h2(x))。在一實施例中,訓練樣本和/或新分類器模型(h2(x))可以基于分類器的先前執(zhí)行或使用(h1(x))的錯誤率而產(chǎn)生。在一實施例中,訓練樣本和/或新分類器模型(h2(x))可以基于確定為對分類器的先前執(zhí)行或使用中的錯誤率或數(shù)據(jù)點的錯分類有貢獻的屬性而產(chǎn)生。
在一實施例中,錯分類條目可以基于它們的相對準確性或有效性而加權(quán)。在操作606中,處理器可以增強(或增加)通過所產(chǎn)生的第二樹/分類器(h2(x))錯分類的條目的權(quán)重以產(chǎn)生第三新樹/分類器(h3(x))。在操作608中,可重復604到606的操作以產(chǎn)生“t”數(shù)目的新樹/分類器(ht(x))。
通過增強或增加通過第一決策樹/分類器(h1(x))錯分類的條目的權(quán)重,第二樹/分類器(h2(x))可以更準確地對通過第一決策樹/分類器(h1(x))錯分類的實體進行分類,但是也可能對通過第一決策樹/分類器(h1(x))正確地分類的實體中的一些進行錯分類。類似地,第三樹/分類器(h3(x))可準確地對由第二決策樹/分類器(h2(x))錯分類的實體進行分類并且對通過第二決策樹/分類器(h2(x))正確地分類的實體中的一些進行錯分類。也就是說,產(chǎn)生所述系列的樹/分類器h1(x)-ht(x)不會導致整體收斂的系統(tǒng),而是導致可以并行地執(zhí)行的多個決策樹/分類器。
圖7說明了根據(jù)一實施例用于執(zhí)行動態(tài)和自適應觀測的實例方法700。方法700可由移動或資源受限的計算裝置的裝置處理器執(zhí)行,所述計算裝置以處理器可執(zhí)行指令配置以執(zhí)行所述方法的操作。在框702中,裝置處理器可通過監(jiān)視/觀測可能貢獻于移動裝置的降級的大量因數(shù)、行為和活動的子集而執(zhí)行粗略觀測。在框703中,裝置處理器可產(chǎn)生表征所述粗略觀測和/或基于粗略觀測的移動裝置行為的行為向量。在框704中,裝置處理器可識別與粗略觀測相關(guān)聯(lián)的可能潛在地貢獻于移動裝置的降級的子系統(tǒng)、過程和/或應用程序。舉例來說,這可以通過比較從多個來源接收的信息與從移動裝置的傳感器接收的情境信息而實現(xiàn)。在框706中,裝置處理器可基于粗略觀測而執(zhí)行行為分析操作。
在確定框708中,裝置處理器可以確定可疑行為或潛在問題是否可以基于行為分析的結(jié)果得到識別和校正。當裝置處理器確定可疑行為或潛在問題可以基于行為分析的結(jié)果得到識別和校正時(即,確定框708=“是”),在框718中,處理器可以起始過程以校正行為并且返回到框702以執(zhí)行額外的粗略觀測。
當裝置處理器確定可疑行為或潛在問題無法基于行為分析的結(jié)果得到識別和/或校正時(即,確定框708=“否”),在確定框709中裝置處理器可以確定是否存在問題的可能性。在一實施例中,裝置處理器可以確定存在問題的可能性,方法是計算移動裝置遇到潛在問題和/或參與可疑行為的概率,并且確定計算出的概率是否大于預定閾值。當裝置處理器確定所計算概率不大于預定閾值和/或不存在可疑行為或潛在問題存在和/或可檢測的可能性時(即,確定框709=“否”),處理器可返回到框702以執(zhí)行額外粗略觀測。
當裝置處理器確定存在可疑行為或潛在問題存在和/或可檢測的可能性時(即,確定框709=“是”),在框710中,裝置處理器可在所識別的子系統(tǒng)、過程或應用程序上執(zhí)行更深入的記錄/觀測或最終記錄。在框712中,裝置處理器可在所識別的子系統(tǒng)、過程或應用程序上執(zhí)行更深入且更詳細的觀測。在框714中,裝置處理器可以基于更深入且更詳細的觀測執(zhí)行進一步和/或更深入的行為分析。在確定框708中,裝置處理器可以再次確定可疑行為或潛在問題是否可以基于更深入的行為分析的結(jié)果得到識別和校正。當裝置處理器確定可疑行為或潛在問題無法基于更深入的行為分析的結(jié)果得到識別和校正時(即,確定框708=“否”),處理器可以重復在框710到714中的操作直到細節(jié)水平足夠精細以識別問題或直到確定所述問題無法通過額外的細節(jié)得到識別或不存在問題為止。
當裝置處理器確定可疑行為或潛在問題可以基于更深入行為分析的結(jié)果得到識別和校正時(即,確定框708=“是”),在框718中,裝置處理器可以執(zhí)行操作以校正問題/行為,并且處理器可以返回到框702以執(zhí)行額外的操作。
在一實施例中,作為方法700的框702到718的一部分,裝置處理器可執(zhí)行系統(tǒng)的行為的實時行為分析以從有限的且粗略的觀測中識別可疑行為、動態(tài)地確定行為以更詳細地觀測,并且動態(tài)地確定觀測所需要的精確細節(jié)水平。這使得裝置處理器能夠有效地識別問題并且防止問題的發(fā)生,而無需使用裝置上的大量的處理器、存儲器或電池資源。
各種實施例通過使用行為分析和/或機器學習技術(shù)(與基于許可、策略或規(guī)則的方法相反)以監(jiān)視和分析軟件應用程序的選擇群組的共同行為來改進現(xiàn)有解決方案。行為分析或機器學習技術(shù)的使用是重要的,這是因為現(xiàn)代計算裝置是高度可配置的且復雜的系統(tǒng),并且對于確定軟件應用程序是否是串通的最重要的因素在每個裝置中可能是不同的。另外,裝置特征/因數(shù)的不同組合可能需要在每個裝置中的分析以便所述裝置確定軟件應用程序是否是串通的。但需要監(jiān)視和分析的特征/因數(shù)的精確組合常常僅可使用從其中執(zhí)行一或多個活動的特定計算裝置獲得的信息且在所述活動/多個活動在進行中時確定。出于這些和其它原因,現(xiàn)有解決方案無法勝任在行為進行中的同時實時監(jiān)視、檢測和表征計算裝置中的多個軟件應用程序的共同行為或它們之間的關(guān)系,且不消耗大量的計算裝置的處理、存儲器或電力資源。
包含上文參考圖2到7所論述的實施例的各種實施例可在以處理器可執(zhí)行指令配置的多種計算裝置上實施,所述計算裝置的實例在圖8中以智能電話的形式說明。智能電話800可包含處理器802,其耦合到內(nèi)部存儲器804、顯示器812和揚聲器814。另外,智能電話800可包含用于發(fā)送和接收電磁輻射的天線,其可連接到耦合到處理器802的無線數(shù)據(jù)鏈路和/或蜂窩式電話收發(fā)器808。智能電話800通常還包含用于接收用戶輸入的菜單選擇按鈕或搖臂開關(guān)820。
典型智能電話800還包含聲音編碼/解碼(編解碼器)電路806,所述電路將從麥克風接收的聲音數(shù)字化為適合于無線發(fā)射的數(shù)據(jù)包,且解碼所接收的聲音數(shù)據(jù)包以產(chǎn)生提供到揚聲器以產(chǎn)生聲音的模擬信號。而且,處理器802、無線收發(fā)器808及編解碼器806中的一或多者可包含數(shù)字信號處理器(dsp)電路(未單獨地展示)。
處理器802可為可由處理器可執(zhí)行指令(應用程序)配置以執(zhí)行多種功能和操作(包含如下所述的各種實施例的操作)的任何可編程微處理器、微型計算機或多處理器芯片。在一些移動裝置中,可以提供多個處理器802,例如一個處理器專用于無線通信功能,并且一個處理器專用于運行其它應用程序。通常,軟件應用程序可在它們被存取且加載到處理器802中之前存儲在內(nèi)部存儲器804中。處理器802可包含足以存儲應用程序軟件指令的內(nèi)部存儲器。在各種實施例中,處理器802可為裝置處理器、處理核心或soc(例如在圖1中說明的實例soc100)。在實施例中,智能電話800可包含soc,且處理器802可為包含在所述soc中的處理器中的一者(例如在圖1中說明的處理器102、104、106、108、110中的一者)。
各種實施例可進一步包含計算裝置,其包含用于將從用戶輸入裝置接收的原始數(shù)據(jù)與用戶交互事件信息進行比較以產(chǎn)生分析結(jié)果的裝置,以及用于使用所產(chǎn)生分析結(jié)果以確定用戶交互(ui)事件是否與計算裝置的用戶相關(guān)的裝置。在一些實施例中,所述用于將從用戶輸入裝置接收的原始數(shù)據(jù)與用戶交互事件信息進行比較以產(chǎn)生分析結(jié)果的裝置可包含用于將從裝置驅(qū)動器接收的原始數(shù)據(jù)與從高層級操作系統(tǒng)接收的交互信息進行比較的裝置。在一些實施例中,所述計算裝置可進一步包含用于響應于確定所述ui事件不與計算裝置的用戶相關(guān)而將軟件應用程序的活動分類為非良性的裝置。在一些實施例中,所述計算裝置可進一步包含:用于產(chǎn)生表征軟件應用程序的活動的行為向量的裝置;用于響應于確定ui事件不與計算裝置的用戶相關(guān)而將所產(chǎn)生行為向量應用于包含決策節(jié)點的分類器模型的裝置,所述決策節(jié)點評估是否存在對應于所述活動的ui事件;以及用于使用將所產(chǎn)生行為向量應用于所述分類器模型的結(jié)果以確定軟件應用程序的活動是否為非良性的裝置。在一些實施例中,所述計算裝置可進一步包含:用于產(chǎn)生表征軟件應用程序的活動的行為向量的裝置;用于響應于確定ui事件不與計算裝置的用戶相關(guān)而選擇不包含決策節(jié)點的分類器模型的裝置,所述決策節(jié)點測試是否存在對應于所述活動的ui事件;用于將所產(chǎn)生行為向量應用于選定分類器模型以產(chǎn)生額外分析結(jié)果的裝置;以及用于使用所產(chǎn)生額外分析結(jié)果以確定軟件應用程序的活動是否為非良性的裝置。在一些實施例中,所述計算裝置可進一步包含:用于響應于確定ui事件不與計算裝置的用戶相關(guān)而選擇一系列穩(wěn)健分類器模型的裝置;以及用于將多個行為向量應用于選定系列的穩(wěn)健分類器模型以確定軟件應用程序的活動是否為非良性的裝置。
如本申請中所使用,術(shù)語“組件”、“模塊”等等意圖包括計算機相關(guān)實體,例如但不限于,硬件、固件、硬件與軟件的組合、軟件或執(zhí)行中的軟件,其經(jīng)配置以執(zhí)行特定操作或功能。舉例來說,組件可為但不限于在處理器上運行的過程、處理器、對象、可執(zhí)行程序、執(zhí)行線程、程序和/或計算機。借助于說明,在計算裝置上運行的應用程序以及所述計算裝置可被稱為組件。一或多個組件可以駐留在過程和/或執(zhí)行線程內(nèi),并且組件可以局部化于一個處理器或核心上和/或分布在兩個或大于兩個處理器或核心之間。另外,這些組件可以從具有存儲在其上的各種指令和/或數(shù)據(jù)結(jié)構(gòu)的各種非暫時性計算機可讀媒體中執(zhí)行。組件可以借助于本地和/或遠程過程、功能或過程調(diào)用、電子信號、數(shù)據(jù)包、存儲器讀取/寫入和其它已知的網(wǎng)絡、計算機、處理器和/或過程相關(guān)通信方法進行通信。
用于在可編程處理器上執(zhí)行以用于執(zhí)行各種實施例的操作的計算機程序代碼或“程序代碼”可以例如c、c++、c#、smalltalk、java、javascript、visualbasic、結(jié)構(gòu)化查詢語言(例如,transact-sql)、perl或各種其它編程語言等高級編程語言編寫。存儲在計算機可讀存儲媒體上的程序代碼或程序如在本申請中所使用可以指機器語言代碼(例如,目標代碼),所述機器語言代碼的格式可由處理器理解。
許多移動計算裝置操作系統(tǒng)內(nèi)核被組織到用戶空間(其中運行非特許代碼)和內(nèi)核空間(其中運行特許代碼)中。這一分離在
前述方法描述和過程流程圖僅僅作為說明性實例提供,并且其并不意圖要求或暗示各種實施例的操作必須以所呈現(xiàn)的順序進行。如所屬領(lǐng)域的技術(shù)人員將了解,可以任何次序執(zhí)行前述實施例中的操作的次序。例如“此后”、“接著”、“接下來”等詞無意限制操作的次序;這些詞僅用以引導讀者瀏覽對方法的描述。另外,舉例來說,使用冠詞“一”、“一個”或“所述”對單數(shù)形式的權(quán)利要求要素的任何參考不應被解釋為將所述要素限制為單數(shù)。
結(jié)合本文中所公開的實施例描述的各種說明性邏輯塊、模塊、電路和算法操作可實施為電子硬件、計算機軟件,或兩者的組合。為了清楚地說明硬件與軟件的此可互換性,上文已大體上就其功能性來說描述了各種說明性組件、塊、模塊、電路和步驟。此類功能性是實施為硬件還是軟件取決于具體應用及強加于整個系統(tǒng)的設計約束。熟練的技術(shù)人員可以針對每一特定應用以不同方式來實施所描述的功能性,但此類實施決策不應被解釋為會導致脫離本發(fā)明的范圍。
用于實施結(jié)合本文中所揭示的實施例而描述的各種說明性邏輯、邏輯塊、模塊和電路的硬件可用以下各項來實施或執(zhí)行:通用處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或經(jīng)設計以執(zhí)行本文中所描述的功能的其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件,或其任何組合。通用處理器可為多處理器,但在替代方案中,處理器可為任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機。處理器也可以被實施為計算裝置的組合,例如,dsp和多處理器的組合、多個多處理器、一或多個多處理器結(jié)合dsp核心,或任何其它此類配置。替代地,可由特定地針對給定功能的電路來執(zhí)行一些步驟或方法。
在一或多個示范性實施例中,所述功能可以在硬件、軟件、固件或其任何組合中實施。如果在軟件中實施,那么所述功能可以作為一或多個處理器可執(zhí)行指令或代碼存儲在非暫時性計算機可讀儲存媒體或非暫時性處理器可讀存儲媒體上。本文所揭示的方法或算法的操作可實施于處理器可執(zhí)行軟件模塊中,所述軟件模塊可呈存儲在非暫時性計算機可讀存儲媒體或處理器可讀存儲媒體上的所存儲處理器可執(zhí)行軟件指令的形式。非暫時性計算機可讀或處理器可讀媒體可為可由計算機或處理器存取的任何存儲媒體。借助實例但非限制,此類非暫時性計算機可讀或處理器可讀媒體可包含ram、rom、eeprom、快閃存儲器、cd-rom或其它光盤存儲器、磁盤存儲器或其它磁性存儲裝置,或可用于以指令或數(shù)據(jù)結(jié)構(gòu)的形式存儲所要的程序代碼且可由計算機存取的任何其它媒體。如本文中所使用的磁盤和光盤包含壓縮光盤(cd)、激光光盤、光學光盤、數(shù)字多功能光盤(dvd)、軟盤和藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤用激光以光學方式再現(xiàn)數(shù)據(jù)。以上各者的組合還包含在非暫時性計算機可讀和處理器可讀媒體的范圍內(nèi)。另外,方法或算法的操作可作為代碼和/或指令中的一者或任何組合或集合而駐留在可并入到計算機程序產(chǎn)品中的非暫時性處理器可讀媒體和/或計算機可讀媒體上。
提供對所揭示的實施例的先前描述以使所屬領(lǐng)域的技術(shù)人員能夠制作或使用本發(fā)明。所屬領(lǐng)域的技術(shù)人員將容易了解對這些實施例的各種修改,且可在不脫離本發(fā)明的精神或范圍的情況下將本文定義的一般原理應用于其它實施例。因此,本發(fā)明并不希望限于本文中所示的實施例,而應被賦予與隨附權(quán)利要求書和本文中所揭示的原理和新穎特征相一致的最廣泛范圍。