[發明專利]一種基于數據流切片的軟件識別方法有效
| 申請號: | 201110169906.2 | 申請日: | 2011-06-22 |
| 公開(公告)號: | CN102298681A | 公開(公告)日: | 2011-12-28 |
| 發明(設計)人: | 房鼎益;李磊;湯戰勇;陳曉江;雷遠曉;郭俊;何路;龔曉慶;王妮;王懷軍;高寶健;邢天璋 | 申請(專利權)人: | 西北大學 |
| 主分類號: | G06F21/22 | 分類號: | G06F21/22 |
| 代理公司: | 西安恒泰知識產權代理事務所 61216 | 代理人: | 李鄭建 |
| 地址: | 710127 陜西省西安市*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 數據流 切片 軟件 識別 方法 | ||
技術領域
本發明屬于計算機技術領域,涉及一種軟件識別方法,特別是應用于軟件安全研究的軟件版權保護和病毒特征檢測。更確切的說是一種基于數據流切片的軟件識別方法。?
背景技術
隨著軟件應用的普及和計算機技術的飛速發展,在軟件的使用帶來巨大效益的同時,由于軟件自身特征:無形性、抽象性、系統性、范域性、依附性、非損性、復制性和演化性等,也帶來了巨大的安全威脅。軟件安全威脅主要分成兩大類:一類是由軟件盜版帶來的巨大損失,另一類是由惡意代碼造成的巨大損失。?
軟件盜版技術和惡意代碼攻擊技術不斷智能化和多樣化,軟件保護技術也不斷專業化和多樣化。隨著軟件技術的發展,怎樣準確的識別一個軟件成為軟件版權保護和惡意代碼檢測研究所面臨的一個普遍問題。?
目前,在軟件版權保護和惡意代碼檢測研究中,針對軟件特征所采用的方法主要有:TaNaMM胎記,WPP胎記,動態N-gram軟件特征等。其中,TaNaMM胎記提出的是基于靜態代碼的軟件胎記。在軟件版權證明中引入了軟件靜態特征的思想,隱蔽性強、效率高,也通過相似度算法對保持語義的變形攻擊表現出一定的抵御能力,但是依然無法從根本上解決針對TaNaMM的指令變換,花指令和指令亂序攻擊,因而TaNaMM的魯棒性依然很差。WPP相似度算法魯棒性高,有一定的置信度,但對于大型程序零水印算法需要計算整個程序的路徑,其性能和效率低。動態n-gram胎記通過輸入對程序執行指令進行動態選擇,極大提高了攻擊者的定位難度。但是對于軟件指令不管是匯編指令還是高級語言都可以用相同功能的指令去替換,例如?call指令相當于push和jump。如果攻擊者對于程序的所有指令進行等價替換,則動態K-gram的魯棒性降低。?
發明內容
針對上述現有技術存在的缺陷或不足,本發明的目的在于,提出一種基于數據流切片的軟件識別方法,來支持軟件版權保護和病毒的檢測。?
為了實現上述任務,本發明采取如下的技術解決方案:?
一種基于數據流切片的軟件識別方法,其特征在于,該方法使用計算機系統對進行軟件識別和病毒特征檢測,所述的計算機系統至少包括一個特征提取模塊,該特征提取模塊內有數據依賴提取模塊、數據依賴圖切片模塊、拓撲排序模塊和切片規則模塊;其中的數據依賴提取模塊和一個數據收集模塊連接,所述的數據依賴提取模塊和數據收集模塊有共同的輸入,特征提取模塊和數據收集模塊的輸出均與相似度比較模塊相連;其中:
數據依賴提取模塊,用以提取原始軟件本身的數據流及其依賴關系,并將提取出來的數據流用數據依賴圖表示;
數據依賴圖切片模塊,用以對提取出來的原始軟件依賴圖由切片規則模塊中自定義的規則進行化簡;
拓撲排序模塊,用以對數據依賴圖切片模塊化簡的數據依賴圖進行拓撲排序,最終形成軟件特征文檔;
切片規則模塊,根據數據依賴圖產生數據流切片的規則;
數據依賴圖切片模塊,通過使用切片規則模塊中的數據流切片規則對數據依賴圖進行化簡。
數據收集模塊,用拓撲排序算法在被檢測軟件運行過程中,收集程序中每條指令執行后寄存器和對應的內存中的數據,形成一個數據文檔;?
相似度比較模塊,把拓撲排序模塊與數據收集模塊分別得到的軟件特征文檔和數據文檔進行相似度比較,然后進行判別;
步驟一,根據原始軟件,數據依賴提取模塊根據運算符提取數據流,根據表達式提取數據間的依賴關系;并將提取出來的數據流用數據依賴圖表示;
步驟二,數據依賴圖切片模塊對提取出來的數據流圖根據切片規則模塊產生的數據流切片規則進行化簡;所述數據流切片規則具體如下:
(1)由于算法的輸出性質,導致軟件至少有一個輸出,軟件所有的指令對數據的操作都圍繞著輸出數據的返回值或傳出值展開,并將與輸出數據無依賴關系的數據去除;
(2)由于算法有可能需要隨機數據參與輸出數據的運算,隨機數據因為數據不確定,及對它有依賴關系的數據也不確定,不能用來表示軟件特征,因此將隨機數據節點刪除,并對隨機數可達節點都刪除;
(3)由于軟件的靜態數據的確定性,不隨輸入數據而變換,而軟件攻擊的方法可以將靜態數據和指令結合,進行相應整體調整,造成獲得的數據流之間的差異,所以要去除數據依賴圖中的靜態數據節點;
步驟三,拓撲排序模塊將沒有直接或間接數據依賴關系的節點使用集合表示,將有直接或間接數據依賴關系的節點利用向量表示,向量順序表示節點的先后順序,形成軟件特征,該軟件特征以字符串的形式表示;
所述的拓撲排序算法具體描述如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西北大學,未經西北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110169906.2/2.html,轉載請聲明來源鉆瓜專利網。





