国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于余弦算法的手機(jī)病毒檢測方法

2020-04-13 01:25王怡然
關(guān)鍵詞:病毒檢測二進(jìn)制指令

◆蘇 暉 王怡然

(華能貴誠信托有限公司電子商務(wù)部 北京 100093)

隨著全球化和信息化的發(fā)展,移動(dòng)互聯(lián)網(wǎng)的發(fā)展進(jìn)入了高速行駛的快車道,同時(shí),移動(dòng)互聯(lián)網(wǎng)病毒也加快蔓延。2018 年,CNCERT 通過移動(dòng)互聯(lián)網(wǎng)惡意程序監(jiān)測體系共監(jiān)測移動(dòng)互聯(lián)網(wǎng)惡意程序5702861 個(gè),比2017 年同期監(jiān)測3162981 個(gè)惡意程序增長1.8 倍,涉及移動(dòng)惡意程序702 個(gè),繼續(xù)呈現(xiàn)出爆炸式增長趨勢。

現(xiàn)在對(duì)手機(jī)病毒的分析及檢測主要采用基于特征的檢測方法,它通過對(duì)已知特征匹配來判斷是否存在手機(jī)病毒?,F(xiàn)在,基于行為的檢測方法也被引入手機(jī)病毒檢測,它通過對(duì)手機(jī)程序執(zhí)行監(jiān)視,對(duì)文件、內(nèi)存、進(jìn)程等變化進(jìn)行判斷來完成檢測,如J2ME 沙箱、Android 沙箱等[1-9]。但是,無論是基于特征還是基于行為的檢測方法都無法難以對(duì)多態(tài)[10-11]和變形技術(shù)[12-13]處理后的手機(jī)病毒進(jìn)行有效的檢測。因?yàn)槎鄳B(tài)和變形技術(shù)處理后的手機(jī)病毒,可以通過逃避已知檢測點(diǎn)或者加入混淆信息欺騙檢測工具的方法來防止其被檢測。由于沒有對(duì)手機(jī)操作系統(tǒng)底層進(jìn)行研究,檢測不到操作系統(tǒng)底層的工作狀態(tài),如內(nèi)存的變化,僅僅是監(jiān)視了應(yīng)用層APP 的數(shù)據(jù)改動(dòng)及API 調(diào)用[14],因此無法對(duì)多態(tài)和變形技術(shù)處理后的手機(jī)病毒進(jìn)行判斷,從而對(duì)其也無法進(jìn)行檢測。

本文提出了一種基于余弦算法的二進(jìn)制程序手機(jī)病毒檢測方法,該方法對(duì)二進(jìn)制程序行為進(jìn)行分析,監(jiān)視手機(jī)操作系統(tǒng)底層,跟蹤內(nèi)存及APP 存儲(chǔ)空間的變化情況,揭示手機(jī)病毒程序的工作機(jī)制,通過余弦相似度比較對(duì)其進(jìn)行檢測,從而有效地解決了對(duì)多態(tài)和變形技術(shù)處理后的二進(jìn)制程序手機(jī)病毒無法進(jìn)行檢查的問題。

1 形式化方法

為了進(jìn)行手機(jī)病毒的二進(jìn)制程序分析,本文定義了一種用于安全性分析的中間語言 EDIL(Exploit Detection for Intermediate Language),針對(duì)手機(jī)病毒檢測,對(duì)BIL 中間語言[15]進(jìn)行優(yōu)化和擴(kuò)展。BIL 是一種二進(jìn)制程序分析的語言,能對(duì)數(shù)據(jù)流和控制流進(jìn)行正確描述。

1.1 語言語法

EDIL 語法由程序狀態(tài)語句列表(∑),當(dāng)前內(nèi)存狀態(tài)(μ),當(dāng)前變量值(φ),程序計(jì)數(shù)器(η)以及程序當(dāng)前狀態(tài)(σ)組成。參數(shù)的語法敘述見表1。

其中,∑、μ和φ都是起到了映射作用。如φ[x←10]表示將變量x進(jìn)行更新,將它賦值為數(shù)值v=10。

表1 EDIL 基本語法描述

1.2 形式化表達(dá)式

EDIL 有完整的形式化方法,它的每一個(gè)程序狀態(tài)語句都符合以下的形式化表達(dá)式:

表達(dá)式(1)表示在程序狀態(tài)語句s由當(dāng)前狀態(tài)改變到下一終止?fàn)顟B(tài)s’的時(shí)候,其他規(guī)則都在分?jǐn)?shù)線上的computation發(fā)生了變化。例如,在成功發(fā)生條件跳轉(zhuǎn)時(shí),EDIL 的形式化表達(dá)式如下:

在形式化表達(dá)式(2)中有一個(gè)簡單的計(jì)算規(guī)則需要指明。表達(dá)式 ,μ φ? ?e v表示在當(dāng)前狀態(tài)語句下,根據(jù)μ和φ的具體范圍,求出e的數(shù)值v。

2 手機(jī)病毒檢測算法

2.1 算法描述

通過對(duì)二進(jìn)制程序行為進(jìn)行分析,利用余弦相似度比較惡意行為和正常行為之間的差異,從而檢測二進(jìn)制程序是否是一個(gè)惡意的手機(jī)病毒程序。基于余弦相似度的二進(jìn)制程序手機(jī)病毒檢測算法主要包括以下三個(gè)子算法:基本塊劃分算法、控制流分析算法以及行為分析算法。

2.2 基本塊劃分算法

基本塊劃分是在匯編代碼的基礎(chǔ)上進(jìn)行的,基本塊的過程可以分為兩步:

(1)確定每個(gè)基本塊的入口指令,根據(jù)上述原理,基本塊入口指令只可能有三種:

· ①程序入口處的第一條指令;

· ②jmp 或者jcc 跳轉(zhuǎn)目標(biāo)地址處的指令;

· ③jmp 或者jcc 指令的下一條指令。

(2)根據(jù)每個(gè)基本塊的入口指令,構(gòu)造其所在的基本塊。此時(shí)又有三種情況:

· ①由當(dāng)前入口指令的開始地址直到下一個(gè)入口指令開始的地址之間的所有指令構(gòu)成一個(gè)基本塊;

· ②由當(dāng)前入口指令的開始地址到其后第一條跳轉(zhuǎn)指令的結(jié)束地址之間的所有指令構(gòu)成一個(gè)基本塊;

· ③由當(dāng)前入口指令的開始地址到程序結(jié)尾之間的所有指令構(gòu)成一個(gè)基本塊。

2.3 控制流分析算法

本文利用分層法[16]對(duì)程序的控制流進(jìn)行分析的過程分為三輪。

(1)第一輪先分析程序中的函數(shù),得出起始地址和結(jié)束地址;

(2)第二輪調(diào)用基本塊劃分模塊對(duì)每個(gè)函數(shù)內(nèi)部的匯編代碼進(jìn)行分析,對(duì)每個(gè)基本塊屬性進(jìn)行記錄。在分析過程中關(guān)注的屬性包括基本塊的入口地址、出口地址和跳轉(zhuǎn)目標(biāo)。

(3)第三輪根據(jù)控制流圖求函數(shù)的所有控制流路徑,即求出從控制流根節(jié)點(diǎn)(函數(shù)入口基本塊)到葉子節(jié)點(diǎn)的所有可能路徑。路徑皆由所經(jīng)過的基本塊組成。

2.4 行為分析算法

在基本塊劃分算法和控制流分析算法的基礎(chǔ)上,可以通過EDIL 對(duì)手機(jī)病毒程序行為進(jìn)行描述,利用余弦相似度比較算法對(duì)手機(jī)病毒程序行為進(jìn)行比較,從而對(duì)其進(jìn)行檢測。

對(duì)程序行為的兩個(gè)程序行為向量間的角度定義如下:

其中,G為基本塊算法劃分成的基本塊。則與兩個(gè)向量的夾角為:

在初始情況下,ai=1,i= 1,2,...,m。經(jīng)過學(xué)習(xí)可以對(duì)余弦夾角測度進(jìn)行校正。

3 手機(jī)病毒檢測模型系統(tǒng)

3.1 模型系統(tǒng)描述

圖1 給出了基于二進(jìn)制程序行為分析的手機(jī)病毒檢測模型系統(tǒng),框圖代表核心部件,其余表示文件格式和中間過程。該模型系統(tǒng)包括了3 個(gè)主要部分:APP 行為監(jiān)視器、預(yù)處理器以及APP 行為檢測器,現(xiàn)就它們的工作原理進(jìn)行詳細(xì)介紹。

3.2 APP 行為監(jiān)視器

APP 行為監(jiān)視器用于對(duì)需要進(jìn)行手機(jī)病毒檢測的文件進(jìn)行監(jiān)控,它跟蹤文件在二進(jìn)制程序中的執(zhí)行情況。在APP 行為監(jiān)視器中使用OllyDBG v1.1[17]完成反匯編工作。OllyDBG 可以解析多種PE 格式,得到其中的匯編指令、寄存器、內(nèi)存以及導(dǎo)出函數(shù)等信息。同時(shí),APP 行為監(jiān)視器還對(duì)程序執(zhí)行時(shí)特定進(jìn)程的執(zhí)行路徑進(jìn)行動(dòng)態(tài)監(jiān)視,所采用的方法是通過掛鉤系統(tǒng)服務(wù)描述符表(SSDT)中的Native API。這樣可以通過相關(guān)堆棧信息對(duì)程序執(zhí)行路徑進(jìn)行回溯,并且通過監(jiān)視調(diào)用Native API 情況,輔助和簡化二進(jìn)制程序分析,特別體現(xiàn)在處理函數(shù)調(diào)用以及動(dòng)態(tài)代碼生成時(shí)。

圖1 基于二進(jìn)制程序行為分析的手機(jī)病毒檢測系統(tǒng)模型

3.3 預(yù)處理器

預(yù)處理器包括兩個(gè)方面:基于基本塊劃分和控制流分析。預(yù)處理器的輸入是匯編語言,輸出是EDIL 中間語言,同時(shí)能優(yōu)化匯編代碼,增加檢測效率。例如,一個(gè)程序入口點(diǎn)初始化分配堆棧的匯編代碼如下:

在經(jīng)過預(yù)處理器轉(zhuǎn)化之后,輸出的需EDIL 中間語言如下:

3.4 APP 行為檢測器

APP 行為檢測器的功能是確定進(jìn)行檢測的APP 文件是否存在手機(jī)病毒。它通過將對(duì)需要進(jìn)行手機(jī)病毒檢測的文件程序行為描述和正常行為描述相比較。需要指出的是在反匯編器和程序行為監(jiān)視器有差異,反匯編器僅僅是通過OllyDBG 完成了相應(yīng)的匯編代碼生成,而并沒有采集程序執(zhí)行時(shí)特定進(jìn)程的執(zhí)行路徑。原因在計(jì)算行為狀態(tài)序列時(shí)并不需要回溯路徑,僅僅計(jì)算出每個(gè)基本塊的程序調(diào)用序列即可。

4 實(shí)驗(yàn)結(jié)果

為驗(yàn)證本文所提出的APP 分析的手機(jī)病毒檢測方法的有效性,選擇遠(yuǎn)程控制手機(jī)病毒和本地文件手機(jī)病毒進(jìn)行實(shí)驗(yàn)。

4.1 遠(yuǎn)程控制手機(jī)病毒檢測

遠(yuǎn)程控制手機(jī)病毒[18]檢測的實(shí)驗(yàn)環(huán)境:操作系統(tǒng)為Android。為保證樣本可對(duì)比性,選用10 個(gè)常用的遠(yuǎn)程控制類手機(jī)病毒,結(jié)果如表2。

表2 給出了4 種主流殺毒軟件和EDIL 手機(jī)病毒檢測系統(tǒng)模型對(duì)10 種遠(yuǎn)程控制類手機(jī)病毒樣本的檢測結(jié)果,√表示能夠檢測,×表示無法檢測。從實(shí)驗(yàn)結(jié)果可以看出,EDIL 檢測系統(tǒng)模型可以有效地檢測出手機(jī)病毒樣本,而其他4 種殺毒軟件存在著檢測不出樣本的情況。特別是針對(duì)0007 和0009,各種測試的殺毒軟件皆不能夠進(jìn)行檢測。0007 的手機(jī)病毒方式是由于瀏覽器的CFunctionPointer 函數(shù)沒有正確地處理文檔對(duì)象,如果以特定序列附加并刪除了對(duì)象,就可以觸發(fā)內(nèi)存破壞,導(dǎo)致以當(dāng)前登錄用戶的權(quán)限執(zhí)行任意代碼。而殺毒軟件沒有監(jiān)測這個(gè)函數(shù)的行為,并對(duì)此進(jìn)行檢測,從而根本不能判斷進(jìn)行此變形后的手機(jī)病毒。

表2 遠(yuǎn)程控制手機(jī)病毒檢測結(jié)果

表3 中給出了實(shí)驗(yàn)中各個(gè)樣本的空間代價(jià)占用情況及時(shí)間代價(jià)占用情況。由實(shí)驗(yàn)結(jié)果可以看出,行為描述文件的生成大小與原始的手機(jī)病毒文件大小無關(guān)。例如,0006 與0007 兩個(gè)實(shí)驗(yàn)樣本的原始的手機(jī)病毒文件大小都為633KB,但是行為描述文件大小分別是4,897KB 和10,687KB。由于兩者的手機(jī)病毒方式不一樣,導(dǎo)致了在進(jìn)行二進(jìn)制行為分析時(shí)所經(jīng)歷的路徑不同,因此描述文件的生成大小與原始的手機(jī)病毒文件大小無必然聯(lián)系。

表3 遠(yuǎn)程控制類手機(jī)病毒檢測結(jié)果

手機(jī)病毒的時(shí)間代價(jià)包括預(yù)處理時(shí)間和檢測時(shí)間,它與生成的行為描述文件大小成正比。行為描述文件大小越大,其預(yù)處理時(shí)間和檢測時(shí)間也就消耗得越多。

4.2 本地文件手機(jī)病毒檢測

本地文件手機(jī)病毒檢測的實(shí)驗(yàn)環(huán)境:操作系統(tǒng)為Android。

本文選取了13 個(gè)本地文件手機(jī)病毒程序,表4 給出了4種主流殺毒軟件和EDIL手機(jī)病毒檢測系統(tǒng)模型對(duì)13 個(gè)本地文件手機(jī)病毒的檢測結(jié)果。從實(shí)驗(yàn)結(jié)果可以看出,EDIL 檢測系統(tǒng)模型可以有效地檢測出手機(jī)病毒樣本,而其他4 種殺毒軟件則存在著檢測不出樣本的情況。4 種殺毒軟件都不能夠?qū)Σ《?008 進(jìn)行檢測。

表4 本地文件手機(jī)病毒檢測結(jié)果

表5 中給出了實(shí)驗(yàn)中各個(gè)樣本的空間代價(jià)占用情況及時(shí)間代價(jià)占用情況。由實(shí)驗(yàn)結(jié)果可以看出,本地文件手機(jī)病毒檢測的行為描述文件的生成大小與原始的手機(jī)病毒文件大小也是不具有直接聯(lián)系的,決定其大小的在于利用的何種漏洞。同時(shí),由于APP 應(yīng)用軟件的類型不同,空間和時(shí)間代價(jià)都有所差別。

表5 本地文件手機(jī)病毒檢測結(jié)果

5 結(jié)束語

基于余弦相似度算法的二進(jìn)制程序手機(jī)病毒檢測算法通過對(duì)APP 二進(jìn)制程序行為進(jìn)行跟蹤,監(jiān)視手機(jī)內(nèi)存和APP 空間的變化,在中間語言層對(duì)程序行為進(jìn)行形式化分析,從而對(duì)手機(jī)病毒進(jìn)行檢測。實(shí)驗(yàn)結(jié)果表明該方法可以有效地對(duì)手機(jī)病毒進(jìn)行分析和檢測,并且具有較小的時(shí)間復(fù)雜度和空間復(fù)雜度。

猜你喜歡
病毒檢測二進(jìn)制指令
2021下半年加州鱸病毒檢測總結(jié)與建議
用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
基于 Verilog HDL 的多周期 CPU 設(shè)計(jì)與實(shí)現(xiàn)
有用的二進(jìn)制
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
有趣的進(jìn)度
Genetop馬鈴薯病毒試劑盒在馬鈴薯病毒檢測上的應(yīng)用綜述
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
五峰馬里蘭煙草花葉病及病毒檢測
MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
苗栗市| 吴江市| 邵阳县| 浦县| 罗山县| 固阳县| 平安县| 微山县| 曲周县| 广饶县| 体育| 福鼎市| 大竹县| 滦平县| 常熟市| 尉氏县| 京山县| 怀化市| 宾川县| 长宁县| 贵定县| 临高县| 平顶山市| 璧山县| 广东省| 岳阳市| 汽车| 兰考县| 安泽县| 工布江达县| 西和县| 兴宁市| 景谷| 松江区| 勐海县| 盱眙县| 赤壁市| 乐亭县| 阿克苏市| 平利县| 万盛区|