国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      經(jīng)由存儲器監(jiān)測的數(shù)據(jù)流跟蹤的制作方法

      文檔序號:11288713閱讀:321來源:國知局
      經(jīng)由存儲器監(jiān)測的數(shù)據(jù)流跟蹤的制造方法與工藝



      背景技術(shù):

      蜂窩通信技術(shù)和無線通信技術(shù)在過去的若干年里得到了快速增長。更好的通信、硬件、更大的網(wǎng)絡(luò)、以及更可靠的協(xié)議推動了這種增長。無線服務(wù)提供商現(xiàn)在能夠供給其顧客不斷擴展的特征和服務(wù)的陣列,并為用戶提供對信息、資源、以及通信的空前級別的訪問。為了與這些服務(wù)增強保持同步,移動電子設(shè)備(例如,蜂窩電話、平板計算機、膝上型計算機等)變得比以前更加強大且復雜。這種復雜性創(chuàng)造了新的機會以供惡意軟件、軟件沖突、硬件故障、以及其它類似的錯誤或現(xiàn)象消極地影響移動設(shè)備的長期且持續(xù)的性能和功率利用水平。因此,識別并校正可以消極地影響移動設(shè)備的長期且持續(xù)的性能和功率利用水平的條件和/或移動設(shè)備行為對于消費者是有利的。



      技術(shù)實現(xiàn)要素:

      各種方面包括用于跟蹤計算設(shè)備中的數(shù)據(jù)流的方法,該方法可以包括:監(jiān)測存儲器以識別從已污染存儲器地址讀取信息的讀取操作;確定以下值:標識在所識別的讀取操作之后執(zhí)行的第一數(shù)量的操作的偏移值(o)、標識在第一數(shù)量的操作之后執(zhí)行的第二數(shù)量的操作的監(jiān)測窗口值(m)、以及標識在第一數(shù)量的操作之后執(zhí)行的第三數(shù)量的操作的上邊界值(n);對操作進行監(jiān)測直到以下中的一個為止:m個操作被執(zhí)行;以及到未污染地址的n個寫入操作被識別;將與所識別的寫入操作相關(guān)聯(lián)的存儲器地址標記為已污染的;以及將與在第n個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址和與在第m個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址標記為未污染的。

      在一個方面中,該方法可以包括:使用啟發(fā)法來識別第一數(shù)量(o)的操作、第二數(shù)量(m)的操作、以及第三數(shù)量(n)的操作。在另一方面中,該方法可以包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的軟件應(yīng)用,以及將在計算設(shè)備中收集的行為信息應(yīng)用于分類器模型中的提升決策樁以確定軟件應(yīng)用是否為非良性的。在另一方面中,該方法可以包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的第一軟件應(yīng)用,以及監(jiān)測由第一軟件應(yīng)用做出的應(yīng)用編程接口調(diào)用。

      在另一方面中,該方法可以包括:基于所監(jiān)測的api調(diào)用來生成行為向量信息結(jié)構(gòu),將行為向量信息結(jié)構(gòu)應(yīng)用于分類器模型以生成基于行為的分析結(jié)果,以及使用基于行為的分析結(jié)果來確定第一軟件應(yīng)用是否為非良性的。在另一方面中,該方法可以包括:識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的第二軟件應(yīng)用,以及監(jiān)測由第二軟件應(yīng)用做出的應(yīng)用編程接口調(diào)用。

      在另一方面中,該方法可以包括:基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合而來生成行為向量信息結(jié)構(gòu),將行為向量信息結(jié)構(gòu)應(yīng)用于分類器模型以生成基于行為的分析結(jié)果,以及使用基于行為的分析結(jié)果來確定第一軟件應(yīng)用和第二軟件應(yīng)用的行為是否為非良性的。在另一方面中,基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合來生成行為向量信息結(jié)構(gòu)可以包括:生成以第一軟件應(yīng)用和第二軟件應(yīng)用的共同行為為特征的信息結(jié)構(gòu)。在另一方面中,基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合來生成行為向量信息結(jié)構(gòu)可以包括:生成以第一軟件應(yīng)用和第二軟件應(yīng)用之間的關(guān)系為特征的信息結(jié)構(gòu)。

      另外的方面可以包括一種非暫時性計算機可讀存儲介質(zhì),其上存儲有處理器可執(zhí)行的軟件指令,該處理器可執(zhí)行的軟件指令被配置為使得計算設(shè)備的處理器執(zhí)行操作,包括:監(jiān)測存儲器以識別從已污染存儲器地址讀取信息的讀取操作;確定以下值:標識在所識別的讀取操作之后執(zhí)行的第一數(shù)量的操作的偏移值(o)、標識在第一數(shù)量的操作之后執(zhí)行的第二數(shù)量的操作的監(jiān)測窗口值(m)、以及標識在第一數(shù)量的操作之后執(zhí)行的第三數(shù)量的操作的上邊界值(n);對操作進行監(jiān)測直到以下中的一個為止:m個操作被執(zhí)行;以及到未污染地址的n個寫入操作被識別;將與所識別的寫入操作相關(guān)聯(lián)的存儲器地址標記為已污染的;以及將與在第n個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址和與在第m個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址標記為未污染的。

      在一個方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,還包括使用啟發(fā)法來識別第一數(shù)量的操作、第二數(shù)量的操作、以及第三數(shù)量的操作。在另一方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,還包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的軟件應(yīng)用,以及將在計算設(shè)備中收集的行為信息應(yīng)用于分類器模型中的提升決策樁以確定軟件應(yīng)用是否為非良性的。在另一方面中,所存儲的處理器可執(zhí)行的軟件指令被配置為使得處理器執(zhí)行操作,還包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的第一軟件應(yīng)用,以及監(jiān)測由第一軟件應(yīng)用做出的應(yīng)用編程接口調(diào)用。

      在另一方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,還包括基于所監(jiān)測的api調(diào)用來生成行為向量信息結(jié)構(gòu),將行為向量信息結(jié)構(gòu)應(yīng)用于分類器模型以生成基于行為的分析結(jié)果,以及使用基于行為的分析結(jié)果來確定第一軟件應(yīng)用是否為非良性的。在另一方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,還包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的第二軟件應(yīng)用;以及監(jiān)測由第二軟件應(yīng)用做出的應(yīng)用編程接口調(diào)用。

      在另一方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,還包括基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合來生成行為向量信息結(jié)構(gòu),將行為向量信息結(jié)構(gòu)應(yīng)用于分類器模型以生成基于行為的分析結(jié)果;以及使用基于行為的分析結(jié)果來確定第一軟件應(yīng)用和第二軟件應(yīng)用的行為是否為非良性的。在另一方面中,所存儲的處理器可執(zhí)行的軟件指令可以被配置為使得處理器執(zhí)行操作,以使得基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合來生成行為向量信息結(jié)構(gòu)包括:生成以第一軟件應(yīng)用和第二軟件應(yīng)用的共同行為為特征的信息結(jié)構(gòu)。在另一方面中,所存儲的處理器可執(zhí)行的軟件指令被配置為使得處理器執(zhí)行操作,以使得基于由第一軟件應(yīng)用和第二軟件應(yīng)用做出的api調(diào)用的組合來生成行為向量信息結(jié)構(gòu)包括:生成以第一軟件應(yīng)用與第二軟件應(yīng)用之間的關(guān)系為特征的信息結(jié)構(gòu)。

      另外的方面包括一種計算設(shè)備,該計算設(shè)備包括處理器,該處理器配置有處理器可執(zhí)行的指令,以用于執(zhí)行操作,可以包括:監(jiān)測存儲器以識別從已污染存儲器地址讀取信息的讀取操作;確定以下值:標識在所識別的讀取操作之后執(zhí)行的第一數(shù)量的操作的偏移值(o)、標識在第一數(shù)量的操作之后執(zhí)行的第二數(shù)量的操作的監(jiān)測窗口值(m)、以及標識在第一數(shù)量的操作之后執(zhí)行的第三數(shù)量的操作的上邊界值(n);對操作進行監(jiān)測直到以下中的一個為止:m個操作被執(zhí)行;以及到未污染地址的n個寫入操作被識別;將與所識別的寫入操作相關(guān)聯(lián)的存儲器地址標記為已污染的;以及將與在第n個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址和與在第m個操作之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址標記為未污染的。

      在一個方面中,該處理器可以配置有處理器可執(zhí)行的指令,以用于執(zhí)行操作,還包括識別從已污染存儲器地址中的一個已污染存儲器地址讀取信息的第一軟件應(yīng)用,監(jiān)測由第一軟件應(yīng)用做出的應(yīng)用編程接口調(diào)用,基于所監(jiān)測的api調(diào)用來生成行為向量信息結(jié)構(gòu),將行為向量信息結(jié)構(gòu)應(yīng)用于分類器模型以生成基于行為的分析結(jié)果,以及使用基于行為的分析結(jié)果來確定第一軟件應(yīng)用是否為非良性的。

      另外的方面包括一種計算設(shè)備,該計算設(shè)備具有用于執(zhí)行上面討論的方法操作的功能的各種模塊。

      附圖說明

      并入本文并構(gòu)成本說明書的一部分的附圖示出了本發(fā)明的示例性方面,并與上面給出的總體描述和下面給出的具體實施方式一起用于解釋本發(fā)明的特征。

      圖1是適于實現(xiàn)各種方面的示例片上系統(tǒng)的架構(gòu)圖。

      圖2是根據(jù)一個方面的示出在配置為跟蹤數(shù)據(jù)流的方面移動設(shè)備中的示例邏輯組件和信息流的框圖。

      圖3是根據(jù)一個方面的能夠由計算設(shè)備標記為已污染或未污染的示例存儲器地址的圖示。

      圖4和圖5是根據(jù)一個方面的示出跟蹤數(shù)據(jù)流的方法的過程流程圖。

      圖6是根據(jù)另一方面的示出跟蹤數(shù)據(jù)流的方法的過程流程圖。

      圖7是適于與各種方面一起使用的示例移動設(shè)備的圖示。

      具體實施方式

      將參考附圖詳細描述各種方面。在任何可能的情況下,將遍及附圖使用相同的附圖標記來指代相同或類似的部分。對特定的示例和實現(xiàn)方式所做的參考是出于示例說明的目的,而并非旨在限制本發(fā)明或權(quán)利要求的范圍。

      在概述中,各種方面包括使用啟發(fā)法(heuristic)和機器學習技術(shù)來提供高效的數(shù)據(jù)跟蹤解決方案的方法,其適于由移動且資源受約束的計算設(shè)備用于快速且高效地識別不恰當?shù)厥褂脭?shù)據(jù)(例如,讀取地址簿數(shù)據(jù)并將其發(fā)送到服務(wù))的軟件應(yīng)用和/或以其它方式非良性的(例如,惡意的、編寫糟糕的、與設(shè)備不兼容的等)軟件應(yīng)用。

      在一個方面中,計算設(shè)備可以預先配置有信息,該信息識別或使得計算設(shè)備能夠選擇應(yīng)該被給予密切監(jiān)測的存儲器地址。計算設(shè)備可以被配置為將所選擇的存儲器地址標記為“已污染的”(例如,通過將存儲器地址添加到污染列表),監(jiān)測計算設(shè)備中的行為、活動、或操作以識別從已污染存儲器地址(即,被標記為已污染的存儲器地址)讀取信息的軟件應(yīng)用,將所識別的軟件應(yīng)用分類為需要進行密切監(jiān)測或附加審查的,應(yīng)用污染傳播啟發(fā)法來識別應(yīng)該被標記為已污染的附加存儲器地址和/或識別應(yīng)該是“未污染的”已污染存儲器地址(例如,從污染列表中移除、標記為不再需要進行密切監(jiān)測等)。然后計算設(shè)備可以監(jiān)測已污染存儲器地址,以識別需要進行密切監(jiān)測或附加審查的附加軟件應(yīng)用。在一個方面中,可以針對一組操作或可配置數(shù)量的操作在硬件模塊中執(zhí)行對在已污染地址訪問之后的存儲器訪問操作(例如,寫入信息到已污染存儲器或從已污染存儲器讀取信息的操作等)的監(jiān)測??梢栽谟嬎阍O(shè)備中重復地或連續(xù)地執(zhí)行這些操作,以識別非良性的軟件應(yīng)用,而不對設(shè)備的性能或功率消耗特性施加顯著的消極影響。

      在一個方面中,計算設(shè)備可以被配置為監(jiān)測其存儲器以識別從已污染存儲器地址讀取信息的讀取操作。在一個方面中,可以在軟件(例如,行為監(jiān)測系統(tǒng)的一部分)中執(zhí)行對讀取操作的這種監(jiān)測。響應(yīng)于識別這種讀取操作,計算設(shè)備可以使用污染傳播啟發(fā)法來計算或確定第一數(shù)量的操作(例如,“偏移”或“o”數(shù)量的操作)、第二數(shù)量的操作(例如,監(jiān)測窗口或“m”數(shù)量的操作)、以及第三數(shù)量的操作(例如,上邊界或“n”數(shù)量的操作)。

      第一數(shù)量的操作(o)可以標識在計算設(shè)備起始將存儲器地址標記為已污染的之前計算設(shè)備能夠忽視的檢測到的讀取操作之后的操作的數(shù)量。在偏移數(shù)量的操作(o)之前,惡意操作寫入到另一存儲器地址的可能性很低,因此計算設(shè)備(例如,存儲器監(jiān)測模塊)能夠確定不開始標記存儲器地址,直到第o個操作之后為止,以節(jié)約處理和電池資源。第二數(shù)量的操作(m)可以通過識別計算設(shè)備可以針對寫入操作進行監(jiān)測的在第o個操作之后的操作(例如,讀取、寫入、添加、移動、分支等)的數(shù)量來標識監(jiān)測窗口。第三數(shù)量的操作(n)可以定義計算設(shè)備可以標記為已污染的、在監(jiān)測窗口內(nèi)(例如,在m數(shù)量的操作中)的寫入操作的數(shù)量的上邊界。

      作為說明性示例,計算設(shè)備可以使用污染傳播啟發(fā)法來確定o、m、以及n的值應(yīng)該分別是10、100、以及4。然后,計算設(shè)備可以識別從已污染存儲器地址讀取信息的讀取操作,忽略在檢測到的讀取操作之后執(zhí)行的前10個操作(即,o個操作),并且監(jiān)測接下來的100個操作(即,m個操作)以識別到未污染地址的前4個寫入操作(即,前n個操作)。在計算設(shè)備識別監(jiān)測窗口中的第4個(即,第n個)寫入操作之后或者在監(jiān)測窗口的100個操作已經(jīng)被執(zhí)行之后(無論哪個先發(fā)生),計算設(shè)備可以停止監(jiān)測到未污染地址的寫入操作。例如,如果在監(jiān)測窗口的100個操作中僅存在三(3)個寫入操作,則計算設(shè)備將監(jiān)測所有100個操作。另一方面,如果監(jiān)測窗口中的第二個、第四個、第八個、以及第十個操作是到未污染地址的寫入操作,則計算設(shè)備將在第十個操作之后(即,在第n個操作之后)停止監(jiān)測到未污染地址的操作。計算設(shè)備可以將與監(jiān)測窗口中的這些所識別的寫入操作(多達n個操作)相關(guān)聯(lián)的存儲器地址標記為已污染的。另外,計算設(shè)備可以將在第n個寫入操作之后(例如,在上面的示例中在第4個操作之后)發(fā)生的所有寫入操作標記為未污染的,而不管寫入操作是否在監(jiān)測窗口(m)內(nèi)發(fā)生。以另一種方式而言,計算設(shè)備可以將在監(jiān)測窗口(m)中的在第n個操作之后執(zhí)行的所有寫入操作以及在監(jiān)測窗口(m)外的所有寫入操作標記為未污染的。

      在一個方面中,可以在計算設(shè)備的硬件組件中執(zhí)行對存儲器訪問操作的監(jiān)測。軟件模塊辨識出已污染地址已經(jīng)被讀取可以觸發(fā)存儲器監(jiān)測硬件模塊(例如,經(jīng)由應(yīng)用編程接口(api)指令)在o個操作之后開始監(jiān)測存儲器操作,直到m個操作被執(zhí)行為止。替代地或另外地,計算設(shè)備中的相同或不同的組件可以監(jiān)測到已污染存儲器地址的所有存儲器讀取和寫入操作,識別到已污染存儲器地址的寫入,以及將這些存儲器地址標記為未污染的。

      通過實現(xiàn)和使用上面描述的污染傳播啟發(fā)法,計算設(shè)備可以在數(shù)據(jù)流經(jīng)系統(tǒng)時跟蹤數(shù)據(jù),而不對其運行時系統(tǒng)進行任何修改。由于對運行時系統(tǒng)的這種修改(常規(guī)解決方案所需要的)可能對計算設(shè)備的性能和功率消耗特性具有顯著且消極的影響,所以使用污染傳播啟發(fā)法可以改善計算設(shè)備的運行(例如,通過改善其性能和功率消耗特性)。另外,通過使用污染傳播啟發(fā)法,計算設(shè)備可以通過識別到選擇的存儲器地址的讀取和寫入操作來在數(shù)據(jù)流經(jīng)系統(tǒng)時(例如,在源組件與宿組件之間)跟蹤數(shù)據(jù)。這允許計算設(shè)備跟蹤數(shù)據(jù)流,而無需執(zhí)行復雜或功率密集的操作,例如,用于利用標識符或跟蹤/污染信息來注釋、標記、或標注數(shù)據(jù)(這是常規(guī)的數(shù)據(jù)流跟蹤解決方案所需要的)的操作。這進一步改善了計算設(shè)備的性能和功率消耗特性。

      如在本文中使用的術(shù)語,“源組件”指示生成和/或輸入數(shù)據(jù)到被評估的軟件應(yīng)用的任何組件。源組件的示例包括文件、軟件應(yīng)用(例如,地址簿應(yīng)用等)、遠程進程、外部服務(wù)器、系統(tǒng)服務(wù)等。“宿組件”指示在數(shù)據(jù)由軟件應(yīng)用進行處理之后消耗或使用該數(shù)據(jù)的任何組件。宿組件的示例包括文件、數(shù)據(jù)庫、電子顯示器、網(wǎng)絡(luò)連接、以及傳輸點(例如,互聯(lián)網(wǎng)、http、文本消息、收發(fā)器等)。

      術(shù)語“移動計算設(shè)備”和“移動設(shè)備”在本文中可互換地使用,以指示以下中的任一個或全部:蜂窩電話、智能電話、個人或移動多媒體播放器、個人數(shù)據(jù)助理(pda)、膝上型計算機、平板計算機、智能本、超級本、掌上計算機、無線電子郵件接收機、多媒體互聯(lián)網(wǎng)使能的蜂窩電話、無線游戲控制器,以及包括存儲器、對其而言性能重要的可編程處理器的類似的個人電子設(shè)備。雖然各種方面對于具有有限資源并以電池電力運行的移動計算設(shè)備(例如,智能電話)尤其有用,但是方面一般在包括處理器并執(zhí)行應(yīng)用程序的任何電子設(shè)備中有用。

      在本文中使用術(shù)語“運行時系統(tǒng)”來指示計算設(shè)備中的支持應(yīng)用程序在該設(shè)備中執(zhí)行的軟件資源和/或硬件資源的組合。例如,運行時系統(tǒng)可以包括以下中的全部或部分:計算設(shè)備的處理資源、操作系統(tǒng)、庫模塊、調(diào)度器、進程、線程、堆棧、計數(shù)器、和/或其它類似的組件。運行時系統(tǒng)可以負責將計算資源分配給應(yīng)用程序,以用于控制所分配的資源,并且用于執(zhí)行應(yīng)用程序的操作。

      在本文中使用術(shù)語“性能降級”來指示多種不期望的移動設(shè)備操作和特性,例如,較長的處理時間、較慢的實時響應(yīng)、較低的電池壽命、丟失私有數(shù)據(jù)、惡意的經(jīng)濟活動(例如,發(fā)送未授權(quán)的付費sms消息)、拒絕服務(wù)(dos)、編寫糟糕或設(shè)計糟糕的軟件應(yīng)用、惡意軟件、惡意程序、病毒、碎片化存儲器、與征用移動設(shè)備或利用電話來進行間諜或僵尸網(wǎng)絡(luò)(botnet)活動有關(guān)的操作等。另外,出于這些原因中的任何原因,使性能降級的應(yīng)用和條件在本文中被稱為“非良性”或“非良性的”。

      一般地,移動設(shè)備的性能、功率效率、以及安全性隨著時間而降級。近來,防病毒公司(例如,mcafee、symantec等)已經(jīng)開始銷售移動防病毒、防火墻、以及加密產(chǎn)品,其目的在于減緩該降級。然而,這些解決方案中的許多解決方案依賴于在移動設(shè)備上周期性執(zhí)行計算密集的掃描引擎,這可以消耗移動設(shè)備的處理和電池資源中的許多處理和電池資源,在延長的時間段內(nèi)減緩移動設(shè)備或致使移動設(shè)備無效,和/或以其它方式使用戶體驗降級。另外,這些解決方案典型地限于檢測已知的病毒和惡意程序,并且不解決這樣的問題:多個復雜因素和/或交互經(jīng)常組合以有助于移動設(shè)備隨著時間而降級(例如,當性能降級不是由病毒或惡意程序引起時)。出于這些原因和其它原因,現(xiàn)有的防病毒、防火墻、以及加密產(chǎn)品并不提供足夠的解決方案來識別可能有助于移動設(shè)備隨著時間而降級的多個因素、防止移動設(shè)備降級、或者使老化的移動設(shè)備高效地恢復到其原始條件。

      在各種方面中,計算設(shè)備(例如,移動的或資源受約束的計算設(shè)備)可以配備有基于行為的安全系統(tǒng),其被配置為使用行為分析和機器學習技術(shù)來智能且高效地識別、防止、和/或校正使計算設(shè)備的性能和/或功率利用水平經(jīng)常隨著時間而降級的條件、因素、和/或行為。例如,基于行為的安全系統(tǒng)可以使用行為分析技術(shù)來快速且高效地確定軟件應(yīng)用、進程、活動、或設(shè)備行為是良性的還是非良性的?;谛袨榈陌踩到y(tǒng)然后可以使得計算設(shè)備執(zhí)行各種動作或操作來校正、治愈、治療、隔離、或以其它方式修正所識別的問題(例如,被確定為非良性的行為)。

      雖然上面提及的基于行為的安全系統(tǒng)對于防止計算設(shè)備的性能和功率利用水平隨著時間而降級一般是非常高效的,但是某些非良性的行為可以逃避由這種系統(tǒng)進行的檢測。此外,惡意軟件應(yīng)用可能試圖通過延遲其操作、協(xié)力地工作、或以其它方式掩蓋惡意動作來回避或逃避由這種系統(tǒng)進行的檢測。例如,當從用戶的地址簿偷取信息時,惡意軟件應(yīng)用可能試圖通過訪問地址簿、對地址簿信息進行編碼、以及將經(jīng)編碼的信息存儲在與地址簿文件分離的分立文件中來逃避檢測。然后,惡意應(yīng)用可以在從分立文件中取回信息并將信息發(fā)送到服務(wù)器之前等待幾天,或者第二惡意應(yīng)用可以取回信息并將信息發(fā)送到服務(wù)器。

      典型地,基于行為的安全系統(tǒng)能夠確定上面描述的操作(例如,讀取、存儲、以及發(fā)送地址簿數(shù)據(jù))的序列與設(shè)備的正常操作模式不一致,并將該行為分類為非良性的。然而,由于操作是在相對長的時間段內(nèi)執(zhí)行的和/或是由協(xié)力地工作的多個軟件應(yīng)用執(zhí)行的,所以基于行為的安全系統(tǒng)可能無法將這些操作識別為相同的序列或行為的一部分。

      計算設(shè)備可以通過實現(xiàn)和使用結(jié)合基于行為的安全系統(tǒng)的數(shù)據(jù)流跟蹤解決方案來克服上面提及的限制。簡略地,數(shù)據(jù)流跟蹤解決方案(例如,flowdroid)提供用于確定由敏感源組件生成的數(shù)據(jù)是否到達重要的宿組件(即,被確定為易受濫用影響的、被標記為重要的等組件)的機制。使用常規(guī)解決常規(guī)方案,利用標識符(例如,跟蹤或污染信息)來注釋、標記、或標注數(shù)據(jù)。這些標識符由處理、使用、或傳達數(shù)據(jù)的每個中間組件復制,并且宿組件使用這些標識符來確定數(shù)據(jù)是否源自經(jīng)授權(quán)的、受信任的、經(jīng)批準的、或適當?shù)脑唇M件。

      作為示例,計算設(shè)備中的源組件可以使源id值關(guān)聯(lián)到其產(chǎn)生、生成、或傳達的每個數(shù)據(jù)的單元。處理該數(shù)據(jù)的單元的每個中間組件可以傳達源id值連同數(shù)據(jù)單元,以使得數(shù)據(jù)單元及其源id值二者傳播通過系統(tǒng),直到它們在宿組件中被接收為止。宿組件可以使用源id值來確定數(shù)據(jù)單元是否源自經(jīng)授權(quán)的、受信任的、經(jīng)批準的、或以其它方式適當?shù)脑唇M件。計算設(shè)備可以響應(yīng)于確定數(shù)據(jù)單元不與經(jīng)授權(quán)的、受信任的、或經(jīng)批準的源組件相關(guān)聯(lián)而生成錯誤消息或引發(fā)異常。

      雖然上面提及的數(shù)據(jù)流跟蹤解決方案對于識別非良性的軟件應(yīng)用一般是高效的,但是其不適于在許多現(xiàn)代計算設(shè)備(例如,移動設(shè)備等)中使用。這是因為現(xiàn)代計算設(shè)備是高度可配置且復雜的系統(tǒng),并且包括執(zhí)行大量操作(讀取、寫入、數(shù)據(jù)編碼、數(shù)據(jù)傳輸?shù)?的許多組件。作為結(jié)果,在計算設(shè)備中可能存在大量需要進行監(jiān)測的數(shù)據(jù)流,并且這些數(shù)據(jù)流中的每個數(shù)據(jù)流可以包括傳播通過許多不同的中間組件的大量數(shù)據(jù)單元。使用常規(guī)的數(shù)據(jù)流跟蹤解決方案,可能要求計算設(shè)備對這些數(shù)據(jù)單元中的許多數(shù)據(jù)單元或所有數(shù)據(jù)單元進行標記、監(jiān)測、跟蹤、或評估。經(jīng)常地,這要求計算設(shè)備執(zhí)行大量復雜且功率密集的操作。這樣的操作對于設(shè)備的性能和功率消耗特性可以具有顯著且消極的影響。

      計算設(shè)備可以通過實現(xiàn)和使用這樣的污染跟蹤解決方案來克服上面提及的限制:減少需要進行跟蹤的數(shù)據(jù)流的數(shù)量/減少當分析設(shè)備行為時需要進行標記、監(jiān)測、跟蹤、以及評估的數(shù)據(jù)單元的數(shù)量。

      一般地,污染跟蹤是其中計算設(shè)備的運行時系統(tǒng)或虛擬機被修改為將某些組件、操作、或存儲器位置標記為“已污染”的數(shù)據(jù)流跟蹤技術(shù)。運行時系統(tǒng)或虛擬機然后可以監(jiān)測已污染的組件、操作、或存儲器位置來識別使用這些已污染資源的組件。例如,計算設(shè)備可以被配置為將由敏感源組件使用的存儲器位置標記為已污染的,并且監(jiān)測該已污染的存儲器位置以識別從已污染存儲器讀取信息的中間軟件應(yīng)用或進程,將由所識別的中間應(yīng)用/進程使用的存儲器位置標記為已污染的,等等。這允許系統(tǒng)識別將以其它方式逃避由基于行為的安全(例如,協(xié)力地工作的軟件應(yīng)用)進行的檢測的非良性行為。這還允許計算設(shè)備將其操作集中于監(jiān)測設(shè)備中的選擇數(shù)量的組件、操作、或存儲器位置,以便減少當跟蹤數(shù)據(jù)流時需要執(zhí)行的復雜且功率密集的操作的數(shù)量。

      雖然污染跟蹤解決方案克服了較常規(guī)的數(shù)據(jù)流跟蹤解決方案的限制中的一些限制,但是現(xiàn)有的污染跟蹤解決方案不適于用作許多現(xiàn)代計算設(shè)備中的基于行為的安全解決方案的一部分。首先,常規(guī)的污染跟蹤解決方案需要修改計算機設(shè)備的運行時系統(tǒng)或虛擬機,并且這種修改可能對計算設(shè)備的性能和功率消耗特性具有顯著且消極的影響。另外,許多常規(guī)的污染跟蹤解決方案需要將與已污染組件相關(guān)聯(lián)的所有組件、操作、以及存儲器位置標記為也被污染的,但是無法智能地確定這些已污染資源是否應(yīng)該被重新分類為未污染的。作為結(jié)果,隨著時間而持續(xù)或重復地使用這些解決方案可能需要計算設(shè)備識別、標記、標注、監(jiān)測、和/或跟蹤大量的組件,這可能致使計算設(shè)備無響應(yīng)。此外,許多現(xiàn)有的解決方案需要計算設(shè)備使用經(jīng)復制的變量作為元數(shù)據(jù)和/或?qū)崿F(xiàn)整體或附加的指令集,以便于在每個存儲指令上動態(tài)地傳播標識符(即,跟蹤/污染信息),這可能消耗顯著大量的設(shè)備的處理、功率、或存儲器資源。

      出于所有上面描述的原因,常規(guī)的污染跟蹤解決方案不適于在現(xiàn)代計算設(shè)備中使用,例如,是具有有限的存儲器、功率、以及處理資源的資源受約束的設(shè)備的移動設(shè)備。這些解決方案也不適于用作持續(xù)且重復地監(jiān)測和分析大量的設(shè)備行為的全面的基于行為的安全系統(tǒng)的一部分,因為持續(xù)或重復地使用這些現(xiàn)有的解決方案可能致使計算設(shè)備無響應(yīng)。

      各種方面包括使用啟發(fā)法和機器學習技術(shù)來實現(xiàn)和提供改善的數(shù)據(jù)跟蹤解決方案(例如,改善的污染跟蹤解決方案等)的方法以及被配置為實現(xiàn)這些方法的計算設(shè)備,該改善的數(shù)據(jù)跟蹤解決方案克服了上面提及的現(xiàn)有的解決方案的限制,并且適于用作資源受約束的計算設(shè)備的基于行為的安全系統(tǒng)的一部分。

      不同于常規(guī)的解決方案,各種方面包括不需要計算設(shè)備標注或跟蹤大量的數(shù)據(jù)的跟蹤解決方案,如使數(shù)據(jù)流經(jīng)系統(tǒng)的存儲器訪問、數(shù)據(jù)轉(zhuǎn)換操作、存儲器寫入操作。各種方面允許計算設(shè)備使用污染傳播啟發(fā)法來確定存儲器位置是應(yīng)該被標記為已污染的還是未污染的。這允許設(shè)備在數(shù)據(jù)流經(jīng)系統(tǒng)時智能地跟蹤數(shù)據(jù),并且識別需要附加的或更詳細的監(jiān)測、分析、或?qū)彶榈脑O(shè)備行為、特征、或軟件應(yīng)用,而不對其性能和功率消耗特性具有顯著的消極影響。通過減少要實現(xiàn)該方法必須進行跟蹤的數(shù)據(jù)的量,各種方面可以至少部分地在硬件(例如,存儲器監(jiān)測模塊)中實現(xiàn)以便于減少這種監(jiān)測的處理開銷。

      在一些方面中,基于行為的安全系統(tǒng)可以是行為監(jiān)測和分析系統(tǒng),其被配置為高效地識別非良性軟件應(yīng)用(例如,惡意的、編寫糟糕的、與設(shè)備不兼容等的應(yīng)用),并且防止這種應(yīng)用使設(shè)備的性能和/或功率利用水平隨著時間而降級。行為監(jiān)測和分析系統(tǒng)可以包括觀測器進程、守護進程(daemon)、模塊、或子系統(tǒng)(在本文中統(tǒng)稱為“模塊”),其被配置為儀器化或協(xié)調(diào)計算設(shè)備系統(tǒng)的各種級別處的各種應(yīng)用編程接口(api)、寄存器、計數(shù)器、或其它組件(在本文中統(tǒng)稱為“儀器化組件”)。觀測器模塊可以通過收集來自儀器化組件的行為信息來連續(xù)地(或接近連續(xù)地)監(jiān)測設(shè)備行為,這可以通過從存儲在設(shè)備的存儲器中的日志文件(例如,api日志)讀取信息來實現(xiàn)。行為監(jiān)測和分析系統(tǒng)還可以包括分析器模塊,并且觀測器模塊可以將收集到的行為信息傳達(例如,經(jīng)由存儲器寫入操作、函數(shù)調(diào)用等)到分析器模塊。分析器模塊可以接收和使用行為信息來執(zhí)行行為分析操作,其可以包括實現(xiàn)、執(zhí)行、和/或應(yīng)用數(shù)據(jù)、算法、分類器、和/或模型來確定設(shè)備行為是良性的還是非良性的/性能降級的。

      在一個方面中,計算設(shè)備可以被配置為使用方面數(shù)據(jù)跟蹤解決方案作為全面的行為監(jiān)測和分析系統(tǒng)的一部分,以用于生成安全策略和/或識別需要進行更密切的或附加的監(jiān)測或分析的組件或特征。例如,行為監(jiān)測和分析系統(tǒng)可以對選擇控制流和/或運行時參數(shù)進行識別、測量、監(jiān)測、和/或分析,然后使用這些操作的結(jié)果來計算標識在宿組件中接收到的數(shù)據(jù)是來自需要進行更密切的監(jiān)測或附加的審查的敏感或受保護的源組件的可能性的概率值。這允許計算設(shè)備僅對選擇運行時參數(shù)進行分析(與跟蹤整個數(shù)據(jù)流相反)來識別敏感數(shù)據(jù),并將其監(jiān)測和分析操作集中于評估計算設(shè)備的最重要的特征。這改善設(shè)備的速度、響應(yīng)度、以及總體性能(例如,通過改善基于行為的安全系統(tǒng)的性能等)。

      在一個方面中,計算設(shè)備可以被配置為使用機器學習技術(shù)和啟發(fā)法來生成、更新、和/或訓練數(shù)據(jù)、算法、分類器和/或行為模型,其可以由行為監(jiān)測和分析系統(tǒng)用于識別非良性的(例如,惡意的、編寫糟糕、與設(shè)備不兼容的等)軟件應(yīng)用,而無需如當使用常規(guī)的數(shù)據(jù)流跟蹤解決方案時所需要的那樣來標注或跟蹤數(shù)據(jù)。例如,計算設(shè)備處理器可以配置有處理器可執(zhí)行的指令,以用于運行/執(zhí)行軟件應(yīng)用,識別應(yīng)用所使用的數(shù)據(jù)源點或組件和宿點或組件中的全部,收集和存儲針對每個所識別的點/組件的啟發(fā)法值和地面真值(例如,“發(fā)生的數(shù)據(jù)泄露”等),使用啟發(fā)法值來確定存儲器位置是應(yīng)該被標記為已污染的還是未污染的,監(jiān)測已污染存儲器地址以識別從已污染存儲器地址讀取信息或向其寫入信息的軟件應(yīng)用,以及確定所識別的軟件應(yīng)用是良性的還是非良性的。

      在各種方面中,計算設(shè)備可以被配置為跟蹤通過多線程軟件應(yīng)用的多個線程和/或在應(yīng)用的多個并發(fā)執(zhí)行中的數(shù)據(jù)流。在一個方面中,這可以通過設(shè)備實現(xiàn)和使用針對每個線程或進程的每線程啟發(fā)法計數(shù)器來實現(xiàn)。在一個方面中,計算設(shè)備可以針對每個線程生成和維持分離的啟發(fā)法。對于后臺線程和線程池而言,設(shè)備可以被配置為在每次調(diào)度/執(zhí)行每個任務(wù)/進程時針對每個任務(wù)/進程維持、恢復、或保存計數(shù)器,以使得線程池中的線程不會錯誤地跨任務(wù)共享啟發(fā)法值(這將使共享線程的不相關(guān)任務(wù)之間的準確性偏離)。

      在一個方面中,計算設(shè)備可以被配置為快速且高效地確定敏感信息是否從源組件被泄露(即,被不恰當?shù)厥褂没蛴晌唇?jīng)授權(quán)的組件使用等)到宿組件,而不消耗過量的設(shè)備的處理、功率、或存儲器資源。這可以經(jīng)由設(shè)備處理器進行以下操作來實現(xiàn):識別與敏感源組件相關(guān)聯(lián)的第一存儲器地址,識別與宿組件相關(guān)聯(lián)的第二存儲器地址,以及確定第一存儲器地址是否與第二存儲器地址相同。例如,在識別源組件(例如,gps_location等)和宿組件(例如,sendsms(msg))之后,計算設(shè)備處理器可以比較宿變元(argument)的地址(例如,“sendsms(msg)”中的“msg”、“send(a)”中的“a”等)與源組件的地址,以確定地址是否匹配(例如,相同、相等、等效等)。設(shè)備處理器可以響應(yīng)于確定第一存儲器地址與第二存儲器地址相同而確定發(fā)生了信息泄露。計算設(shè)備還可以響應(yīng)于確定源組件的地址和宿組件的地址匹配(即,第一存儲器地址與第二存儲器地址相同)而識別使用源或宿或者與源或宿相關(guān)聯(lián)(并且因此需要進行更密切的審查或更深度的分析)的組件。然后,計算設(shè)備可以響應(yīng)信息泄露,例如,通過隔離讀取或?qū)懭胄畔⒌剿R別的地址的應(yīng)用程序、使用源組件或宿組件的應(yīng)用程序等。

      各種方面可以在多個不同的計算設(shè)備中實現(xiàn),包括單個處理器系統(tǒng)和多處理器系統(tǒng)。圖1是示出可以在實現(xiàn)各種方面的計算設(shè)備中使用的示例片上系統(tǒng)(soc)100架構(gòu)的架構(gòu)圖。soc100可以包括多個異構(gòu)處理器,例如,數(shù)字信號處理器(dsp)103、調(diào)制解調(diào)器處理器104、圖形處理器106、以及應(yīng)用處理器108。soc100還可以包括一個或多個協(xié)處理器110(例如,向量協(xié)處理器),其連接到異構(gòu)處理器103-108中的一個或多個。

      每個處理器103-110可以包括一個或多個核心,并且每個處理器/核心可以獨立于其它處理器/核心執(zhí)行操作。此外,每個處理器103-108可以包括獨立于系統(tǒng)中的其它操作系統(tǒng)和處理器執(zhí)行存儲器管理操作的操作系統(tǒng)。例如,多處理器系統(tǒng)可以包括執(zhí)行第一類型的操作系統(tǒng)(例如,freebsd、linux、osx等)的第一處理器,以及執(zhí)行第二類型的操作系統(tǒng)(例如,microsoftwindows10等)的第二處理器。這些操作系統(tǒng)中的每個操作系統(tǒng)可以包括存儲器管理系統(tǒng),以用于通過在該處理器103-108上執(zhí)行的應(yīng)用程序來管理系統(tǒng)存儲器116的分配和使用。例如,每個操作系統(tǒng)可以包括虛擬存儲器管理器(osvmm),其被配置為將虛擬存儲器地址分配給應(yīng)用程序,并確保由一個進程使用的存儲器不干擾另一進程已經(jīng)使用的存儲器。當進程要求訪問物理存儲器時,可以由特定于該處理器103-108的存儲器管理單元(mmu)將這些虛擬地址轉(zhuǎn)換為物理存儲器地址。

      soc100可以包括存儲器監(jiān)測模塊118,其維護已污染存儲器地址的列表,監(jiān)測存儲器116以識別與已污染存儲器地址相關(guān)聯(lián)的讀取和寫入操作,識別和收集關(guān)于在信息從已污染存儲器地址被讀取之后執(zhí)行的操作的信息,以及將任何或所有這樣的信息傳達到計算設(shè)備的一個或多個軟件模塊。

      soc100還可以包括模擬電路和定制電路112,以用于管理傳感器數(shù)據(jù)、模擬-數(shù)字變換、無線數(shù)據(jù)傳輸,以及用于執(zhí)行其它專用操作,例如,處理用于游戲和電影的經(jīng)編碼音頻信號。soc100可以包括系統(tǒng)組件和資源114,例如,電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍橋、數(shù)據(jù)控制器、存儲器控制器、系統(tǒng)控制器、訪問端口、定時器、以及用于支持處理器和客戶端在計算設(shè)備上運行的其它類似的組件。資源/系統(tǒng)組件114和定制電路112可以包括用于與外圍設(shè)備(例如,照相機、電子顯示器、無線通信設(shè)備、外部存儲器芯片等)接口的電路。

      處理器103-108可以經(jīng)由互連/總線模塊124與存儲器116元件、存儲器監(jiān)測模塊118、資源和定制電路112互連,互連/總線模塊124可以包括可重新配置邏輯門的陣列和/或?qū)崿F(xiàn)總線架構(gòu)(例如,coreconnet、amba等)??梢酝ㄟ^高級互連提供通信,例如,高性能的片上網(wǎng)絡(luò)(noc)。

      soc100還可以包括輸入/輸出模塊(未示出),以用于與soc100外部的資源進行通信,例如,時鐘120和電壓調(diào)節(jié)器122。soc外部的資源(例如,時鐘120、電壓調(diào)節(jié)器122)可以由內(nèi)部soc處理器/核心(例如,dsp103、調(diào)制解調(diào)器處理器104、圖形處理器106、應(yīng)用處理器108等)中的兩個或更多個來共享。

      soc100還可以包括這樣的硬件組件和/或軟件組件:其適于與揚聲器接口,接收來自用戶接口元件(例如,輸入按鈕、觸摸屏顯示器等)的輸入,接收來自麥克風陣列的音頻數(shù)據(jù),以及收集來自傳感器的傳感器數(shù)據(jù),傳感器包括用于監(jiān)測物理條件(例如,位置、方向、運動、取向、振動、壓力等)的傳感器、照相機、指南針、gps接收器、通信電路(例如,蜂窩、wlan、wifi等)、以及現(xiàn)代電子設(shè)備的其它公知的組件(例如,加速度計、陀螺儀等)。

      處理器103-108可以是彼此緊密鄰近(例如,在單個基底、管芯、集成芯片等上)的獨立處理核心。處理器103-108的鄰近允許共享片上的存儲器116,并且允許在核心之間進行更協(xié)調(diào)的合作。另外,與在如果數(shù)據(jù)信號不得不行經(jīng)芯片外的情況下可能的頻率/時鐘速率相比,處理器103-108的鄰近還允許存儲器116以更高的頻率/時鐘速率進行操作。

      圖2示出了可以在方面移動設(shè)備102的處理器中實現(xiàn)的示例邏輯組件和信息流,該方面移動設(shè)備102被配置為確定特定的移動設(shè)備行為、軟件應(yīng)用、或進程是否為非良性的(即,惡意的、性能降級的、或可疑的)。在圖2所示的示例中,移動設(shè)備102包括硬件組件和軟件組件二者。

      硬件組件可以包括存儲器監(jiān)測模塊118,其包括/存儲已污染/敏感存儲器地址222的列表。軟件組件可以包括操作系統(tǒng)框架模塊202、污染管理模塊204、以及基于行為的安全模塊206。污染管理模塊204可以包括數(shù)據(jù)-地址轉(zhuǎn)換模塊208、污染傳播器模塊210、以及已污染地址模塊212。基于行為的安全模塊206可以包括行為觀測器模塊214、行為分析器模塊216、以及致動器模塊218。

      操作系統(tǒng)框架模塊202可以發(fā)送需要進行密切監(jiān)測的敏感組件的初始列表。污染管理模塊204可以將由這些敏感組件使用的存儲器地址標記為“已污染的”。這可以通過生成包括由敏感組件使用的存儲器地址的污染列表并將污染列表發(fā)送到存儲器監(jiān)測模塊118來實現(xiàn)。

      存儲器監(jiān)測模塊118可以被配置為接收來自污染管理模塊204的污染列表,并且更新其已污染/敏感存儲器地址222的列表。存儲器監(jiān)測模塊118可以監(jiān)測設(shè)備的存儲器,以檢測從包括在已污染/敏感存儲器地址222的列表中的存儲器地址讀取信息的讀取操作。存儲器監(jiān)測模塊118可以收集關(guān)于在檢測到的讀取操作之后執(zhí)行的操作的信息,生成包括這些操作的操作列表,以及將列表發(fā)送到污染管理模塊204。

      污染管理模塊204可以接受來自存儲器監(jiān)測模塊118的操作列表,使用污染傳播啟發(fā)法來計算或確定操作的第一數(shù)量的操作(o)、第二數(shù)量的操作(m)、以及第三數(shù)量的操作(n)。如上面所描述的,第一數(shù)量的操作(o)可以標識在計算機設(shè)備起始將存儲器地址標記為已污染的之前計算設(shè)備能夠忽視的檢測到的讀取操作之后的操作的數(shù)量。第二數(shù)量的操作(m)可以通過識別在計算設(shè)備可以針對寫入操作監(jiān)測的第o個操作之后的操作(例如,讀取、寫入、添加、移動、分支等)的數(shù)量來標識監(jiān)測窗口。第三數(shù)量的操作(n)可以定義計算設(shè)備可以標記為已污染的在監(jiān)測窗口內(nèi)(例如,在m數(shù)量的操作中)的寫入操作的數(shù)量的上邊界。

      在確定o、m、以及n值之后,污染管理模塊204可以更新污染列表,以包括與在第o個操作與第m個操作之間執(zhí)行的前n個寫入操作相關(guān)聯(lián)的存儲器地址,從污染列表中移除與在第n個檢測到的寫入操作之后或在第m個操作之后(無論哪個先發(fā)生)執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址。污染管理模塊204還可以識別讀取或?qū)懭胄畔⒌揭盐廴敬鎯ζ鞯刂返能浖?yīng)用,并且將該信息發(fā)送到基于行為的安全模塊206。可以重復地或連續(xù)地執(zhí)行這些操作以識別性能降級行為的源或起因,而不對移動設(shè)備102的性能或功率消耗特性具有顯著的消極影響。

      行為觀測器模塊214可以被配置為儀器化或協(xié)調(diào)移動設(shè)備的各種級別/模塊處的應(yīng)用編程接口(api),并經(jīng)由儀器化的api監(jiān)測/觀測各種級別/模塊處的移動設(shè)備操作和事件(例如,系統(tǒng)事件、狀態(tài)改變等),收集屬于所觀測到的操作/事件的信息,智能地過濾所收集的信息,基于所過濾的信息生成一個或多個觀測,將所生成的觀測存儲在存儲器中(例如,在日志文件、高速緩存存儲器等中)和/或?qū)⑺傻挠^測發(fā)送(例如,經(jīng)由存儲器寫入、函數(shù)調(diào)用等)到行為分析器模塊216。在各種方面,所生成的觀測可以存儲為行為向量和/或存儲在api日志文件或結(jié)構(gòu)中。

      在各種方面中,行為觀測器模塊214可以通過收集屬于以下項的信息來監(jiān)測/觀測移動設(shè)備操作和事件:讀取/寫入到已污染存儲器地址、在應(yīng)用框架或運行時庫中的庫api調(diào)用、系統(tǒng)調(diào)用api、文件系統(tǒng)和聯(lián)網(wǎng)子系統(tǒng)操作、設(shè)備(包括傳感器設(shè)備)狀態(tài)改變、以及其它類似事件。行為觀測器模塊214還可以監(jiān)測文件系統(tǒng)活動,其可以包括搜索文件名、文件訪問的類別(個人信息或正常數(shù)據(jù)文件)、創(chuàng)建或刪除文件(例如,類型exe、zip等)、文件讀取/寫入/尋找操作、改變文件許可等。

      行為觀測器模塊214還可以監(jiān)測/觀測數(shù)據(jù)網(wǎng)絡(luò)活動,其可以包括連接的類型、協(xié)議、端口號、設(shè)備所連接到的服務(wù)器/客戶端、連接的數(shù)量、通信的量或頻率等。行為觀測器模塊214可以監(jiān)測電話網(wǎng)絡(luò)活動,其可以包括監(jiān)測發(fā)送出、接收、或攔截的通話或消息(例如,sms等)的類型和數(shù)量(例如,所撥打的付費通話的數(shù)量)。

      行為觀測器模塊214還可以監(jiān)測/觀測系統(tǒng)資源使用,其可以包括監(jiān)測分叉(fork)的數(shù)量、存儲器訪問操作、文件打開的數(shù)量等。行為觀測器模塊214可以監(jiān)測移動設(shè)備的狀態(tài),其可以包括監(jiān)測各種因素,例如,顯示器是打開的還是關(guān)閉的、設(shè)備是鎖定的還是解鎖的、電池剩余的電量、照相機的狀態(tài)等。行為觀測器模塊214還可以監(jiān)測進程間通信(ipc),例如,通過監(jiān)測對于至關(guān)重要的服務(wù)(瀏覽器、合同提供商等)的意圖、進程間通信的程度、彈出窗口等。

      行為觀測器模塊214還可以監(jiān)測/觀測驅(qū)動器統(tǒng)計和/或一個或多個硬件組件的狀態(tài),其可以包括照相機、傳感器、電子顯示器、wifi通信組件、數(shù)據(jù)控制器、存儲器控制器、系統(tǒng)控制器、訪問端口、定時器、外圍設(shè)備、無線通信組件、外部存儲器芯片、電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍橋、以及用于支持處理器和客戶端在移動計算設(shè)備上運行的其它類似的組件。

      行為觀測器模塊214還可以監(jiān)測/觀測表示移動計算設(shè)備和/或移動設(shè)備子系統(tǒng)的狀態(tài)或狀況的一個或多個硬件計數(shù)器。硬件計數(shù)器可以包括處理器/核心的專用寄存器,其被配置為存儲在移動計算設(shè)備中發(fā)生的硬件相關(guān)的活動或事件的計數(shù)值或狀態(tài)。

      行為觀測器模塊214還可以監(jiān)測/觀測以下項的動作或操作:軟件應(yīng)用、來自應(yīng)用下載服務(wù)器(例如,app商店服務(wù)器)的軟件下載、由軟件應(yīng)用使用的移動設(shè)備信息、通話信息、文本消息傳遞信息(例如,sendsms、blocksms、readsms等)、媒體消息傳遞信息(例如,receivemms)、用戶賬戶信息、位置信息、照相機信息、加速度計信息、瀏覽器信息、基于瀏覽器的通信的內(nèi)容、基于語音的通信的內(nèi)容、短程無線電通信(例如,藍牙、wifi等)、基于文本的通信的內(nèi)容、所記錄的音頻文件的內(nèi)容、電話簿或聯(lián)系人信息、聯(lián)系人列表等。

      行為觀測器模塊214還可以監(jiān)測/觀測移動設(shè)備的傳輸或通信,包括:包括語音郵件(voicemailcomm)、設(shè)備標識符(deviceidcomm)、用戶賬戶信息(useraccountcomm)、日歷信息(calendarcomm)、位置信息(locationcomm)、所記錄的音頻信息(recordaudiocomm)、加速度計信息(accelerometercomm)等的通信。

      行為觀測器模塊214還可以監(jiān)測/觀測以下項的使用和對于以下項的更新/改變:指南針信息、移動設(shè)備設(shè)置、電池壽命、陀螺儀信息、壓力傳感器、磁體傳感器、屏幕活動等。行為觀測器模塊214可以監(jiān)測/觀測被傳達到軟件應(yīng)用和來自軟件應(yīng)用的通知(appnotifications)、應(yīng)用更新等。行為觀測器模塊214可以監(jiān)測/觀測屬于請求下載和/或安裝第二軟件應(yīng)用的第一軟件應(yīng)用的條件或事件。行為觀測器模塊214可以監(jiān)測/觀測屬于用戶驗證的條件或事件,例如,輸入密碼等。

      行為觀測器模塊214還可以監(jiān)測/觀測移動設(shè)備的多個級別處的條件或事件,包括應(yīng)用級別、無線電級別、以及傳感器級別。應(yīng)用級別觀測可以包括經(jīng)由面部識別軟件對用戶進行觀測、觀測社交流、觀測由用戶輸入的筆記、觀測屬于passbook/googlewallet/paypal的使用的事件等。應(yīng)用級別觀測還可以包括觀測與虛擬私有網(wǎng)絡(luò)(vpn)的使用有關(guān)的事件,以及屬于同步、語音搜索、語音控制(例如,通過說一個單詞來鎖定/解鎖電話)、語言翻譯器、卸載數(shù)據(jù)用于計算、視頻流送、在沒有用戶活動情況下的照相機使用、在沒有用戶活動情況下的麥克風使用等的事件。

      無線電級別觀測可以包括確定以下中的任一個或多個的出現(xiàn)、存在、或量:在建立無線電通信鏈路或傳輸信息之前與移動設(shè)備的用戶交互、雙/多sim卡、互聯(lián)網(wǎng)無線電、移動電話疊接(tethering)、卸載數(shù)據(jù)用于計算、設(shè)備狀態(tài)通信、用作游戲控制器或家庭控制器、車輛通信、移動設(shè)備同步等。無線電級別觀測還可以包括監(jiān)測無線電(wifi、wimax、藍牙等)的使用,用于定位、端對端(p2p)通信、同步、車輛到車輛通信、和/或機器到機器(m2m)。無線電級別觀測還可以包括監(jiān)測網(wǎng)絡(luò)流量使用、統(tǒng)計、或簡檔。

      傳感器級別觀測可以包括監(jiān)測磁體傳感器或其它傳感器,以確定移動設(shè)備的使用和/或外部環(huán)境。例如,移動設(shè)備處理器可以被配置為確定電話是在皮套中(例如,經(jīng)由被配置為感測皮套內(nèi)的磁體的磁體傳感器)還是在用戶的口袋中(例如,經(jīng)由通過照相機或光傳感器檢測到的光的量)。檢測移動設(shè)備處于皮套中可以與辨識可疑的行為相關(guān),例如,因為在移動設(shè)備裝在皮套中時與用戶主動使用有關(guān)的活動和功能(例如,拍射照片或視頻、發(fā)送消息、進行語音通話、錄音等)發(fā)生可能是非法進程在設(shè)備上執(zhí)行(例如,跟蹤或暗中監(jiān)視用戶)的跡象。

      與使用或外部環(huán)境有關(guān)的傳感器級別觀測的其它示例包括:檢測近場通信(nfc),收集來自信用卡掃描儀、條形碼掃描儀、或移動標簽讀取器的信息,檢測usb充電源的存在,檢測鍵盤或輔助設(shè)備已經(jīng)耦合到移動設(shè)備,檢測移動設(shè)備已經(jīng)耦合到計算設(shè)備(例如,經(jīng)由usb等),確定led、閃光、閃光燈、或光源是否已經(jīng)被修改或禁用(例如,惡意地禁用緊急發(fā)信號app等),檢測揚聲器或麥克風已經(jīng)被打開或通電,檢測充電或功率事件,檢測移動設(shè)備用作游戲控制器等。傳感器級別觀測還可以包括收集來自醫(yī)療或健康護理傳感器或者來自掃描用戶的身體的信息,收集來自插入到usb/音頻插孔的外部傳感器的信息,收集來自觸覺或觸感傳感器的信息(例如,經(jīng)由振動器接口等),收集屬于移動設(shè)備的熱狀態(tài)的信息等。

      行為觀測器模塊214可以被配置為生成包括所觀測的行為的簡明定義的行為向量。每個行為向量可以以值或向量數(shù)據(jù)結(jié)構(gòu)(例如,以一串數(shù)字的形式等)來簡潔地描述移動設(shè)備、軟件應(yīng)用、或進程的所觀測的行為。行為向量還可以用作使得移動設(shè)備系統(tǒng)能夠快速辨識、識別、和/或分析移動設(shè)備行為的標識符。在一個方面中,行為觀測器模塊214可以生成包括一系列數(shù)字的行為向量,該一系列數(shù)字中的每個數(shù)字象征移動設(shè)備的特征或行為。例如,包括在行為向量中的數(shù)字可以象征移動設(shè)備的照相機是否在使用(例如,為0或1),從移動設(shè)備發(fā)送了或者由移動設(shè)備生成了多少網(wǎng)絡(luò)流量(例如,20kb/sec等),已經(jīng)傳達了多少互聯(lián)網(wǎng)消息(例如,sms消息的數(shù)量等)等。

      為了減少被監(jiān)測到可管理級別的因素的數(shù)量,在一個方面中,行為觀測器模塊214可以被配置為通過監(jiān)測/觀測行為或因素的初始集合來執(zhí)行粗略的觀測,行為或因素的初始集合是可能有助于移動設(shè)備的降級的所有因素的小的子集。在各種方面中,行為觀測器模塊214可以接收來自其它移動設(shè)備、網(wǎng)絡(luò)服務(wù)器、或者云服務(wù)或網(wǎng)絡(luò)中的組件的行為和/或因素的初始集合。在一個方面中,可以在從其它移動設(shè)備、網(wǎng)絡(luò)服務(wù)器、或云服務(wù)/網(wǎng)絡(luò)接收的數(shù)據(jù)/行為模型中指定行為/因素的初始集合。在一個方面中,可以在精簡特征模型(rfm)中指定行為/因素的初始集合。

      行為分析器模塊216可以接收來自行為觀測器模塊214的觀測、行為向量、和/或所收集的行為信息,比較所接收的信息(即,觀測)與上下文信息,以及識別與所接收的觀測相關(guān)聯(lián)的子系統(tǒng)、進程、和/或應(yīng)用,所接收的觀測有助于(或可能有助于)設(shè)備隨著時間而降級,或者其可以以其它方式引起設(shè)備上的問題。

      在一個方面中,行為分析器模塊216可以包括用于利用有限的信息集合(即,粗略觀測)來識別這樣的行為、進程、或程序的智能:有助于——或可能有助于——設(shè)備隨著時間而降級,或者可以以其它方式引起設(shè)備上的問題。例如,行為分析器模塊216可以被配置為分析從各種模塊收集的信息(例如,以觀測的形式),學習移動設(shè)備的正常操作行為,以及基于比較的結(jié)果來生成一個或多個行為向量。行為分析器模塊216可以將所生成的行為向量發(fā)送到致動器模塊,致動器模塊可以執(zhí)行操作中的各種操作來治愈、治療、隔離、或以其它方式修正所識別的問題。

      行為分析器模塊216可以接收行為向量并將其與一個或多個行為模塊進行比較,以確定特定的移動設(shè)備行為、軟件應(yīng)用、或進程是非良性的(例如,性能降級的/惡意的)、良性的、還是可疑的。當確定行為、軟件應(yīng)用、或進程是惡意的或性能降級的時,行為分析器模塊216可以通知致動器模塊218,致動器模塊218可以執(zhí)行各種動作或操作來校正被確定為非良性的、惡意的、或性能降級的移動設(shè)備行為和/或執(zhí)行操作來治愈、治療、隔離、或以其它方式修正所識別的問題。

      當行為分析器模塊216確定行為、軟件應(yīng)用、或進程是可疑的時,行為分析器模塊216可以通知行為觀測器模塊214,行為觀測器模塊214可以調(diào)整其觀測的粒度(即,移動設(shè)備行為被觀測的細節(jié)級別)和/或基于從行為分析器模塊216接收的信息(例如,實時分析操作的結(jié)果)來改變被觀測的行為,生成或收集新的或附加的行為信息,以及將新的/附加的信息發(fā)送到行為分析器模塊216用于進一步的分析/分類。在行為觀測器模塊214與行為分析器模塊216之間的這種反饋通信使得移動設(shè)備102能夠遞歸地增加觀測的粒度(即,進行更精細或更詳細的觀測)或改變被觀測的特征/行為,直到可疑的或性能降級的移動設(shè)備行為的源被識別為止,直到達到處理或電池消耗閾值為止,或者直到移動設(shè)備處理器確定不能根據(jù)進一步增加觀測粒度來識別可疑的或性能降級的移動設(shè)備行為的源為止。這種反饋通信還使得移動設(shè)備102能夠本地調(diào)整或修改移動設(shè)備中的數(shù)據(jù)/行為模型,而不消耗過量的移動設(shè)備的處理、存儲器、或能量資源。

      因此,行為分析器模塊216可以被配置為接收來自行為觀測器模塊214的粗略觀測,并識別與可以潛在地有助于移動設(shè)備的降級的接收到的粗略觀測相關(guān)聯(lián)的子系統(tǒng)、進程、和/或應(yīng)用。例如,這可以通過行為分析器模塊216對接收到的信息與從外部組件接收的上下文信息進行比較來實現(xiàn)。

      行為分析器模塊216可以指導行為觀測器模塊214執(zhí)行或?qū)崿F(xiàn)更深度的登錄/觀測或最終登錄到所識別的子系統(tǒng)、進程、或應(yīng)用。行為觀測器模塊214可以在所識別的子系統(tǒng)、進程、或應(yīng)用上執(zhí)行更深度的觀測。行為觀測器模塊214可以將更深度的觀測的結(jié)果發(fā)送到行為分析器模塊216用于進一步的(并且更深度的)分析。可以重復這些操作,直到識別出問題的源為止,或者直到確定所識別的子系統(tǒng)、進程、或應(yīng)用不可能引起問題或降級為止。行為分析器模塊216然后可以將分析的結(jié)果發(fā)送到致動器模塊218,致動器模塊218可以接收結(jié)果并執(zhí)行操作以治療、治愈、隔離、或以其它方式修正所識別的問題。

      行為觀測器模塊214和行為分析器模塊216可以或者單獨地或者共同地提供對計算系統(tǒng)的行為的實時行為分析,以從有限且粗略的觀測中識別可疑的行為,動態(tài)地確定要更加詳細地觀測的行為,以及動態(tài)地確定觀測所需要的細節(jié)級別。以這種方式,行為觀測器模塊214使得計算系統(tǒng)200能夠高效地識別和防止在移動設(shè)備上發(fā)生問題,而不需要設(shè)備上的大量的處理器、存儲器、或電池資源。

      行為觀測器模塊214可以為系統(tǒng)提供各種觀測器模式,以實現(xiàn)多級別的登錄(例如,精細顆粒的登錄和粗略顆粒的登錄)。行為觀測器模塊214可以提供在不同的觀測器模式之間自動地且動態(tài)地切換的能力。行為觀測器模塊214可以監(jiān)測和約束可能耗盡系統(tǒng)資源的進程/應(yīng)用。行為觀測器模塊214可以管理通信(例如,對于安全世界是非安全的)開銷,以使得開銷是最小的并且流控制被高效地維護/執(zhí)行。

      在一個方面中,行為觀測器模塊214可以被配置為將行為信息存儲為以空間高效和查詢-服務(wù)-時間高效方式的觀測,以減少對良性應(yīng)用和移動設(shè)備的性能影響。

      在各種方面中,行為觀測器模塊214和/或行為分析器模塊216可以被配置為通過以下操作來分析移動計算設(shè)備行為:識別需要進行密切監(jiān)測的關(guān)鍵數(shù)據(jù)資源,識別與關(guān)鍵數(shù)據(jù)資源相關(guān)聯(lián)的中間資源,監(jiān)測當訪問關(guān)鍵數(shù)據(jù)資源和中間資源時由軟件應(yīng)用做出的api調(diào)用,識別由api調(diào)用消耗或產(chǎn)生的移動計算設(shè)備資源,識別api調(diào)用的模式作為對由軟件應(yīng)用進行的非良性活動的指示,基于所識別的api調(diào)用的模式和所識別的移動計算設(shè)備資源來生成輕權(quán)重的行為簽名,使用輕權(quán)重的行為簽名來執(zhí)行行為分析操作,以及基于行為分析操作來確定軟件應(yīng)用是非良性的還是良性的。

      在各種方面中,行為觀測器模塊214和/或行為分析器模塊216可以被配置為通過以下操作來分析移動計算設(shè)備行為:識別在移動計算設(shè)備上執(zhí)行的軟件應(yīng)用最頻繁使用的api,將關(guān)于所識別的熱api的使用的信息存儲在移動計算設(shè)備的存儲器中的api日志中,以及基于存儲在api日志中的信息來執(zhí)行行為分析操作以識別與正常操作模式不一致的移動計算設(shè)備行為。在一個方面中,可以生成api日志,以使得api日志被組織為使得保留在api的相同交叉調(diào)用的通用字段的值存儲在這樣的表中:該表與存儲特定于api的每個調(diào)用的特定字段的值的表分離。還可以生成api日志以使得特定字段的值連同存儲通用字段的值的分離的表的散列密鑰一起存儲在表中。

      在各種方面中,行為觀測器模塊214和/或行為分析器模塊216可以被配置為通過以下操作來分析移動計算設(shè)備行為:接收包括適于變換或表達為多個提升決策樁(boosteddecisionstump)的有限狀態(tài)機的完全分類器模型,基于完全分類器在移動計算設(shè)備中生成精益分類器模型,以及使用移動計算設(shè)備中的精益分類器模型來將移動計算設(shè)備的行為分類為或者良性的或者非良性的(即,惡意的、性能降級的等)。在一個方面中,基于完全分類器模型來生成精益分類器模型可以包括:確定應(yīng)該被評估以對移動計算設(shè)備行為進行分類的多個唯一測試條件,而不消耗過量的移動計算設(shè)備的處理、存儲器、或能量資源;通過順序遍歷提升決策樁的列表并將與每個被順序遍歷的提升決策樁相關(guān)聯(lián)的測試條件插入到測試條件的列表中直到測試條件的列表可以包括經(jīng)確定數(shù)量的唯一測試條件為止,來生成測試條件的列表;以及生成精益分類器模型以僅包括對包括在所生成的測試條件的列表中的多個測試條件中的一個測試條件進行測試的那些提升決策樁。

      在各種方面中,行為觀測器模塊214和/或行為分析器模塊216可以被配置為使用移動計算設(shè)備的設(shè)備專用的信息(例如,能力和狀態(tài)信息)來識別與對移動計算設(shè)備的行為進行分類相關(guān)的多個測試條件中的移動計算設(shè)備專用的測試條件,生成僅包括所識別的移動計算設(shè)備專用的測試條件的精益分類器模型,以及使用在移動計算設(shè)備中生成的精益分類器模型來對移動計算設(shè)備的行為進行分類。在一個方面中,可以生成精益分類器模型以僅包括對與移動計算設(shè)備的當前操作狀態(tài)或配置相關(guān)的移動計算設(shè)備特征進行評估的決策節(jié)點。在另一方面中,生成精益分類器模型可以包括:確定應(yīng)該被評估以對行為進行分類的多個唯一測試條件而不消耗過量的移動計算設(shè)備的資源(例如,處理、存儲器、或能量資源),通過順序遍歷完全分類器模型中的多個測試條件來生成測試條件的列表,將與對移動計算設(shè)備的行為進行分類相關(guān)的那些測試條件插入到測試條件的列表中直到測試條件的列表包括經(jīng)確定數(shù)量的唯一測試條件為止,以及生成精益分類器模型以包括對包括在所生成的測試條件的列表中的條件中的一個條件進行測試的、包括在完全分類器模型中的決策節(jié)點。

      在各種方面中,行為觀測器模塊214和/或行為分析器模塊216可以被配置為通過以下操作來辨識與移動計算設(shè)備的正常操作模式不一致的移動計算設(shè)備行為:監(jiān)測軟件應(yīng)用或進程的活動,確定軟件應(yīng)用/進程的操作系統(tǒng)執(zhí)行狀態(tài),以及基于在活動被監(jiān)測期間軟件應(yīng)用或進程的活動和/或操作系統(tǒng)執(zhí)行狀態(tài)來確定活動是否為良性的。在另一方面中,行為觀測器模塊214和/或行為分析器模塊216可以確定軟件應(yīng)用或進程的操作系統(tǒng)執(zhí)行狀態(tài)是否與活動相關(guān),生成標識在活動被監(jiān)測期間軟件應(yīng)用或進程的操作系統(tǒng)執(zhí)行狀態(tài)的陰影特征值,生成使活動與標識操作系統(tǒng)執(zhí)行狀態(tài)的陰影特征值相關(guān)聯(lián)的行為向量,以及使用行為向量來確定活動是良性的、可疑的、還是非良性的(即,惡意的或性能降級的)。

      在一個方面中,移動設(shè)備102還可以包括關(guān)鍵數(shù)據(jù)資源模塊,其存儲和管理易受誤用影響的和/或被確定為需要進行密切監(jiān)測的數(shù)據(jù)資源(例如,地址簿、照相機等)的列表。移動設(shè)備102可以被配置為基于以下項來動態(tài)地更新/改變關(guān)鍵數(shù)據(jù)資源的列表:來自行為分析器模塊的反饋,啟發(fā)法,機器學習,歷史信息,當前使用,在移動設(shè)備中檢測到的事件或條件,從服務(wù)器接收到的信息,用戶配置,和/或其它類似的標準、因素、事件、或條件。

      在另一方面中,移動設(shè)備102還可以存儲被確定為需要進行監(jiān)測以便對關(guān)鍵資源的使用保持跟蹤的中間資源的列表。例如,當軟件應(yīng)用從移動設(shè)備的關(guān)鍵資源(例如,地址簿等)讀取信息并將信息寫入到通用文件時,移動設(shè)備102可以確定通用文件是需要進行監(jiān)測以恰當?shù)貙﹃P(guān)鍵資源(即,地址簿)保持跟蹤的中間資源。在一個方面中,關(guān)鍵數(shù)據(jù)資源模塊可以存儲并管理中間資源的列表。

      在一個方面中,移動設(shè)備102可以被配置為監(jiān)測與關(guān)鍵資源(例如,在關(guān)鍵數(shù)據(jù)資源模塊中所識別的資源)有關(guān)的軟件堆棧的各種級別處的api調(diào)用。這可以通過收集來自與關(guān)鍵資源有關(guān)的儀器化組件的行為信息和/或通過從由關(guān)鍵資源生成的api日志讀取信息來實現(xiàn)。移動設(shè)備可以將該信息存儲在api調(diào)用行為日志數(shù)據(jù)庫中,識別需要進行監(jiān)測的附加的資源,確定繼續(xù)對關(guān)鍵資源進行監(jiān)測不太可能提供有用的信息,以及因此向存儲在關(guān)鍵數(shù)據(jù)資源中的數(shù)據(jù)資源的列表添加資源或從中移除資源。

      在一個方面中,移動設(shè)備102可以被配置為利用行為專用模型來比較和/或分析存儲在api調(diào)用行為日志數(shù)據(jù)庫中的信息,以識別指示非良性的/惡意的活動或行為的api調(diào)用的可疑序列或模式,識別應(yīng)該作為單個移動設(shè)備行為的一部分被一起評估的操作,識別需要進行分析的各種控制流或數(shù)據(jù)流參數(shù),計算源與宿之間的距離,和/或識別需要由行為分析器模塊216進行更密切的監(jiān)測或?qū)彶榈年P(guān)鍵資源。移動設(shè)備102可以基于比較和/或分析操作的結(jié)果來生成針對每個關(guān)鍵資源的簡明且輕權(quán)重的行為簽名,以及將這些輕權(quán)重的行為簽名發(fā)送到行為分析器模塊216用于分析。行為分析器模塊216可以接收并使用輕權(quán)重的行為簽名來快速且高效地確定需要進行附加的、不同的、或更深度的分析的移動設(shè)備行為或組件。

      圖3示出了計算設(shè)備可以識別與已污染存儲器地址相關(guān)聯(lián)的讀取操作302,使用污染傳播啟發(fā)法來計算或確定應(yīng)該被評估的第一數(shù)量(o)的操作、第二數(shù)量(m)的操作、以及第三數(shù)量(n)的操作,污染與在第o個操作之后并且在第m個操作之前執(zhí)行的前n個寫入操作304相關(guān)聯(lián)的存儲器地址,以及不污染與在第n個操作之后執(zhí)行的寫入操作306相關(guān)聯(lián)的存儲器地址。

      圖4和圖5示出了根據(jù)各種方面的跟蹤計算設(shè)備中的數(shù)據(jù)流的方法。特別地,圖4示出了使用污染傳播啟發(fā)法來識別涉及當跟蹤數(shù)據(jù)流時在硬件中進行的監(jiān)測的存儲器地址的方面方法400,并且圖5示出了監(jiān)測計算設(shè)備的基于硬件的存儲器監(jiān)測模塊中的存儲器的方面方法500。

      在圖4示出的框402中,計算設(shè)備的處理器可以向計算設(shè)備的硬件組件發(fā)送已污染存儲器地址的初始列表。在一個方面中,硬件組件可以是基于硬件的存儲器監(jiān)測模塊。在框404中,處理器可以接受來自硬件組件的所識別的操作及其相關(guān)聯(lián)存儲器地址的列表。在框406中,處理器可以使用接收到的列表中的信息來計算、確定、或識別在所識別的讀取操作之后執(zhí)行的“o”數(shù)量的操作。在框408中,處理器可以通過識別在第o個操作之后執(zhí)行的m數(shù)量的操作來確定監(jiān)測窗口。在框410中,處理器可以識別監(jiān)測窗口(m)中的前“n”數(shù)量的寫入操作。

      在框412中,處理器可以將與所識別的讀取操作相關(guān)聯(lián)的存儲器地址添加到污染列表。在框414中,處理器可以將與所識別的寫入操作(即,在監(jiān)測窗口m中的前n個寫入操作)相關(guān)聯(lián)的存儲器地址添加到污染列表。在框416中,處理器可以從污染列表中移除與在第n個寫入操作被檢測之后執(zhí)行的寫入操作相關(guān)聯(lián)的存儲器地址。在框418中,處理器可以將污染列表發(fā)送到硬件組件???04-418中的操作可以重復或持續(xù)地執(zhí)行以跟蹤數(shù)據(jù)流,而不對計算設(shè)備的性能或功率消耗特性具有顯著或消極的影響。

      參考圖5,在框502中,計算設(shè)備的基于硬件的存儲器監(jiān)測模塊可以接收來自計算設(shè)備的軟件組件的已污染存儲器地址的初始列表。在框504中,存儲器監(jiān)測模塊可以將包括在接收到的列表中的存儲器地址標記為“敏感的”(或“已污染的”)地址。在框506中,存儲器監(jiān)測模塊可以監(jiān)測計算設(shè)備中的存儲器,以識別從敏感地址讀取信息的讀取操作。在框508中,存儲器監(jiān)測模塊可以繼續(xù)監(jiān)測存儲器以識別在偏移(o)和/或監(jiān)測窗口(m)中的操作。在框510中,存儲器監(jiān)測模塊可以將所識別的操作及其相關(guān)聯(lián)的存儲器地址添加到操作列表。在框512中,存儲器監(jiān)測模塊可以將操作列表發(fā)送到軟件組件。在框514中,存儲器監(jiān)測模塊可以接受來自軟件組件的污染列表,并且在框504中將包括在接收到的列表中的存儲器地址標記為敏感的/已污染的。

      圖6示出了跟蹤計算設(shè)備中的數(shù)據(jù)流以快速且高效地確定在源組件與宿組件之間是否已經(jīng)發(fā)生(或可能發(fā)生)信息泄露的方面方法600。在框602中,計算設(shè)備的處理器或處理核心可以識別與敏感源組件相關(guān)聯(lián)的第一存儲器地址。在框604中,處理器可以識別與宿組件相關(guān)聯(lián)的第二存儲器地址。在確定框606中,處理器可以確定所識別的第一地址是否與第二存儲器地址相同(或與其等效等)。響應(yīng)于確定所識別的第一地址與第二存儲器地址不相同(即,確定框606=“否”),在框602中處理器可以繼續(xù)其正常的行為分析操作和/或識別附加的源組件。

      響應(yīng)于確定所識別的第一地址與第二存儲器地址相同(即,確定框606=“是”),在框608處處理器可以確定存在信息泄露(或者存在將發(fā)生信息泄露的高概率)并且執(zhí)行各種操作來響應(yīng)信息泄露。例如,在框608中,處理器可以隔離與源組件或宿組件相關(guān)聯(lián)的軟件應(yīng)用程序,增加由行為觀測器模塊214進行監(jiān)測的因素/特征/行為的數(shù)量,使得行為分析器模塊216使用更大的或更魯棒的分類器模型等。

      各種方面(例如,上面參考圖1至圖6描述的方面)可以在多種移動計算設(shè)備上實現(xiàn),移動計算設(shè)備的示例在圖7中以智能電話的形式示出。智能電話700可以包括耦合到內(nèi)部存儲器702、顯示器703、以及揚聲器的處理器701。在一個方面中,用于將處理器701配置為執(zhí)行上面描述的方面方法操作中的一個或多個的操作的處理器可執(zhí)行指令可以存儲在存儲器702中。另外,智能電話700可以包括用于發(fā)送和接收電磁輻射的天線704,其可以連接到耦合到處理器701的無線數(shù)據(jù)鏈路和/或蜂窩電話收發(fā)器705。智能電話700典型地還包括用于接收用戶輸入的菜單選擇按鈕或搖桿式開關(guān)706、708。

      典型的智能電話700還包括聲音編碼/解碼(codec)電路712,其將從麥克風接收的聲音數(shù)字化為適于無線傳輸?shù)臄?shù)據(jù)分組,并將接收到的聲音數(shù)據(jù)分組解碼以生成模擬信號,模擬信號被提供給揚聲器以生成聲音。另外,處理器701、無線收發(fā)器705、以及codec電路712中的一個或多個可以包括數(shù)字信號處理器(dsp)電路(未單獨示出)。

      處理器701可以是任何可編程的微處理器、微計算機、或者多個處理器芯片或(多個)芯片,其能夠由軟件指令(應(yīng)用)配置為執(zhí)行多種功能,包括下面描述的各種方面的功能。在一些移動設(shè)備中,可以提供多個處理器701,例如,一個處理器專用于無線通信功能而一個處理器專用于運行其它應(yīng)用。典型地,在軟件應(yīng)用被訪問以及加載到處理器701中之前,軟件應(yīng)用可以存儲在內(nèi)部存儲器702中。處理器701可以包括足以存儲應(yīng)用軟件指令的內(nèi)部存儲器。

      用于在可編程處理器上執(zhí)行以用于實現(xiàn)各種方面的操作的計算機程序代碼或“程序代碼”可以以高級編程語言來編寫,例如,c、c++、c#、smalltalk、java、javascript、visualbasic、結(jié)構(gòu)化查詢語言(例如,transact-sql)、perl,或者以各種其它編程語言來編寫。存儲在計算機可讀存儲介質(zhì)上的程序代碼或程序在本文中用于指示其格式能夠由處理器理解的機器語言代碼(例如,對象代碼)。

      許多移動計算設(shè)備操作系統(tǒng)內(nèi)核被組織到用戶空間(其中運行非特權(quán)代碼)和內(nèi)核空間中(其中運行特權(quán)代碼)。這種分離在和其它通用公共許可(gpl)環(huán)境中特別重要,在和其它通用公共許可(gpl)環(huán)境中作為內(nèi)核空間的一部分的代碼必須是gpl許可的,而在用戶空間中運行的代碼可以不是gpl許可的。應(yīng)該理解,這里討論的各種軟件組件/模塊可以在或者內(nèi)核空間或者用戶空間中實現(xiàn),除非另有明確說明。

      術(shù)語“片上系統(tǒng)”(soc)在本申請中用于指示單個集成電路(ic)芯片,其包含集成到單個基底上的多個資源和/或處理器。單個soc可以包含用于數(shù)字、模擬、混合信號、以及射頻功能的電路。單個soc還可以包括任何數(shù)量的通用處理器和/或?qū)S锰幚砥?數(shù)字信號處理器、調(diào)制解調(diào)器處理器、視頻處理器等)、存儲器塊(例如,rom、ram、閃存等)、以及資源(例如,定時器、電壓調(diào)節(jié)器、振蕩器等)。soc還可以包括用于控制集成資源和處理器以及用于控制外圍設(shè)備的軟件。

      術(shù)語“多核處理器”在本申請中用于指示單個集成電路(ic)芯片或芯片封裝,其包含被配置為讀取和執(zhí)行程序指令的兩個或更多個獨立處理核心(例如,cpu核心)。soc可以包括多個多核處理器,并且soc中的每個處理器可以指示核心。術(shù)語“多處理器”在本申請中用于指示包括被配置為讀取和執(zhí)行程序指令的兩個或更多個處理單元的系統(tǒng)或設(shè)備。

      如在本申請中使用的,術(shù)語“組件”、“模塊”等等旨在包括計算機有關(guān)的實體,例如但不限于,硬件、固件、硬件和固件的組合、軟件、或在執(zhí)行的軟件,其被配置為執(zhí)行特定操作或功能。例如,組件可以是但不限于:在處理器上運行的進程、處理器、對象、可執(zhí)行文件、執(zhí)行線程、程序、和/或計算機。通過示例說明的方式,在計算設(shè)備上運行的應(yīng)用和計算設(shè)備二者都可以被稱為組件。一個或多個組件可以駐留在進程和/或執(zhí)行線程內(nèi),并且組件可以位于一個處理器或核心上和/或分布在兩個或更多個處理器或核心之間。另外,這些組件可以從其上存儲有各種指令和/或數(shù)據(jù)結(jié)構(gòu)的各種非暫時性計算機可讀介質(zhì)中執(zhí)行。組件可以通過本地和/或遠程進程、功能或程序調(diào)用、電子信號、數(shù)據(jù)分組、存儲器讀/寫的方式來進行通信,以及通過其它已知的網(wǎng)絡(luò)、計算機、處理器、和/或進程有關(guān)的通信方法的方式來進行通信。

      前述方法描述和過程流程圖僅作為說明性示例提供,而并非旨在要求或暗示各種方面的步驟必須以所呈現(xiàn)的次序來執(zhí)行。如本領(lǐng)域技術(shù)人員可以認識到的,前述方面中的步驟的次序可以以任何次序來執(zhí)行。諸如“之后”、“然后”、“接下來”等的詞語并非旨在限制步驟的次序;這些詞語簡單地用于引導讀者理解對方法的描述。此外,以單數(shù)形式的對聲明元素的任何引用(例如,使用冠詞“一(a)”、“一個(an)”、或“該(the)”)不應(yīng)被解釋為將該元素限制為單數(shù)。

      結(jié)合本文所公開的方面描述的各種示例說明性的邏輯塊、模塊、電路、以及算法步驟可以實現(xiàn)為電子硬件、計算機軟件、或二者的組合。為了清楚地示例說明硬件和軟件的這種互換性,上面按照各種示例說明性的組件、塊、模塊、電路、以及步驟的功能對其進行了總體描述。這些功能被實現(xiàn)為硬件還是軟件取決于特定應(yīng)用和施加到整體系統(tǒng)上的設(shè)計約束。技術(shù)人員可以以變化的方式針對每個特定應(yīng)用來實現(xiàn)所描述的功能,但是這種實現(xiàn)方式?jīng)Q策不應(yīng)被解釋為導致脫離本發(fā)明的范圍。

      用于實現(xiàn)結(jié)合本文公開的方面所描述的各種示例說明性的邏輯、邏輯塊、模塊、以及電路的硬件可以利用以下項來實現(xiàn)或執(zhí)行:通用處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其它可編程邏輯設(shè)備、分立門或晶體管邏輯、分立硬件組件、或者被設(shè)計用于執(zhí)行本文描述的功能的其任何組合。通用處理器可以是多處理器,但是在替代例中,處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機。還可以將處理器實現(xiàn)為計算設(shè)備的組合,例如,dsp和多處理器的組合、多個多處理器、一個或多個多處理器結(jié)合dsp核心、或者任何其它這樣的配置。替代地,可以通過專用于給定功能的電路來執(zhí)行一些步驟或方法。

      在一個或多個示例性方面中,所描述的功能可以以硬件、軟件、固件、或其任何組合來實現(xiàn)。如果以軟件實現(xiàn),則可以將功能存儲為非暫時性計算機可讀介質(zhì)或非暫時性處理器可讀介質(zhì)上的一個或多個指令或代碼。本文公開的方法或算法的步驟可以以處理器可執(zhí)行的軟件模塊來實施,該處理器可執(zhí)行的軟件模塊可以駐留在非暫時性計算機可讀或處理器可讀存儲介質(zhì)上。非暫時性計算機可讀或處理器可讀存儲介質(zhì)可以是可以由計算機或處理器訪問的任何存儲介質(zhì)。通過示例而非限制的方式,這種非暫時性計算機可讀或處理器可讀介質(zhì)可以包括ram、rom、eeprom、閃速存儲器、cd-rom或其它光盤存儲、磁盤存儲或其它磁存儲設(shè)備、或者可以用于存儲以指令或數(shù)據(jù)結(jié)構(gòu)形式的并且可以由計算機訪問的期望程序代碼的任何其它介質(zhì)。如本文使用的,盤(disk)和碟(disc)包括壓縮碟(cd)、激光碟、光碟、數(shù)字通用碟(dvd)、軟盤、以及藍光碟,其中盤通常磁性地再現(xiàn)數(shù)據(jù),而碟則利用激光來光學地再現(xiàn)數(shù)據(jù)。上面的組合還包括在非暫時性計算機可讀和處理器可讀介質(zhì)的范圍內(nèi)。另外,方法或算法的操作可以作為代碼和/或指令的一個或任何組合或集合駐留在非暫時性處理器可讀介質(zhì)和/或計算機可讀介質(zhì)上,其可以并入到計算機程序產(chǎn)品中。

      提供所公開的方面的先前描述以使得任何本領(lǐng)域技術(shù)人員能夠制作或使用本發(fā)明。對這些方面的各種修改對于本領(lǐng)域技術(shù)人員將是顯而易見的,并且本文定義的一般原理可以應(yīng)用于其它方面,而不脫離本發(fā)明的精神或范圍。因此,本發(fā)明并非旨在限于本文所示出的方面,而是符合與所附權(quán)利要求和本文所公開的原理和新穎特征一致的最寬范圍。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1