[發明專利]基于上下文語義和補丁驗證的漏洞代碼克隆檢測方法有效
| 申請號: | 202110007740.8 | 申請日: | 2021-01-05 |
| 公開(公告)號: | CN112651028B | 公開(公告)日: | 2022-09-30 |
| 發明(設計)人: | 郭軍軍;李浩南;王正源 | 申請(專利權)人: | 西安工業大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F8/41 |
| 代理公司: | 陜西電子工業專利中心 61205 | 代理人: | 程曉霞 |
| 地址: | 710021 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 上下文 語義 補丁 驗證 漏洞 代碼 克隆 檢測 方法 | ||
本發明公開了一種基于上下文語義和補丁驗證的漏洞代碼克隆檢測方法,解決了現有漏洞代碼克隆檢測方法無法獲取漏洞上下文及補丁修補的問題。實現步驟是:獲取漏洞數據;對漏洞脆弱代碼控制語句標記;對漏洞源代碼和補丁進行抽象規范化預處理;構建漏洞函數和漏洞脆弱代碼指紋庫;對待檢測代碼克隆檢測;檢測結果判定及檢測輸出,完成軟件的漏洞克隆檢測。本發明基于代碼指紋,避免了高級別抽象技術準確率低的問題;本發明對代碼抽象預處理操作消除了重命名對檢測準確率的影響;對上下文關系和補丁驗證,降低誤報率;對待檢測代碼做脆弱代碼、控制語句及補丁檢測,應用場景更廣,降低漏報率。用于對軟件中因代碼克隆引起的漏洞的檢測。
技術領域
本發明屬于計算機技術領域,特別涉及軟件漏洞檢測,具體是一種基于上下文語義和補丁驗證的漏洞代碼克隆檢測方法,用于面向源代碼的漏洞克隆檢測。
背景技術
隨著科學技術的不斷發展,軟件的應用越來越廣泛,軟件規模也越來越大,各行各業對軟件的需求也越來越多。同時也存在攻擊者可以利用軟件中存在的漏洞侵入其中,從而造成大量安全事故。開源軟件(OSS)程序的數量以高速增長,OSS程序數量的大量增加自然導致了代碼克隆引起的軟件漏洞的增加,對軟件系統的安全構成了嚴重的威脅,例如,OpenSSL的Heartbleed漏洞(CVE-2014-0160)已經影響了幾種類型的系統(包括網站、web服務器、操作系統發行版和軟件應用程序)。被廣泛使用的開源加密工具OpenSSL在2016年3月暴露出的“水牢漏洞”導致全球三分之二的網站信息安全遭到嚴重威脅,我國有超過十萬家網站受到影響。
脆弱代碼是指導致軟件漏洞產生的關鍵代碼,代碼克隆是指復制和粘貼其他軟件的一部分的行為,如果被正確地利用,是有用的。然而在實踐中,代碼克隆往往被認為是一種不良的編程行為,對脆弱代碼的克隆可能會在開發過程中引入漏洞。代碼克隆檢測作為一個重要的軟件工程領域,旨在自動化地檢測一個或多個代碼庫中功能上等效的代碼塊或代碼段集合。代碼克隆檢測在軟件度量、剽竊檢測、關注點挖掘、版權侵權檢測、代碼壓縮、病毒檢測和檢測bug等領域具有廣泛而重要的用途。
目前,代碼克隆主要包括四種類型,被廣泛接受:Type-1:精確克隆。代碼直接復制,不做任何修改。Type-2:更名為克隆。除了標識符、文本、類型、空格、順序和注釋的修改外,這些都是語法上相同的克隆。Type-3:重組克隆。基于Type-2的克隆,將進一步修改復制的代碼片段,如添加、刪除或修改語句。Type-4:語義克隆。克隆的兩個代碼片段實現了相同的函數,具有相同的語義,但它們的語法不同。代碼修改級別的增加將直接導致代碼克隆檢測難度的增加。
作為面向源代碼級別漏洞檢測中的重要手段,現階段國內外提出了多種軟件脆弱性代碼克隆檢測方法。在CCFinder中,采用令牌級粒度對程序進行詞法分析,以便將其轉換為令牌序列或令牌包的技術。然后對標記序列進行相似性比較。詞法組件序列(即標記)的相似性是通過后綴樹算法來度量的,這在計算上是昂貴的,并且會消耗大量內存。ReDeBug以一組行為處理單元。它在源代碼中滑動一個n(默認情況下為4)行的窗口,并對每個窗口應用三個不同的散列函數。文件之間的代碼克隆是通過布魯姆過濾器中的成員檢查來檢測的,布魯姆過濾器存儲每個窗口的散列值。盡管基于行窗口滑動技術使重調試能夠檢測一些Type-3克隆,但ReDeBug不能檢測變量被重命名或數據類型被更改的Type-2克隆。DECKARD為每個文件構建ast,然后從ast中提取特征向量。根據歐氏距離對向量進行聚類后,在歐氏空間內彼此接近的向量被識別為代碼克隆。這種基于樹的方法需要大量的執行時間,因為子圖同構問題是一個眾所周知的耗時的np完全問題。Kim等人提出了一種高效檢測函數級脆弱性代碼克隆的方法VUDDY,利用函數簽名比對與函數長度過濾實現了高效性與可擴展性,能夠以較高的精確度識別已知漏洞的代碼克隆。但該方法只能應對簡單代碼修改,不支持語序修改、冗余代碼插入等常見的代碼修改手段,應用場景具有較大的局限。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安工業大學,未經西安工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110007740.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種膠原蛋白改良型面膜的制備方法
- 下一篇:一種中斷檢測方法、裝置和系統





