楊萍 趙冰 舒輝
摘 要:據(jù)統(tǒng)計,在大量的惡意代碼中,有相當大的一部分屬于誘騙型的惡意代碼,它們通常使用與常用軟件相似的圖標來偽裝自己,通過誘騙點擊達到傳播和攻擊的目的。針對這類誘騙型的惡意代碼,鑒于傳統(tǒng)的基于代碼和行為特征的惡意代碼檢測方法存在的效率低、代價高等問題,提出了一種新的惡意代碼檢測方法。首先,提取可移植的執(zhí)行體(PE)文件圖標資源信息并利用圖像哈希算法進行圖標相似性分析;然后,提取PE文件導入表信息并利用模糊哈希算法進行行為相似性分析;最后,采用聚類和局部敏感哈希的算法進行圖標匹配,設計并實現(xiàn)了一個輕量級的惡意代碼快速檢測工具。實驗結果表明,該工具對惡意代碼具有很好的檢測效果。
關鍵詞:圖標相似性;哈希算法;導入表比對;局部敏感哈希;惡意代碼檢測
中圖分類號: TP309
文獻標志碼:A
Abstract: According to statistics, a large part of large amount of malicious codes belong to deceptive malicious codes. They usually use icons which are similar to those icons commonly used softwares to disguise themselves and deceive users to click to achieve the purpose of communication and attack. Aiming at solving the problems of low efficiency and high cost of traditional malicious code detection methods based on code and behavior characteristics on the deceptive malicious codes, a new malicious code detection method was proposed. Firstly, Portable Executable (PE) file icon resource information was extracted and icon similarity analysis was performed by image hash algorithm. Then, the PE file import table information was extracted and a fuzzy hash algorithm was used for behavior similarity analysis. Finally, clustering and local sensitive hash algorithms were adopted to realize icon matching, designing and implementing a lightweight and rapid malicious code detection tool. The experimental results show that the designed tool has a good detection effect on malicious code.
Key words: icon similarity; hash algorithm; import table comparison; local sensitive hash; malicious code detection
0 引言
隨著互聯(lián)網(wǎng)的迅猛發(fā)展,娛樂、辦公等應用軟件不斷增長的同時,也出現(xiàn)了許多惡意代碼,這些惡意代碼在互聯(lián)網(wǎng)上傳播十分迅速,且危害性極大。比如,勒索病毒是一種近年來愈發(fā)流行的惡意代碼,這些病毒會加密鎖定被感染的計算機上的用戶資源和資產,要求受害者支付贖金后才提供解密服務,否則相關資源將永遠無法恢復。據(jù)統(tǒng)計,在大量的惡意代碼中,有相當大的一部分屬于誘騙型的惡意代碼,其通常使用與WORD等常用軟件相似的圖標來簡單地偽裝自己,進而誘騙用戶去點擊。在點擊運行之后,此類惡意代碼則進行一系列的竊密、勒索等操作,使用戶的信息資產面臨嚴重的風險。因此,開展基于圖標相似性分析的惡意代碼檢測方法的研究,對于惡意代碼的檢測工作具有重要的現(xiàn)實意義。
惡意代碼[1]也稱為惡意軟件,是指運行在計算機上,使系統(tǒng)按照攻擊者意愿執(zhí)行任務的一組指令。傳統(tǒng)的惡意代碼分析方法[2-3]主要分為靜態(tài)分析方法和動態(tài)分析方法。靜態(tài)分析方法是指在不執(zhí)行程序的情況下,對程序進行反匯編、反編譯等,然后再進行分析,分析方法主要有靜態(tài)源代碼分析、靜態(tài)反匯編分析、反編譯分析;動態(tài)分析方法是指利用程序調試工具對惡意代碼進行跟蹤,觀察惡意代碼執(zhí)行過程,剖析惡意代碼的工作機理并驗證靜態(tài)分析結果,分析方法主要有系統(tǒng)調用行為分析方法和啟發(fā)式掃描技術。但是,傳統(tǒng)的基于代碼和行為特征的惡意代碼檢測方法往往需要經(jīng)過繁瑣的步驟,耗費大量的時間才能達到較好的效果。
本文主要針對此類誘騙型的惡意代碼展開研究,鑒于傳統(tǒng)的基于代碼和行為特征的惡意代碼檢測方法所存在的效率低、代價高等問題,提出了一種新的惡意代碼檢測方法,在圖標資源相似性分析和導入表相似性分析的惡意代碼檢測方法結合的基礎上,采用聚類和局部敏感哈希的算法進行圖標匹配,設計并實現(xiàn)了一個輕量級的惡意代碼快速檢測工具。
1 相關工作
近年來,在惡意代碼檢測領域提出了一種基于圖標相似性分析的新思路。Silva等[4]提出了一種利用機器學習的方法,從圖標中提取信息來提高檢測惡意代碼檢測的精度。該方法包括兩個步驟:1)提取圖標特征使用匯總統(tǒng)計(Summary Statistics) [5]、方向梯度直方圖(Histogram Of Gradient, HOG)[6]和一個卷積自動編碼器[7];2)根據(jù)提取的圖標特征對圖標進行聚類。通過機器學習的方法對公開的數(shù)據(jù)進行了大量的實驗,實驗結果表明該方法可以顯著地提高惡意軟件預測模型的有效性。實驗表明,在預測模型中使用圖標簇時,平均精度增加了10%,但并未給出一種有效的行為分析方法。文獻[8]提出了一種基于應用程序圖標的移動終端惡意代碼檢測方法及系統(tǒng),具體步驟是:首先,對應用程序的安裝包進行分析,將該應用程序的圖標提取出;然后,從該應用程序代碼文件中提取系統(tǒng)應用程序編程接口 (Application Programming Interface, API)函數(shù),將該應用程序的圖標與應用圖標功能規(guī)則庫相對應,從而檢索到與此圖標對應的功能規(guī)則,將該應用程序調用的API函數(shù)與該圖標對應的功能規(guī)則相比對,如果一致,則為正常的應用程序,否則為惡意的應用程序。但是,該項技術尚不成熟,并未得到普及。該思路的創(chuàng)新點在于從圖標出發(fā),利用了惡意代碼使用與正常軟件相似的圖標來偽裝自己的這一特征,進行惡意代碼檢測,極大地提高了惡意代碼檢測效率和精度。然而,現(xiàn)階段基于圖標相似性分析的惡意代碼檢測相關研究成果較少,無論是研究的深度還是廣度都有待于進一步提升。
本文主要采用了圖像哈希算法進行圖標相似性比對。目前,圖像的匹配算法[9]主要包括三類:基于灰度相關的匹配方法[10]、基于特征的匹配方法[11]和基于模型的匹配方法[12]。隨著互聯(lián)網(wǎng)上圖片的泛濫,一種快速和有效的圖像匹配技術顯得愈發(fā)重要。在20世紀90年代末,圖像哈希[13]技術誕生了。該方法廣泛應用于“以圖識圖”的圖像檢索技術中,且國內外許多搜索引擎都使用了這項技術,如Google、百度等。另外,在行為相似性比對方面,采用模糊哈希[14-15]的方法進行導入表比對。它是一種快速、準確、實用的行為分析方法,目前在惡意代碼檢測方面取得了很好的效果。與傳統(tǒng)的基于代碼和行為特征的方法相比,模糊哈希效率更高,它能快速地發(fā)現(xiàn)兩個可移植的執(zhí)行體 (Portable Executable, PE)文件的相似關系并計算其相似度;與傳統(tǒng)的單純API序列比較的方法相比,模糊哈希算法更為精確,它是計算兩個序列之間的相似度,某一位的改變都能給出一個準確的數(shù)值。隨著檢測工具常規(guī)圖標庫的不斷擴大,為了避免圖標的逐一比對,采用聚類[16]和局部敏感哈希[17]結合的算法對常用圖標庫進行分類、管理來提高圖標匹配速度和檢測工具的效率。
因此,本文的主要工作包括:1)解析PE文件結構,從PE文件中提取圖標資源和導入表信息;2)研究各種圖像相似性比對算法的原理與特點,通過設計并進行實驗,選取dhash(difference hashing)算法作為本文圖標相似性比對的算法;3)采用基于內容分割的模糊哈希算法對兩個PE文件的導入表信息進行相似性比對;4)設計并實現(xiàn)了一個輕量級的惡意代碼檢測工具,該工具由樣本信息提取模塊、常規(guī)信息庫和惡意代碼檢測模塊構成,并通過對樣例的測試與分析,驗證了該工具的有效性。
2 基于圖標相似性分析的惡意代碼檢測方法
本文旨在設計并實現(xiàn)一種輕量級的惡意代碼快速識別工具。因此,首先通過實驗驗證,選取dhash算法作為本文的圖標相似性比對算法,其次,采用模糊哈希算法對提取的導入表信息進行比對。
2.1 總體思路
檢測工具的總體設計思路如圖1所示,從總體上包含三大模塊:樣本信息提取模塊、常規(guī)信息庫的構建,以及惡意性檢測模塊。整個檢測工具采用python語言實現(xiàn),下面分別闡述各個功能模塊的具體實現(xiàn)過程以及檢測工具的整體流程。
2.1.1 各模塊實現(xiàn)
樣本信息提取模塊對傳入的待測樣本進行PE結構解析,提取出其圖標資源信息與導入表中的API函數(shù)信息,作為下一步惡意性檢測的信息輸入。在實現(xiàn)過程中,本文采用python的第三方模塊Pefile對PE結構進行解析,在此基礎上提取出所需信息。圖標資源的提取過程封裝為ExtractIcon類,導入表信息的提取直接封裝為GetPEIAT函數(shù)。
常規(guī)信息庫是指圖標dhash特征值與API模糊哈希特征值所構成的庫,是惡意性檢測的信息參照。具體構建流程如下:1)收集Windows平臺下常用軟件的可執(zhí)行程序,包括WORD.exe、QQ.exe和Chrome.exe等,其中WORD等應用程序的圖標在惡意代碼中應用極為廣泛,對普通用戶而言具有極強的誘騙性。2)對10萬個常規(guī)軟件,首先進行圖標資源信息和導入表API信息的提取,提取的方式與樣本信息提取模塊的功能設計相同。3)利用dhash計算各圖標資源的圖標哈希值,利用模糊哈希算法計算各導入表API的模糊哈希值,并按照〈文件名稱,圖標哈希值,導入表模糊哈希值〉的結構組織成信息庫,常規(guī)信息庫采用簡單的文本方式存儲。
圖標資源的哈希值計算在PE文件解析的基礎上,采用python的第三方模塊imagehash完成,imagehash提供了ahash(average hashing)、dhash、whash(wavelet hashing)等多種哈希函數(shù)功能接口,能夠快速地完成所需功能。導入表的提取以PE文件解析為基礎,提取出導入表信息存為文本文件后,采用python第三方模塊ssdeep,通過其接口函數(shù)ssdeep.hash_from_file(file_path)能夠直接完成對特定文件的模糊哈希計算。
惡意性檢測模塊以常規(guī)信息庫為依據(jù),對輸入的待測樣本信息分別進行圖標相似性分析和行為相似性分析,并輸出對樣本惡意性的判定結果。
2.1.2 整體流程
惡意性檢測的整體流程如圖2所示。
對提取的樣本圖標信息進行dhash相似性分析,從常規(guī)信息庫中檢索是否存在與之相似的常規(guī)軟件,相似性判定的方式為比較兩個dhash數(shù)值間的漢明距離。本文中漢明距離的閾值IconHashThreshold設定為10,即在漢明距離小于等于10條件下,兩個圖標是相似的,漢明距離超過10則認為兩個圖標是不相似的。
當判定樣本圖標與常規(guī)信息庫中某個常規(guī)軟件的圖標不相似時,則認為無法檢測該樣本的惡意性;如果存在相似性,則進一步進行導入表相似性分析,通過比較樣本與該常規(guī)軟件的導入表模糊哈希特征值,來實現(xiàn)對行為差異性的判定。
2.2 主要方法
2.2.1 圖標相似性比對方法
ahash[18],即平均哈希算法。一張圖片包含高頻和低頻的部分,對處理后的灰度圖像計算平均值。phash(perception hashing)[18],即感知哈希算法。phash算法利用的是離散余弦變換(Discrete Cosine Transform, DCT)。ahash算法太過嚴格,比較適合搜索縮略圖,在實際圖像比對中不如phash算法精確。dhash[18],即差異哈希算法。dhash算法在相鄰像素之間起作用,并在比較左側和右側兩個像素的亮度后對整個圖像進行采樣。此算法的具體步驟是:首先,將圖片縮小為9×8,72個像素值;其次,將其轉化為灰度圖,將縮放后的圖片轉換為256階灰度;然后,計算平均值,再計算每一行中左右兩個像素的差值,每行8個,共8行生成64個值;隨后,得到信息指紋,如果左邊的像素比右邊的像素亮,則記為1,否則為0;最后,計算兩張圖片形成指紋的漢明距離,即可得知它們相似度。whash[18],即小波散列哈希算法。whash將phash的DCT替換為離散小波變換 (Discrete Wavelet Transform, DWT)。DWT是在傅里葉變換的基礎上發(fā)展起來的,它是一種空間或時間和頻率之間的局部變換,通過放大、縮小和移動等變換可對所得數(shù)據(jù)進行多尺度的細節(jié)分析,所以能夠從數(shù)據(jù)中提取有效信息。
2.2.2 行為相似性比對方法
在行為相似性比對中,采用模糊哈希的方法。模糊哈希算法是一種簡單、快速的行為分析方法,已被廣泛用于以簡單識別為目的的領域。一般的哈希算法具有精確匹配的特性,無法判斷內容稍有不同的同類文件,這對于惡意代碼檢測是非常不利的。模糊哈希算法與模糊邏輯搜索很像,它可以尋找相似但不完全相同的文件,即所謂的同源性文件。模糊哈希的原理是先對文件進行分塊,計算每一塊的哈希值,然后將得到的一系列的哈希值利用比較函數(shù)與其他哈希值進行比較,來確定相似程度,因此,僅僅某一部分變化了只會導致某一或幾個分塊的哈希值發(fā)生變化,而其他分塊的哈希值不發(fā)生變化。模糊哈希的算法的主要步驟:首先,使用一個弱哈希計算文件的局部內容,在特定條件下對文件進行分析;其次,使用一個強哈希對文件每片計算哈希值;然后,將這些值連接起來,與分片一起構成一個模糊哈希值;最后,使用一個字符串相似性比對算法判斷兩個模糊哈希值的相似度。
在本文中,利用模糊哈希的方法快速比對導入表的相似度,具體實現(xiàn)方法是先將PE文件的導入表信息提取出來,再將導入表信息按首字母排序后生成兩個文本文件,計算兩個文本文件的模糊哈希值,最后利用ssdeep提供的compare函數(shù)計算匹配度,即兩個PE文件導入表的相似度。為驗證此方法的有效性,實驗設計如下:
但是,在實際情況中,進行行為相似性比對時會遇到諸多問題。面對一些特殊情況的樣本,如一些壓縮自解壓文件,壓縮后會表現(xiàn)出來一些壓縮軟件的圖標,對于這類樣本,本工具可能存在誤判問題。設計了如下實驗,將pycharm、QQ、Wechat、WORD通過WinRAR創(chuàng)建它們的自解壓文件,如圖5所示。常規(guī)信息庫如表4所示,將它們作為測試樣本輸入工具進行測試,測試結果為四個自解壓文件均具有惡意性。自解壓過程使得四個文件的導入表信息完全相同,如表5所示。這也引出了一個新的問題,對于一些自解壓文件或者加殼的文件,在檢測前需要對樣本進行預處理如脫殼使之成為普通樣本,然后進行檢測,這也是下一步工作研究的內容之一。表6為QQ.sfx樣本的檢測過程信息。
大多數(shù)軟件都存在不同版本的現(xiàn)象,比如當對使用WORD圖標的軟件進行檢測時,即使該軟件是正常軟件,但由于其版本與常規(guī)信息庫中的WORD版本不一致,因而導致誤判。由于不同版本的正常軟件行為存在差異,于是進行如下研究。以下是對WORD各版本進行導入表提取,觀察API函數(shù)調用情況并采用模糊哈希計算相似度。實驗結果表明,以上各種版本W(wǎng)ORD.exe的導入表API在內容與數(shù)量上均差異不大,這也意味著兩者在功能、行為上很相似。但是,不同版本W(wǎng)ORD導入表信息所計算出模糊哈希值的相似度并不高,如表7所示。于是,針對正常軟件多版本的引起的誤判問題,本文采取以下解決方案。首先,在常規(guī)信息庫的收集過程中,盡可能收集同一軟件的多個版本。然后,在圖標相似性達到要求的情況下,進行導入表相似性比對,只要與其中一個版本的導入表相似度達到60,就認為該輸入軟件為正常軟件;如果與所有版本的導入表相似低于60,則認為該軟件為惡意軟件。
2.3 基于LSH的圖標相似性匹配算法
2.3.1 算法基本思想
隨著檢測工具圖標庫的不斷擴大,每當檢測惡意樣本時,如果將圖標與圖標庫的所有圖標進行逐一比對,效率非常低。LSH(Locality Sensitive Hashing)實現(xiàn)了快速地從海量的高維數(shù)據(jù)集合中找到與某個數(shù)據(jù)最相似的一個數(shù)據(jù)或多個數(shù)據(jù),是一種針對海量高維數(shù)據(jù)的快速最近鄰查找算法,非常適合對種類繁多且海量的圖標進行相似性比對。為了提高檢測工具的效率,采用K-means算法[19]對圖標進行聚類[17],形成一個高維向量作為一個dhash值的描述,然后利用局部敏感哈希算法進行索引查詢,實現(xiàn)對檢測工具圖標庫進行分類、管理,從而提高圖標的匹配速度,進而提高檢測工具的檢測效率。
表格(有表名)
表7 不同版本W(wǎng)ORD的模糊哈希相似度
Tab. 7 Fuzzy hash similarity of different versions of WORD
版本2012201420152016
2012100715441
2014—1005841
2015——10047
2016———100
定義1 局部敏感哈希[18]。將一族hash函數(shù)H={h:S→U}稱為是(r1,r2,p1,p2)敏感的,如果對于任意H中的函數(shù)h,滿足以下兩個條件:
1)如果d(O1,O2) 2)如果d(O1,O2)>r2,那么Pr[h(O1)=h(O2)]≤p2。 其中:O1,O2∈S,表示兩個具有多維屬性的數(shù)據(jù)對象;d(O1,O2)為兩個對象的相異程度。 2.3.2 算法主要步驟 首先,計算10萬個圖標dhash特征值,隨后,選取合適的LSH hash函數(shù)將每一個dhash特征值映射到Hash table,Hash table的尺度受圖標數(shù)量、種類的影響。該算法在本文中大致實現(xiàn)過程如圖6所示。 圖片 圖6 Hash table構造過程 Fig. 6 Process of generating Hash table LSH針對不同的距離度量空間需要不同的算法,主要包括了Hamming距離、Euclidean距離、Jaccard 系數(shù)、余弦相似度。在本文中,擬選用P-stable hash[20]的算法。 首先,構造p-stable分布LSH函數(shù)族,提出了如下hash函數(shù)族: ha,b(v)=(a·v+b)/r 式中:b∈(0,r),是一個隨機數(shù);r是直線的分段長度;hash函數(shù)族的函數(shù)是依據(jù)a、b的不同建立的。選取合適的r值,能夠使得ρ=ln(1/p1)ln(1/p2)盡可能地小,r的取值要根據(jù)實際情況設定。具體依據(jù)為:先確定r1、r2的取值,然后選擇合適的r,使得p1、p2都達到要求。 其次,構造hash table。按照減少漏報率[19]和誤報率[20]提供的算法,進行hash table的構造。 先設計兩個hash函數(shù):H1、H2,將一個由k個數(shù)組成的整數(shù)向量映射到hash table的某一個位上,其中size是hash table的長度。 H1(x1,x2,…,xk)=((∑ki=1rixi)mod C)mod size H2 (x1, x2 ,…,xk )=(∑ki=1r′ixi)mod C H1:Zk→{0,1,2,…,C}。C=232-5,是一個大素數(shù)。這兩個函數(shù)具體的算法如下,其中,ri、r′i 是兩個隨機整數(shù)。H2計算的結果成為一個數(shù)據(jù)向量的“指紋”,它是由數(shù)據(jù)向量的k個hash值計算得到的,而H1相當于是數(shù)據(jù)向量的指紋在hash table中的索引。 首先,將一個dhash的描述經(jīng)過LSH函數(shù)變換,LSH函數(shù)為隨機選取L組函數(shù)組gi(·),每個函數(shù)組都由k個隨機選取的函數(shù){g1(·),g2(·),…,gL(·)}構成,其中L個函數(shù)組之間不一定是一樣的。然后,形成一個整型向量(x1,x2,…,xk),通過H1、H2變換得到索引信息,現(xiàn)在這L組函數(shù)分別對數(shù)據(jù)處理,只要有一組完全相等,就認為兩條數(shù)據(jù)是相近的。此算法運用到檢測工具的具體查詢過程如圖7所示。 3 實驗與結果分析 3.1 實驗設置 為驗證本文工具對于欺騙性的惡意代碼具有很好的檢測效果,本文設計了三個實驗:1)輸入疑似正常圖標的惡意樣本11364個,對檢測工具進行測試;2)輸入疑似正常圖標的惡意樣本1136個和正常軟件1136個,對檢測工具進行測試;3)輸入與實驗2相同的樣本集,對不分析圖標信息僅采用模糊哈希進行行為檢測的方法進行測試。本文實驗的環(huán)境為Windows 7 x64旗艦版、Python2.7 (32b),使用Pefile的版本為2017.11.5,Imagehash版本為4.0,Ssdeep的版本為2.14.1。本文選取不同的樣本集進行實驗,結合常規(guī)信息庫中的10萬條記錄,輸入到惡意代碼檢測工具中,對實驗結果進行統(tǒng)計分析,然后對具體樣例進行分析,證明了本文可以有效實現(xiàn)對圖標資源的匹配和導入表的匹配,在此基礎上實現(xiàn)對可執(zhí)行程序惡意性的判定。 3.2 實驗過程與結果 3.2.1 實驗1 為驗證檢測工具對真惡意代碼是否具有很好的檢測效果,對海量的惡意代碼樣本作預處理,篩選出具有此類特征的惡意代碼作為測試樣本。由于實驗規(guī)模太小,因此,本文增加了惡意代碼樣本的數(shù)量,在VirusShare網(wǎng)站上下載了十萬個惡意代碼,從中篩選出疑似正常圖標的惡意樣本11364個,并在相同的測試環(huán)境下,輸入檢測工具進行測試,測試結果如表8所示。 3.2.2 實驗2 為了進一步說明檢測工具的有效性,設計了實驗2,輸入1136個疑似正常圖標的惡意樣本,以及從360寶庫中收集的1136個正常軟件,并對惡意樣本和正常軟件作標記加以區(qū)分,在相同的測試環(huán)境下,輸入檢測工具進行測試,測試結果如表9所示,類別結果如表10所示 3.2.3 實驗3 為驗證利用圖標與行為分析相結合的方法進行惡意代碼檢測,比僅對行為信息進行分析的方法具有更好的檢測效果,設計實驗3,與實驗2進行對比,輸入與實驗2相同的樣本集,對不利用圖標信息僅采用模糊哈希進行行為檢測的方法進行測試,測試結果如表11所示,類別結果如表12所示。 3.3 樣例分析 以上對三個實驗結果的統(tǒng)計分析,說明該工具總體上已實現(xiàn)基本功能,下面對實驗1中的樣例進一步分析。 例如,樣本1的檢測過程信息如表13所示。首先,通過圖標相似性比對,發(fā)現(xiàn)該樣本與常規(guī)信息庫中LEViewer.exe和WinRAR.exe存在圖標匹配,其漢明距離分別為9和0。然后,進一步通過導入表模糊哈希匹配發(fā)現(xiàn)其匹配度均為0,說明該樣本與正常可執(zhí)行程序的導入表差別極大,因此判定為存在惡意性。 在檢測結果中,有1643個樣本沒有從常規(guī)信息庫中匹配出圖標信息,這主要由兩方面因素決定:其一,常規(guī)信息庫中的記錄數(shù)量。各種不同正常應用程序收集得越多,測試樣本圖標匹配的成功率就越高。其二,圖標哈希閾值IconHashThreshold的取值。顯然當IconHashThreshold的取值越大,對于各種不同變換的圖標匹配成功度越高,但另一方面也可能會導致無關圖標的匹配。通過實驗與分析,驗證了本文工具可以有效實現(xiàn)對圖標資源的匹配和導入表的匹配,在此基礎上實現(xiàn)了對可執(zhí)行程序惡意性的判定。常規(guī)信息庫中收集的正常程序信息數(shù)量、圖標哈希閾值和導入表模糊哈希閾值等因素,對檢測效果具有重要影響。下一步工作可以進一步收集更多的正常程序,豐富常規(guī)信息庫,進而提高檢測工具的能力。 在采用聚類和LSH算法后,將常規(guī)信息庫中10萬條記錄分成50個分類,每個分類包括2000條記錄。將使用了此算法后的測試結果與未使用此算法比較,發(fā)現(xiàn)準確率明顯提高,匹配時間縮短,效率提高。但是針對此算法的實驗,數(shù)據(jù)集不夠全面,評價指標不夠科學,難以可靠地表明此算法的有效性,因此有待進一步深入研究。 4 結語 首先,本文介紹了惡意代碼檢測技術的研究背景及研究意義,對惡意代碼種類、分析和檢測方法進行了概述,介紹了國內外在基于圖標資源相似性分析的惡意代碼檢測方面的研究現(xiàn)狀;然后,介紹了工具的總體結構設計,以及兩種主要方法——圖標相似性比對方法和模糊哈希的行為相似性的快速比較方法;最后,設計了三個實驗對工具進行測試,并對實驗結果進行統(tǒng)計分析。從實驗結果可以看出,本文主要有以下兩個方面創(chuàng)新:1)從圖標入手進行惡意代碼檢測,大幅度縮小了檢測開銷,提高了檢測效率;2)采用圖像哈希進行圖標相似性比對,采用模糊哈希進行行為相似性比對,設計并實現(xiàn)了一個輕量級的惡意代碼快速檢測工具。 目前的研究還存在許多待解決的問題:1)該工具只能對一般情況的惡意軟件進行快速檢測,面對一些特殊情況的樣本,如一些壓縮自解壓文件,壓縮后會表現(xiàn)出來一些壓縮軟件的圖標,仍然存在誤判問題;2)常規(guī)信息庫需要大量的不同版本的正常軟件,下一步工作將采用機器學習的方法對常規(guī)信息庫的正常軟件進行訓練,進而提高比對的精度。由于本文從圖標入手,旨在實現(xiàn)一種輕量級的快速惡意代碼檢測工具,因此該工具針對的對象是欺騙型惡意代碼,對于一般的惡意代碼不具有很好的檢測效果,而且能達到相對較好的預處理效果,若此類惡意軟件采用與正常軟件高度類似的API表現(xiàn),則仍然需要進一步復雜的行為分析。 參考文獻 (References) [1] 徐嬋.基于行為的惡意軟件自動分類方法的研究[D].湘潭:湘潭大學,2014:7-9.(XU C. Research on automatic classification method of behavior-based malware [D]. Xiangtan: Xiangtan University, 2014: 7-9.) [2] 王毅,唐勇,盧澤新,等.惡意代碼聚類中的特征選取研究[J].信息網(wǎng)絡安全,2016,16(9):64-68.(WANG Y, TANG Y, LU Z X, et al. Research on features selection in malicious clustering [J]. Netinfo Security, 2016, 16(9): 64-68.) [3] 蔡林,陳鐵明.Android移動惡意代碼檢測的研究概述與展望[J].信息網(wǎng)絡安全,2016,16(9):218-222.(CAI L, CHEN T M. Research review and outlook on Android mobile malware detection [J]. Netinfo Security, 2016, 16(9): 218-222.) [4] SILVA P, AKHAVAN-MASOULEH S, LI L. Improving malware detection accuracy by extracting icon information [C]// MIPR 2018: Proceedings of the 2018 IEEE Conference on Multimedia Information Processing and Retrieval. Piscataway, NJ: IEEE, 2018: 408-411. [5] 王文,芮國勝,王曉東,等.圖像多尺度統(tǒng)計模型綜述[J].中國圖象圖形學報,2007,12(6):961-969.(WANG W, RUI G S, WANG X D, et al. A review of multiscale statistical image models [J]. Journal of Image and Graphics, 2007, 12(6): 961-969.) [6] 傅紅普,鄒北驥.方向梯度直方圖及其擴展[J].計算機工程,2013,39(5):212-217.(FU H P, ZOU B W. Histogram of oriented gradient and its extension [J]. Computer Engineering, 2013, 39(5): 212-217.) [7] 張定會,江平,單俊濤.卷積碼的神經(jīng)網(wǎng)絡編碼方法[J].數(shù)據(jù)通信,2011(4):33-34,39.(ZHANG D H, JIANG P, SHAN J T. Neural network coding method for convolutional codes [J]. Data Communications, 2011(4): 33-34, 39.) [8] 潘宣辰,肖新光.基于應用圖標的移動終端惡意代碼檢測方法及系統(tǒng):CN 103902906 A[P].2014-07-02.(PAN X C, XIAO X G. Mobile terminal malicious code detection method and system based on application icon: CN 103902906 A [P]. 2014-07-02.) [9] 王立新,劉彤宇,李陽.SSDA圖像匹配算法的研究及實現(xiàn)[J].光電技術應用,2005,20(3):53-55.(WANG L X, LIU T Y, LI Y. Research and implementation of SSDA [J]. Electro-Optic Technology Application, 2005, 20(3): 53-55.) [10] 李強,張鈸.一種基于圖像灰度的快速匹配算法[J].軟件學報,2006,17(2):216-222.(LI Q, ZHANG B. A fast matching algorithm based on image gray value [J]. Journal of Software, 2006, 17(2): 216-222.) [11] 陳磊.圖像配準中基于特征提取和匹配的方法研究[D].長春:吉林大學,2016:1-2.(CHEN L. Research of image registration based on feature extraction and matching method [D]. Changchun: Jilin University, 2016: 1-2.) [12] 楊薇.基于模型的圖像變形及應用[D].無錫:江南大學,2013:32-44.(YANG W. Research on the technology and application of image deformation based on the model [D]. Wuxi: Jiangnan University, 2013: 32-44.) [13] 曾勇.圖像感知哈希算法及應用[D].杭州:浙江理工大學,2012:3-9.(ZENG Y. Image perceptual hashing algorithm and application [D]. Hangzhou: Zhejiang Sci-Tech University, 2012: 3-9.) [14] 肖梓航,李柏松,肖新光.基于模糊哈希算法的惡意代碼檢測系統(tǒng)及方法:CN 102811213A[P].2012-12-05.(XIAO Z H, LI B S, XIAO X G. Malicious code detection system and method based on fuzzy hash algorithm: CN 102811213A [P]. 2012-12-05.) [15] 吳悠漾,孟祥兆,田穎.基于模糊哈希的惡意代碼檢測[J].信息系統(tǒng)工程,2017(1):62.(WU Y Y, MENG X Z, TIAN Y. Malicious code detection based on fuzzy hash [J]. China CIO News, 2017(1): 62.) [16] 伍育紅.聚類算法綜述[J].計算機科學,2015,42(S1):491-499.(WU Y H. General overview on clustering algorithms [J]. Computer Science, 2015, 42(S1): 491-499.) [17] 史世澤.局部敏感哈希算法的研究[D].西安:西安電子科技大學,2013:5-9.(SHI S Z. Research on the locality sensitive hashing [D]. Xian: Xidian University, 2013: 5-9.) [18] 葉衛(wèi)國,韓水華.基于內容的圖像Hash算法及其性能評估[J].東南大學學報(自然科學版),2007,37(S1):109-113.(YE W G, HAN S H. Performance evaluation for content-based image authentication [J]. Journal of Southeast University (Natural Science Edition), 2007, 37(S1): 109-113.) [19] 喬端瑞.基于K-means算法及層次聚類算法的研究與應用[D].長春:吉林大學,2016:5-17.(QIAO D R. Research and application based on K-means algorithm and hierarchical clustering algorithm [D]. Changchun: Jilin University, 2016: 5-17.) [20] DATAR M, IMMORLICA N, INDYK P, et al. Locality-sensitive hashing scheme based on p-stable distributions [C]// SCG 2004: Proceedings of the 2004 Twentieth Annual Symposium on Computational Geometry. New York: ACM, 2004: 253-262.