[發明專利]一種基于指針分析的軟件漏洞檢測方法有效
| 申請號: | 201410201648.5 | 申請日: | 2014-05-06 |
| 公開(公告)號: | CN104021073B | 公開(公告)日: | 2017-02-01 |
| 發明(設計)人: | 曾慶凱;李會朋 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙)32249 | 代理人: | 陳建和 |
| 地址: | 211164 江蘇省南京市江寧區*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 指針 分析 軟件 漏洞 檢測 方法 | ||
1.一種基于指針分析的軟件漏洞檢測方法,其特征是步驟如下:借助插裝軟件,有3個主要的插裝操作,分別完成基本數據類型恢復、復雜數據類型恢復和漏洞檢測:?
基本數據類型恢復的插裝,其輸入文件為要插裝的可執行程序,插裝操作為:在屬于類型敏感類指令集合的指令后面插入類型收集代碼,然后根據不同的匯編指令插入不同的類型傳播代碼;基本數據類型指程序中int、float等基本變量類型;在程序分析的過程中,當遇到庫函數調用、系統調用、特殊指令時,在其后插入類型收集代碼,以便從中提取出相關的類型信息;根據匯編指令的特征,插入對得到的類型信息進行類型推導的代碼以及類型生成代碼;插裝后的可執行程序運行時,便得到了基本數據類型信息;?
復雜數據類型恢復的插裝,其輸入文件為恢復出來的基本數據類型以及要插裝的可執行程序,插裝操作為:在內存申請類指令集合后面插入指針收集代碼,根據不同的匯編指令插入指針分析代碼,在指針分析的過程中便實現了對復雜數據類型的恢復;復雜數據類型主要指數組和結構體,此類變量操作均是通過指針實現;在程序分析的過程中,在程序申請內存類指令的后面插入指針收集代碼,然后根據匯編指令的特點插入其對應的指針傳播、分析以及復雜數據結構重構代碼;插裝后的可執行程序運行時,便得到了復雜數據類型信息;?
漏洞檢測的插裝,其輸入文件為恢復出來的復雜數據類型以及要插裝的可執行程序,插裝操作為:在程序的外部輸入位置插入污染標記代碼,根據匯編指令插入污點傳播代碼,在安全敏感點插入安全檢測代碼;在插裝后的程序執行時,當安全檢測代碼檢測到某個變量既包含污染屬性又包含安全敏感屬性,便判定出可能的安全漏洞;以帶有數據類型信息的可執行程序為輸入,進行漏洞檢測代碼的插裝;使用污染分析的方法,在程序外部輸入的指令后面插入污染標記代碼;將內存寫操作所涉及的變量標記為敏感變量,在敏感變量后面插入敏感標記代碼;根據匯編指令特點插入其對應的污染傳播代碼;插裝后的可執行程序運行時,經過污染傳播,當一個變量同時擁有污染和敏感兩個屬性時,則判斷此處易形成漏洞。?
2.根據權利要求1所述的基于指針分析的軟件漏洞檢測方法,其特征是采用插裝軟件Valgrind,實現對可執行程序的動態分析;借助此平臺完成對可執行程序的插裝;對插裝之后的程序進行執行,所插裝的代碼便得到了執行,進而實施數據類型恢復和軟件漏洞檢測;啟動Valgrind程序,指定使用的插裝操作、要插裝的程序、庫函數查詢文件以及輸出文件等,便能實現相應的插裝操作;?
在基本數據類型恢復的插裝中,需要用到庫函數查詢表;此表用來提供類型敏感類指令的具體類型信息,存儲在配置文件FunInfo.conf中,Valgrind以字符串形式把表讀入內存中;當檢測到相關的庫函數調用時,以函數名為關鍵字查詢該表,得到具體的類型信息;表的結構是:函數名、參數個數、參數1類型、參數2類型、返回結果參數類型,以換行作為一個函數信息的結束;?
為記錄基本和復雜數據類型信息,使用的以下數據結構:變量標記標識每個寄存器、內存位置變量,包括變量地址、時間戳、變量長度;變量地址表示變量申請的內存位置或所用寄存器名稱,時間戳是變量首次使用時的指令地址,變量長度表示變量在內存中的長度,以字節為單位;?
指針屬性鏈表節點:屬性鏈表用來表明指針的屬性,其每個節點表示該指針所指向復雜數據結構中的一個基本數據變量結構,包含該變量在復雜數據結構中的起始位置、結束位置、類型信息;?
指針集合屬性是一個鏈表結構,其頭結點記錄的是該指針所指向空間的內存長度;隨著程序執行,復雜數據結構恢復模塊會不斷的更新屬性信息;其更新的方式為在該鏈表中加入后續節點以不斷識別結構體信息;?
指針集合是指向具有相同結構體的指針的集合;其指針集合標記包括指針指向地址、時間戳、指針集合屬性;指針指向地址表示指針指向的內存位置的首地址,時間戳表示該指針集合被創建時的指令地址,指針集合屬性表示指針集合的屬性。?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410201648.5/1.html,轉載請聲明來源鉆瓜專利網。





