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

        ?

        內(nèi)核態(tài)下的系統(tǒng)服務(wù)分配表掛鉤主動防御技術(shù)

        2014-04-29 23:39:51任李
        電腦迷 2014年13期
        關(guān)鍵詞:防御

        任李

        摘 要 惡意程序利用內(nèi)核態(tài)下的系統(tǒng)服務(wù)分配表掛鉤可以隱藏進(jìn)程,過濾數(shù)據(jù)等,嚴(yán)重威脅計算機(jī)系統(tǒng)安全。本文提出了一種針對系統(tǒng)服務(wù)分配表掛鉤技術(shù)的主動防御技術(shù),通過內(nèi)核驅(qū)動程序,為系統(tǒng)關(guān)鍵內(nèi)核服務(wù)函數(shù)添加自我保護(hù)功能,能在惡意程序掛鉤相關(guān)服務(wù)函數(shù)系統(tǒng)服務(wù)分配表后,該服務(wù)函數(shù)能夠立刻感知,及時修復(fù)相應(yīng)表項值、報警,最后設(shè)計程序驗證方案有效性。

        關(guān)鍵詞 掛鉤 防御 系統(tǒng)服務(wù)

        中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A

        0引言

        掛鉤技術(shù)應(yīng)用廣泛,安全產(chǎn)品利用掛鉤技術(shù)可以對軟件行為進(jìn)行分析過濾,阻止惡意程序進(jìn)行威脅操作,例如,有的防火墻就用到了SPI和NDIS的掛鉤技術(shù)。近年來,惡意程序作者對windows系統(tǒng)進(jìn)行深入研究,使用的掛鉤技術(shù)越來越先進(jìn),由于系統(tǒng)服務(wù)分配表(System Service Dispatch Table,SSDT)肩負(fù)著在用戶模式的win32 API和內(nèi)核模式下的內(nèi)核API之間建立地址映射的使命,所以惡意程序作者常掛鉤SSDT表,達(dá)到隱藏自身進(jìn)程、過濾數(shù)據(jù)、對抗安全產(chǎn)品等目的,為此,本文提出了一種針對SSDT表掛鉤的主動防御技術(shù),給一些系統(tǒng)關(guān)鍵的服務(wù)函數(shù)添加自我保護(hù)的性質(zhì),使其一旦被SSDT表掛鉤,能夠及時察覺、修復(fù)、報警,較之于傳統(tǒng)的靜態(tài)似的枚舉檢測,本文提出的方法效率高,而且能在惡意程序給用戶造成損失以前及時阻止。

        圖1 SSDT掛鉤原理圖

        1系統(tǒng)服務(wù)調(diào)度原理及SSDT掛鉤技術(shù)

        系統(tǒng)服務(wù)函數(shù)是操作系統(tǒng)提供的一個函數(shù)集,應(yīng)用程序通過調(diào)用API函數(shù)執(zhí)行系統(tǒng)服務(wù)。對于應(yīng)用層的API首先調(diào)用Ntdll.dll這個動態(tài)鏈接庫轉(zhuǎn)譯成內(nèi)核服務(wù),Ntdll.dll中的包裝函數(shù)做進(jìn)入內(nèi)核前的裝備,如將服務(wù)號放入eax、將存放用戶參數(shù)的用戶棧指針放入edx、執(zhí)行中斷,進(jìn)入到內(nèi)核態(tài)。在Windows XP下,包裝函數(shù)形式如下:

        mov eax, ServiceID

        lea edx, ParameterTable

        call dword [ptr]edx

        retn

        其中ServiceID是將要調(diào)用內(nèi)核服務(wù)的服務(wù)號。

        內(nèi)核層的系統(tǒng)服務(wù)分配表,該表存放了系統(tǒng)服務(wù)號和服務(wù)函數(shù)所對應(yīng)的地址,進(jìn)入中斷后,內(nèi)核根據(jù)所傳的服務(wù)號(eax)在SSDT表中查找相對應(yīng)的服務(wù)函數(shù)地址。

        若要掛鉤SSDT,只需修改表中服務(wù)號所對應(yīng)的函數(shù)地址,使其指向自定義函數(shù)地址,在執(zhí)行相應(yīng)代碼后再調(diào)用原系統(tǒng)服務(wù)函數(shù)代碼。原理圖如圖1所示。

        2相關(guān)SSDT表掛鉤技術(shù)檢測與恢復(fù)方法

        2.1基于執(zhí)行狀態(tài)分析的檢測方法

        如果入侵者掛鉤SSDT某個內(nèi)核函數(shù),該函數(shù)的一些執(zhí)行狀態(tài)(指令個數(shù)、寄存器狀態(tài)、CPU狀態(tài)等)將與正常的執(zhí)行狀態(tài)有所區(qū)別,通過對比可以大致檢測出是否被掛鉤。但該方法實(shí)現(xiàn)復(fù)雜,例如指令對比法。執(zhí)行指令的數(shù)量不同,一定程度預(yù)示著該服務(wù)函數(shù)被掛鉤了。但為了統(tǒng)計指令,系統(tǒng)必須處于單步追蹤模式下,每執(zhí)行一條指令就要觸發(fā)一次中斷,因此系統(tǒng)性能明顯降低。而且,系統(tǒng)服務(wù)函數(shù)每次運(yùn)行時指令個數(shù)不同,具有不確定性。

        2.2基于對比的檢測恢復(fù)方法

        內(nèi)核文件Ntosknl.exe中有個KiserviceTable,存放未重定位的服務(wù)地址,可以經(jīng)過文獻(xiàn)提出的方法,定位該表。通過這些地址可以計算出服務(wù)函數(shù)相對于基地址的偏移量。將其映射進(jìn)內(nèi)存中,將該文件中服務(wù)函數(shù)的偏移量加上正在運(yùn)行的內(nèi)核模塊的基地址,可以得到各服務(wù)函數(shù)的虛擬地址。利用該地址可以產(chǎn)生新的SSDT,利用該表和運(yùn)行的SSDT表進(jìn)行對比,發(fā)現(xiàn)服務(wù)地址若有不同,就是被掛鉤的地方,將其按新的SSDT表的內(nèi)容經(jīng)行恢復(fù)。該方法是靜態(tài)的被動式的匹配檢測,由于SSDT函數(shù)數(shù)量多,調(diào)用頻繁,該檢測方法會占用內(nèi)存,CPU等資源進(jìn)行不斷的檢測,發(fā)現(xiàn)異常再恢復(fù),會嚴(yán)重影響系統(tǒng)性能。

        2.3SSDT表掛鉤主動防御技術(shù)

        針對SSDT表掛鉤,本文提出了一種主動防御技術(shù),為系統(tǒng)一些關(guān)鍵服務(wù)函數(shù)添加保護(hù)性質(zhì),使其具有在被調(diào)用時先檢測自己在SSDT表中的函數(shù)地址是否被掛鉤的能力。由于多數(shù)惡意程序在掛鉤SSDT表后,先執(zhí)行自定義代碼,再調(diào)用系統(tǒng)服務(wù)函數(shù),所以本文提出的方法能夠有效檢測SSDT表的掛鉤,如圖2所示。要完成向系統(tǒng)服務(wù)函數(shù)添加檢測功能,可以直接修改服務(wù)函數(shù)體和使用SSDT掛鉤技術(shù)。但由于在內(nèi)核直接修改函數(shù)代碼,容易導(dǎo)致系統(tǒng)崩潰,而且由于Windows版本不同,內(nèi)核也不同,兼容性較差。所以本文采用SSDT掛鉤技術(shù),達(dá)到給系統(tǒng)服務(wù)函數(shù)添加檢測恢復(fù)功能的目的,以后惡意程序再掛鉤SSDT表,將被及時檢測恢復(fù)。本文以惡意程序經(jīng)常掛鉤的內(nèi)核ZwQuerySystemlnformation函數(shù)說明,如何使其防止被SSDT掛鉤。

        圖2 SSDT掛鉤防御原理圖

        SSDT結(jié)構(gòu)如下:

        typedef struct _SYSTEM_SERVICE_TABLE{

        PVOID ServiceTableBase;//系統(tǒng)服務(wù)函數(shù)分配表基地址

        PULONG ServiceCounterTableBase;//服務(wù)表項被調(diào)用的次數(shù)

        ULONG NumberOfService;//系統(tǒng)所支持服務(wù)個數(shù)

        ULONG ParamTableBase;//指向系統(tǒng)服務(wù)參數(shù)表

        };SYSTEM_SERVICE_TABLE,

        *P SYSTEM_SERVICE_TABLE;

        typedef struct _SERVICE_DESCRIPTOR_TABLE{

        SYSTEM_SERVICE_TABLE ntoskrnl.exe;

        //ntoskrnl.exe的服務(wù)函數(shù)

        SYSTEM_SERVICE_TABLE win32k;

        //win32k.sys的服務(wù)函數(shù)

        SYSTEM_SERVICE_TABLE null1;//未使用

        SYSTEM_SERVICE_TABLE null2;//未使用

        } SERVICE_DESCRIPTOR_TABLE,

        *PSERVICE_DESCRIPTOR_TABLE;

        KeserviceDescriptorTable是由內(nèi)核Ntoskrnl.exe導(dǎo)出的內(nèi)核實(shí)體,該表包含指向SSDT表的指針。因此只要定位該表,就可以定位SSDT表的基地址Base,而函數(shù)的服務(wù)號ServiceID也可通過KeserviceDescriptorTable獲得,從而可以得到其地址Addr=Base+ServiceID*4,修改該地址中內(nèi)容,使其指向新定義的函數(shù)。

        SSDT位于windows系統(tǒng)內(nèi)核空間中,要修改SSDT的內(nèi)容必須使用設(shè)備驅(qū)動程序,而且在Windows XP操作系統(tǒng)中對SSDT所在內(nèi)存區(qū)域啟用了寫保護(hù)機(jī)制,要修改SSDT表中內(nèi)容,需要繞過內(nèi)存保護(hù)機(jī)制。

        定義新的函數(shù)HookZwQuerySystemlnformation,易定位該函數(shù)內(nèi)存地址為nAddress,在驅(qū)動程序的入口函數(shù)中將函數(shù)的地址重定向到HookZwQuerySystemlnformation并返回原函數(shù)地址sAddress。

        定義PTR_ZwQuery為ZwQuerySystemInformation函數(shù)指針。

        NTSTATUS DriverEntry( IN PDRIVER_OBJECT

        theDriverObject, IN PUNICODE_STRING theRegistryPath )

        { _asm

        {

        push eax

        mov eax,CR0

        and eax,0FFFEFFFFh

        mov CR0,eax

        pop eax

        }//關(guān)閉寫保護(hù)

        sAddress=(PTR_ZwQuery)InterlockedExchange((PLONG) KeServiceDescriptorTable.ServiceTableBase[*(PULONG) ((PUCHAR)(PTR_ZwQuery)+1)],(LONG)

        HookZwQuerySystemInformation );

        _asm

        {

        push eax

        mov eax,CR0

        or eax, NOT 0FFFEFFFFh

        mov CR0,eax

        pop eax

        }//開啟寫保護(hù)

        }

        惡意程序掛鉤ZwQuerySystemlnformation函數(shù),實(shí)際掛鉤HookZwQuerySystemlnformation函數(shù),該函數(shù)被調(diào)用時先檢查nAddress和該函數(shù)ServiceID所對應(yīng)的SSDT表項中的值是否相等,如果不相等,判定函數(shù)被掛鉤,恢復(fù)該表項的值后報警,如果相等,繼續(xù)執(zhí)行ZwQuerySystemlnformation函數(shù)。該函數(shù)偽代碼如下:

        TypeX HookZwQuerySystemlnformation(…)

        {if(地址相等)

        return sAddress;//執(zhí)行原函數(shù)

        else

        virusAddress=(PTR_ZwQuery)InterlockedExchange((PLONG) KeServiceDescriptorTable.ServiceTableBase[*(PULONG) ((PUCHAR)(PTR_ZwQuery)+1)],(LONG)

        HookZwQuerySystemInformation );//恢復(fù)表項值,返回病毒地址

        return value _of_TypeX;//返回報警值

        }

        在實(shí)際中,需要保護(hù)多個函數(shù)時,可以將驅(qū)動程序的加載、病毒報警及處理等模塊抽象為公共模塊處理,以節(jié)省系統(tǒng)資源。Nguye等人通過監(jiān)測文件訪問和進(jìn)程活動構(gòu)建了系統(tǒng)調(diào)用層次模版。我們可以對系統(tǒng)之間的調(diào)用關(guān)系抽象成調(diào)用圖,賦予各個函數(shù)不同權(quán)值,找尋關(guān)鍵服務(wù)函數(shù)進(jìn)行保護(hù),以此提高效率。

        3實(shí)驗結(jié)果與分析

        操作系統(tǒng):Windows 7,CPU Intel Core2,2.0Ghz;內(nèi)存:2GB; 虛擬機(jī)VMvare WorkStation7.0;虛擬機(jī) (下轉(zhuǎn)第37頁)(上接第33頁)操作系統(tǒng):Windows 7;編譯工具VS2010、DDK2003;在此環(huán)境下測試Hook_ZwQuerySystemlnformation病毒,該病毒通過Hook掉SSDT表中的ZwQuerySystemlnformation函數(shù)來改變進(jìn)程鏈表結(jié)構(gòu),從而達(dá)到隱藏自身的目的。文提出的方法能夠在函數(shù)被掛鉤后立即檢測恢復(fù)并且報警。

        4結(jié)論

        本文提出的針對SSDT掛鉤技術(shù)的主動防御方法,賦予了關(guān)鍵函數(shù)自我保護(hù)的性質(zhì),一旦函數(shù)被掛鉤、調(diào)用能及時發(fā)現(xiàn)恢復(fù)。較之其它靜態(tài)式的被動檢測方法,本方法能夠及時發(fā)現(xiàn)并且阻止惡意程序,而且由于函數(shù)在被調(diào)用時才占用資源,所以資源占用量少,效率高,但隨著保護(hù)函數(shù)數(shù)量的增加,效率會降低,因此找尋系統(tǒng)關(guān)鍵函數(shù)進(jìn)行保護(hù)顯得尤為重要。同時針對直接修改函數(shù)內(nèi)核體的掛鉤技術(shù),怎么提取病毒特征,使函數(shù)具有自我保護(hù)性質(zhì),怎么使函數(shù)具有自我保護(hù)性質(zhì),還需進(jìn)一步探索。

        參考文獻(xiàn)

        [1] 韓芳.基于可執(zhí)行路徑分析的隱藏進(jìn)程檢測方法[J].計算機(jī)與數(shù)字工程,2009,1.

        [2] 左黎明,蔣兆峰等.Windows Rootkit隱藏技術(shù)與綜合檢測方法[J].計算機(jī)工程,2009, 35(10).

        [3] 何耀彬,李祥和等.二次跳轉(zhuǎn)的SSDT掛鉤及檢測方法研究[J].計算機(jī)工程與應(yīng)用,2012, 48(6).

        [4] 李偉,蘇璞瑞.基于內(nèi)核驅(qū)動的惡意代碼動態(tài)檢測技術(shù)[J].中國科學(xué)院研究生院學(xué)報:2010, 27(5).

        [5] Richter J, Nasarre C.Windows核心編程[M].5版.北京:清華大學(xué)出版社,2008.

        [6] lyer A, Ngo H Q. Towards a theory of insider threat assessment[C]//proceedings of the 2005 International Conference on Dependable Systems and Networks,2005:108-117.

        猜你喜歡
        防御
        自我威脅與防御:自尊的調(diào)節(jié)作用
        數(shù)據(jù)挖掘在計算機(jī)網(wǎng)絡(luò)病毒防御中的應(yīng)用
        論校園無線局域網(wǎng)的攻擊與防御
        計算機(jī)網(wǎng)絡(luò)安全與防御研究
        計算機(jī)網(wǎng)絡(luò)安全與防御
        基于魚叉式網(wǎng)絡(luò)釣魚攻擊的防御研究
        芻議新局勢下計算機(jī)病毒防御技術(shù)
        網(wǎng)絡(luò)型病毒與網(wǎng)絡(luò)安全防御研究
        烏拉特草原近40年白災(zāi)危害與防御
        科技資訊(2015年4期)2015-07-02 17:56:49
        APT攻擊的特征分析與防御策略
        极品新娘高清在线观看| 欧美真人性做爰一二区| a级福利毛片| 日本熟妇视频在线中出| 桃红色精品国产亚洲av| 天天燥日日燥| 夜夜爽无码一区二区三区| 国内精品熟女一区二区| 免费亚洲老熟熟女熟女熟女| 色吊丝中文字幕| 欧美日韩国产专区| 伊人久久大香线蕉综合av| 美腿丝袜诱惑一区二区| 亚洲成av人片在线观看ww| 欧美色色视频| 天堂影院久久精品国产午夜18禁| 久久精品免费一区二区喷潮| 熟妇人妻无乱码中文字幕 | 国产日韩精品欧美一区喷水| 丰满人妻妇伦又伦精品国产| 亚洲AV无码日韩综合欧亚| 精品国产一区二区三区香| 久久久久av无码免费网| 久久艹影院| 国内精品熟女一区二区| 国产一区二区自拍刺激在线观看| 国产一区二区三精品久久久无广告 | 日本免费一二三区在线| 让少妇高潮无乱码高清在线观看| 激情综合欧美| 一区二区三区在线视频爽| 一区二区三区四区国产99| 日韩制服国产精品一区| 国产精品国产三级国产av创 | 无码中文字幕日韩专区视频| 亚洲欧美性另类春色| 亚洲女人毛茸茸的视频| av免费不卡国产观看| 一个人看的www免费视频中文| 精品少妇后入一区二区三区| 国产婷婷色一区二区三区深爱网|