TW201629832A - 一種識別病毒變種的方法及裝置 - Google Patents
一種識別病毒變種的方法及裝置 Download PDFInfo
- Publication number
- TW201629832A TW201629832A TW104129020A TW104129020A TW201629832A TW 201629832 A TW201629832 A TW 201629832A TW 104129020 A TW104129020 A TW 104129020A TW 104129020 A TW104129020 A TW 104129020A TW 201629832 A TW201629832 A TW 201629832A
- Authority
- TW
- Taiwan
- Prior art keywords
- virus
- api
- sample
- sequence
- api call
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本申請涉及互聯網技術,公開了一種識別病毒變種的方法及裝置,用以提高病毒查殺的準確率。該方法為,將待檢測病毒樣本在運行過程中產生的API調用序列和預設的病毒家族樣本在運行過程中產生的標準API調用序列進行匹配,確定匹配成功時,判定待檢測病毒樣本為病毒變種,由於API調用序列反映了待檢測病毒樣本運行時調用的API類型和調用順序,因此,無論待檢測病毒樣本是否經技術手段進行身份掩蓋,都能夠準確無誤地檢測出病毒變種,透過動態檢測機制,擴大提高現有識別和查殺技術的應用範圍,大大提高了病毒查全率。
Description
本申請涉及互聯網技術,特別涉及一種識別病毒變種的方法及裝置。
隨著行動互聯網技術和智能終端設備的日益普及,Android平台以其開放、免費等優勢,成為目前佔據市場份額最大的智能終端操作系統,且增長迅速。
與此同時,Android平台由於代碼開源,各類病毒帶來的安全性問題也不斷湧現,包括但不限於惡意程式、蠕蟲、木馬、僵屍等等。
病毒開發和傳播者也一直在不斷研究新的「免殺」技術,包括但不限於修改特徵碼、利用Java反射調用機制、字符串加解密技術、以及對函數調用結構進行微調等,製造出大量的病毒變種,致使現有技術已無法完成有效識別和高效查殺。
當前Android平台下的各類安全軟體一般透過採用特徵碼方式進行病毒查殺。但病毒開發和傳播者為了實現免殺功能,也在不斷研究反病毒查殺技術,例如,採用包括
Proguard在內的混淆機制,可將病毒程式中包括類名、函數名、常量字符串在內的各類特徵信息混淆,導致現有的安全軟體無法查殺病毒及其變種。
本申請實施例提供一種識別病毒變種的方法及裝置,用以提升病毒查殺的準確率。
本申請實施例提供的具體技術方案如下:一種識別病毒變種的方法,包括:運行待檢測病毒樣本,記錄運行過程中產生的應用程式編程介面API調用序列;獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行所述待檢測病毒樣本產生的API調用序列,與病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果;根據所述匹配結果,確定所述待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準API調用序列匹配成功時,確定所述待檢測病毒樣本為病毒變種。
這樣,本申請以病毒家族樣本對應的標準API調用情況為參考,對待檢測病毒樣本運行時產生的API的調用情況進行監控,無論待檢測病毒樣本是否經技術手段進行身份掩蓋,若待檢測病毒樣本的API調用情況與病毒家族樣本對應的標準API調用情況匹配,則被認為是病毒變種,從而能夠準確無誤地檢測出病毒變種,透過動態檢測機
制,擴大提高現有識別和查殺技術的應用範圍,大大提高了病毒查全率,並降低了病毒誤殺率。特別需要說明的是,本申請實施例中所能夠檢測的病毒包括但不限於惡意程式、蠕蟲、木馬、僵屍等;適用範圍包括但不限於針對修改特徵碼等各類病毒變種技術。
較佳的,進一步包括:運行預設的病毒家族樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
較佳的,進一步包括:在運行待檢測病毒樣本和預設的病毒家族樣本的過程中,按照設定週期模擬用於啟動病毒運行的實體觸發事件。
較佳的,將運行所述待檢測病毒樣本產生的API調用序列與任一病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果,並根據所述匹配結果,確定所述待檢測病毒樣本的API調用序列與所述任一病毒家族樣本對應的標準API調用序列匹配成功,包括:確定運行任一病毒家族樣本對應的標準API調用序列時,所調用的第一API類型和調用順序;確定運行所述待檢測病毒樣本產生的API調用序列中,所調用的第二API類型和調用順序;計算所述第一API類型和調用順序與所述第二API類型和調用順序的匹配度,確定所述匹配度達到第一設定門
檻時,判定所述待檢測病毒樣本的API調用序列與所述任一病毒家族樣本對應的標準API調用序列匹配成功。
較佳的,確定所述第一API類型和調用順序與所述第二API類型和調用順序的匹配度未達到第一設定門檻時,進一步包括:獲取所述任一病毒家族樣本對應的關鍵API調用序列,以及確定運行所述關鍵API調用序列時,所調用的第三API類型和調用順序,其中,所述任一病毒家族樣本對應的關鍵API調用序列中包含有從所述任一病毒家族對應的標準API調用序列中篩選出的關鍵API,所述關鍵API為預先設定的能夠對系統安全運行造成影響的API;計算所述第二API類型和調用順序與所述第三API類型和調用順序的匹配度,確定所述匹配度達到第二設定門檻時,判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。
一種識別病毒變種的裝置,包括:執行單元,用於運行待檢測病毒樣本,記錄運行過程中產生的應用程式編程介面API調用序列;匹配單元,獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行所述待檢測病毒樣本產生的API調用序列分別,與每一個病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果;識別單元,用於根據所述匹配結果,確定所述待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準
API調用序列匹配成功時,確定所述待檢測病毒樣本為病毒變種。
這樣,本申請以病毒家族樣本對應的標準API調用情況為參考,對待檢測病毒樣本運行時產生的API的調用情況進行監控,無論待檢測病毒樣本是否經技術手段進行身份掩蓋,若待檢測病毒樣本的API調用情況與病毒家族樣本對應的標準API調用情況匹配,則被認為是病毒變種,從而能夠準確無誤地檢測出病毒變種,透過動態檢測機制,擴大提高現有識別和查殺技術的應用範圍,大大提高了病毒查全率,並降低了病毒誤殺率。特別需要說明的是,本申請實施例中所能夠檢測的病毒包括但不限於惡意程式、蠕蟲、木馬、僵屍等;適用範圍包括但不限於針對修改特徵碼等各類病毒變種技術。
較佳的,所述執行單元進一步用於:運行預設的病毒家族樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
較佳的,所述執行單元進一步用於:在運行待檢測病毒樣本和預設的病毒家族樣本的過程中,按照設定週期模擬用於啟動病毒運行的實體觸發事件。
較佳的,將運行所述待檢測病毒樣本產生的的API調用序列與任一病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果,並根據所述匹配結果,確定所述待
檢測病毒樣本的API調用序列與所述任一病毒家庭樣本對應的標準API調用序列匹配成功時,所述匹配單元進一步用於:確定運行所述任一病毒家族樣本對應的標準API調用序列時,所調用的第一API類型和調用順序;確定運行所述所述待檢測病毒樣本對應的API調用序列時,所調用的第二API類型和調用順序;計算所述第一API類型和調用順序與所述第二API類型和調用順序的匹配度;所述識別單元進一步用於:確定所述匹配度達到第一設定門檻時,判定所述待檢測病毒樣本的API調用序列與所述任一病毒家庭樣本對應的標準API調用序列匹配成功。
較佳的,所述匹配單元進一步用於:根據所述識別單元的通知確定所述第一API類型和調用順序與所述第二API類型和調用順序的匹配度未達到第一設定門檻時,獲取所述任一病毒家族樣本對應的關鍵API調用序列,以及確定運行所述關鍵API調用序列時,所調用的第三API類型和調用順序,其中,所述任一病毒家族對應的關鍵API調用序列中包含有從所述任一病毒家族對應的標準API調用序列中篩選出的指定的關鍵API,所述關鍵API為預先設定的能夠對系統安全運行造成影響的API;計算所述第二API類型和調用順序與所述第三API類
型和調用順序的匹配度;所述識別單元進一步用於:確定所述匹配度達到第二設定門檻時,判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。採用分配匹配算法計算兩者的匹配度。
20‧‧‧執行單元
21‧‧‧匹配單元
22‧‧‧識別單元
圖1為本申請實施例中對病毒變種進行識別流程圖;圖2為本申請實施例中對病毒變種進行識別裝置結構示意圖。
為了提升病毒查殺的準確率,本申請提出了一種透過模擬器技術識別病毒變種的方法,透過這種方法可以提高現有識別和查殺技術的應用範圍,大大提高了病毒查全率,並降低了病毒誤殺率。
下面結合附圖對本申請優選的實施方式進行詳細說明。
在預處理階段,需要建立API調用序列特徵庫,用於在後續流程中對病毒變種進行識別。具體過程如下:
首先,在預處理階段,需要調用Android模擬器環境,針對系統中關鍵應用程式編程介面(Application Programming Interface,API)進行打樁和標記。所謂
API,是一些預先定義的函數,目的是提供應用程式與開發人員基於某軟體或硬體得以存取一組常式的能力,而又無需存取源碼,或理解內部工作機制的細節。而所謂打樁,即是在系統中每一個關鍵API位置處,記錄該API的關鍵信息。比如被誰調用、API名稱、類名稱等等。由於病毒及其變種在運行過程中往往會調用一些關鍵API實現破壞行為,因此,可以基於開發經驗,可以將具有重要作用的API標記為關鍵API,以便後續識別病毒及其變種時使用。
具體的,可以先創建Android模擬器,在框架(Framework)或者Android原生層(Native層)對系統調用的API進行打樁和標記,記錄,調用程式的用戶標識(Uid)等等資料。
樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
實際應用中,每一種病毒家族(即同源的一系列病毒)在運行過程中,其惡意行為是類似的,即是指同一病毒家族在運行過程中,調用API的行為是類似的,因此,可以根據預設的病毒家族樣本,分別提取出每一個病毒家族在運行過程中執行的共同的API調用序列(即API調用命令),從而建立API序列特徵庫,為便於描述,後續將每一個病毒家族執行的共同的API調用序列稱為這個病毒家族的標準API調用序列。
具體的,在運行病毒家族樣本時,可以修改Android模擬器框架邏輯,使得各種病毒家族樣本在運行時,無需等待必要的實體觸發事件,而是由系統定期發送各種模擬自啟事件,自動觸發各各病毒家族樣本的運行。如,若病毒家族A的運行需要依賴的實體觸發事件為“系統啟動”,則系統在運行過程中,無需定期重啟,而是定期在系統中模擬自啟事件“系統啟動”,以指示各類病毒家族樣本已滿足其觸發條件,可以運行。
進一步地,Android模擬器上運行病毒家族的已知病毒樣本時,可以透過monkey、uiautomator模組,模擬用戶操作環境,例如,手機環境、PC環境等等。其中,Monkey為在Android上進行自動化測試Android安裝包(APK)的工具。Uiautomato為一套用於Android進行自動化測試的框架結構,用戶可以使用該框架邏輯,編寫測試某APK的測試用例。
例如,假設病毒家族A中存在病毒變種a1、病毒變種a2和病毒變種a3,
其中,病毒變種a1在執行過程中,調用了API 1、API 2、AIP 3、API 4;
病毒變種a2在執行過程中,調用了API 1、API 3、API 5、API 6;病毒變種a3在執行過程中,調用了API 2、API3、API 6、API 7。
顯然,三個病毒變種都調用了API 3,其中兩個調用了API 1和API 2,因此,這三種API的調用率都超過了
預設閾值(假設為50%),則最終選定病毒家族A對應的標準AIP調用序列為API 1 API 2和API 3,較佳的,在針對病毒家族記錄標準API調用序列時,可以記錄各個API的調用順序,也可以不記錄各個API的調用順序,具體視應用環境而定,在此不再贅述。
基於生成的各個病毒家族樣本的標準API調用序列,可以建立標準API調用序列特徵庫,用於後續匹配流程中隨時獲取所需的標準API調用序列。
進一步地,在針對每一個病毒家族制定了對應的標準API調用序列後,可選的,可以進一步在各個病毒家族對應的標準API調用序列中篩選出關鍵API調用序列,也保存在API序列特徵庫中,其中,每一個病毒家族對應的關鍵API調用序列中都包含了從相應API調用序列中篩選出的預先進行打樁和標記的關鍵API,這些關鍵API對應了系統中的關鍵性操作,比如:自啟動事件、聯網、獲取隱私資料、發送簡訊等。
基於上述預處理過程,參閱圖1所示,本申請實施例中,對病毒變種進行識別的詳細流程如下:步驟100:運行待檢測病毒樣本,記錄運行過程中產生的API調用序列。
實際應用中,待檢測的病毒樣本可以是一個也可以是多個,每一個病毒樣本的檢測流程相同,因此,本申請實施例中僅以一個為例進行介紹。
具體的,在運行待檢測病毒樣本時,根據待檢測病毒
樣本在運行過程中所調用的API的類型的調用順序,生成相應的API調用序列。在運行待檢測病毒家族樣本時,同樣可以修改Android模擬器框架邏輯,使得待檢測病毒樣本在運行時,無需等待必要的實體觸發事件,而是由系統定期發送各種模擬自啟事件,自動觸發待檢測病毒家族樣本的運行。如,若待檢測病毒家族樣本的運行需要依賴的實體觸發事件為“用戶發送簡訊”,則系統在運行過程中,無需定期發送簡訊,而是定期在系統中模擬自啟事件“發送簡訊”,以指示待檢測病毒家族樣本已滿足其觸發條件,可以運行。
進一步地,Android模擬器上運行待檢測病毒家族樣本時,同樣可以透過monkey、uiautomator模組,模擬用戶操作環境,例如,手機環境、PC環境等等。
步驟110:獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行待檢測病毒樣本產生的API調用序列,與病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果。
具體的,可以從預處理階段生成的API調用序列特徵庫中,獲取預先生成的各個病毒家族樣本對應的標準API調用序列,然後將各個標準API調用序列一一與待檢測病毒樣本的API調用進行匹配。
實際應用中,由於可能存在海量待檢測病毒樣本的API調用序列,因此,為了提高匹配效率,較佳的,可以採用分段匹配算法判斷待檢測病毒樣本對應的API調用序
列是否與某病毒家族樣本的標準API調用序列匹配的唯一API時序路徑,如果存在,則直接判定為病毒變種。
分段匹配算法為現有技術下常用的匹配算法之一,下面以舉例形式進行介紹:比如有一串病毒特征的函數調用路徑為“P:p1p2p3p4”,而某一個病毒樣本運行之後,得到的函數調用路徑為“T:t1t2t3t4t5t6t7t8t9”,那麼,就是要從路徑“t1t2t3t4t5t6t7t8t9”中尋找是否存在路徑“p1p2p3p4”路徑。那麼,最簡單的匹配方式為:先判斷t1是否等於p1,若相等,再比較t2是否等於p2,若不相等,則比較t2是否等於p1,以此類推,採用分段匹配的方式來比較全部的路徑。
具體的,分段匹配算法中有很經典的算法:如克努特-莫裡斯-普拉特(The Knuth-Morris-Pratt Algorithm,KMP)和波爾-莫爾(Boyer-Moore,BM)算法。
以標準API特徵序列1為例,在匹配過程中,可以執行但不限於以下操作:確定運行標準API調用序列1時所調用的第一API類型和調用順序,以及確定運行待檢測病毒樣本的API調用序列時所調用的第二API類型和調用順序,計算第一API類型和調用順序與第二API類型和調用順序的匹配度(可以採用但不限於使用分段匹配算法),確定該匹配度達到第一設定門檻(例如,80%)時,判定匹配成功。
進一步地,在確定上述兩者的匹配度未達到第一設定
門檻時,可選的,可以從預處理階段配置的API序列特徵庫中,進一步挑選出上述標準API調用序列1所對應的關鍵API調用序列1,其中,關鍵API調用序列中1包含有從標準API調用序列1中篩選出的指定的關鍵API(即在預處理階段進行打樁和標記的API),所謂關鍵API即是指預先設定的能夠對系統安全運行造成影響的API。
接著,確定運行關鍵API調用序列1時,所調用的第三API類型和調用順序,以及計算第二API類型和調用順序與第三API類型和調用順序的匹配度,確定該匹配度達到第二設定門檻時,直接判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。
之所以在API序列特徵庫中記錄各個病毒家族樣本的標準API調用序列之外,進一步記錄了各個病毒家族樣本的關鍵API調用序列,是因為即使待檢測病毒樣本和任何一個病毒家族樣本的標準API調用序列均不匹配,也不能完全排隊待檢測病毒樣本是病毒變種的可能性,很大程度上,待檢測病毒有可能是一個新的病毒變種,其調用的API類型和調用順序相較歸屬的病毒家族樣本發生了很大改變,因此與已有的病毒家族樣本對應的標準API調用序列均不匹配。
有鑑於此,為了確保不漏檢病毒變種,此時,需要使用各個病毒家族樣本對應的關鍵API調用序列與待檢測病毒對應的API調用序列進行再次匹配(此種匹配亦稱為模糊匹配),若待檢測病毒對應的API調用序列在執行過程
中,調用了關鍵API且調用順序與病毒家族樣本類似(即匹配度達到門檻值),則可以直接確定匹配成功,即將待檢測病毒確定為病毒變種,或者,為了得到更明確的結果,可以將待檢測病毒發往後台,提示管理人員該待檢測病毒有可能為病毒變種,請求進行確認;在接收到管理人員的反饋結果時,根據管理人員的指示確定待檢測病毒是否為病毒變種並進行記錄。
步驟120:根據獲得的匹配結果,確定待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準API調用序列匹配成功時,確定所述待檢測病毒樣本為病毒變種。
確定待檢測病毒為病毒變種後,可以將其對應的API調用序列作為標準API調用序列記錄至API序列特徵庫中,同時,篩選出對應的關鍵API調用序列,亦記錄至API序列特徵庫中,這樣,可以透過連續的匹配過程,不斷更新API序列特徵庫,以保持資料的實時性和有效性。
基於上述實施例,參閱圖2所示,本申請實施例中,用於識別病毒變種的裝置包括執行單元20、匹配單元21和識別單元22,其中,執行單元20,用於運行待檢測病毒樣本,記錄運行過程中產生的應用程式編程介面API調用序列;匹配單元21,獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行待檢測病毒樣本產生的API調用序列分別,與每一個病毒家族樣本對應的標準API調
用序列進行匹配,獲得匹配結果;識別單元22,用於根據匹配結果,確定待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準API調用序列匹配成功時,確定待檢測病毒樣本為病毒變種。
較佳的,執行單元20進一步用於:運行預設的病毒家族樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
較佳的,執行單元20進一步用於:在運行待檢測病毒樣本和預設的病毒家族樣本的過程中,按照設定週期模擬用於啟動病毒運行的實體觸發事件。
較佳的,將運行待檢測病毒樣本產生的的API調用序列與任一病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果,並根據匹配結果,確定待檢測病毒樣本的API調用序列與任一病毒家庭樣本對應的標準API調用序列匹配成功時,匹配單元21進一步用於:確定運行任一病毒家族樣本對應的標準API調用序列時,所調用的第一API類型和調用順序;確定運行待檢測病毒樣本對應的API調用序列時,所調用的第二API類型和調用順序;計算第一API類型和調用順序與第二API類型和調用順序的匹配度;識別單元22進一步用於:
確定匹配度達到第一設定門檻時,判定待檢測病毒樣本的API調用序列與任一病毒家庭樣本對應的標準API調用序列匹配成功。
較佳的,匹配單元21進一步用於:根據識別單元的通知確定第一API類型和調用順序與第二API類型和調用順序的匹配度未達到第一設定門檻時,獲取任一病毒家族樣本對應的關鍵API調用序列,以及確定運行關鍵API調用序列時,所調用的第三API類型和調用順序,其中,任一病毒家族對應的關鍵API調用序列中包含有從任一病毒家族對應的標準API調用序列中篩選出的指定的關鍵API,關鍵API為預先設定的能夠對系統安全運行造成影響的API;計算第二API類型和調用順序與第三API類型和調用順序的匹配度;識別單元22進一步用於:確定匹配度達到第二設定門檻時,判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。採用分配匹配算法計算兩者的匹配度。
綜上所述,本申請實施例中,以病毒家族樣本對應的標準API調用情況為參考,對待檢測病毒樣本運行時產生的API的調用情況進行監控,無論待檢測病毒樣本是否經技術手段進行身份掩蓋,若待檢測病毒樣本的API調用情況與病毒家族樣本對應的標準API調用情況匹配,則被認為是病毒變種,從而能夠準確無誤地檢測出病毒變種,透
過動態檢測機制,擴大提高現有識別和查殺技術的應用範圍,大大提高了病毒查全率。特別需要說明的是,本申請實施例中所能夠檢測的病毒包括但不限於惡意程式、蠕蟲、木馬、僵屍等;適用範圍包括但不限於針對修改特徵碼等各類病毒變種技術。
本領域內的技術人員應明白,本申請的實施例可提供為方法、系統、或計算機程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程式代碼的計算機可用儲存媒體(包括但不限於磁碟儲存器、CD-ROM、光學儲存器等)上實施的計算機程式產品的形式。
本申請是參照根據本申請實施例的方法、設備(系統)、和計算機程式產品的流程圖和/或方塊圖來描述的。應理解可由計算機程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些計算機程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程資料處理設備的處理器以產生一個機器,使得透過計算機或其他可編程資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些計算機程式指令也可儲存在能引導計算機或其他可編程資料處理設備以特定方式工作的計算機可讀儲存器
中,使得儲存在該計算機可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些計算機程式指令也可裝載到計算機或其他可編程資料處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請範圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和範圍。這樣,倘若本申請實施例的這些修改和變型屬於本申請權利要求及其等同技術的範圍之內,則本申請也意圖包含這些改動和變型在內。
Claims (10)
- 一種識別病毒變種的方法,其特徵在於,包括:運行待檢測病毒樣本,記錄運行過程中產生的應用程式編程介面API調用序列;獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行該待檢測病毒樣本產生的API調用序列,與病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果;根據該匹配結果,確定該待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準API調用序列匹配成功時,確定該待檢測病毒樣本為病毒變種。
- 如申請專利範圍第1項所述的方法,其中,進一步包括:運行預設的病毒家族樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
- 如申請專利範圍第2項所述的方法,其中,進一步包括:在運行待檢測病毒樣本和預設的病毒家族樣本的過程中,按照設定週期模擬用於啟動病毒運行的實體觸發事件。
- 如申請專利範圍第1、2或3項所述的方法,其中,將運行該待檢測病毒樣本產生的API調用序列與任一病毒家族樣本對應的標準API調用序列進行匹配,獲得匹 配結果,並根據該匹配結果,確定該待檢測病毒樣本的API調用序列與該任一病毒家族樣本對應的標準API調用序列匹配成功,包括:確定運行任一病毒家族樣本對應的標準API調用序列時,所調用的第一API類型和調用順序;確定運行該待檢測病毒樣本產生的API調用序列中,所調用的第二API類型和調用順序;計算該第一API類型和調用順序與該第二API類型和調用順序的匹配度,確定該匹配度達到第一設定門檻時,判定該待檢測病毒樣本的API調用序列與該任一病毒家族樣本對應的標準API調用序列匹配成功。
- 如申請專利範圍第4項所述的方法,其中,確定該第一API類型和調用順序與該第二API類型和調用順序的匹配度未達到第一設定門檻時,進一步包括:獲取該任一病毒家族樣本對應的關鍵API調用序列,以及確定運行該關鍵API調用序列時,所調用的第三API類型和調用順序,其中,該任一病毒家族樣本對應的關鍵API調用序列中包含有從該任一病毒家族對應的標準API調用序列中篩選出的關鍵API,該關鍵API為預先設定的能夠對系統安全運行造成影響的API;計算該第二API類型和調用順序與該第三API類型和調用順序的匹配度,確定該匹配度達到第二設定門檻時,判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。
- 一種識別病毒變種的裝置,其特徵在於,包括:執行單元,用於運行待檢測病毒樣本,記錄運行過程中產生的應用程式編程介面API調用序列;匹配單元,獲取預設的各個病毒家族樣本對應的標準API調用序列,並將運行該待檢測病毒樣本產生的API調用序列分別,與每一個病毒家族樣本對應的標準API調用序列進行匹配,獲得匹配結果;識別單元,用於根據該匹配結果,確定該待檢測病毒樣本的API調用序列與任一病毒家族樣本對應的標準API調用序列匹配成功時,確定該待檢測病毒樣本為病毒變種。
- 如申請專利範圍第6項所述的裝置,其中,該執行單元進一步用於:運行預設的病毒家族樣本,記錄每一種病毒家族在運行過程中調用的API類型和調用順序,生成每一種病毒家族對應的標準API調用序列,構建API序列特徵庫。
- 如申請專利範圍第7項所述的裝置,其中,該執行單元進一步用於:在運行待檢測病毒樣本和預設的病毒家族樣本的過程中,按照設定週期模擬用於啟動病毒運行的實體觸發事件。
- 如申請專利範圍第6、7或8項所述的裝置,其中,將運行該待檢測病毒樣本產生的的API調用序列與任一病毒家族樣本對應的標準API調用序列進行匹配,獲得 匹配結果,並根據該匹配結果,確定該待檢測病毒樣本的API調用序列與該任一病毒家庭樣本對應的標準API調用序列匹配成功時,該匹配單元進一步用於:確定運行該任一病毒家族樣本對應的標準API調用序列時,所調用的第一API類型和調用順序;確定運行所述該待檢測病毒樣本對應的API調用序列時,所調用的第二API類型和調用順序;計算該第一API類型和調用順序與該第二API類型和調用順序的匹配度;該識別單元進一步用於:確定該匹配度達到第一設定門檻時,判定該待檢測病毒樣本的API調用序列與該任一病毒家庭樣本對應的標準API調用序列匹配成功。
- 如申請專利範圍第9項所述的裝置,其中,該匹配單元進一步用於:根據該識別單元的通知確定該第一API類型和調用順序與該第二API類型和調用順序的匹配度未達到第一設定門檻時,獲取該任一病毒家族樣本對應的關鍵API調用序列,以及確定運行該關鍵API調用序列時,所調用的第三API類型和調用順序,其中,該任一病毒家族對應的關鍵API調用序列中包含有從該任一病毒家族對應的標準API調用序列中篩選出的指定的關鍵API,該關鍵API為預先設定的能夠對系統安全運行造成影響的API; 計算該第二API類型和調用順序與該第三API類型和調用順序的匹配度;該識別單元進一步用於:確定該匹配度達到第二設定門檻時,判定匹配成功;或者,將匹配結果呈現給用戶,根據用戶反饋的結果判斷是否匹配成功。採用分配匹配算法計算兩者的匹配度。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065074.8A CN105989283B (zh) | 2015-02-06 | 2015-02-06 | 一种识别病毒变种的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201629832A true TW201629832A (zh) | 2016-08-16 |
Family
ID=56566017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104129020A TW201629832A (zh) | 2015-02-06 | 2015-09-02 | 一種識別病毒變種的方法及裝置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10460106B2 (zh) |
CN (1) | CN105989283B (zh) |
TW (1) | TW201629832A (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573515A (zh) * | 2014-12-19 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 一种病毒处理方法、装置和系统 |
CN105989283B (zh) | 2015-02-06 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
JP6866645B2 (ja) | 2017-01-05 | 2021-04-28 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
JP2018109910A (ja) * | 2017-01-05 | 2018-07-12 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
EP3602999B1 (en) | 2017-03-28 | 2021-05-19 | British Telecommunications Public Limited Company | Initialisation vector identification for encrypted malware traffic detection |
CN107220546B (zh) * | 2017-06-27 | 2020-01-10 | Oppo广东移动通信有限公司 | 应用运行方法、装置及终端设备 |
CN109214178B (zh) * | 2017-06-30 | 2021-03-16 | 中国电信股份有限公司 | App应用恶意行为检测方法及装置 |
CN107682314A (zh) * | 2017-08-30 | 2018-02-09 | 北京明朝万达科技股份有限公司 | 一种apt攻击的检测方法和装置 |
CN109472134B (zh) * | 2017-12-25 | 2022-04-19 | 北京安天网络安全技术有限公司 | 一种基于api调用序列提取控制端的方法及系统 |
US10853457B2 (en) * | 2018-02-06 | 2020-12-01 | Didi Research America, Llc | System and method for program security protection |
CN110210219B (zh) * | 2018-05-30 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 病毒文件的识别方法、装置、设备及存储介质 |
CN108804922A (zh) * | 2018-05-30 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种未知代码的属性判断方法 |
EP3623980B1 (en) | 2018-09-12 | 2021-04-28 | British Telecommunications public limited company | Ransomware encryption algorithm determination |
EP3623982B1 (en) | 2018-09-12 | 2021-05-19 | British Telecommunications public limited company | Ransomware remediation |
CN110944332B (zh) * | 2018-09-21 | 2023-05-02 | 武汉安天信息技术有限责任公司 | 短信拦截马检测方法及装置 |
CN109241742B (zh) * | 2018-10-23 | 2021-03-30 | 北斗智谷(北京)安全技术有限公司 | 一种恶意程序的识别方法及电子设备 |
CN109492391B (zh) * | 2018-11-05 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 一种应用程序的防御方法、装置和可读介质 |
CN110399720B (zh) * | 2018-12-14 | 2022-12-16 | 腾讯科技(深圳)有限公司 | 一种文件检测的方法以及相关装置 |
CN110414228B (zh) * | 2018-12-20 | 2023-01-03 | 腾讯科技(深圳)有限公司 | 计算机病毒的检测方法、装置、存储介质和计算机设备 |
CN109815700B (zh) * | 2018-12-29 | 2021-10-01 | 360企业安全技术(珠海)有限公司 | 应用程序的处理方法及装置、存储介质、计算机设备 |
US11481498B2 (en) * | 2019-01-28 | 2022-10-25 | Visa International Service Association | Continuous vulnerability management for modern applications |
US10929276B2 (en) * | 2019-06-14 | 2021-02-23 | Paypal, Inc. | Simulation computing services for testing application functionalities |
CN112580042B (zh) * | 2019-09-30 | 2024-02-02 | 奇安信安全技术(珠海)有限公司 | 恶意程序的对抗方法及装置、存储介质、计算机设备 |
CN112580041B (zh) * | 2019-09-30 | 2023-07-07 | 奇安信安全技术(珠海)有限公司 | 恶意程序检测方法及装置、存储介质、计算机设备 |
CN112580043B (zh) * | 2019-09-30 | 2023-08-01 | 奇安信安全技术(珠海)有限公司 | 基于虚拟机的杀毒方法及装置、存储介质、计算机设备 |
DE202020106660U1 (de) | 2020-11-19 | 2020-12-04 | Dominik Heinzelmann | Hebehilfe |
CN114969734B (zh) * | 2022-05-16 | 2024-05-14 | 北京航空航天大学 | 一种基于api调用序列的勒索病毒变种检测方法 |
CN117540385B (zh) * | 2024-01-09 | 2024-03-29 | 北京数基信息有限公司 | 脚本文件的监测方法、系统及存储介质 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440723A (en) | 1993-01-19 | 1995-08-08 | International Business Machines Corporation | Automatic immune system for computers and computer networks |
JP2501771B2 (ja) | 1993-01-19 | 1996-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 不所望のソフトウェア・エンティティの複数の有効なシグネチャを得る方法及び装置 |
US6479055B1 (en) | 1993-06-07 | 2002-11-12 | Trimeris, Inc. | Methods for inhibition of membrane fusion-associated events, including respiratory syncytial virus transmission |
US6017536A (en) | 1993-06-07 | 2000-01-25 | Trimeris, Inc. | Simian immunodeficiency virus peptides with antifusogenic and antiviral activities |
US5684875A (en) | 1994-10-21 | 1997-11-04 | Ellenberger; Hans | Method and apparatus for detecting a computer virus on a computer |
US6067618A (en) | 1998-03-26 | 2000-05-23 | Innova Patent Trust | Multiple operating system and disparate user mass storage resource separation for a computer system |
US6347375B1 (en) | 1998-07-08 | 2002-02-12 | Ontrack Data International, Inc | Apparatus and method for remote virus diagnosis and repair |
US6356937B1 (en) | 1999-07-06 | 2002-03-12 | David Montville | Interoperable full-featured web-based and client-side e-mail system |
US6792543B2 (en) | 2001-08-01 | 2004-09-14 | Networks Associates Technology, Inc. | Virus scanning on thin client devices using programmable assembly language |
US7356736B2 (en) | 2001-09-25 | 2008-04-08 | Norman Asa | Simulated computer system for monitoring of software performance |
US7266844B2 (en) | 2001-09-27 | 2007-09-04 | Mcafee, Inc. | Heuristic detection of polymorphic computer viruses based on redundancy in viral code |
US7478431B1 (en) | 2002-08-02 | 2009-01-13 | Symantec Corporation | Heuristic detection of computer viruses |
WO2004104825A1 (en) | 2003-05-15 | 2004-12-02 | Applianz Technologies, Inc. | Systems and methods of creating and accessing software simulated computers |
US7284273B1 (en) | 2003-05-29 | 2007-10-16 | Symantec Corporation | Fuzzy scanning system and method |
US7360253B2 (en) | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
US20070083930A1 (en) | 2005-10-11 | 2007-04-12 | Jim Dumont | Method, telecommunications node, and computer data signal message for optimizing virus scanning |
US7822782B2 (en) | 2006-09-21 | 2010-10-26 | The University Of Houston System | Application package to automatically identify some single stranded RNA viruses from characteristic residues of capsid protein or nucleotide sequences |
WO2008048665A2 (en) | 2006-10-18 | 2008-04-24 | University Of Virginia Patent Foundation | Method, system, and computer program product for malware detection analysis, and response |
US8250655B1 (en) | 2007-01-12 | 2012-08-21 | Kaspersky Lab, Zao | Rapid heuristic method and system for recognition of similarity between malware variants |
EP2143031A1 (en) | 2007-05-09 | 2010-01-13 | International Business Machines Corporation IBM | A method and data processing system to prevent manipulation of computer systems |
US20090313700A1 (en) * | 2008-06-11 | 2009-12-17 | Jefferson Horne | Method and system for generating malware definitions using a comparison of normalized assembly code |
US9781148B2 (en) * | 2008-10-21 | 2017-10-03 | Lookout, Inc. | Methods and systems for sharing risk responses between collections of mobile communications devices |
US9177144B2 (en) * | 2008-10-30 | 2015-11-03 | Mcafee, Inc. | Structural recognition of malicious code patterns |
US20100154062A1 (en) | 2008-12-16 | 2010-06-17 | Elad Baram | Virus Scanning Executed Within a Storage Device to Reduce Demand on Host Resources |
US8424091B1 (en) * | 2010-01-12 | 2013-04-16 | Trend Micro Incorporated | Automatic local detection of computer security threats |
US20120124007A1 (en) | 2010-11-16 | 2012-05-17 | F-Secure Corporation | Disinfection of a file system |
US20120173155A1 (en) | 2010-12-30 | 2012-07-05 | St. Louis University | Network threading approach for predicting a patient's response to hepatitis c virus therapy |
CN102622536B (zh) * | 2011-01-26 | 2014-09-03 | 中国科学院软件研究所 | 一种恶意代码捕获方法 |
US8555385B1 (en) * | 2011-03-14 | 2013-10-08 | Symantec Corporation | Techniques for behavior based malware analysis |
CN102930206B (zh) | 2011-08-09 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 病毒文件的聚类划分处理方法和装置 |
CN102930210B (zh) | 2012-10-14 | 2015-11-25 | 江苏金陵科技集团有限公司 | 恶意程序行为自动化分析、检测与分类系统及方法 |
US9165142B1 (en) * | 2013-01-30 | 2015-10-20 | Palo Alto Networks, Inc. | Malware family identification using profile signatures |
US9202053B1 (en) | 2013-02-27 | 2015-12-01 | Trend Micro Inc. | MBR infection detection using emulation |
US9311480B2 (en) | 2013-03-15 | 2016-04-12 | Mcafee, Inc. | Server-assisted anti-malware client |
WO2015060832A1 (en) * | 2013-10-22 | 2015-04-30 | Mcafee, Inc. | Control flow graph representation and classification |
CN103839005B (zh) * | 2013-11-22 | 2016-09-28 | 北京智谷睿拓技术服务有限公司 | 移动操作系统的恶意软件检测方法和恶意软件检测系统 |
US9652362B2 (en) * | 2013-12-06 | 2017-05-16 | Qualcomm Incorporated | Methods and systems of using application-specific and application-type-specific models for the efficient classification of mobile device behaviors |
CN105989283B (zh) | 2015-02-06 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
-
2015
- 2015-02-06 CN CN201510065074.8A patent/CN105989283B/zh active Active
- 2015-09-02 TW TW104129020A patent/TW201629832A/zh unknown
-
2016
- 2016-02-04 US US15/016,048 patent/US10460106B2/en not_active Expired - Fee Related
-
2019
- 2019-09-30 US US16/588,398 patent/US11126717B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN105989283A (zh) | 2016-10-05 |
US11126717B2 (en) | 2021-09-21 |
US10460106B2 (en) | 2019-10-29 |
US20160232351A1 (en) | 2016-08-11 |
US20200026854A1 (en) | 2020-01-23 |
CN105989283B (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201629832A (zh) | 一種識別病毒變種的方法及裝置 | |
US11399039B2 (en) | Automatic detection of illicit lateral movement | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
US20180115577A1 (en) | System and method for detecting and mitigating ransomware threats | |
BR102015017215A2 (pt) | método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório | |
US20210056209A1 (en) | Method, system, and storage medium for security of software components | |
US20150047034A1 (en) | Composite analysis of executable content across enterprise network | |
US20170171240A1 (en) | Method and system for identifying uncorrelated suspicious events during an attack | |
JP2014038596A (ja) | 悪意ある実行ファイルの識別方法 | |
EP3501158B1 (en) | Interrupt synchronization of content between client device and cloud-based storage service | |
TW201541278A (zh) | 隨選檢測惡意程式之方法、電子裝置、及使用者介面 | |
US10237285B2 (en) | Method and apparatus for detecting macro viruses | |
TW201220118A (en) | A method and a system for automatically analyzing and classifying a malicious program | |
JP2019514119A (ja) | ハイブリッドプログラムバイナリ特徴の抽出及び比較 | |
CN110298173A (zh) | 检测由软件程序的延迟循环隐藏的恶意软件 | |
US9378367B2 (en) | Systems and methods for identifying a source of a suspect event | |
Li et al. | Large-scale third-party library detection in android markets | |
JP2016099857A (ja) | 不正プログラム対策システムおよび不正プログラム対策方法 | |
CN104486312B (zh) | 一种应用程序的识别方法和装置 | |
Guo et al. | An Empirical Study of Malicious Code In PyPI Ecosystem | |
CN109214179B (zh) | 一种程序模块安全检测方法及装置 | |
WO2016127037A1 (en) | Method and device for identifying computer virus variants | |
WO2016095671A1 (zh) | 一种应用程序的消息处理方法和装置 | |
JP6258189B2 (ja) | 特定装置、特定方法および特定プログラム | |
CN113127874A (zh) | 内网敏感信息处理方法及装置 |