欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法與流程

文檔序號:11654776閱讀:366來源:國知局
一.
技術(shù)領(lǐng)域
:本發(fā)明提供一種基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,它涉及漏洞利用檢測識別方法,屬于網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域
:。二.
背景技術(shù)
::漏洞是指一個系統(tǒng)存在的弱點(diǎn)或缺陷,系統(tǒng)對特定威脅攻擊或危險事件的敏感性,或進(jìn)行攻擊的威脅作用的可能性。漏洞可能來自應(yīng)用軟件或操作系統(tǒng)設(shè)計(jì)時的缺陷或編碼時產(chǎn)生的錯誤,也可能來自業(yè)務(wù)在交互處理過程中的設(shè)計(jì)缺陷或邏輯流程上的不合理之處。這些缺陷、錯誤或不合理之處可能被有意或無意地利用,從而對一個組織的資產(chǎn)或運(yùn)行造成不利影響,如信息系統(tǒng)被攻擊或控制,重要資料被竊取,用戶數(shù)據(jù)被篡改,系統(tǒng)被作為入侵其他主機(jī)系統(tǒng)的跳板。近年來針對于政府,軍工,教育部門,科研單位及企業(yè)的高級持續(xù)性威脅(apt-advancedpersistentthreat)事件持續(xù)增漲,而漏洞利用是其中的主要攻擊手段。面對日益增強(qiáng)的漏洞利用技巧,現(xiàn)有的防護(hù)方式有以下幾種類型,且都存在明顯的缺點(diǎn):1.通過對漏洞程序打補(bǔ)丁或及時升級程序到最新版本。該方法對于已知的漏洞可以起到較好的防護(hù),但是更新一個大環(huán)境的軟件版本工程量大,消耗周期長,流程復(fù)雜,且不能保證新版本沒有漏洞,若攻擊者較早的發(fā)現(xiàn)漏洞,可在補(bǔ)丁發(fā)布前利用該漏洞進(jìn)行攻擊。2.通過靜態(tài)特征掃描識別漏洞。該方法需要結(jié)合人工分析,對技術(shù)人員有較高的技術(shù)要求,且存在一定時間的滯后期,即捕獲到樣本到分析后添加規(guī)則這段時間,該漏洞利于可能已經(jīng)造成了較大的破壞,無法進(jìn)行未知漏洞的檢測及防護(hù)。3.依賴操作系統(tǒng)本身提供的安全機(jī)制。操作系統(tǒng)本身會提供針對于漏洞的防護(hù)措施,但是這些防護(hù)措施不能兼容其版本之下的操作系統(tǒng)且部分需要編譯環(huán)境或硬件的支持,防護(hù)覆蓋面積小,兼容性差,整體環(huán)境做系統(tǒng)升級成本較大,耗費(fèi)時間長。三.技術(shù)實(shí)現(xiàn)要素:1.發(fā)明目的鑒于上述問題,本發(fā)明提供了一種基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,目的在于能夠準(zhǔn)確及時的防御識別包含已知漏洞及未知漏洞的利用手段,并解決上述明顯的缺陷問題,從而快速進(jìn)行應(yīng)急響應(yīng),保護(hù)環(huán)境系統(tǒng)的安全。2.技術(shù)方案本發(fā)明一種基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,其步驟如下:步驟1:將本發(fā)明開發(fā)的動態(tài)鏈接庫文件注入到目標(biāo)進(jìn)程中;步驟2:在目標(biāo)進(jìn)程中申請一個向量化異常處理函數(shù)(veh-vectorexceptionhandler)接管異常過程;步驟3:開啟數(shù)據(jù)執(zhí)行保護(hù)(dep-dataexecutionprevention);步驟4:按地址低到高順序的分配隨機(jī)大小的內(nèi)存塊,內(nèi)存保護(hù)屬性設(shè)置為不可訪問;步驟5:申請內(nèi)存占用常見的堆噴射(heap-spray)地址;步驟6:創(chuàng)建線程監(jiān)控進(jìn)程堆的堆塊分布情況;步驟7:劫持動態(tài)鏈接庫加載流程中ntdll模塊里被調(diào)用的接口函數(shù)(api-applicationprogramminginterface),對動態(tài)加載的特定模塊進(jìn)行重選基址操作;步驟8:申請地址為0x1的內(nèi)存塊,內(nèi)存保護(hù)屬性設(shè)置為不可訪問;步驟9:申請最終異常函數(shù),接管最終異常事件;步驟10:劫持漏洞利用中所有使用率高的接口函數(shù),對調(diào)用環(huán)境根據(jù)進(jìn)程做異常檢測并對處于漏洞利用模塊黑名單的模塊進(jìn)行關(guān)聯(lián)性的行為識別;步驟11:劫持線程調(diào)度過程,監(jiān)控目標(biāo)進(jìn)程的訪問令牌及securitydescriptor指針的變更行為;步驟12:監(jiān)控內(nèi)核態(tài)(ring0)下,對用戶層地址的訪問執(zhí)行情況;其中,步驟1中所述的“目標(biāo)進(jìn)程”,它是指受到本發(fā)明保護(hù)的進(jìn)程。其中,步驟1中所述的“動態(tài)鏈接庫文件”,它是指一種不可執(zhí)行的二進(jìn)制程序文件,它允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源。其中,步驟2中所述的“在目標(biāo)進(jìn)程中申請一個向量化異常處理函數(shù)(veh-vectorexceptionhandler)接管異常過程”,其做法如下:調(diào)用操作系統(tǒng)接口函數(shù)addvectoredexceptionhandler,注冊一個處理函數(shù),用于處理進(jìn)程中發(fā)生的異常中斷。其中,步驟3中所述的“開啟數(shù)據(jù)執(zhí)行保護(hù)”,其做法如下:獲取kernel32模塊中g(shù)etsystemdeppolicy,getprocessdeppolicy,setprocessdeppolicy接口函數(shù)的地址,通過前兩個接口函數(shù)檢測系統(tǒng)及當(dāng)前進(jìn)程的數(shù)據(jù)執(zhí)行保護(hù)配置信息,通過第三個函數(shù)開啟數(shù)據(jù)執(zhí)行保護(hù),將??臻g及堆空間內(nèi)存保護(hù)設(shè)置為不可執(zhí)行狀態(tài)。其中,步驟4中所述的“不可訪問”,它是指內(nèi)存保護(hù)屬性為page_noaccess。其中,步驟5中所述的“堆噴射(heap-spray)”,它是指一種漏洞利用技術(shù),用來促進(jìn)任意代碼執(zhí)行,將堆中某段字節(jié)序列放置到目標(biāo)進(jìn)程的預(yù)定位置。其中,步驟5中所述的“申請內(nèi)存占用常見的堆噴射(heap-spray)地址”,其做法如下:提前分配目前常見的heap-spray地址,如0x0a0a0a0a,0x0c0c0c0c0c,申請方法是本領(lǐng)域的常見技術(shù)。其中,步驟6中所述的“創(chuàng)建線程監(jiān)控進(jìn)程堆的堆塊分布情況”,其做法如下:創(chuàng)建一個工作線程,循環(huán)遍歷當(dāng)前進(jìn)程堆中的堆塊,檢測相同大小堆塊的數(shù)量,判斷堆塊數(shù)量并且單個大小是否超過臨界值。其中,步驟7中所述的“特定模塊”,它是指沒有開啟/dynamicbase并帶有重定位表的模塊。其中,步驟7中所述的“劫持動態(tài)鏈接庫加載流程中ntdll模塊里被調(diào)用的接口函數(shù)(api-applicationprogramminginterface),對動態(tài)加載的特定模塊進(jìn)行重選基址操作”,其做法如下:修改ntdll的導(dǎo)出函數(shù)ntmapviewofsection,在動態(tài)鏈接庫文件動態(tài)加載時,判斷該文件的重定位信息,釋放原來的映射區(qū)內(nèi)存并申請一部分內(nèi)存占用該地址,重新申請映射原來的內(nèi)存區(qū)。其中,步驟9中所述的“申請最終異常函數(shù),接管最終異常事件”,其做法如下:調(diào)用操作系統(tǒng)接口函數(shù),注冊一個最終異常處理函數(shù),用于處理進(jìn)程中發(fā)生的進(jìn)程崩潰異常。其中,步驟10中所述的“劫持漏洞利用中所有使用率高的接口函數(shù)”,其做法如下:掛鉤(hook)漏洞利用過程中的常見接口函數(shù),如loadlibraryexw,loadlibraryexa,virtualallocex,virtualprotectex,virtualprotect,virtualalloc,winexec,createfilea等。其中,步驟10中所述的“對調(diào)用環(huán)境根據(jù)進(jìn)程做異常檢測”,其做法如下:檢測棧指針寄存器是否位于當(dāng)前線程信息塊中所保存的棧地址的起始范圍內(nèi),檢測異常處理鏈的完整型,檢測調(diào)用者是否為call指令,檢測指定層次數(shù)的?;厮萱溌翻h(huán)境是否異常。其中,步驟10中所述的“行為識別”,它是指在加載了黑名單模塊后,發(fā)出的異常行為檢測,即白名單行為之外的行為,用于檢測非內(nèi)存破壞型漏洞利用手段。其中,步驟10中所述的“對處于漏洞利用模塊黑名單的模塊進(jìn)行關(guān)聯(lián)性的行為識別”,其做法如下:監(jiān)控處于漏洞發(fā)生黑名單的模塊加載時,開啟此模式,用于檢測進(jìn)程中的異常行為,如iexplore創(chuàng)建powershell進(jìn)程。其中,步驟11中所述的“訪問令牌”,它是指,每一個運(yùn)行中的程序都有一個訪問令牌(accesstoken),它是一組描述權(quán)限的數(shù)據(jù)信息。其中,步驟11中所述的“劫持線程調(diào)度過程,監(jiān)控目標(biāo)進(jìn)程的訪問令牌及securitydescriptor指針的變更行為”,其做法如下:收集當(dāng)前系統(tǒng)環(huán)境中的擁有system權(quán)限進(jìn)程的進(jìn)程id,在線程調(diào)度cr3寄存器切換的時候,檢測當(dāng)前進(jìn)程是否位于收集的進(jìn)程id中,同時檢測securitydescriptor指針置0的行為。通過以上步驟,本發(fā)明實(shí)現(xiàn)了基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,結(jié)合系統(tǒng)的防護(hù)措施,達(dá)到了檢測識別漏洞攻擊的的效果,解決了現(xiàn)有防護(hù)技術(shù)中流程復(fù)雜,存在滯后期,兼容性差的問題。3.優(yōu)點(diǎn)借由上述技術(shù)方案,本發(fā)明通過動態(tài)的方式,結(jié)合系統(tǒng)的防護(hù)措施,獨(dú)立實(shí)現(xiàn)一套基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,系統(tǒng)支持率及程序兼容性高,成本低,漏洞利用覆蓋面積廣,可以有效及時的檢測識別漏洞利用(exploit)中(包括未知漏洞)的大多數(shù)技術(shù)手段。四.附圖說明圖1是本發(fā)明所述方法流程示意圖。圖2是本發(fā)明方法對接口函數(shù)調(diào)用時的異常檢測流程示意圖。圖3是本發(fā)明方法異常處理流程示意圖。五.具體實(shí)施方式為了解決現(xiàn)有技術(shù)提供的漏洞利用檢測方案中的缺點(diǎn),即無法檢測未知類型漏洞,兼容性差覆蓋面積小等問題,本發(fā)明方法提供了一種漏洞利用的檢測識別方案,通過將保護(hù)模塊注入到目標(biāo)進(jìn)程,布置內(nèi)存至防御的理想狀態(tài),監(jiān)控目標(biāo)進(jìn)程的行為并進(jìn)行動態(tài)的分析,來識別漏洞利用的攻擊手段,不局限于已知漏洞利用,起到保護(hù)進(jìn)程及系統(tǒng)環(huán)境的效果。為了使本發(fā)明方法的目的,技術(shù)方案更清楚明白,以下結(jié)合附圖進(jìn)行進(jìn)一步的詳細(xì)說明。參見圖1,為本發(fā)明方法的漏洞利用檢測識別流程示意圖,本發(fā)明一種基于動態(tài)內(nèi)存指紋異常分析的漏洞利用檢測識別方法,其具體流程步驟如下:步驟s101:將漏洞利用檢測模塊即由技術(shù)人員開發(fā)的保護(hù)模塊注入到待保護(hù)的目標(biāo)進(jìn)程中。步驟s102:在目標(biāo)進(jìn)程中申請向量化異常處理函數(shù),接管進(jìn)程中的異常中斷信息,見圖3步驟如下,包含步驟s301-步驟s305:步驟s301:目標(biāo)進(jìn)程內(nèi)部發(fā)生異常中斷,被保護(hù)模塊的向量化異常處理接管。步驟s302:過濾掉非異常訪問所發(fā)出的異常中斷。步驟s303:判斷該次異常中斷行為是和由保護(hù)模塊在初始化中所進(jìn)行的內(nèi)存部署有關(guān)。步驟s304:如果沒有關(guān)系,結(jié)束本次異常處理過程。步驟s305:步驟304執(zhí)行失敗,發(fā)出警告,檢測到漏洞利用的攻擊手段。步驟s103:檢測系統(tǒng)的數(shù)據(jù)執(zhí)行保護(hù)配置信息,在支持未開啟的狀態(tài)下,通過kelner32模塊導(dǎo)出的接口函數(shù)setprocessdeppolicy進(jìn)行設(shè)置打開,將堆、棧地址空間內(nèi)存保護(hù)屬性設(shè)置為不可執(zhí)行狀態(tài)。步驟s104:從低地址到高地址的順序申請隨機(jī)數(shù)量,隨機(jī)大小的內(nèi)存塊,并通過修改相關(guān)頁面的pagetableentry(pte),加入特殊標(biāo)識位,設(shè)置其內(nèi)存保護(hù)屬性為不可訪問狀態(tài)。步驟s105:在目標(biāo)進(jìn)程中申請常用的堆噴射覆蓋地址,即0x0c0c0c0c等流行地址,并通過修改相關(guān)頁面的pagetableentry(pte),加入特殊標(biāo)識位,設(shè)置其內(nèi)存保護(hù)屬性為不可訪問狀態(tài)。步驟s106:創(chuàng)建一個工作線程,用于檢測進(jìn)程堆環(huán)境的內(nèi)存塊分配情況,對一定大小之上的同大小堆塊數(shù)量超過臨界值的堆環(huán)境發(fā)出漏洞利用警告。步驟s107:劫持動態(tài)模塊加載過程中的接口函數(shù),在沒有開啟/dynamicbase狀態(tài)且擁有重定位表的動態(tài)鏈接庫模塊加載時,強(qiáng)行在原加載地址申請內(nèi)存占用該位置,強(qiáng)迫該動態(tài)鏈接庫模塊加載到其他位置。步驟s108:申請地址從0x1開始的一段內(nèi)存,通過修改相關(guān)頁面的pagetableentry(pte),加入特殊標(biāo)識位,設(shè)置其內(nèi)存保護(hù)屬性為不可訪問狀態(tài)。步驟s109:在當(dāng)前進(jìn)程空間中設(shè)置最終異常處理函數(shù),接管最終異常事件。步驟s110:劫持漏洞利用中,被頻繁使用的接口函數(shù),對其流程進(jìn)行異常檢測,見圖2步驟如下,包含步驟s201-步驟s208:步驟s201:對本次函數(shù)調(diào)用過程的參數(shù)進(jìn)行異常檢測,如virtualprotect接口函數(shù)的lpaddress參數(shù)是否位于棧地址空間且flnewprotect參數(shù)是否帶有可執(zhí)行的標(biāo)識位,如參數(shù)異常,執(zhí)行到步驟s208。步驟s202:檢查當(dāng)前環(huán)境中的棧指針寄存器是否位于棧地址空間之內(nèi),如不屬于該范圍,發(fā)出異常,執(zhí)行到步驟s208。步驟s203:檢測當(dāng)前環(huán)境中,在本次接口函數(shù)調(diào)用是的異常處理鏈?zhǔn)欠裢暾?,如存在異常,?zhí)行到步驟s208。步驟s204:檢測該接口函數(shù)的調(diào)用者是否為“call”指令,如果不是,發(fā)出異常,并執(zhí)行到步驟s208。步驟s205:對本次函數(shù)調(diào)用進(jìn)行棧回溯的鏈路環(huán)境分析,檢測該鏈路是否正常,地址環(huán)境是否存在于白名單中,如有異常,執(zhí)行到步驟s208。步驟s206:在經(jīng)常發(fā)生漏洞的模塊黑名單加載時,開啟此模式,用于檢測進(jìn)程中的異常行為,如iexplore創(chuàng)建powershell進(jìn)程。步驟s207:如步驟s206檢測無異常,則本次檢測結(jié)束,等待下次接口函數(shù)的調(diào)用。步驟s208:發(fā)出警告,檢測到漏洞利用的攻擊手段。步驟s111:劫持當(dāng)前系統(tǒng)的線程調(diào)度,使其事件發(fā)生時檢測應(yīng)用程序是否發(fā)生訪問令牌改變的情況,添加對象頭結(jié)構(gòu)體中securitydescriptor指針為0的檢測。步驟s112:監(jiān)控內(nèi)核態(tài)下代碼對用戶層內(nèi)存的訪問及執(zhí)行情況,該事件發(fā)生時發(fā)出警告,檢測到漏洞利用攻擊手段。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
合山市| 武山县| 石嘴山市| 南木林县| 孝昌县| 凤庆县| 武乡县| 麻城市| 凤山市| 黄骅市| 彭水| 安多县| 双桥区| 安阳县| 阿克| 九龙城区| 德格县| 霸州市| 古交市| 邯郸市| 北宁市| 名山县| 天柱县| 娱乐| 焉耆| 福鼎市| 维西| 昭苏县| 界首市| 宜州市| 盐源县| 成都市| 石首市| 武川县| 阿勒泰市| 芜湖县| 合江县| 全州县| 永州市| 明溪县| 钟祥市|