[發(fā)明專利]一種基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法無效
| 申請?zhí)枺?/td> | 201010208187.6 | 申請日: | 2010-06-24 |
| 公開(公告)號: | CN101887497A | 公開(公告)日: | 2010-11-17 |
| 發(fā)明(設(shè)計(jì))人: | 關(guān)墨辰 | 申請(專利權(quán))人: | 北京安天電子設(shè)備有限公司 |
| 主分類號: | G06F21/00 | 分類號: | G06F21/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100084 北京市海淀區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 堆棧 分配 規(guī)律 緩沖區(qū) 溢出 檢測 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別涉及一種基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法。
背景技術(shù)
隨著互聯(lián)網(wǎng)的發(fā)展和普及,通過網(wǎng)絡(luò)進(jìn)行病毒傳播的比例正逐步攀升,伴隨它而來的是越來越突出的信息安全問題。緩沖區(qū)溢出是近年呈上升趨勢的一種攻擊方法。改擊者利用瀏覽器漏洞或者系統(tǒng)漏洞進(jìn)行掛馬攻擊,將惡意代碼覆蓋到指定的位置并執(zhí)行,以達(dá)到攻擊的目的。目前對緩沖區(qū)溢出的檢測方式包話以下幾種:
1、通過緩沖區(qū)內(nèi)容進(jìn)行檢測,判斷是內(nèi)容否是攻擊代碼。此方式檢測精確,但是必須知道攻擊代碼的特征。需要對shellcode和溢出點(diǎn)有較深入的分析,并提取到精確特征。對沒有獲取到樣本的情況沒有檢測能力,特征發(fā)生變化也無法檢測。
2、通過對關(guān)鍵API調(diào)用堆棧進(jìn)行追溯找尋無所屬模塊代碼判斷是否發(fā)生溢出。此種方式必須保證該API被攻擊代碼調(diào)用,如果溢出代碼沒有使用該API則無法檢測。而且檢測時(shí),攻擊事實(shí)上已經(jīng)發(fā)生。
3、通過執(zhí)行溢出攻擊代碼后的行為是否具有威脅來進(jìn)行防御。溢出攻擊執(zhí)行后系統(tǒng)可能已經(jīng)無法正常工作,檢測也就無法進(jìn)行。此方法的局限性較強(qiáng)。
以上所述的檢測方法不能有效的檢測緩沖區(qū)是否溢出,且實(shí)用性不強(qiáng)。
發(fā)明內(nèi)容
針對以上不足,本發(fā)明要解決的技術(shù)問題是提供一種基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法,該方法能夠根據(jù)緩沖區(qū)分配的規(guī)律且分配后的緩沖區(qū)中存在大量重復(fù)內(nèi)容(shellcode),有效地對瀏覽器的緩沖區(qū)溢出攻擊進(jìn)行檢測。
為了解決上述技術(shù)問題,本發(fā)明提供一種基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法,包括:
等待分配緩沖區(qū);
記錄本次緩沖區(qū)分配大小和內(nèi)容;
判斷緩沖區(qū)是否符合分配規(guī)律或緩沖區(qū)是否有重復(fù)內(nèi)容;
在符合步驟c的條件下,檢測緩沖區(qū)溢出攻擊。
進(jìn)一步的,步驟c中,和歷史記錄比較,檢測的內(nèi)容包括但不限于以下:
c1、緩沖區(qū)是否含有重復(fù)內(nèi)容;
c2、緩沖區(qū)的分配大小是否有明顯分配規(guī)律。
本發(fā)明提供的方法可以實(shí)現(xiàn)對已知分配規(guī)律或分配內(nèi)容的緩沖區(qū)溢出攻擊進(jìn)行有效地檢測。不僅僅可以檢測已知樣本或shellcode的漏洞攻擊,還可以檢測符合分配規(guī)律的未知樣本和利用未知漏洞的緩沖區(qū)溢出攻擊,且不會受到不同shellcode調(diào)用不同API的影響。
附圖說明
圖1為本發(fā)明所述的基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法的具體實(shí)施流程圖。
具體實(shí)施方式
下面將結(jié)合附圖及實(shí)施例對本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。
本發(fā)明的基于堆棧分配規(guī)律的緩沖區(qū)溢出的檢測方法如圖1所示,包括如下步驟:
等待分配緩沖區(qū);
記錄本次緩沖區(qū)分配大小和內(nèi)容;
其中,和歷史記錄比較,檢測的內(nèi)容包括但不限于:緩沖區(qū)是否含有重復(fù)內(nèi)容;緩沖區(qū)的分配大小是否有明顯分配規(guī)律;
判斷緩沖區(qū)是否符合分配規(guī)律或緩沖區(qū)是否有重復(fù)內(nèi)容;
在符合步驟C的條件下,檢測緩沖區(qū)溢出攻擊;如果不符合條件,則等待下一次分配緩沖區(qū)。
下面用本發(fā)明的兩個(gè)應(yīng)用實(shí)例進(jìn)一步加以說明。
以瀏覽器Javascript緩沖區(qū)溢出攻擊進(jìn)行檢測為例:
Javascript腳本引擎會調(diào)用SysAllocStringByteLen函數(shù)進(jìn)行內(nèi)存緩沖區(qū)分配。本應(yīng)用實(shí)施例的具體實(shí)施步驟如下:
等待分配緩沖區(qū);
鉤掛SysAllocStringByteLen記錄每次分配的地址和長度;
下一次分配發(fā)生時(shí),檢測歷史記錄中的以下內(nèi)容:
此次分配長度歷史記錄中的近3次在一個(gè)等比或者等差數(shù)列中;
判斷緩沖區(qū)內(nèi)容是否包含在上次分配的地址內(nèi);
如果上述兩點(diǎn)符合則報(bào)告檢測到緩沖區(qū)溢出。
以瀏覽器HTML解析緩沖區(qū)溢出攻擊進(jìn)行檢測為例:
HTML解析引擎會調(diào)用HeapAlloc函數(shù)進(jìn)行內(nèi)存緩沖區(qū)分配。本應(yīng)用實(shí)施例的具體實(shí)施步驟如下:
等待分配緩沖區(qū);
鉤掛HeapAlloc記錄每次分配的地址和長度;
下一次分配發(fā)生時(shí),檢測歷史記錄中的以下內(nèi)容:
此次分配長度歷史記錄中的近3次在一個(gè)等比或者等差數(shù)列中;
判斷緩沖區(qū)內(nèi)容是否包含在上次分配的地址內(nèi);
如果上述兩點(diǎn)符合則報(bào)告檢測到緩沖區(qū)溢出。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京安天電子設(shè)備有限公司,未經(jīng)北京安天電子設(shè)備有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010208187.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 天時(shí)規(guī)律儀
- 找規(guī)律演示器
- 解碼器中ROM的設(shè)計(jì)方法和解碼器
- 面向半導(dǎo)體制造設(shè)備功能仿真的參數(shù)變化規(guī)律模擬系統(tǒng)
- 一種時(shí)空規(guī)律的地鐵乘客聚類和邊緣檢測方法
- 用于插電式混合動(dòng)力汽車綜合型換擋規(guī)律實(shí)現(xiàn)方法
- 生活規(guī)律測定系統(tǒng)和生活規(guī)律測定方法
- 航空發(fā)動(dòng)機(jī)同軸壓氣機(jī)可調(diào)導(dǎo)葉的控制方法
- 錢包(規(guī)律鏤空)
- 端到端??栈顒?dòng)目標(biāo)數(shù)據(jù)規(guī)律實(shí)時(shí)挖掘方法





