[發明專利]一種軟件安全加固方法在審
| 申請號: | 201711337427.0 | 申請日: | 2017-12-14 |
| 公開(公告)號: | CN107992724A | 公開(公告)日: | 2018-05-04 |
| 發明(設計)人: | 王俊峰;吳鵬;田斌;王標;劉東 | 申請(專利權)人: | 四川大學 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F21/56;G06F9/455 |
| 代理公司: | 成都信博專利代理有限責任公司51200 | 代理人: | 張輝 |
| 地址: | 610065 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 安全 加固 方法 | ||
技術領域
本發明涉及計算機軟件安全領域,特別是一種全方位的、分層次的軟件安全加固方法。
背景技術
軟件安全是指采用工程化的方法使得軟件在敵對攻擊的情況下仍能夠正常工作的思想,即采用系統化、規范化和數量化的方法來指導構建安全的軟件。軟件安全作為信息技術發展的基石,對社會經濟增長、國家發展具有重要推動力,標志著一個國家的戰略方向,成為衡量一個國家綜合國力的標志之一。
軟件安全面臨的主要問題包括:軟件被非法傳播使用導致知識產權被破壞、軟件被逆向分析而導致軟件的惡意破壞、軟件潛在漏洞被發掘并被惡意利用等。2015年丹麥安全公司Secunia的研究團隊對來自263個軟件供應商的2484款軟件進行漏洞掃描,結果發現總漏洞數為16081個。與此同時,軟件盜版帶來的層出不窮的侵權事件是造成信息泄露的重要原因。目前針對軟件安全加固方面的研究,通常以軟件的某一側面為保護對象,主要集中軟件防盜版、防逆向、授權加密和防篡改等方面,所使用的技術包括軟件水印、代碼混淆、軟件加殼、虛擬機保護技術等。
綜上可知,當前軟件安全形勢嚴峻,同時對應的安全加固技術僅從一個或某幾個側面來對軟件進行增強保護,沒有形成一套完整的軟件安全加固保護體系,不能對軟件進行全面有效的保護。
發明內容
本發明所要解決的技術問題是提供一種軟件安全加固方法,針對軟件侵權、軟件逆向、軟件漏洞等各種軟件安全問題,實現軟件的安全加固防護。
為解決上述技術問題,本發明采用的技術方案是:一種軟件安全加固方法,包括以下步驟:
步驟1:對軟件的源代碼進行安全加固,包括源代碼自身的安全及形式安全,即:
首先根據源代碼的類型來初步選擇工具集;其次根據當前掃描的目標,在選擇的工具集中選擇最適合的漏洞掃描工具;再次是執行漏洞掃描,生成掃描結果報告;最后根據掃描結果報告來對源文件做修改;
步驟2:把源代碼編譯為可執行文件級后,對可執行文件進行加固,包括靜態防護與動態防護;其中,靜態防護為:
首先對軟件實施布局混淆,將可讀性好的代碼修改為人為難以閱讀的代碼,其次實施數據混淆,對軟件涉及的數據做等價替換,最后實施控制混淆,從軟件執行流程上做等價替換,達到軟件不能分析出原軟件算法邏輯的程度;
動態防護為:利用技術手段檢測當前進程是否處于被調試環境中,如果正在被調試則改變正常的執行路徑或者修改自身程序讓自身崩潰,從而增加調試時間和復雜度,以此阻止可執行文件被調試跟蹤;
步驟3:將軟件與使用者物理隔離,保護軟件運行環境安全。
進一步的,所述步驟1對軟件的源代碼進行安全加固的步驟分為多次執行,其執行的依據是針對不同的源代碼,分為通用的漏洞掃描及專用的漏洞掃描。
進一步的,所述步驟2中動態防護采用反調試方法:使用系統函數檢測、特征檢測及行為檢測相結合的方式來實現反調試,首先利用操作系統中提供系統函數(比如Windows系統中的IsDebuggerPresent、CheckRemoteDebuggerPresent函數)來檢測自身是否正在被調試,其次枚舉當前運行的所有進程,并在進程的內存空間中搜索不同調試器的特征代碼段及調試器窗口,再次利用軟件正常運行與調試運行的行為差異(比如執行指令的時間差),實現軟件的反調試功能。
進一步的,所述步驟3具體為:軟件部署在專用的云平臺中,且應用以獨立的虛擬機部署,即單一的應用部署在虛擬機隔離的不同主機上,實現應用的隔離部署;客戶端通過云桌面或者SaaS模式來訪問應用,用戶與軟件的交互只有輸入與輸出,整個使用過程不接觸物理的軟件。
與現有技術相比,本發明的有益效果是:1)軟件加固通過分層級實現,在不同的層中采用不同的技術手段來保證來增強軟件的安全,源代碼采用漏洞掃描技術,二進制文件采用混淆及反調試技術,運行環境采用隔離部署技術,全方位提高軟件的安全能力,可保證軟件不被惡意破壞及侵權傳播,保證軟件安全。2)本方法既適用于新設計軟件也適用于的現有成熟軟件,前者建議采用本方法的三層防護方案,而后者可以根據實際需要來針對其中一層或者多層做軟件安全加固防護。
附圖說明
圖1是本發明中軟件安全加固體系整體結構圖。
圖2是本發明中源碼漏洞檢測示意圖。
圖3是本發明中可執行文件混淆方法。
圖4是本發明中軟件隔離部署方法。
具體實施方式
下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川大學,未經四川大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711337427.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于動態鏈接庫的Java源碼保護方法
- 下一篇:包裹機器人





