[發(fā)明專利]一種自動化檢測惡意代碼核心特征的方法有效
| 申請?zhí)枺?/td> | 201810013616.0 | 申請日: | 2018-01-08 |
| 公開(公告)號: | CN107908963B | 公開(公告)日: | 2020-11-06 |
| 發(fā)明(設計)人: | 王櫟漢;寧振虎;薛菲;蔡永泉;梁鵬 | 申請(專利權)人: | 北京工業(yè)大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06N20/00 |
| 代理公司: | 北京思海天達知識產(chǎn)權代理有限公司 11203 | 代理人: | 沈波 |
| 地址: | 100124 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 自動化 檢測 惡意代碼 核心 特征 方法 | ||
1.一種自動化檢測惡意代碼核心特征的方法,其特征在于:該方法是一種基于機器學習算法的檢測惡意代碼核心特征的方法;通過靜態(tài)分析,從惡意代碼實際安全意義的角度出發(fā),提取惡意代碼的圖像紋理、關鍵API調(diào)用、關鍵字符串特征;通過基于歸一化雙特征庫的隨機森林樹算法對提取的特征進行學習,獲得惡意代碼家族核心特征庫;
第一、核心特征提取方法整體架構
使用三種特征提取方法,并通過機器學習算法對三種特征進行學習;最終實現(xiàn)自動化提取惡意代碼核心特征,并且保證提取的核心特征不易被混淆,檢測效果好;
對于一個惡意代碼樣本,提取出兩份分析文件,一個是經(jīng)過IDA反匯編的惡意代碼操作序列,另一個是惡意代碼可執(zhí)行的二進制文件;惡意代碼的反匯編文件記錄了惡意代碼API接口的調(diào)用順序,以及傳遞和返回的參數(shù);因此通過分析處理惡意代碼的反匯編文件,從中提取出兩種惡意代碼特征:n-gram序列特征和關鍵字符串特征;這兩個特征能夠很好的反映出惡意代碼的局部敏感信息和實際操作的特征信息;
對于惡意代碼二進制執(zhí)行文件,直接通過統(tǒng)計學方式對特征進行提取很困難;因此考慮將該二進制文件通過分割的形式構建灰度圖像,通過對該灰度圖像的特征提取,得到一種含有非常豐富信息的惡意代碼圖像特征;對于三種特征向量,需要利用高斯歸一化算法對特征向量進行標準化處理,以保證最終三種特征的特征值分布范圍相同;
采用隨機森林樹算法,隨機的對訓練樣本以及三種特征向量進行選擇;通過融合出多個特征向量并配合多個訓練樣本集,對分類器進行訓練,提高模型的多樣性;構建雙特征子庫,將惡意代碼圖像特征單獨入庫;保證每次特征融合,都能夠選取到圖像特征向量中的某幾個特征值用于訓練;保證訓練得到的分類器,擁有一定的準確率;最終的分類結果,則由分類器集群進行投票表決;
第二、惡意代碼圖像特征提取
首先通過BM2(Boyer-Moore two)算法將惡意代碼二進制文件按每8bit為一長度進行分割,每8bit的二進制讀取出一個范圍為0到255的無符號整形數(shù);固定行寬,產(chǎn)生一個二維數(shù)組的向量;向量中的每個原始的取值范圍都為0到255;即一個灰度像素,0代表白色,255代表黑色;通過這個二維數(shù)組,生成一個可視化的灰度圖像;圖像的寬度和高度則取決于樣本文件的大小;映射后的灰度紋理圖片將被存儲為一個無壓縮的PNG圖像;由于惡意代碼二進制文件中存儲的實際是代碼運行的過程,因此不同階段的運行情況對應的映射圖片灰度也不一樣;
惡意代碼灰度圖像中“.text”部分包含可執(zhí)行代碼,具有細粒度紋理,其余充滿黑色,表示末尾填零;“.data”部分包含初始的代碼塊,未初始的代碼塊;“.rsrc”部分包含所有模塊的資源;
圖像的特征提取分為幾種類型:顏色、形狀、關系空間、紋理特征方法;特征提取的結果是把圖像上的點分為不同的子集,這些子集往往屬于孤立的點、連續(xù)的曲線或者連續(xù)的區(qū)域;考慮到惡意代碼圖像為無壓縮的灰度圖像,每個區(qū)域?qū)粋€類型的操作,提取的特征能夠體現(xiàn)圖像中各個區(qū)域的特征,并且在面對翻轉、變化、混淆情況下,提取的圖像特征不能具有很大的差異性;因此利用灰度共生矩陣(GLCM)對惡意代碼圖像進行紋理特征的提取,灰度共生矩陣通過計算圖像中各個區(qū)域的邊界,并統(tǒng)計各區(qū)域的概率信息反映圖像中灰度有關方向和間隔整體的信息;
對于圖像上任意一點(p,q),(p+Δp,q+Δq)為圖像中移動后的另一點;這兩點形成了一個點對,(m,n)為該點對的灰度值;即m為點(p,q)的灰度值,n為點(p+Δp,q+Δq)的灰度值;通過固定Δp和Δq,通過移動點(p,q)來確定相應的(m,n)值;則相應灰度值的組合為L2,灰度值的級數(shù)為L;通過計算灰度值(m,n)的出現(xiàn)頻率,化積分為1,其概率為Pmn;得到灰度共生矩陣即灰度聯(lián)合概率密度為[Pmn]L×L;灰度共生矩陣并不能直接用于惡意代碼圖像特征的表述,它反應的是圖像灰度關于方向、相鄰間隔、變化幅度的綜合信息;通過灰度共生矩陣提取出圖像的角二階矩、對比度、灰度一系列紋理特征;從安全屬性相關的角度分析選取了幾種惡意代碼圖像的紋理特征并通過PCA算法對特征進行降維,選取出其中貢獻值較高的5種特征,分別為:
1)對比度其中|m-n|=s;
2)灰度相關其中σp,σq,μp,μq分別為與的標準差和均值;
3)熵
4)相異
5)反差
第三、n-gram及關鍵字符串特征提取
從惡意代碼實際語義的角度,利用n-gram模型對惡意代碼的反匯編文件中操作碼進行提取;對于一個“.asm”的反匯編程序,由段落開始標識符、內(nèi)存中地址、字節(jié)碼、操作碼、參數(shù)組成;
反匯編程序片段中的segment表示對應的當前指令所屬段落,address表示內(nèi)存地址,bytes對應的十六進制碼,opcode表示操作碼,operands則表示傳遞的參數(shù);對于一個反匯編文件,通過定位“.text”,提取出對應的操作碼;對操作碼進行n-gram建模,即可得到n-gram特征向量;
本方法還提取了惡意代碼的關鍵字符串特征,通過對惡意代碼進行反匯編操作,提取出許多直接可以打印出來的字符串;這些字符串展現(xiàn)惡意代碼的一些敏感操作;采用字符長度作為關鍵字符串特征,該特征提取方法將反匯編文件中所有可打印的字符串,按長度進行劃分統(tǒng)計成向量;對于IP地址,通過替換繞過檢測;相關字符串信息在混淆處理后,長度是不變的,選擇統(tǒng)計字符串長度,消除噪音數(shù)據(jù)的干擾;
第四、特征歸一化
為了能夠統(tǒng)一多種特征向量融合的問題,對三種特征向量進行了特征歸一化處理;對于提取的多個特征,由于提取方法因素的不同,導致各個特征的數(shù)值范圍區(qū)間并不相同;將所有的特征值通過一定的規(guī)則映射到某一特定區(qū)間,消除因為數(shù)值范圍不同而對特征學習產(chǎn)生的影響;
本方法提取三種特征,每種特征向量都有多種維度的數(shù)據(jù);只需要將這些多維向量都進行歸一化操作,即消除因為取值不同對特征學習造成的影響;具體的高斯歸一化算法描述如下:
1)對于任意一組n維的向量v(n)=(v1,v2,…,vn),首先利用高斯公式計算該多維特征向量集合的均值μn和方差σn;
2)將v(n)特征向量歸一化至區(qū)間[-1,1],從而可以得到歸一化的特征向量v(N):
其中上標N表示歸一化操作后,所有的向量轉變?yōu)榫哂蠳(0,1)分布的向量v(N),使用2σi進行歸一化,使得新生成的向量取值范圍固定在[-1,1];
第五、隨機森林樹構建及核心特征選取
使用雙特征庫的隨機森林樹算法,重點考慮惡意代碼圖像特征;利用隨機選擇的方法,可以有效地消除惡意代碼的混淆干擾;基于這種提取方法構建的特征庫具有更強的抵抗力。
2.根據(jù)權利要求1所述的一種自動化檢測惡意代碼核心特征的方法,其特征在于:對于三種所提取的特征,雖然每個特征屬性都具有自己的安全意義;但是在針對惡意代碼的檢測過程中,不同的特征面臨的干擾、混淆影響是不同的,對惡意代碼家族的核心特征來說,能否更好的代表同一家族也是不同的;對于n-gram和關鍵字符串特征來說,是從惡意代碼的實際語義的角度來描述的;惡意代碼圖像特征從相同的執(zhí)行代碼,調(diào)用資源的角度來對惡意代碼進行描述;因此在對樣本特征集進行選擇時,應當著重考慮惡意代碼圖像特征;從安全屬性角度出發(fā),提出一種改進的隨機森林樹算法;該隨機森林樹算法將特征庫拆分為兩個部分,一個部分為惡意代碼圖像特征的圖像特征庫,另一個部分為n-gram和關鍵字符串特征組成的語義特征庫;在對特征庫中多維特征進行選擇的同時,考慮惡意代碼圖像特征;每次特征提取都會隨機在惡意代碼圖像特征庫中隨機選擇幾個特征維度,并在另外一個特征庫中也進行隨機的選取,構建核心特征庫。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京工業(yè)大學,未經(jīng)北京工業(yè)大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810013616.0/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





