[發明專利]一種基于指針分析的軟件漏洞檢測方法有效
| 申請號: | 201410201648.5 | 申請日: | 2014-05-06 |
| 公開(公告)號: | CN104021073B | 公開(公告)日: | 2017-02-01 |
| 發明(設計)人: | 曾慶凱;李會朋 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙)32249 | 代理人: | 陳建和 |
| 地址: | 211164 江蘇省南京市江寧區*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 指針 分析 軟件 漏洞 檢測 方法 | ||
技術領域
本發明涉及復雜數據類型相關的軟件漏洞檢測方法,特別涉及一種基于指針分析的軟件漏洞檢測方法。
背景技術
軟件漏洞是系統容易受到攻擊,影響系統的可用性。軟件漏洞中,復雜數據類型相關的漏洞占了較大的比例,而且在能被利用實現攻擊的漏洞中占比更大。通過對程序的分析和檢測,發現并排除軟件漏洞是常用方法。對可執行程序實現有效的漏洞檢測,復雜數據類型的恢復是關鍵。目前對于復雜數據類型的恢復,大多采用單純的類型推導或者對復雜數據類型訪問間隔進行分析的方法,沒有充分利用指針變量信息,使得復雜數據類型的恢復不夠精確。因此,為充分利用復雜數據類型使用時指針變量的關鍵因素,本發明提出基于指針分析的軟件漏洞檢測方法。
本發明提出一種基于指針集合分析的復雜數據類型恢復和漏洞檢測方法。根據類型敏感點以及類型推導恢復出基本數據類型。復雜數據類型的使用總是和指針操作聯系在一起,通過跟蹤內存的申請和返回中指針的使用來構建指針集合,根據指針集合的變遷和使用的分析,恢復出復雜數據結構。基于指針集合分析來恢復復雜數據類型具有較高的精確性。基于精確的復雜數據類型信息,通過污染分析實施軟件漏洞檢測,可提高漏洞檢測的準確性。本方法的實施有利于發現并排除軟件中脆弱性,對于提高系統的安全性具有重要意義。
發明內容
本發明目的是,提出一種基于指針集合分析的復雜數據類型恢復和漏洞檢測方法。根據類型敏感點以及類型推導恢復出基本數據類型,通過對指針使用的分析,恢復出復雜數據結構。借助Valgrind插裝軟件對待分析程序插裝分析代碼。在完成插裝之后,執行插裝后的程序便可以實現程序數據類型分析和漏洞檢測的目的。
本發明的技術方案是:一種基于指針分析的軟件漏洞檢測方法,步驟如下:借助插裝軟件,有3個主要的插裝操作,分別完成基本數據類型恢復、復雜數據類型恢復和漏洞檢測:
基本數據類型恢復的插裝,其輸入文件為要插裝的可執行程序,插裝操作為:在屬于類型敏感類指令集合的指令后面插入類型收集代碼,然后根據不同的匯編指令插入不同的類型傳播代碼;基本數據類型指程序中int、float等基本變量類型;在程序分析的過程中,當遇到庫函數調用、系統調用、特殊指令時,在其后插入類型收集代碼,以便從中提取出相關的類型信息;根據匯編指令的特征,插入對得到的類型信息進行類型推導的代碼以及類型生成代碼;插裝后的可執行程序運行時,便得到了基本數據類型信息;
復雜數據類型恢復的插裝,其輸入文件為恢復出來的基本數據類型以及要插裝的可執行程序,插裝操作為:在內存申請類指令集合后面插入指針收集代碼,根據不同的匯編指令插入指針分析代碼,在指針分析的過程中便實現了對復雜數據類型的恢復;復雜數據類型主要指數組和結構體,此類變量操作均是通過指針實現;在程序分析的過程中,在程序申請內存類指令的后面插入指針收集代碼,然后根據匯編指令的特點插入其對應的指針傳播、分析以及復雜數據結構重構代碼;插裝后的可執行程序運行時,便得到了復雜數據類型信息;
漏洞檢測的插裝,其輸入文件為恢復出來的復雜數據類型以及要插裝的可執行程序,插裝操作為:在程序的外部輸入位置插入污染標記代碼,根據匯編指令插入污點傳播代碼,在安全敏感點插入安全檢測代碼;在插裝后的程序執行時,當安全檢測代碼檢測到某個變量既包含污染屬性又包含安全敏感屬性,便判定出可能的安全漏洞;以帶有數據類型信息的可執行程序為輸入,進行漏洞檢測代碼的插裝;使用污染分析的方法,在程序外部輸入的指令后面插入污染標記代碼;將內存寫操作所涉及的變量標記為敏感變量,在敏感變量后面插入敏感標記代碼;根據匯編指令特點插入其對應的污染傳播代碼;插裝后的可執行程序運行時,經過污染傳播,當一個變量同時擁有污染和敏感兩個屬性時,則判斷此處易形成漏洞。
本發明有益效果是,根據類型敏感點以及類型推導恢復出基本數據類型。復雜數據類型的使用總是和指針操作聯系在一起,通過跟蹤內存的申請和返回中指針的使用來構建指針集合,根據指針集合的變遷和使用的分析,恢復出復雜數據結構。基于指針集合分析來恢復復雜數據類型具有較高的精確性。基于精確的復雜數據類型信息,通過污染分析實施軟件漏洞檢測,可提高漏洞檢測的準確性。本方法的實施有利于發現并排除軟件中脆弱性,對于提高系統的安全性具有重要意義。
附圖說明
圖1基于指針分析的軟件漏洞檢測流程示意圖;
圖2基本數據類型恢復的插裝流程圖;
圖3復雜數據類型恢復的插裝流程圖;
圖4漏洞檢測的插裝流程圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410201648.5/2.html,轉載請聲明來源鉆瓜專利網。





