[發明專利]一種源代碼缺陷檢測方法與裝置在審
| 申請號: | 202011586940.5 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112579469A | 公開(公告)日: | 2021-03-30 |
| 發明(設計)人: | 王曉萌;管志斌;辛偉;王嘉捷;崔靜;景湘評 | 申請(專利權)人: | 中國信息安全測評中心 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 李曉光 |
| 地址: | 100085 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 源代碼 缺陷 檢測 方法 裝置 | ||
本申請提供的源代碼缺陷檢測方法與裝置,針對待進行缺陷檢測的軟件源代碼,基于其語法結構,提取軟件源代碼中的數據流關系和控制流關系,并根據數據流關系和控制流關系,對軟件源代碼進行切片處理,生成用于輸入至人工智能模型進行缺陷檢測的蘊含上下文語義的代碼片段,無需編譯即可完成源代碼解析及代碼片段生成過程,從而,從輸入數據角度來看,本申請同時支持輸入可編譯和/或不可編譯的軟件源代碼,擴展了軟件源代碼缺陷檢測的范圍;同時,本申請利用人工智能技術自動學習源代碼解析生成的語法樹、數據流、控制流等代碼上下文蘊含的缺陷模式和正常模式,在不依賴檢測規則、專家經驗和編譯環境前提下即可實現源代碼缺陷檢測。
技術領域
本申請屬于計算機技術領域,尤其涉及一種源代碼缺陷檢測方法與裝置。
背景技術
信息技術處于高速發展階段,軟件增長速度越來越快,導致源代碼規模呈爆炸式增長,其中蘊含的源代碼缺陷同樣會導致安全風險難以預測。如何準確地檢測出源代碼中可能含有的軟件缺陷,如API(應用程序接口)或敏感函數誤用、惡意代碼、后門代碼等,對于保障信息安全,防范惡意攻擊具有重要意義。
目前已有的源代碼缺陷檢測方法,對專家經驗、檢測規則、編譯環境等依賴度較高,在檢測性能、檢測結果展示、使用便捷性上均有不足。其主要缺陷體現在:
1)從輸入數據上看:已有的源代碼缺陷檢測裝置或工具一般需要輸入可編譯的軟件源代碼或已編譯的可執行二進制文件,而不可編譯的軟件源代碼(程序源代碼)無法被檢測,這類裝置或工具限制了能夠進行檢測的軟件源代碼的范圍;
2)從缺陷檢測方法或引擎上看:主要使用靜態分析方法,例如數據流分析、污點分析等,對專家經驗、檢測規則、編譯環境等依賴度較高;
因此,如何至少部分地解決上述技術問題,克服能進行缺陷檢測的軟件源代碼的范圍限制,和/或改善源代碼缺陷檢測對檢測規則、編譯環境和專家經驗依賴度較高的現狀,成為本領域值得研究的課題。
發明內容
有鑒于此,本申請提供了一種源代碼缺陷檢測方法與裝置,用于至少部分地解決上述技術問題,克服能進行缺陷檢測的軟件源代碼的范圍限制,和/或改善源代碼缺陷檢測對檢測規則、編譯環境和專家經驗依賴度較高的現狀。
具體技術方案如下:
一種源代碼缺陷檢測方法,包括:
獲取待進行缺陷檢測的軟件源代碼;
基于所述軟件源代碼的語法結構,提取所述軟件源代碼中的數據流關系和控制流關系;
根據所述數據流關系和所述控制流關系,對所述軟件源代碼進行切片處理,得到所述軟件源代碼的代碼片段;
根據所述軟件源代碼的代碼片段訓練人工智能模型,得到用于源代碼缺陷檢測的人工智能模型;
利用構建的所述人工智能模型對所述軟件源代碼的代碼片段進行缺陷檢測處理,得到所述軟件源代碼的代碼片段的缺陷檢測結果。
可選的,所述基于所述軟件源代碼的語法結構,提取所述軟件源代碼中的數據流關系和控制流關系,包括:
解析并提取所述軟件源代碼中含有的語義信息和/或語法信息,并生成包含所述語義信息和/或語法信息的抽象語法樹;
根據所述抽象語法樹,提取所述軟件源代碼中各個函數內的控制流關系,并生成分別對應于各個函數內的控制流關系的各個控制流圖;
將各個控制流圖進行整合,生成具有函數間控制流關系的控制流圖;
根據所述抽象語法樹,提取所述軟件源代碼中的數據流關系,并生成相對應的數據流圖;
將所述控制流圖和所述數據流圖進行整合,生成包含有控制流關系和數據流關系的控制流-數據流圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國信息安全測評中心,未經中國信息安全測評中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011586940.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用戶信用確定方法和裝置
- 下一篇:一種防止傾倒的牽引椅





