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

        ?

        基于關(guān)聯(lián)技術(shù)檢測(cè)Rootkits的方法與實(shí)現(xiàn)

        2012-08-06 12:51:14徐敏王玲芬王鵬杰
        關(guān)鍵詞:程序檢測(cè)信息

        徐敏 王玲芬 王鵬杰

        大連民族學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院 遼寧 116600

        0 引言

        Rootkits最早是一組用于UNIX操作系統(tǒng)的工具集,黑客使用它們隱藏入侵活動(dòng)的痕跡,它能在操作系統(tǒng)中隱藏惡意程序,進(jìn)而達(dá)到某種不可告人的目的。隨著互聯(lián)網(wǎng)和個(gè)人電腦的普及和廣泛的使用,Rootkits也在不斷的演化和發(fā)展中,許多功能更強(qiáng),技術(shù)更新,破壞更大的Rootkits程序應(yīng)運(yùn)而生,它從之前較簡(jiǎn)單的對(duì)信息的隱藏發(fā)展到通過(guò)獲取用戶的隱私信息來(lái)謀取私利,給用戶帶來(lái)了直接或者間接的經(jīng)濟(jì)財(cái)產(chǎn)上的損失。

        針對(duì)上述情況,開(kāi)發(fā)出一款能夠?qū)π滦蚏ootkits進(jìn)行檢測(cè)的安全軟件就尤為重要了。本文提出了一種基于關(guān)聯(lián)檢測(cè)技術(shù)對(duì)惡意Rootkits進(jìn)行有效檢測(cè)的方法,為清除Rootkits提供了重要的信息。

        1 Rootkits一般檢測(cè)方法及缺陷

        當(dāng)前,國(guó)內(nèi)外在對(duì)Rootkits的檢測(cè)方面主要提出了以下幾種方法:

        (1) 基于特征碼的匹配技術(shù):該檢測(cè)方法依賴于病毒分析人員取得病毒樣本后,首先分析其在內(nèi)存中惟一特征碼,然后利用特征碼去匹配內(nèi)存塊來(lái)檢測(cè)Rootkits,但是,這種方法無(wú)法檢測(cè)出新Rootkits程序,因?yàn)闄z測(cè)技術(shù)通常滯后于Rootkits的發(fā)展。

        (2) 基于交叉視圖的檢測(cè)技術(shù):該檢測(cè)方法是通過(guò)對(duì)比兩種不同系統(tǒng)調(diào)用獲取到的系統(tǒng)信息進(jìn)行對(duì)比,進(jìn)而判斷是否存在Rootkits程序。例如:當(dāng)要檢測(cè)系統(tǒng)是否存在隱藏的進(jìn)程時(shí),可以通過(guò)在應(yīng)用層獲取一張快照的方式得到當(dāng)前的進(jìn)程信息,進(jìn)而與直接使用內(nèi)核程序接口獲取的當(dāng)前進(jìn)程信息進(jìn)行對(duì)比。該檢測(cè)方法的缺點(diǎn)是當(dāng)Rootkits程序運(yùn)行比檢測(cè)驅(qū)動(dòng)更低層時(shí),該檢測(cè)方法就無(wú)效了,同時(shí),此方法只能檢測(cè)系統(tǒng)是否存在Rootkits程序,并不能直接找出Rootkits程序。

        (3) 基于程序完整性檢測(cè)技術(shù):該檢測(cè)方法是通過(guò)解析磁盤(pán)文件,獲取文件的相關(guān)信息,利用獲取到的信息與當(dāng)前內(nèi)存中的信息進(jìn)行對(duì)比。它的缺點(diǎn)是無(wú)法檢測(cè)通過(guò)內(nèi)嵌鉤子的方式修改系統(tǒng)執(zhí)行流程的Rootkits程序。

        2 Windows Rootkits的實(shí)現(xiàn)技術(shù)

        2.1 修改系統(tǒng)服務(wù)描述表中相關(guān)函數(shù)地址

        圖1 SSDT的表項(xiàng)

        如圖1所示,Rootkits可通過(guò)修改系統(tǒng)服務(wù)描述表(System Service Descriptor Table,SSDT)中的對(duì)應(yīng)的函數(shù)地址達(dá)到更改系統(tǒng)服務(wù)執(zhí)行流程的目的。這里以NtQueryDirectoryFile函數(shù)為例進(jìn)行說(shuō)明。如圖2所示,當(dāng)應(yīng)用層調(diào)用FindNextFile的時(shí)候,它最終會(huì)在內(nèi)核中調(diào)用NtQueryDirectoryFile,而NtQuery DirectoryFile的地址存放在系統(tǒng)服務(wù)描述表中。假如,它被替換為Rootkits的函數(shù)地址,Rootkits就可以隱藏掉某些文件的相關(guān)信息,當(dāng)應(yīng)用層執(zhí)行文件查詢時(shí),就不能查詢到被隱藏的文件。

        圖2 替換NtQueryDirectoryFile函數(shù)

        2.2 修改中斷描述表中斷函數(shù)的入口地址

        獲取到修改中斷描述表( Interrupt Descriptor Table,IDT )入口地址后,可以替換掉相應(yīng)的中斷處理函數(shù),改變系統(tǒng)中斷的處理流程。比如,修改響應(yīng)鍵盤(pán)中斷處理的函數(shù)地址,就可以攔截下用戶的輸入信息。

        2.3 修改Windows下的相關(guān)驅(qū)動(dòng)程序的分發(fā)函數(shù)的指針

        驅(qū)動(dòng)的分發(fā)函數(shù)總是用來(lái)處理發(fā)給這個(gè)驅(qū)動(dòng)程序的各種I/O請(qǐng)求包(I/O Request Package,IRP)。當(dāng)有IRP發(fā)給這個(gè)驅(qū)動(dòng)時(shí),Windows總是調(diào)用DRIVER_OBJECT下的分發(fā)函數(shù)來(lái)處理這些請(qǐng)求。DRIVER_OBJECT下的分發(fā)函數(shù)指針被保存在一個(gè)數(shù)組中。Rootkits可以通過(guò)替換這個(gè)數(shù)組中的函數(shù)地址,進(jìn)而能在驅(qū)動(dòng)響應(yīng)這個(gè)IRP前,提前攔截下這個(gè)IRP,執(zhí)行相關(guān)操作。

        這里以Hook鍵盤(pán)的分發(fā)函數(shù)的指針進(jìn)行說(shuō)明。首先,可以通過(guò)鍵盤(pán)名獲取到鍵盤(pán)類(lèi)驅(qū)動(dòng)對(duì)象,然后,利用鍵盤(pán)類(lèi)驅(qū)動(dòng)對(duì)象修改驅(qū)動(dòng)中分發(fā)函數(shù)的指針,進(jìn)而替換為Rootkits的函數(shù)地址,從而達(dá)到了攔截鍵盤(pán)信息的目的。

        2.4 編寫(xiě)?yīng)毩⒌尿?qū)動(dòng)模塊

        如圖3中左邊是一個(gè)設(shè)備對(duì)象棧,設(shè)備對(duì)象是操作系統(tǒng)為幫助軟件管理而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。它為每個(gè)硬件至少創(chuàng)建一個(gè)物理設(shè)備對(duì)象(PDO)和功能設(shè)備對(duì)象(FDO),它們中間會(huì)存在一些過(guò)濾設(shè)備對(duì)象(FIDO)。驅(qū)動(dòng)程序?qū)ο蟀艘唤M處理IRP的例程。分層結(jié)構(gòu)使IRP的過(guò)程更加清晰,影響到設(shè)備的每個(gè)操作都使用IRP,每個(gè)IRP均有I/O管理器發(fā)出,并且依次從相應(yīng)設(shè)備棧的棧頂向下傳遞。每一層的對(duì)應(yīng)的驅(qū)動(dòng)程序?qū)ο蠖伎梢哉{(diào)用相應(yīng)的例程來(lái)處理IRP。

        圖3 Windows驅(qū)動(dòng)模型的分層結(jié)構(gòu)

        這種分層結(jié)構(gòu)非常利于第三方的驅(qū)動(dòng)程序加載到操作系統(tǒng)中的對(duì)應(yīng)層次中,Rootkits同樣也可以創(chuàng)建自己的設(shè)備對(duì)象掛載到相應(yīng)的設(shè)備棧的棧頂,并對(duì)所有發(fā)往此設(shè)備棧的IRP進(jìn)行攔截,執(zhí)行其某些特定的功能。

        3 基于關(guān)聯(lián)檢測(cè)的Windows Rootkits的原理和實(shí)現(xiàn)

        當(dāng)前的Windows Rootkits結(jié)構(gòu)具有多樣化的特點(diǎn),單一的檢測(cè)方法很難對(duì)其進(jìn)行有效檢測(cè)。本文提出了一種基于關(guān)聯(lián)檢測(cè)的方法,它能有效對(duì)當(dāng)前絕大部分的Windows檢測(cè)?;陉P(guān)聯(lián)檢測(cè)技術(shù)主要由三部分構(gòu)成:完整性檢測(cè)、流程結(jié)構(gòu)檢測(cè)和模塊特征檢測(cè)。此三部分不僅具有自身獨(dú)特的檢測(cè)特點(diǎn),而且能夠相互補(bǔ)充,使三種不同檢測(cè)方式可以有效被整合在一起,最大程度發(fā)揮三種不同檢測(cè)技術(shù)對(duì)Windows Rootkits檢測(cè)方面的優(yōu)勢(shì)。

        3.1 完整性檢測(cè)

        Rootkits在執(zhí)行Hook時(shí),都會(huì)修改相關(guān)信息,進(jìn)而破壞原始數(shù)據(jù)結(jié)構(gòu),可通過(guò)重新將磁盤(pán)中原始文件加載到內(nèi)存中,獲取要檢測(cè)數(shù)據(jù)在程序中的偏移地址,將獲取到的偏移地址與當(dāng)前數(shù)據(jù)的偏移地址進(jìn)行比較,假如數(shù)據(jù)與獲取到偏移地址不一致,則可以斷定數(shù)據(jù)被修改了。

        如圖4所示,這里以ntoskrnl.exe的導(dǎo)出表中導(dǎo)出函數(shù)為例進(jìn)行說(shuō)明。首先,重新加載ntoskrnl.exe到內(nèi)存中,解析其PE文件結(jié)構(gòu),記錄獲取到的導(dǎo)出表中導(dǎo)出函數(shù)的偏移地址,然后,將其與當(dāng)前SSDT中的函數(shù)地址進(jìn)行對(duì)比,就可以實(shí)現(xiàn)對(duì)當(dāng)前SSDT中相關(guān)地址進(jìn)行檢測(cè)。

        圖4 ntoskrnl.exe導(dǎo)出函數(shù)的信息

        3.2 流程結(jié)構(gòu)檢測(cè)

        使用完整性檢測(cè)對(duì)Rootkits進(jìn)行檢測(cè)的方法具有實(shí)現(xiàn)簡(jiǎn)單、檢測(cè)結(jié)果準(zhǔn)確、穩(wěn)定性好等特點(diǎn)。然而,對(duì)于當(dāng)前的一些功能比較強(qiáng)大,技術(shù)比較隱秘的Rootkits程序而言,它的缺點(diǎn)就暴露了出來(lái)。例如,Rootkits不直接替換原始的函數(shù)地址,而是替換掉這個(gè)函數(shù)執(zhí)行前的某些指令,轉(zhuǎn)而去執(zhí)行Rootkits的功能函數(shù)時(shí)。由于Rootkits沒(méi)有修改當(dāng)前函數(shù)的地址,那么,使用完整性檢測(cè)的方法對(duì)相關(guān)函數(shù)的地址進(jìn)行檢測(cè)就不能夠發(fā)現(xiàn)Rootkits了,但是,當(dāng)這個(gè)函數(shù)被外界調(diào)用時(shí),Rootkits同樣會(huì)先于這個(gè)函數(shù)攔截到這個(gè)操作,轉(zhuǎn)而去執(zhí)行相關(guān)的操作。

        如圖5所示,Inline Hook就是一種不能利用完整性檢測(cè)來(lái)發(fā)現(xiàn)Rootkits的技術(shù)。它的實(shí)現(xiàn)原理如圖5中所示。通過(guò)修改相關(guān)執(zhí)行函數(shù)指令前的指令代碼,轉(zhuǎn)而去執(zhí)行Rootkits的功能函數(shù)代碼,達(dá)到Rootkits的相關(guān)目的。對(duì)于這種隱蔽性極強(qiáng)的Inline Hook技術(shù),通過(guò)使用反匯編引擎對(duì)相關(guān)指令進(jìn)行分析,根據(jù)反匯編引擎對(duì)代碼進(jìn)行反匯編后的結(jié)果,分析其結(jié)構(gòu)來(lái)判斷是否存在Inline Hook。

        圖5 Inline Hook內(nèi)核函數(shù)流程示意圖

        3.3 模塊特征檢測(cè)

        無(wú)論內(nèi)核級(jí)Rootkits使用什么樣的Hook技術(shù),它都必須作為一個(gè)模塊加載到內(nèi)存中,而模塊中的相關(guān)函數(shù)地址必須滿足于一定的要求。具體來(lái)說(shuō),假設(shè)可疑的轉(zhuǎn)移地址為u1,當(dāng)前的模塊地址和模塊大小為u2和u3。假如u2

        利用這種特征,可以通過(guò)遍歷當(dāng)前系統(tǒng)中所有加載的模塊,獲取它們的完整信息。通過(guò)與可疑地址進(jìn)行比對(duì),確定出可疑地址的真實(shí)來(lái)源,進(jìn)而判斷是否是Rootkits。

        4 檢測(cè)結(jié)果及分析

        Rootkit Revealer V1.71是一款著名反Rootkits的工具,用戶通過(guò)它可檢測(cè)當(dāng)前隱藏進(jìn)程、文件、注冊(cè)表、SSDT、IDT等重要系統(tǒng)部件的信息,為用戶查找Rootkits提供了極大的幫助。

        如圖6所示,RegHook.sys是一種能夠隱藏注冊(cè)表啟動(dòng)項(xiàng)的Rootkits程序,它能夠?qū)⒚Q:My,類(lèi)型:REG_SZ,數(shù)據(jù):C:WINDOWSUM.exe的注冊(cè)表項(xiàng)給隱藏,從而達(dá)到隱藏開(kāi)機(jī)啟動(dòng)程序的目的。通過(guò)利用這款國(guó)外的反Rootkits工具與基于關(guān)聯(lián)技術(shù)進(jìn)行檢測(cè)所得到的結(jié)果對(duì)比分析。

        圖6 利用Rootkit Revealer V1.71進(jìn)行檢測(cè)得到的結(jié)果

        當(dāng)執(zhí)行RegHook.sys后,運(yùn)行RootkitRevealer.exe進(jìn)行檢測(cè),并不能發(fā)現(xiàn)被Rootkits程序隱藏的注冊(cè)表鍵值,如圖7所示,利用基于關(guān)聯(lián)檢測(cè)的方法卻能成功檢測(cè)和恢復(fù)出被隱藏的注冊(cè)表鍵值信息。

        圖7 利用關(guān)聯(lián)檢測(cè)技術(shù)進(jìn)行檢測(cè)得到的結(jié)果

        圖8是清除掉Rootkits程序后,注冊(cè)表顯示出被隱藏的相關(guān)信息情況。

        圖8 清除Rootkits后注冊(cè)表的情況

        5 結(jié)語(yǔ)

        基于關(guān)聯(lián)技術(shù)檢測(cè)Rootkits惡意程序的方法能夠準(zhǔn)確的檢測(cè)出針對(duì)內(nèi)核態(tài)的Rootkits程序,并且能夠提供完整的Rootkits的種類(lèi)、路徑、相關(guān)模塊的當(dāng)前地址和原始地址等相關(guān)的詳細(xì)信息,幫助我們發(fā)現(xiàn)和清除Rootkits提供了重要的信息來(lái)源。

        基于關(guān)聯(lián)技術(shù)的方法采用大量Windows內(nèi)核技術(shù)對(duì)Rootkits進(jìn)行檢測(cè),程序的兼容性和穩(wěn)定性將是下一步工作的重點(diǎn)。

        [1] Greg H,James B.Rootkits:Subverting the Windows kernel[J].Addison Wesley Professional.2005.

        [2] Levine J,Grizzard J,Owen H.Detecting and categorizing kernel-level Rootkits to aid future detection[J].IEEE Security&Privacy.2006.

        [3] Kruegel C,Robertson W,Vigna G.Detecting kernel-level Rootkits through binary analysis[C].Tucson,AZ,USA:20th Annual Computer Security Applications Conference.2004.

        [4] 陳曉蘇,黃文超,肖道舉.一種基于交叉視圖的Windows Rootkit檢測(cè)方法[J].計(jì)算機(jī)工程與科學(xué).2007.

        [5] Pankaj Gupta, Nick McKeown. Design and implementation of a fast crossbar scheduler[J].IEEE Micro Magazine.1999.

        [6] 顏仁仲,鐘錫昌,張倪.一種自動(dòng)檢瀏內(nèi)核級(jí) Rootkit 并恢復(fù)系統(tǒng)的方法[J].計(jì)算機(jī)工程.2006.

        [7] 龍海,郝東白,黃皓.Windows下系統(tǒng)服務(wù)Rootkits的檢測(cè)與恢復(fù)[J].計(jì)算機(jī)工程與設(shè)計(jì).2008.

        [8] 易宇,金然.基于符號(hào)執(zhí)行的內(nèi)核級(jí)Rootkit 靜態(tài)檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì).2006.

        [9] 梁升榮,范明鈺,王光衛(wèi),鄭秀林.一種新的內(nèi)核級(jí) Rootkit的檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用研究.2009.

        [10] 王建華,張煥生,侯麗坤等譯.Richter J.Windows 核心編程[M].北京:機(jī)械工業(yè)出版社.2006.

        猜你喜歡
        程序檢測(cè)信息
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        試論我國(guó)未決羈押程序的立法完善
        “程序猿”的生活什么樣
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        小波變換在PCB缺陷檢測(cè)中的應(yīng)用
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        展會(huì)信息
        国产一区二区丰满熟女人妻| 免费人妻无码不卡中文字幕系 | 日本大片一区二区三区| 色翁荡熄又大又硬又粗又动态图| 无码任你躁久久久久久久| 欧美理论在线| 网友自拍人妻一区二区三区三州| 国产精品一区二区久久久av| 免费不卡在线观看av| 三年片在线观看免费大全电影| 九九久久精品大片| 日本精品一级二区三级| 欧美人与禽z0zo牲伦交| 又爽又黄禁片视频1000免费| 国产美女三级视频网站| 午夜大片在线播放观看| 欧美成人在线视频| 国产成人拍精品免费视频| 狼人狠狠干首页综合网| 中字乱码视频| 黑人玩弄漂亮少妇高潮大叫| 69av视频在线| 亚州av高清不卡一区二区| 久久只精品99品免费久23| 色窝窝在线无码中文| 国产白浆精品一区二区三区| 日韩乱码中文字幕在线| 国产特级毛片aaaaaaa高清| 国产一级三级三级在线视| 中文字幕一区二区三区综合网| 免费a级毛片在线播放不收费| 精品性高朝久久久久久久| 亚洲国产不卡av一区二区三区| 国产伦一区二区三区色一情| 国内露脸少妇精品视频| 亚洲精品理论电影在线观看| 精品蜜桃av免费观看| 人成午夜免费视频无码| 亚洲图区欧美| 少妇人妻偷人中文字幕| 中文字幕免费在线观看动作大片|