亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Bayes分類技術(shù)在計(jì)算機(jī)病毒檢測(cè)中的研究

        2010-09-17 09:43:40李偉光黃常全
        關(guān)鍵詞:代碼程序病毒

        李偉光 黃常全

        四川理工學(xué)院 四川 643000

        0 前言

        在互聯(lián)網(wǎng)日益發(fā)達(dá)的今天,計(jì)算機(jī)病毒日益猖獗,數(shù)量呈幾何數(shù)據(jù)增長(zhǎng),面對(duì)如此龐大數(shù)量的病毒,如何快速準(zhǔn)確的識(shí)別病毒、如何智能識(shí)別未知病毒是反計(jì)算機(jī)病毒的關(guān)鍵技術(shù)。

        1 病毒程序的特征

        1.1 API函數(shù)特征

        目前的計(jì)算機(jī)操作系統(tǒng)普遍采取了分層結(jié)構(gòu)設(shè)計(jì),應(yīng)用程序只能通過操作系統(tǒng)的API接口才能訪問計(jì)算機(jī)資源。比如說 Windows操作系統(tǒng)上的病毒程序如果想要感染別的文件,不可避免的要使用API函數(shù)CreateFile、WriteFile這類API函數(shù)。一般來說執(zhí)行程序文件幾乎是不需要修改的,顯然一個(gè)程序修改另一個(gè)可執(zhí)行程序的內(nèi)容是一種值得警惕的危險(xiǎn)操作。目前Windows僅僅對(duì)自己的系統(tǒng)文件(Windows下的exe和dll文件)有保護(hù),一旦對(duì)系統(tǒng)文件進(jìn)行修改,則會(huì)彈出警告對(duì)話框提示操作用戶。所以監(jiān)視程序調(diào)用了哪些API函數(shù)是判斷程序功能和動(dòng)作的一個(gè)特征。

        以下列舉一些病毒常用的危險(xiǎn)函數(shù)以及這些函數(shù)在病毒中的作用,如果發(fā)現(xiàn)有程序調(diào)用這些函數(shù),則需要注意。

        API指令 解釋CreateFile /WriteFile打開/寫文件。如果發(fā)現(xiàn)對(duì)可執(zhí)行文件進(jìn)行修改,需要重點(diǎn)注意。VirtualAllocEx分配內(nèi)存函數(shù)。一般程序只會(huì)為自己分配內(nèi)存。如果發(fā)現(xiàn)有程序?qū)e的進(jìn)程進(jìn)行內(nèi)存分配,則需要注意。ReadProcessMemory/WriteProcessMemory讀寫內(nèi)存函數(shù),一般程序應(yīng)該對(duì)自己進(jìn)程內(nèi)空間進(jìn)行讀寫。如果發(fā)現(xiàn)對(duì)其他進(jìn)程空間進(jìn)行讀寫,則需要注意。VirtualProtect/ VirtualProtectEx改變內(nèi)存讀寫屬性函數(shù)。一般程序代碼段為只讀屬性。如果發(fā)現(xiàn)有程序試圖修改代碼的只讀屬性為讀寫屬性,則需要注意。SetWindowsHook/SetWindowsHookEx鉤子函數(shù)。通過該函數(shù)可以入侵其他程序,需要關(guān)注調(diào)用此函數(shù)的程序。CreateRemoteThread創(chuàng)建線程函數(shù)。該函數(shù)可以入侵進(jìn)另一個(gè)進(jìn)程為另一個(gè)進(jìn)程創(chuàng)建一個(gè)線程。需要注意。… …

        一個(gè)程序需要調(diào)用的API函數(shù)都在PE文件的輸入表中,對(duì)PE文件的輸入表進(jìn)行掃描,就可以基本確定該程序大致需要調(diào)用哪些API函數(shù)。

        1.2 PE文件結(jié)構(gòu)特征

        Windows平臺(tái)下的可執(zhí)行文件是按照PE(Portable Excute)文件格式來組織的。正常的程序一般在編譯程序下會(huì)被將程序中不同的數(shù)據(jù)按照PE文件格式組織在一起。PE文件的真正內(nèi)容劃分成塊,稱之為sections(節(jié))。每節(jié)是一塊擁有共同屬性的數(shù)據(jù),比如代碼/數(shù)據(jù)、讀/寫等。我們可以把PE文件想象成一邏輯磁盤,PE header 是磁盤的boot扇區(qū),而sections就是各種文件,每種文件自然就有不同屬性如只讀、系統(tǒng)、隱藏、文檔等等。節(jié)的劃分是基于各組數(shù)據(jù)的共同屬性,而不是邏輯概念。重要的不是數(shù)據(jù)/代碼是如何使用的,如果PE文件中的數(shù)據(jù)/代碼擁有相同屬性,它們就能被歸入同一節(jié)中。不必關(guān)心節(jié)中類似于“data”,“code”或其他的邏輯概念,如果數(shù)據(jù)和代碼擁有相同屬性,它們就可以被歸入同一個(gè)節(jié)中。下面是常見的節(jié)名及作用:

        DOS MZ Header DOS stub PE header Section table Section 1 Section 2 Section ...Section n

        其中常見的section節(jié)的名字和作用如下:

        節(jié)名 作用.bss 未經(jīng)初始化的數(shù)據(jù).data 已經(jīng)初始化的數(shù)據(jù).rdata 只讀的初始化數(shù)據(jù).reloc 重定位表信息.rsrc 資源.text .exe或.dll文件的可執(zhí)行代碼

        病毒程序與正常程序從PE文件格式比較來看有以下的一些特點(diǎn):

        (1)病毒程序?yàn)榱烁奖愕碾[藏和傳播,一般都有尺寸的限制。而編譯鏈接程序默認(rèn)段大小為一頁(4096字節(jié))的整數(shù)倍,不足一頁的自動(dòng)將不足部分填充為0湊成一頁,即每個(gè)section的尺寸都應(yīng)該為頁面的整數(shù)倍。一般正常程序至少都有4個(gè)段,則理論上浪費(fèi)的空間有4*4096*50%=8K。而病毒程序?yàn)榱丝刂撇《境绦虼笮?,將不同段都合并為一個(gè)段,經(jīng)常將數(shù)據(jù)段、代碼段等合并為一個(gè)段,減少了每個(gè)段都要對(duì)齊整數(shù)倍頁而造成的尺寸浪費(fèi)。并且將編譯器默認(rèn)的4096整頁對(duì)齊更改為8字節(jié)或者16字節(jié)對(duì)齊,以達(dá)到最大限度的壓縮尺寸的目的。

        (2)病毒程序進(jìn)入正常程序后,一般都需要做自修改或者變形,并修改宿主程序的代碼段的代碼,而且將數(shù)據(jù)段和代碼段合并后,數(shù)據(jù)段是應(yīng)該能讀寫修改的,其段屬性應(yīng)該為可讀寫執(zhí)行。正常程序編譯出來的代碼段應(yīng)具有只讀屬性的,而病毒程序需要將代碼段的屬性置為讀寫屬性。

        以VC程序?yàn)槔?,病毒程序一般都?huì)修改編譯選項(xiàng)達(dá)到以上目的:

        #pragma comment(linker, "/merge:.rdata=.data") //只讀屬性初始化數(shù)據(jù)段合并進(jìn)數(shù)據(jù)段

        #pragma comment(linker, "/merge:.text=.data") //代碼段合并進(jìn)數(shù)據(jù)段

        #pragma comment(linker, "/merge:.reloc=.data") //重定位段合并進(jìn)數(shù)據(jù)段

        #pragma comment(linker, "/SECTION:.data, RWE") //數(shù)據(jù)段設(shè)置為可讀可寫殼執(zhí)行

        如果發(fā)現(xiàn)一個(gè)程序只有一兩個(gè)段且代碼段,且應(yīng)該屬于只讀屬性的代碼段具有了讀寫執(zhí)行的屬性就應(yīng)當(dāng)值得警惕。

        1.3 代碼特征

        病毒程序入侵其他程序具有和正常程序不同的操作特征。簡(jiǎn)單舉例如下,我們知道一個(gè)可執(zhí)行文件被操作系統(tǒng)裝載的時(shí)候,操作系統(tǒng)會(huì)將操作系統(tǒng)的資源提供給程序,比如操作系統(tǒng)會(huì)加載執(zhí)行程序需要的動(dòng)態(tài)庫進(jìn)入內(nèi)存并將動(dòng)態(tài)庫中的API的正確地址修改到被加載程序當(dāng)中,會(huì)根據(jù)執(zhí)行程序加載地址的不同而修改重定位代碼和數(shù)據(jù)。而病毒代碼入侵其他程序后,并沒有經(jīng)過操作系統(tǒng)裝載器的加載,必須自己完成這些動(dòng)作。為了完成這些動(dòng)作,病毒首先得知道自己的裝載地址。操作系統(tǒng)對(duì)指令指針寄存器EIP進(jìn)行了保護(hù),應(yīng)用程序包括病毒無法直接訪問該寄存器。然而病毒利用call指令會(huì)將函數(shù)返回地址壓入堆棧的特點(diǎn)來獲得自己在內(nèi)存所在位置。特征指令如下:

        指令 解釋 OPCODE特征Call $+5 Pop ebp call $+5:把下一條指令當(dāng)作函數(shù)調(diào)用,執(zhí)行后,堆棧頂部就是返回地址,就是 pop ebp指令的地址。E8 00 00 00 00

        類似特征還有:在內(nèi)存中搜索kernel32.dll的地址、通過FS寄存器訪問kernel32.dll的地址、加載ntdll.dll、user32.dll動(dòng)態(tài)庫。

        1.4 行為特征

        病毒程序?yàn)榱嗽斐晌:途哂幸恍┯形:Φ牟僮?。比如說一個(gè)木馬程序的典型行為特征會(huì)想辦法秘密運(yùn)行,秘密連接internet網(wǎng),下載惡意程序執(zhí)行;調(diào)用具有入侵作用的api函數(shù);病毒程序的自我復(fù)制和繁殖;為了自動(dòng)啟動(dòng)修改操作系統(tǒng)的自動(dòng)啟動(dòng)項(xiàng)目等等。下表列舉了一些病毒常用的行為特征。

        行為 目的和作用設(shè)置系統(tǒng)文件的隱藏屬性。 病毒為了隱藏病毒文件。修改系統(tǒng)開機(jī)啟動(dòng)選項(xiàng)。 為了使病毒在開機(jī)后得到控制權(quán)。讀寫注冊(cè)表敏感位置。對(duì) windows的注冊(cè)表敏感位置(自動(dòng)啟動(dòng)選項(xiàng)、自動(dòng)服務(wù)加載選項(xiàng)、遠(yuǎn)程訪問控制選項(xiàng)等)進(jìn)行讀寫。大規(guī)模的遍歷訪問計(jì)算機(jī)的其他文件。病毒為了感染其他文件,需要對(duì)計(jì)算機(jī)的其他文件進(jìn)行大量的遍歷訪問,以找到需要感染的文件。打開敏感服務(wù)。 病毒為了在計(jì)算機(jī)開”后門”,秘密的打開計(jì)算機(jī)的遠(yuǎn)程訪問服務(wù)。

        續(xù)表

        病毒程序雖然千變?nèi)f化,變種繁多,但是病毒程序的功能、作用和目的還是大體差不多的,使用技術(shù)手段也萬變不離其中,我們可以對(duì)這些病毒的特征進(jìn)行收集和提取。

        2 Bayes分類在病毒檢測(cè)中的應(yīng)用

        根據(jù)Bayes公式:

        我們做如下的約定和說明:

        (1)根據(jù)要求我們把程序分為正常程序 A1和惡意程序A2兩大類別。顯然 P (A1) + P (A2) = 1滿足完備性的條件。

        (2)根據(jù)前面敘述,我們將檢測(cè)到的特征設(shè)為 Bi,程序中出現(xiàn)特征 Bi的概率為 P (Bi) 。 i = 1 ,2,3,4...。如果一個(gè)檢測(cè)到程序有幾個(gè)特征碼,則表示為 P (Bi, Bj, Bk),為了簡(jiǎn)單起見令 B = (Bi, Bj, BK) ,P(B ) = P(Bi, Bj, BK)。B表示檢測(cè)到特征Bi, Bj, BK, P (B)表示待檢測(cè)程序同時(shí)具有 Bi, Bj, BK特征的概率。

        則Bayes改寫為

        公式1表示檢測(cè)到程序具有特征B的情況下,判斷該程序?qū)儆趷阂饣蛘哒3绦虻母怕省?/p>

        惡意程序的判別:合理的判別準(zhǔn)則應(yīng)該是根據(jù)對(duì)程序特征檢測(cè),判決準(zhǔn)則如下:

        根據(jù) Bayes公式,我們有 P (A1, B ) = P(B)P(A1|B),P(A2,B ) = P(B)P(A2|B)代入判決準(zhǔn)則得到:

        則判斷程序?yàn)檎3绦?,否則為惡意程序。

        進(jìn)一步變換上面公式得到:

        則為正常程序。

        或者通過似然比門限值來判斷:

        觀察公式4我們得到如下結(jié)論:

        P(B| Ai)是一個(gè)先驗(yàn)概率,可以分別通過統(tǒng)計(jì)病毒庫程序和正常程序的特征來得到。例如以下為幾個(gè)常用函數(shù)的統(tǒng)計(jì)值:

        將這些先驗(yàn)概率數(shù)據(jù)進(jìn)行保存,以便后面病毒檢測(cè)中使用。

        3 總結(jié)

        隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計(jì)算機(jī)給經(jīng)濟(jì)、文化、軍事和社會(huì)活動(dòng)帶來更多便利的同時(shí),也帶來了相當(dāng)巨大的安全挑戰(zhàn)。如今不斷出現(xiàn)各種各樣的新病毒對(duì)目前的病毒檢測(cè)方法和機(jī)制提出了嚴(yán)峻的挑戰(zhàn),本文旨在運(yùn)用當(dāng)前模式識(shí)別與智能檢測(cè)技術(shù)的理論和方法來解決目前病毒檢測(cè)所遇到難題而提出的解決方案。

        [1]程勝利.談冉等.計(jì)算機(jī)病毒與其防治技術(shù).清華大學(xué)出版社.2004.

        [2]張仁斌,李鋼,侯整風(fēng).計(jì)算機(jī)病毒與反病毒技術(shù).清華大學(xué)出版社.2006.

        猜你喜歡
        代碼程序病毒
        病毒
        感冒病毒大作戰(zhàn)
        幼兒園(2021年16期)2021-12-06 01:06:36
        病毒,快滾開
        感冒病毒
        試論我國(guó)未決羈押程序的立法完善
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        “程序猿”的生活什么樣
        草草网站影院白丝内射| 国产亚洲精品美女久久久久| 全免费a敌肛交毛片免费| 亚洲最大中文字幕无码网站| 大胸美女吃奶爽死视频| 国产内射一级一片内射高清视频1 成人av一区二区三区四区 | 久久久www成人免费无遮挡大片| 日本黄网色三级三级三级| 亚洲精品欧美精品日韩精品| 亚洲av伊人久久综合密臀性色| 蜜桃在线播放免费一区二区三区 | 亚洲av无码乱码在线观看性色| 亚洲av日韩av永久无码色欲| 五月天欧美精品在线观看| 国产真实乱对白在线观看| 女同在线网站免费观看| 国产精品永久久久久久久久久 | 美女高潮无遮挡免费视频| 国产精品亚洲av网站| av中国av一区二区三区av| 亚洲av不卡一区二区三区| 亚洲一区二区在线| av天堂一区二区三区精品| 大尺度免费观看av网站| 97精品国产手机| 国产成人精品日本亚洲直播| 亚洲一区二区蜜桃视频| 国产偷久久久精品专区| 国产免费资源高清小视频在线观看 | 疯狂撞击丝袜人妻| 亚洲电影中文字幕| 精品国产a毛片久久久av| 在线观看免费无码专区| 亚洲国产理论片在线播放| 蜜桃一区二区免费视频观看| 精品亚洲天堂一区二区三区| 国产精品久久久久久亚洲av| 91精品久久久久含羞草| 国产一区二区黑丝美胸| 狠狠色综合7777久夜色撩人| 亚洲国产欧美日韩一区二区|