新四季網

惡意程序控制指令識別方法及裝置製造方法

2023-05-01 08:36:26 2

惡意程序控制指令識別方法及裝置製造方法
【專利摘要】一種惡意程序控制指令識別方法,包括:監控惡意程序的注入過程,獲取注入進程和注入地址;監控與所述注入進程對應的輸入數據,獲取與所述輸入數據對應的執行軌跡;對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡;根據篩選得到的執行軌跡計算代碼覆蓋率,根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元;根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集。此外,還提供了一種惡意程序控制指令識別裝置。上述惡意程序控制指令識別方法及裝置能夠提高控制指令識別的準確率。
【專利說明】惡意程序控制指令識別方法及裝置
【技術領域】
[0001]本發明涉及計算機【技術領域】,特別是涉及一種惡意程序控制指令識別方法及裝置。
【背景技術】
[0002]伴隨著計算機技術的發展,惡意程序越來越多的出現在日常生活中,對企業的信息安全以及人們的正常生活產生不良影響。例如,現有的殭屍網絡惡意程序即通過感染傳播的手段,將大量惡意程序客戶端植入到多個主機之中,然後不法分子可通過殭屍網絡伺服器發送控制指令操縱被控制的多個主機發起DDOS (拒絕服務攻擊)攻擊。例如,不法分子可操縱被控制的多個主機同時向某個網站發起大量請求,使該網站的伺服器負載增加,從而影響用戶正常的瀏覽服務。
[0003]因此,為遏制惡意程序造成的危害,通常需要先對惡意程序的控制指令進行識別,然後再通過數據包分析將附帶有惡意程序控制指令的數據包截獲,從而在全局控制惡意程序的危害。
[0004]然而,現有技術中對惡意程序控制指令的識別方法,通常通過人工的方式靜態的分析惡意程序的代碼,或者動態的分析數據包的統計特徵,其識別準確度均較低。

【發明內容】

[0005]基於此,有必要提供一種能提高識別準確率的惡意程序控制指令識別方法。
[0006]一種惡意程序控制指令識別方法,包括:
[0007]監控惡意程序的注入過程,獲取注入進程和注入地址;
[0008]監控與所述注入進程對應的輸入數據,獲取與所述輸入數據對應的執行軌跡;
[0009]對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡;
[0010]根據篩選得到的執行軌跡計算代碼覆蓋率,根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元;
[0011]根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集。
[0012]此外,還有必要提供一種能提高識別準確率的惡意程序控制指令識別裝置。
[0013]一種惡意程序控制指令識別裝置,包括:
[0014]進程監控模塊,用於監控惡意程序的注入過程,獲取注入進程和注入地址;
[0015]執行軌跡獲取模塊,用於監控與所述注入進程對應的輸入數據,獲取與所述輸入數據對應的執行軌跡;
[0016]執行軌跡篩選模塊,用於對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡;
[0017]覆蓋單元定位模塊,用於根據篩選得到的執行軌跡計算代碼覆蓋率,根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元;
[0018]指令獲取模塊,用於根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集。
[0019]上述惡意程序控制指令識別方法及裝置,通過監控惡意程序對系統進程的注入過程獲取與輸入數據對應的執行軌跡,在對執行軌跡進行篩選後得到與注入地址即惡意程序加載在內存中的區域對應的執行軌跡,然後通過分析各個執行軌跡中包含的覆蓋單元的代碼覆蓋率來定位與控制指令判斷邏輯對應的覆蓋單元。由於與控制指令判斷邏輯對應的覆蓋單元中必然包含用於校驗輸入數據中包含的控制指令是否正確的標準控制指令集,因此,根據該與控制指令判斷邏輯對應的覆蓋單元即可獲取惡意程序控制指令。和現有技術相比,上述惡意程序控制指令識別方法及裝置由於通過監控準確定位到了與控制指令判斷邏輯對應的覆蓋單元,使得識別的準確度得到了提高。
【專利附圖】

【附圖說明】
[0020]圖1為一個實施例中惡意程序控制指令識別方法的流程圖;
[0021]圖2為一個實施例中計算執行軌跡的相似度,並將執行軌跡歸一化的步驟的流程圖;
[0022]圖3為一個實施例中惡意程序控制指令識別裝置的結構示意圖;
[0023]圖4為另一個實施例中惡意程序控制指令識別裝置的結構示意圖;
[0024]圖5為一個應用場景中對Zeus惡意程序對explorer, exe進程的注入過程進行監控的示意圖;
[0025]圖6為一個應用場景中對獲取到的執行軌跡的示意圖;
[0026]圖7為一個應用場景中篩選後得到的執行軌跡的示意圖;
[0027]圖8為一個應用場景中執行軌跡的統計數據的示意圖;
[0028]圖9為一個應用場景中通過計算代碼覆蓋率得到分支覆蓋單元的示意圖;
[0029]圖10為一個應用場景中通過計算代碼覆蓋率得到條件判斷覆蓋單元的示意圖;
[0030]圖11為一個應用場景中得到的執行序列的示意圖;
[0031]圖12為一個應用場景中定位到的汙點數據的示意圖;
[0032]圖13為一個應用場景中定位到的指令判斷函數的示意圖;
[0033]圖14為一個應用場景中指令判斷函數的參數值取值的示意圖;
[0034]圖15為一個應用場景中獲取到的標準控制指令集的地址信息的示意圖;
[0035]圖16為一個應用場景中獲取到的標準控制指令集的示意圖;
[0036]圖17為一個應用場景中校驗得到的所有執行軌跡的示意圖。
【具體實施方式】
[0037]在一個實施例中,如圖1所示,一種惡意程序控制指令識別方法,包括以下步驟:
[0038]步驟S102,監控惡意程序的注入過程,獲取注入進程和注入地址。
[0039]惡意程序在感染主機後,通常會通過注入函數將其綁定在某個系統進程中,該被注入的系統進程即為注入進程。當該注入進程加載並運行時,則通過函數調用啟動惡意程序運行。例如,在windows系統中,惡意程序通常會注入到explorer進程(資源管理器進程)中,從而隨著作業系統的啟動而啟動。
[0040]在本實施例中,可通過監控文件的創建和讀寫操作過程以及進程之間的交互行為來確定注入進程以及注入函數,通過獲取注入函數的參數獲取注入地址以及注入地址的大小。
[0041]步驟S104,監控與注入進程對應的輸入數據,獲取與輸入數據對應的執行軌跡。
[0042]在一個實施例中,可在獲取到輸入數據後,可獲取監控時長,然後在監控時長的時間長度內獲取與輸入數據對應的執行軌跡。監控時長可以為預設值,預設值優選為5分鐘。
[0043]在一個實施例中,監控與注入進程對應的輸入數據的步驟可包括:獲取汙點數據類型,根據汙點數據類型對輸入數據進行篩選。
[0044]汙點數據類型即可能觸發惡意程序運行的輸入數據類型。汙點數據類型可以是網絡數據包、鍵盤輸入數據、作業系統時間等。汙點數據類型可預先設置。例如,在獲取殭屍網絡惡意程序的控制指令時,由於用戶在被感染的主機上的鍵盤輸入等操作不會產生能觸發殭屍網絡惡意程序的控制指令,因此汙點數據類型可預設為網絡數據包,即獲取網絡數據包對應的注入進程的執行軌跡。
[0045]執行軌跡即在監控時間內運行的覆蓋單元的序列。在計算機技術中,程序以二進位指令代碼的形式存儲在內存空間中,並按照內存地址的順序連續執行。當執行過程中遇到函數調用時,則跳轉至該函數調用對應的內存空間繼續執行其存儲的二進位指令代碼,函數調用結束後,再跳轉回繼續執行。覆蓋單元即連續存儲二進位指令代碼的內存空間。
[0046]在本實施例中,可根據獲取到的注入地址提取二進位代碼並進行反彙編從而得到相應的彙編指令。可對彙編指令按地址順序進行迭代,將順序執行的二進位指令劃歸為同一覆蓋單元,若迭代到的指令為函數調用指令或程序跳轉指令時,則根據跳轉到的內存地址進行遞歸迭代,並創建對應該函數調用指令或程序跳轉指令的覆蓋單元,從而得到執行軌跡對應的覆蓋單元集合。
[0047]在本實施例中,獲取與輸入數據對應的執行軌跡的步驟還可包括:判斷執行軌跡是否對應輸入數據的傳播軌跡,若不包含,則可忽略該執行軌跡。
[0048]輸入數據的傳播軌跡即輸入數據經過運算操作和複製操作進行傳播的數據集合。若執行軌跡中的所有覆蓋單元均不包含該數據集合中的元素,則該執行軌跡與輸入數據的傳播軌跡不對應。也就是說,在本實施例中,若執行軌跡並沒有對接收到的網絡數據包中的數據進行提取,與網絡數據包中的數據完全無關時,可忽略該執行軌跡。
[0049]進一步的,在迭代過程中,還可獲取覆蓋單元對應的運行次數和運行時間。由於指令在執行時,通常會存在循環執行的情況,因此,覆蓋單元還對應運行次數,可根據運行次數判斷該覆蓋單元被循環運行了多少次。
[0050]在本實施例中,還可將監控獲取到的執行軌跡存儲在執行軌跡資料庫中,可將執行軌跡包含的覆蓋單元的內存起始位置、運行時間和運行次數與監控時間對應存儲在執行軌跡資料庫中。
[0051]步驟S106,對執行軌跡進行篩選,篩選得到與注入地址對應的執行軌跡。
[0052]在一個實施例中,對執行軌跡進行篩選,篩選得到與注入地址對應的執行軌跡的步驟包括:獲取執行軌跡中包含的系統函數調用指令,移除系統函數調用指令對應的覆蓋單元。
[0053]惡意程序在運行時,可能會進行系統函數調用。例如,可通過調用系統函數獲取作業系統當前時間。在本實施例中,可僅在執行軌跡中保留系統函數調用的調用語句和返回語句,而過濾掉系統函數調用對應的覆蓋單元。
[0054]系統函數調用對應的覆蓋單元為作業系統加載動態連結庫文件的內存區域,與惡意程序的控制指令無關,過濾掉系統函數調用對應的覆蓋單元可排除系統函數調用的幹擾。
[0055]在一個實施例中,對執行軌跡進行篩選,篩選得到與注入地址對應的執行軌跡的步驟還可包括:獲取執行軌跡中包含的與注入進程對應的調用指令,移除注入進程對應的調用指令對應的覆蓋單元。
[0056]在獲取到輸入數據後,注入進程也在執行過程中,執行軌跡可能會包含注入進程對應的覆蓋單元,通過移除與注入進程對應的調用指令對應的覆蓋單元,可避免注入進程的指令造成的誤識別。
[0057]在一個實施例中,對執行軌跡進行篩選,篩選得到與注入地址對應的執行軌跡的步驟還可包括:
[0058]獲取執行軌跡包含的覆蓋單元及覆蓋單元的運行次數,根據包含的覆蓋單元和運行次數計算執行軌跡之間的相似度;獲取相似度閾值;將相似度大於所述相似度閾值的執行軌跡歸一化。
[0059]也就是說,若兩條執行軌跡包含的覆蓋單元大部分相同,則可認為該兩條執行軌跡對應同一條控制指令,從而可將其中一條移除。
[0060]在本實施例中,獲取執行軌跡包含的覆蓋單元及所述覆蓋單元的運行次數,根據包含的覆蓋單元和運行次數計算執行軌跡之間的相似度的步驟可具體為:
[0061 ] 獲取執行軌跡包含的內存地址相同且運行次數相同的相同覆蓋單元個數、內存地址不同的特有覆蓋單元個數以及內存地址相同但運行次數不同的近似覆蓋單元個數,根據相同覆蓋單元個數、特有覆蓋單元個數和,覆蓋單元個數計算執行軌跡之間的相似度。
[0062]在本實施例中,可根據下述步驟將執行軌跡歸一化:
[0063]步驟S202,在獲取到的執行軌跡中迭代選取執行軌跡I。
[0064]步驟S204,遍歷獲取到的執行軌跡R,根據公式:
c.ns +η,
[0065]simIR=-

Ylj + Hr
[0066]計算遍歷到的執行軌跡R與選取的執行軌跡I的相似度;其中,Sim1, E為相似度,ns為執行軌跡I和R均包含的且運行次數也相同的相同覆蓋單元個數,H1為執行軌跡I和R均包含的但運行次數不相同的近似覆蓋單元個數,H1為僅執行軌跡I包含的覆蓋單元的個數,nE為僅執行軌跡R包含的覆蓋單元的個數。
[0067]步驟S206,將計算得到的相似度與相似度閾值進行比較,若相似度大於相似度閾值,則移除遍歷到執行軌跡。
[0068]步驟S208,遍歷結束則跳轉繼續執行步驟S202,直到迭代完畢。
[0069]進一步的,在本實施例中,獲取相似度閾值的步驟可具體為:根據公式:
[0070]Sa =-1-!!?
?(//-OtTTT
[0071]計算相似度閾值。其中,STh為相似度閾值,η為獲取到的執行軌跡的個數,Simij為執行軌跡相似度i和j之間的相似度。[0072]步驟S108,根據篩選得到的執行軌跡計算代碼覆蓋率,根據代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元。
[0073]代碼覆蓋率即覆蓋單元在篩選得到的執行軌跡中的出現次數(也可以是比例)。
[0074]在本實施例中,根據篩選得到的執行軌跡計算代碼覆蓋率的步驟可具體為:獲取篩選得到的執行軌跡的覆蓋單元及其運行次數,計算覆蓋單元在篩選得到的執行軌跡中各自的出現次數,根據出現次數計算代碼覆蓋率。
[0075]例如,若篩選得到的執行軌跡的數量為10,若覆蓋單元A在其中2個執行軌跡中出現,則出現次數為2或出現頻率為2/10 ;若覆蓋單元B在所有執行軌跡中均出現,則出現次數為10或出現頻率為10/10。
[0076]在本實施例中,根據代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元的步驟可具體為:根據代碼覆蓋率獲取出現次數為I的分支覆蓋單元和每個執行軌跡均包含的且運行次數不同的條件判斷覆蓋單元,根據分支覆蓋單元和條件判斷覆蓋單元定位對應控制指令判斷邏輯的覆蓋單元。
[0077]出現次數為I的分支覆蓋單元即僅在唯一一條執行軌跡中運行過的覆蓋單元。由於惡意程序的控制指令判斷邏輯通常需要從網絡數據包中提取控制指令,然後將該控制指令與其定義在二進位代碼中的標準控制指令集中的控制指令進行比較,從而進行相應的操作,因此,每個執行軌跡均包含的且運行次數不同的條件判斷覆蓋單元,即為判斷控制指令是否正確的邏輯部分。
[0078]根據分支覆蓋單元和條件判斷覆蓋單元定位對應控制指令判斷邏輯的覆蓋單元的步驟可具體為:
[0079]獲取分支覆蓋單元的分支時間戳和條件判斷覆蓋單元的判斷時間戳,獲取運行時間戳在分支時間戳和判斷時間戳之間的覆蓋單元,並根據獲取到的覆蓋單元、分支覆蓋單元和條件判斷覆蓋單元定位判斷指令執行序列。
[0080]判斷指令執行序列即對應了控制指令判斷邏輯的覆蓋單元的執行序列。如前所述,惡意程序在判斷控制指令是否正確時,會在條件判斷覆蓋單元運行數次,若控制指令匹配,則會進入分支覆蓋單元進行運行,因此,由條件判斷覆蓋單元到分支覆蓋單元的執行序列必然包含了控制指令判斷邏輯。
[0081]步驟S110,根據對應控制指令判斷邏輯的覆蓋單元獲取其對應的標準控制指令集。
[0082]在本實施例中,如前所述,由於判斷指令執行序列必然包含了控制指令判斷邏輯,且通常通過函數調用對控制指令是否正確進行判斷(因為會跳轉到分支覆蓋單元,因此必然會有函數調用過程,且會將控制指令作為參數傳遞),則需要通過獲取前述的標準控制指令集來與輸入的控制指令進行比較,因此可通過定位獲取標準控制指令集的指令的地址信息來獲取標準控制指令集。標準控制指令集即能夠觸發惡意程序的控制指令的集合。
[0083]在本實施例中,還可提取判斷指令執行序列中的函數調用的參數值,根據參數值更新獲取到的標準控制指令集。
[0084]可判斷標準控制指令集中是否包含該參數值,若包含,則表示該控制指令未進行加密,若不包含,則表示該控制指令在與標準控制指令集進行比對之前進行了加密。可進一步通過地反編譯函數調用對應的指令獲取該加密函數,然後根據該加密函數更新獲取到的標準控制指令集。
[0085]例如,若標準控制指令集中的控制指令均為經過加密算法加密後的控制指令,則控制指令在進入判斷指令執行序列中後,同樣會在經過加密算法處理後再與標準控制指令集中的控制指令進行比較。因此,可進一步地通過反編譯函數調用得到具體的加密函數,並通過相應的解密函數對標準控制指令集中的控制指令進行處理,從而將標準控制指令集更新。或者,也可以在後期進行分析網絡數據包是否包含惡意程序控制指令時,先將網絡數據包中的數據經過加密算法處理後再與標準控制指令集進行比對。
[0086]在一個實施例中,根據對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集步驟之後還可根據標準控制指令集生成測試指令,通過修改函數調用參數值輸入測試指令,獲取測試執行軌跡,根據測試執行軌跡校驗標準控制指令集。
[0087]例如,若僅通過監控到10次執行軌跡即獲取到標準控制指令集,且標準控制指令集中包括25個控制指令,則可將該25個控制指令依次作為測試指令取出,並通過將輸入到條件判斷覆蓋單元中的函數調用的參數值修改為測試指令來獲取對應的分支覆蓋單元,從而得到與取出的測試指令對應的分支覆蓋單元。若獲取到的分支覆蓋單元各不相同,則意味著獲取到的標準控制指令集校驗正確。也就是說,即使監控到的10次執行軌跡中並沒有完全包含標準控制指令集中的所有控制指令,但是可通過修改條件判斷覆蓋單元中的函數調用的參數值來補全所有可能的控制指令判斷執行分支,若分支覆蓋單元各不相同,則意味著殭屍程序根據不同的控制指令執行了不同的操作,從而驗證了獲取到的標準控制指令集為正確;否則,若存在相同的分支覆蓋單元,則意味著存在多個判斷錯誤的控制指令(參考if-else語句,判斷錯誤的控制指令必然會進入else對應的分支覆蓋單元),從而驗證標準控制指令集為錯誤,需要重新獲取標準控制指令。
[0088]在一個實施例中,如圖4所示,一種惡意程序控制指令識別裝置,包括進程監控模塊102、執行軌跡獲取模塊104、執行軌跡篩選模塊106、覆蓋單元定位模塊108以及指令獲取模塊110,其中:
[0089]進程監控模塊102,用於監控惡意程序的注入過程,獲取注入進程和注入地址。
[0090]惡意程序在感染主機後,通常會通過注入函數將其綁定在某個系統進程中,該被注入的系統進程即為注入進程。當該注入進程加載並運行時,則通過函數調用啟動惡意程序運行。例如,在windows系統中,惡意程序通常會注入到explorer進程(資源管理器進程)中,從而隨著作業系統的啟動而啟動。
[0091]在本實施例中,進程監控模塊102可用於通過監控文件的創建和讀寫操作過程以及進程之間的交互行為來確定注入進程以及注入函數,通過獲取注入函數的參數獲取注入地址以及注入地址的大小。
[0092]執行軌跡獲取模塊104,用於監控與注入進程對應的輸入數據,獲取與輸入數據對應的執行軌跡。
[0093]在一個實施例中,執行軌跡獲取模塊104可用於在獲取到輸入數據後,獲取監控時長,然後在監控時長的時間長度內獲取與輸入數據對應的執行軌跡。監控時長可以為預設值,預設值優選為5分鐘。
[0094]在一個實施例中,執行軌跡獲取模塊104可用於獲取汙點數據類型,根據汙點數據類型對輸入數據進行篩選。[0095]汙點數據類型即可能觸發惡意程序運行的輸入數據類型。汙點數據類型可以是網絡數據包、鍵盤輸入數據、作業系統時間等。汙點數據類型可預先設置。例如,在獲取殭屍網絡惡意程序的控制指令時,由於用戶在被感染的主機上的鍵盤輸入等操作不會產生能觸發殭屍網絡惡意程序的控制指令,因此汙點數據類型可預設為網絡數據包,即獲取網絡數據包對應的注入進程的執行軌跡。
[0096]執行軌跡即在監控時間內運行的覆蓋單元的序列。在計算機技術中,程序以二進位指令代碼的形式存儲在內存空間中,並按照內存地址的順序連續執行。當執行過程中遇到函數調用時,則跳轉至該函數調用對應的內存空間繼續執行其存儲的二進位指令代碼,函數調用結束後,再跳轉回繼續執行。覆蓋單元即連續存儲二進位指令代碼的內存空間。
[0097]在本實施例中,執行軌跡獲取模塊104可用於根據獲取到的注入地址提取二進位代碼並進行反彙編從而得到相應的彙編指令。可對彙編指令按地址順序進行迭代,將順序執行的二進位指令劃歸為同一覆蓋單元,若迭代到的指令為函數調用指令或程序跳轉指令時,則根據跳轉到的內存地址進行遞歸迭代,並創建對應該函數調用指令或程序跳轉指令的覆蓋單元,從而得到執行軌跡對應的覆蓋單元集合。
[0098]在本實施例中,執行軌跡獲取模塊104還可用於判斷執行軌跡是否對應輸入數據的傳播軌跡,若不包含,則忽略該執行軌跡。
[0099]輸入數據的傳播軌跡即輸入數據經過運算操作和複製操作進行傳播的數據集合。若執行軌跡中的所有覆蓋單元均不包含該數據集合中的元素,則該執行軌跡與輸入數據的傳播軌跡不對應。也就是說,在本實施例中,若執行軌跡並沒有對接收到的網絡數據包中的數據進行提取,與網絡數據包中的數據完全無關時,可忽略該執行軌跡。
[0100]進一步的,在迭代過程中,執行軌跡獲取模塊104還可用於獲取覆蓋單元對應的運行次數和運行時間。由於指令在執行時,通常會存在循環執行的情況,因此,覆蓋單元還對應運行次數,可根據運行次數判斷該覆蓋單元被循環運行了多少次。
[0101 ] 在本實施例中,還可將監控獲取到的執行軌跡存儲在執行軌跡資料庫中,可將執行軌跡包含的覆蓋單元的內存起始位置、運行時間和運行次數與監控時間對應存儲在執行軌跡資料庫中。
[0102]執行軌跡篩選模塊106,用於對執行軌跡進行篩選,篩選得到與注入地址對應的執行軌跡。
[0103]在一個實施例中,執行軌跡篩選模塊106可用於獲取執行軌跡中包含的系統函數調用指令,移除系統函數調用指令對應的覆蓋單元。
[0104]惡意程序在運行時,可能會進行系統函數調用。例如,可通過調用系統函數獲取作業系統當前時間。在本實施例中,可僅在執行軌跡中保留系統函數調用的調用語句和返回語句,而過濾掉系統函數調用對應的覆蓋單元。
[0105]系統函數調用對應的覆蓋單元為作業系統加載動態連結庫文件的內存區域,與惡意程序的控制指令無關,過濾掉系統函數調用對應的覆蓋單元可排除系統函數調用的幹擾。
[0106]在一個實施例中,執行軌跡篩選模塊106還可用於獲取執行軌跡中包含的與注入進程對應的調用指令,移除注入進程對應的調用指令對應的覆蓋單元。
[0107]在獲取到輸入數據後,注入進程也在執行過程中,執行軌跡可能會包含注入進程對應的覆蓋單元,通過移除與注入進程對應的調用指令對應的覆蓋單元,可避免注入進程的指令造成的誤識別。
[0108]在一個實施例中,執行軌跡篩選模塊106還可用於獲取執行軌跡包含的覆蓋單元及覆蓋單元的運行次數,根據包含的覆蓋單元和運行次數計算執行軌跡之間的相似度;獲取相似度閾值;將相似度大於所述相似度閾值的執行軌跡歸一化。
[0109]也就是說,若兩條執行軌跡包含的覆蓋單元大部分相同,則可認為該兩條執行軌跡對應同一條控制指令,從而可將其中一條移除。
[0110]在本實施例中,執行軌跡篩選模塊106還可用於獲取執行軌跡包含的內存地址相同且運行次數相同的相同覆蓋單元個數、內存地址不同的特有覆蓋單元個數以及內存地址相同但運行次數不同的近似覆蓋單元個數,根據相同覆蓋單元個數、特有覆蓋單元個數和,覆蓋單元個數計算執行軌跡之間的相似度。
[0111]在本實施例中,執行軌跡篩選模塊106還可用於在獲取到的執行軌跡中迭代選取執行軌跡I,遍歷獲取到的執行軌跡R,根據公式:
【權利要求】
1.一種惡意程序控制指令識別方法,包括: 監控惡意程序的注入過程,獲取注入進程和注入地址; 監控與所述注入進程對應的輸入數據,獲取與所述輸入數據對應的執行軌跡; 對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡; 根據篩選得到的執行軌跡計算代碼覆蓋率,根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元; 根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集。
2.根據權利要求1所述的惡意程序控制指令識別方法,其特徵在於,所述對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡的步驟還包括: 獲取所述執行軌跡中包含的系統函數調用指令; 移除所述系統函數調用指令對應的覆蓋單元。
3.根據權利要求1所述的惡意程序控制指令識別方法,其特徵在於,所述對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡的步驟還包括: 獲取所述執行軌跡中包含的與所述注入進程對應的調用指令; 移除所述注入進程對應的調用指令對應的覆蓋單元。
4.根據權利要求1所述的惡意程序控制指令識別方法,其特徵在於,所述對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡的步驟還包括: 獲取所述執行軌跡包含的覆蓋單元及所述覆蓋單元的運行次數,根據所述包含的覆蓋單元和運行次數計算所述執行軌跡之間的相似度; 獲取相似度閾值; 將相似度大於所述相似度閾值的執行軌跡歸一化。
5.根據權利要求1所述的惡意程序控制指令識別方法,其特徵在於,所述獲取所述執行軌跡包含的覆蓋單元及所述覆蓋單元的運行次數,根據所述包含的覆蓋單元和運行次數計算所述執行軌跡之間的相似度的步驟為: 獲取所述執行軌跡包含的內存地址相同且運行次數相同的相同覆蓋單元個數、內存地址不同的特有覆蓋單元個數以及內存地址相同但運行次數不同的近似覆蓋單元個數;根據所述相同覆蓋單元個數、特有覆蓋單元個數和近似覆蓋單元個數計算所述執行軌跡之間的相似度。
6.根據權利要求1所述的惡意程序控制指令識別方法,其特徵在於,所述根據篩選得到的執行軌跡計算代碼覆蓋率包括: 獲取篩選得到的執行軌跡的覆蓋單元及其運行次數; 計算所述覆蓋單元在所述篩選得到的執行軌跡中各自的出現次數; 根據所述出現次數計算代碼覆蓋率。
7.根據權利要求6所述的惡意程序控制指令識別方法,其特徵在於,所述根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元的步驟為: 根據所述代碼覆蓋率獲取出現次數為I的分支覆蓋單元和每個執行軌跡均包含的且運行次數不同的條件判斷覆蓋單元; 根據所述分支覆蓋單元和條件判斷覆蓋單元定位對應控制指令判斷邏輯的覆蓋單元。
8.根據權利要求6所述的惡意程序控制指令識別方法,其特徵在於,所述根據所述分支覆蓋單元和條件判斷覆蓋單元定位對應控制指令判斷邏輯的覆蓋單元的步驟為: 獲取所述分支覆蓋單元的分支時間戳和所述條件判斷覆蓋單元的判斷時間戳; 獲取運行時間戳在所述分支時間戳和所述判斷時間戳之間的覆蓋單元,並根據獲取到的覆蓋單元、分支覆蓋單元和條件判斷覆蓋單元定位判斷指令執行序列。
9.根據權利要求1至8任一項所述的惡意程序控制指令識別方法,其特徵在於,所述根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集步驟之後還包括: 根據所述標準控制指令集生成測試指令; 通過修改函數調用參數值輸入測試指令,獲取測試執行軌跡; 根據所述測試執行軌跡校驗所述標準控制指令集。
10.根據權利要求1至8任一項所述的惡意程序控制指令識別方法,其特徵在於,所述監控與所述注入進程對應的輸入數據的步驟包括: 獲取汙點數據類型; 根據所述汙點數據類型對所述輸入數據進行篩選。
11.一種惡意程序控制指令識別裝置,其特徵在於,包括: 進程監控模塊,用於監控惡意程序的注入過程,獲取注入進程和注入地址; 執行軌跡獲取模塊,用於監控與所述注入進程對應的輸入數據,獲取與所述輸入數據對應的執行軌跡; 執行軌跡篩選模塊,用於對所述執行軌跡進行篩選,篩選得到與所述注入地址對應的執行軌跡; 覆蓋單元定位模塊,用於根據篩選得到的執行軌跡計算代碼覆蓋率,根據所述代碼覆蓋率定位對應控制指令判斷邏輯的覆蓋單元; 指令獲取模塊,用於根據所述對應控制指令判斷邏輯的覆蓋單元獲取標準控制指令集。
12.根據權利要求11所述的惡意程序控制指令識別裝置,其特徵在於,所述執行軌跡篩選模塊還用於獲取所述執行軌跡中包含的系統函數調用指令,移除所述系統函數調用指令對應的覆蓋單元。
13.根據權利要求11所述的惡意程序控制指令識別裝置,其特徵在於,所述執行軌跡篩選模塊還用於獲取所述執行軌跡中包含的與所述注入進程對應的調用指令,移除所述注入進程對應的調用指令對應的覆蓋單元。
14.根據權利要求11所述的惡意程序控制指令識別裝置,其特徵在於,所述執行軌跡篩選模塊還用於獲取所述執行軌跡包含的覆蓋單元及所述覆蓋單元的運行次數,根據所述包含的覆蓋單元和運行次數計算所述執行軌跡之間的相似度, 獲取相似度閾值,將相似度大於所述相似度閾值的執行軌跡歸一化。
15.根據權利要求11所述的惡意程序控制指令識別裝置,其特徵在於,所述執行軌跡篩選模塊還用於獲取所述執行軌跡包含的內存地址相同且運行次數相同的相同覆蓋單元個數、內存地址不同的特有覆蓋單元個數以及內存地址相同但運行次數不同的近似覆蓋單元個數,根據所述相同覆蓋單元個數、特有覆蓋單元個數和近似覆蓋單元個數計算所述執行軌跡之間的相似度。
16.根據權利要求11所述的惡意程序控制指令識別裝置,其特徵在於,所述覆蓋單元定位模塊還用於獲取篩選得到的執行軌跡的覆蓋單元及其運行次數,計算所述覆蓋單元在所述篩選得到的執行軌跡中各自的出現次數,根據所述出現次數計算代碼覆蓋率。
17.根據權利要求16所述的惡意程序控制指令識別裝置,其特徵在於,所述覆蓋單元定位模塊還用於根據所述代碼覆蓋率獲取出現次數為I的分支覆蓋單元和每個執行軌跡均包含的且運行次數不同的條件判斷覆蓋單元,根據所述分支覆蓋單元和條件判斷覆蓋單元定位對應控制指令判斷邏輯的覆蓋單元。
18.根據權利要求16所述的惡意程序控制指令識別裝置,其特徵在於,所述覆蓋單元定位模塊還用於獲取所述分支覆蓋單元的分支時間戳和所述條件判斷覆蓋單元的判斷時間戳,獲取運行時間戳在所述分支時間戳和所述判斷時間戳之間的覆蓋單元,並根據獲取到的覆蓋單元、分支覆蓋單元和條件判斷覆蓋單元定位判斷指令執行序列。
19.根據權利要求11至18任一項所述的惡意程序控制指令識別裝置,其特徵在於,所述裝置還包括控制指令校驗模塊,用於根據所述標準控制指令集生成測試指令,通過修改函數調用參數值輸入測 試指令,獲取測試執行軌跡,根據所述測試執行軌跡校驗所述標準控制指令集。
20.根據權利要求11至18任一項所述的惡意程序控制指令識別裝置,其特徵在於,所述執行軌跡獲取模塊還用於獲取汙點數據類型,根據所述汙點數據類型對所述輸入數據進行篩選。
【文檔編號】G06F21/56GK103914652SQ201310007680
【公開日】2014年7月9日 申請日期:2013年1月9日 優先權日:2013年1月9日
【發明者】王志, 鄒贊, 張曉康, 賈春福, 劉露 申請人:騰訊科技(深圳)有限公司, 南開大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀