999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動態指令基因的病毒防護方法研究

2012-06-03 09:15:30白杰
電子技術應用 2012年10期
關鍵詞:指令程序檢測

白杰

(光束(北京)國際工程技術研究院有限公司,北京100083)

在互聯網高速發展的今天,網絡通信和網絡交易已經成為日常生活不可分割的一部分。但病毒生成技術的提高,已經嚴重影響到世界通信安全和國家的經濟命脈。早期特征碼技術已經無法單獨應對現在的計算機病毒。為了解決此問題,近些年國際上提出了依據程序行為識別病毒的技術。其原理就是監控程序的行為,將程序行為與有害程序行為數據庫進行比較,判斷被監控程序是否為病毒。目前為了提高識別病毒的精度,減少誤報和漏報情況,各國研究人員從不同的角度,定義程序的行為數據和獲取行為數據的方法,設置了不同行為數據類型的有害行為數據庫,但程序仍然存在很大的不穩定性、誤識別率,且嚴重依賴系統并發資源。

本文提出的利用程序被執行過程中的有效指令基因判斷病毒的模型摒棄了目前占主流地位的“通過獲取程序靜態行為”的思路,通過運算出程序被執行過程中的動態指令基因達到精確識別病毒的目的,該模型突破了目前只能依靠“程序靜態行為”分析病毒方法,以及目前無法在程序被執行過程中達到同步且動態實時監控的目標,并取得了理想的效果,克服了互聯網防御病毒的技術障礙。

1 程序動態指令基因防御病毒的系統模型

通過滑動窗口實時動態掃描被檢測程序運行過程中在處理器以及存儲器中的數據流,計算出程序指令基因(有效指令結構的指紋數據)。

1.1 獲取待檢測程序被執行過程中的數據流

獲取待檢測程序運行過程中的內存數據并將之輸出。使用函數createtoolhelp32snapshot()創建內存快照;將返回句柄傳遞給函數 process32first(),函數 process32next()遍歷內存中的進程,遇到待檢測程序的進程時,保存其進程 id;用函數 openprocess()打開該進程,獲得該進程的句柄;用函數readprocessmemory()讀取該進程句柄;獲得待檢測程序運行過程中的內存數據。圖1是程序的內存數據,標示的代碼就是有效指令代碼(指令基因)。

1.2 有效指令基因分析

利用滑動窗口動態掃描程序的有效指令基因數據,如圖2、圖3所示。定義該 3個應用程序為:EXE1、EXE2、EXE3,指令基因碼分別是:EXE1=[a1,a2,a3,a4,a5,a6,a7…an,a(n+1)]; EXE2=[a1,a0,a02,a3,a02,a6,a7…an,a(n+1)];EXE3=[a1,a06,a2,a3,a08,a6,a7…an,a(n+1)];采用“分段式多指針位移算法”將待掃描數據進行不間斷式取點分段,設定多項指針,通過指針段內位移,對數據進行掃描,在實現過程中采用線程結構。

比較 3個程序的功能和執行結果,得出:K=EXE1=EXE2=EXE3。分別考察 EXE1、EXE2 和 EXE3,得出(a1)、(a2,a3)、(a6,a7)、an,a(n+1)是 有 效 的 基 因 序 列 ,其 余 的是相對于執行結果無效代碼,也就是對于特定的K,其指令元數據序列片段“(a1)、(a2,a3)、(a6,a7)、an,a(n+1)”是穩定的。

被截獲的待檢測程序能夠完成特定功能或結果的指令元數據序列為源序列。所有源序列的集合:E={e1,e2,e3,…,en,e(n+1)} ,其中 e1,e2,e3,…等為具體的源序列,n為正整數。在系統S中,產生的源序列v1,v2,…,vi,就是待檢測程序在系統 S中的蹤跡,其中 vi∈E,i為正整數,并且i≤n,每個源序列有時間性和執行性為 C(vi),指令執行 按時間排序,即對所有的i≥1,C(vi)<C(vi+1);假設執行性為 O(vi),表示指令的執行性,用pid表示進程,則O(vi)∈pid。對任意一個進程pi,其指令序列 v1,i1,v2,i2,…,vi,ii,vi+1,ii+1。 其中,i1,……,ii+1分別對應指令結果 v1,v2,…,vi+1的執行結果,進程pi對應的指令序列為進程蹤跡。可見,pi的進程蹤跡是待檢測程序在系統S中蹤跡的子串。假設被檢測程序在正常運行時產生的源序列為:V=v1,v2,…,vm(m≥k),則V可以看作由被檢測程序在系統S中的每一個進程的執行過程合并而成。按執行的時間性將每一個進程的子執行過程合并排列,形成被檢測程序在正常運行時產生的審計源序列V。假設被檢測程序運行時有兩個進程,則V有兩個子串記為V1⊙V2。設P為程序指令元,其中存儲的典型指令元序列或片斷以源序列V為基礎,可以采用滑動窗口技術獲得。假設k為滑動窗口大小,則:P={(si,si+1, …,sj)|si, …,sj∈E,i≥1,j≤m,j-i+1=k,si=vi,si+1=vi+1,…,sj=vj},其中m為源序列 V 的長度,可見,程序指令元P中存儲的是源序列V的子集[1]。

設EXE1的有效指令全集是F(1),EXE2的有效指令全集是 F(2),EXE3的有效指令全集是F(3),其中,F(1)∈F,F(2)∈F,F(3)∈F,F為包 括F(1)、F(2)和F(3)的 有效指令集。則,F(1)、F(2)、F(3)就是被檢測的程序的數據源,它們分別為不同的源序列V,是被檢測的對象。也即, 通過預先定義的程序指令元:VF={y1,y2,y3…yn,y(n+1)},將VF中的元素分別與數據源F(1)、F(2)、F(3)進行差異運算,即可實現被檢測程序EXE1、EXE2、EXE3的執行檢測。

采用滑動窗口、函數計算方式順序獲取待檢測程序中能夠完成特定功能或結果的指令元數據。假設k為滑動窗口的大小,被監控程序在運行時產生的源序列V:v1,v2,…,vm(m≥k),用滑動窗口在源序列 V上滑動,則滑動窗口內的k個事件序列(vi,vi+1,…,vi+k-1)即為待檢測指令元數據序列。在不同的實例中,滑動窗口的大小k,或者所述指令元數據序列的長度是不同的,比較典型的k為 7~12,本文的k取值為 10,如圖 3所示。

1.3 形成病毒指令基因數據庫

v1、v2、v3、v4為具有相同或相似破壞方式的同一族已知病毒程序。

病毒程序v1的內存數據00,01,h1,44,b1,a1,33,c1,bw,0i,22,8i,11,2s,yy。

病毒程序v2的內存數據00,cc,ae,44,b1,q3,33,c1,kh,al,22,8i,11,s3,yy。

病毒程序v3的內存數據00,2c,3e,44,b1,w3,33,c1,nh,a0,22,8i,11,l3,yy。

病毒程序v4的內存數據00,24,3o,44,b1,wl,33,c1,0h,ui,22,8i,11,4n,yy。

將這些已知病毒程序的內存數據相互間具有相同或相似的部分提取出來,其中,該類病毒程序運行過程中的內存數據相互間具有相同的部分:0044,b133,c122,8i,該相同部分的有序排列表示為:#00#44,b1#33,c1#22,8i#。該類病毒運行過程中的內存數據相互間具有相似的部分是:病毒程序v1的內存數據末尾部分(11,2s,yy)相似于病毒v2的內存數據末尾部分(11,s3,yy)相似于病毒 v3的內存數據末尾部分(11,l3,yy)相似于病毒程序v4的內存數據末尾部分(11,4n,yy),該相似部分可用#11,**,yy#表示。符號“#”代表相同內存數據以外的內存數據,符號“*”代表相似內存數據中的不同部分。將#00#44,b1#33,c1#22,8i#存儲進數據庫;將#11,**,yy#存儲進數據庫。病毒的運行特征數據是將已知病毒程序運行過程中的內存數據相互間具有相同或相似的部分提取出來,且按序排列進行存儲形成病毒指令基因數據庫。

2 具體應用描述

無論是待檢測程序還是病毒程序,其運行特征數據不僅僅只限于運行過程中的內存數據,例如某個程序被CPU執行過程中的獨有的運行特征數據。CIH類型的病毒利用中斷操作,從系統的用戶層強行到系統的內核層,破壞計算機硬件。

因為此類病毒是從系統的用戶層轉到系統的內核層,因此在CPU內的高速緩存中存在從系統的用戶層到系統的內核層區別于運行其他程序的跡象,即:正常的程序被執行時,高速緩存順序從內存調取數據,一般情況下應用程序工作在系統的用戶層,此類病毒程序利用處理器的中斷操作從系統的用戶層強行轉到系統的內核層,因此在高速緩存中存在一些從系統的用戶層向系統的內核層跳轉的數據。但這些數據并非都是病毒程序,因為個別的正常程序也用到此方式,獲取跳轉到的內存相應的數據,并提取此類型病毒對于這部分數據所共有的部分。

(1)匯編指令:out 70h,al;in al,71h;xor ax,926h; ###jmp 2000:003;add al,bl→機器碼:9i 7u 16 14 5h a7 3t###77 e1 77 6c 00 d8(假設“###”左邊部分是利用中斷操作從系統的用戶層強行轉到系統的內核層,“###”右邊部分是對BIOS芯片的破壞操作)。假定待檢測程序A的運行特征如下:[匯編指令:mov ax,1016h]→機器碼:b8 31 2e;…;[匯編指令:out 70h,al]→機器碼:9i 7u(與病毒相同的指令基因);[匯編指令:in al,71h]→機器碼:16 14(與病毒相同的指令基因);[匯編指令:xor ax,926h]→機器碼:5h a7 3t(與病毒相同的指令基因);…;[匯編指令:mov ah,0]→機器碼:b4 00; …;[匯編指令:jmp 2000:003]→機器碼:77 e1 77 6c(與病毒相同的指令基因);[匯編指令:add al,bl]→機器碼:00 d8(與病毒相同的指令基因)。

(2)待檢測程序 A的運行特征:機器碼 b8 31 2e 0e 21 4d 8h 63 5h 9i 7u 16 14 5h a7 3t 00 7c 2d b8 20 4e 05 16 14 04 9c b4 00 77 e1 77 6c 00 d8,其 中,機 器碼9i 7u 16 14 5h a7 3t是利用中斷操作從系統的用戶層強行轉到系統的內核層;機器碼77 e1 77 6c 00 d8是對芯片的破壞操作。

(3)待檢測程序B的運行特征:機器碼9i 02 11 6h 8i u8 e3 9i 7u 16 14 5h a7 3t b8 31 2e 0e 21 4d 8h 63 7c 2d b8 20 9c b4;雖然待檢測程序B的機器碼中也存在9i 7u 16 14 5h a7 3t,也同樣利用中斷操作從系統的用戶層強行轉到系統的內核層,但是檢測程序B的機器碼中不存在對芯片進行破壞的數據。

3 病毒的檢測

將 (指令元 1+指令元 2+指令元 3)→(結果 1+結果2+結果 3)=最終結果,存儲到所述的原則庫中,同時在原則庫中標示出病毒程序的最終結果,表1所示為指令元、有效代碼序列(運行特征代碼)、運行結果、危險系數的關系。

將獲得的待檢測程序的指令元數據與建立的原則庫中的對應關系表達式相應部分進行比較,對比較成功的次數進行計數,當比較成功的次數等于或者超過設定的閥值時,判定所述待檢測程序為病毒程序。

獲得的待檢測程序指令元數據是:指令元1+指令元2+...指令元X;

原則庫中某項數據是:指令元 11+指令元 22+...指令元nn;

假定,指令元 1=指令元 11,指令元 2=指令元 22,則Y的值應該等于2。

表1 程序指令元與程序運行結果的關系結構

第二個意義的閾值是:待檢測程序的指令元數據或指令元數據的集合與所述的最終結果有關聯關系或者待檢測程序的指令元數據或指令元數據的集合能夠導致所述的最終結果,此為第二個意義的閾值。如獲得的待檢測程序 i.exe指令元數據是:指令元 i1+指令元 i2+指令元i3;獲得的待檢測程序g.exe指令元數據是:指令元 g1+指令元 g2+指令元 g3+指令元 g4+指令元g5;原則庫中某項數據是:(指令元1+指令元 2+指令元 3)→(結果1+結果 2+結果 3)=最終結果;其中,指令元(g1+指令元g2+指令元 g3+指令元 g4+指令元 g5)=(指令元 1+指令元2+指令元 3)→(結果 1+結果2+結果 3)=最終結果;(指令元 i1+指令元 i2+指令元 i3)≠(指令元1+指令元 2+指令元 3)。 因此,待檢測程序 i.exe判定為不是病毒程序,待檢測程序 g.exe判定為病毒程序。

分別獲取待檢測程序 l.exe與 m.exe的運行特征數據 :l.exe 的 運 行 特 征 數 據 是 :a0,qo,9i,80,5h,3h,jg,pq,ci,c1,8k,00,0k,ab,c3,ck;m.exe 的 運 行 特 征 數 據 是 :1a,2b,c3,4d,f5,6h,7k,j8,9k,10,11,22,33,44,55,6i;原則庫中某項數據是:(#qo,9i,80,**,3h,jg#)→病毒運行后對系統造成的惡性結果;待檢測程序 l.exe判定為病毒程序,m.exe判定為不是病毒程序。

4 實驗過程與結果

由于采用的是基于指令基因的方式,在實驗中不需真實且可運行的病毒體,可直接指定待檢測出的指令基因數據集即可。Windows系統中可完成目標功能的指令基因元為n,形成有效組合為m,對5個進程進行檢測,每個進程包含的指令元為N,有效組合為M,N>n,M>m。根據表2,平均準確率為 91.7%,平均誤報率為0.19%,漏報率為0。檢測分類表如表2所示。

表2 檢測分類表(以下均為平均值)

本技術解決了目前世界上非特征碼技術錯誤率高的技術難題。且能夠直接檢測程序運行過程中的內存數據,不需要對加殼病毒等進行解密、脫殼操作,極大地減少了對于系統資源的消耗。在實踐應用中取得了較好的結果。

[1]張衡,卞洪流,吳禮發,等.基于 LSM 的程序行為控制研究[J].軟件學報,2005,16(06):1151-1158.

猜你喜歡
指令程序檢測
聽我指令:大催眠術
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: www.91在线播放| 97视频免费在线观看| 国产视频你懂得| 欧洲在线免费视频| 亚洲天堂成人| 日韩天堂视频| 在线网站18禁| 91人妻日韩人妻无码专区精品| 国产sm重味一区二区三区| 玩两个丰满老熟女久久网| 亚洲天堂日本| 精品一区二区三区水蜜桃| 激情五月婷婷综合网| 国产美女精品一区二区| 欧美a在线视频| 色视频国产| 欧美视频在线播放观看免费福利资源| 1769国产精品视频免费观看| 美女被操黄色视频网站| 黄色一级视频欧美| 婷婷久久综合九色综合88| 国内精品手机在线观看视频| 国产地址二永久伊甸园| 日本免费新一区视频| 日本高清在线看免费观看| 国产在线精品美女观看| 亚洲精品成人片在线观看| 欧美日本不卡| 专干老肥熟女视频网站| 国产小视频在线高清播放| 亚洲欧美在线综合一区二区三区| 欧美亚洲一二三区| 青青草一区二区免费精品| 亚洲国产日韩视频观看| 在线va视频| 亚洲精品国产首次亮相| 国产成人综合欧美精品久久| 精品综合久久久久久97超人| 欧美性爱精品一区二区三区| 国产福利一区在线| 国产精品内射视频| 国产成人精彩在线视频50| 九九久久99精品| 久久久亚洲色| 欧美亚洲日韩不卡在线在线观看| 国产青青草视频| 国产欧美亚洲精品第3页在线| 日韩国产一区二区三区无码| 四虎影视8848永久精品| 高清码无在线看| 欧美三级不卡在线观看视频| 国产91精选在线观看| 欧美一区二区精品久久久| 欧美色视频日本| 精品欧美日韩国产日漫一区不卡| 日本黄色不卡视频| 亚洲精品第五页| 国产亚洲高清视频| 国产亚洲精品无码专| 免费观看欧美性一级| 91在线精品免费免费播放| 国产精品香蕉在线| 国产在线精品美女观看| 色一情一乱一伦一区二区三区小说| 国产欧美日韩在线在线不卡视频| 四虎永久免费地址在线网站| 精品一区二区三区波多野结衣| 国产精品一区二区国产主播| 992Tv视频国产精品| 亚洲日韩AV无码一区二区三区人| 最新国产网站| 久青草免费视频| 三上悠亚在线精品二区| 精品三级网站| 天天躁日日躁狠狠躁中文字幕| 日韩高清中文字幕| 久久国产免费观看| 国产精品永久不卡免费视频| 成人久久18免费网站| 国内精品视频区在线2021| 色成人亚洲| 一本久道久久综合多人|