[發明專利]一種Java源代碼缺陷檢測方法及裝置在審
| 申請號: | 201410277241.0 | 申請日: | 2014-06-19 |
| 公開(公告)號: | CN104021084A | 公開(公告)日: | 2014-09-03 |
| 發明(設計)人: | 韓麗芳;崔寶江;侯婷婷;劉楠;高昆侖 | 申請(專利權)人: | 國家電網公司;中國電力科學研究院;北京華夏信安科技有限公司;江蘇省電力公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100031 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 java 源代碼 缺陷 檢測 方法 裝置 | ||
1.一種Java源代碼缺陷檢測方法,其特征在于,所述方法包括:
對Java源程序字節碼進行靜態分析,生成函數調用圖;
根據所述函數調用圖生成保存有所述Java源程序基本信息的關系數據庫;
根據預先建立的漏洞模式,以關系數據庫查詢的方式對所述Java源程序進行指針別名分析和污點分析;
根據污點分析的結果,產生缺陷報告。
2.根據權利要求1所述Java源代碼缺陷檢測方法,其特征在于,所述以關系數據庫查詢的方式對所述Java源程序進行指針別名分析,具體包括:
獲得每個函數調用圖以及函數依賴分析生成的函數調用序列;
以main函數為入口,根據函數調用持續迭代計算每個過程的指針信息;
根據所述函數調用序列分別計算每個語句對所述指針信息的影響;
其中,在此框架中過程內分析與過程間分析是并行的,當在過程內分析,遇到函數調用時,則進行過程間的分析;當在過程間分析,如果將調用者名字空間內的信息映射到被調用者名字空間中,則可進入過程間分析。
3.根據權利要求1所述Java源代碼缺陷檢測方法,其特征在于,所述以關系數據庫查詢的方式對所述Java源程序進行污點分析,具體包括:
通過查詢所述關系數據庫,并與漏洞模式比對,找到將用戶數據引入到所述Java源程序中的函數,并將其返回結果標記為污點數據;
記錄所述污點數據在所述Java源程序中的傳播;
通過查詢所述關系數據庫,并與漏洞模式比對,找到使所述污點數據執行的函數,并記錄污點傳播的過程。
4.一種Java源代碼缺陷檢測裝置,其特征在于,所述裝置包括:
程序識別模塊,用于對Java源程序字節碼進行靜態分析,生成函數調用圖,根據所述函數調用圖生成保存有所述Java源程序基本信息的關系數據庫;?
解釋模塊,用于對Java源程序安全漏洞描述進行解釋;
靜態數據流分析模塊,用于根據預先建立的漏洞模式,以關系數據庫查詢的方式對所述Java源程序進行指針別名分析;
安全漏洞分析模塊,以關系數據庫查詢的方式對所述Java源程序進行污點分析,根據污點分析的結果,產生缺陷報告。
5.根據權利要求4所述Java源代碼缺陷檢測裝置,其特征在于,所述解釋模塊進一步包括:
別名解釋單元,用于使用形式化的描述語言對別名分析規則進行描述;
漏洞模式解釋單元,用于使用形式化的語言完整描述SQL注入等漏洞。
6.根據權利要求4所述Java源代碼缺陷檢測裝置,其特征在于,所述安全漏洞分析模塊進一步包括:
污點數據引入單元,用于通過查詢所述關系數據庫,并與漏洞模式比對,找到將用戶數據引入到所述Java源程序中的函數,并將其返回結果標記為污點數據;
污點數據傳播單元,用于記錄所述污點數據在所述Java源程序中的傳播;
污點數據執行單元,通過查詢所述關系數據庫,并與漏洞模式比對,找到使所述污點數據執行的函數,并記錄污點傳播的過程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國家電網公司;中國電力科學研究院;北京華夏信安科技有限公司;江蘇省電力公司,未經國家電網公司;中國電力科學研究院;北京華夏信安科技有限公司;江蘇省電力公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410277241.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:制備鈦白粉氣粉的系統
- 下一篇:一種觸控面板結構





