基于行為的軟件胎記技術(shù)研究
本文選題:軟件抄襲 + 軟件胎記 ; 參考:《南京大學(xué)》2013年碩士論文
【摘要】:隨著軟件產(chǎn)業(yè)的迅猛發(fā)展以及開源項(xiàng)目的日益流行,軟件竊取已經(jīng)嚴(yán)重威脅軟件產(chǎn)業(yè)的健康發(fā)展。為保護(hù)軟件的知識(shí)產(chǎn)權(quán),有學(xué)者提出了軟件水印技術(shù)。軟件水印可以用來(lái)標(biāo)識(shí)軟件的作者、軟件的發(fā)行商、軟件的所有者以及軟件的使用者等信息,可以用來(lái)鑒別出非法復(fù)制和盜用的軟件產(chǎn)品。然而,軟件水印需要額外嵌入代碼,并且很容易被軟件混淆和編譯器優(yōu)化所破壞。因此,繼軟件水印技術(shù)之后,軟件胎記利用程序的某些特征,可以用來(lái)驗(yàn)證軟件的來(lái)源,防止軟件盜版。目前最為先進(jìn)的軟件胎記技術(shù)—基于軟件動(dòng)態(tài)系統(tǒng)調(diào)用依賴關(guān)系圖(SCDG),根據(jù)程序動(dòng)態(tài)運(yùn)行時(shí)的行為特征,捕捉系統(tǒng)調(diào)用之間參數(shù)的依賴關(guān)系,并以此獨(dú)有的特點(diǎn)作為軟件的胎記。這種技術(shù)能夠檢測(cè)出程序之間部分拷貝的情況,同時(shí)能夠較好的躲過(guò)已有的混淆技術(shù)和無(wú)用系統(tǒng)調(diào)用(no-ops)的插入攻擊。在本文中,我們重點(diǎn)對(duì)基于系統(tǒng)調(diào)用依賴關(guān)系圖(SCDG)的軟件胎記技術(shù)及其混淆技術(shù)進(jìn)行了研究。首先,我們利用Valgrind提供的動(dòng)態(tài)二進(jìn)制分析框架和對(duì)外編程接口,在已有的Hawk工具的基礎(chǔ)上,實(shí)現(xiàn)了這種基于系統(tǒng)調(diào)用依賴關(guān)系圖的軟件胎記的提取。同時(shí)我們對(duì)比了經(jīng)典的圖-子圖匹配算法,選擇了更加適合我們實(shí)驗(yàn)背景的VF2算法,對(duì)得到的軟件胎記進(jìn)行匹配,并利用NetworkX庫(kù)開發(fā)了相應(yīng)的檢查工具。在這些工作的基礎(chǔ)上,我們繼續(xù)分析了這種基于系統(tǒng)調(diào)用依賴關(guān)系圖的軟件胎記技術(shù)的弱點(diǎn),提出一種同語(yǔ)義轉(zhuǎn)換的系統(tǒng)調(diào)用混淆技術(shù),可以巧妙地躲避已有的檢測(cè)。我們從系統(tǒng)調(diào)用依賴關(guān)系圖(SCDG)的結(jié)構(gòu)入手,選擇在原有的系統(tǒng)調(diào)用依賴關(guān)系對(duì)中插入冗余的系統(tǒng)調(diào)用,用一個(gè)新的系統(tǒng)調(diào)用和兩條依賴邊替換原來(lái)的一條依賴邊,以此改變?cè)械膱D結(jié)構(gòu)并保證原有的程序功能不變。我們選用已被證實(shí)存在復(fù)用關(guān)系的兩個(gè)程序?qū)ξ覀兊南到y(tǒng)調(diào)用依賴關(guān)系的提取工作進(jìn)行驗(yàn)證,并且經(jīng)過(guò)我們的檢查工具,確實(shí)發(fā)現(xiàn)存在抄襲。這同時(shí)也證明了我們工作的準(zhǔn)確性。此外,我們還從有效性和性能兩方面,對(duì)我們的混淆系統(tǒng)進(jìn)行了評(píng)估。實(shí)驗(yàn)證明,我們的混淆方案能夠有效破壞原有的軟件胎記,達(dá)到了很好的混淆目的。并且我們系統(tǒng)的性能損耗很低,且這些開銷基本上來(lái)自新插入的系統(tǒng)調(diào)用。雖然,我們的混淆技術(shù)可以用于軟件胎記的攻擊,但是我們旨在軟件保護(hù)領(lǐng)域做出新的探索,無(wú)意增加新的攻擊。我們提出的基于系統(tǒng)調(diào)用的混淆技術(shù),也為實(shí)現(xiàn)軟件多樣性提供了新的思路。
[Abstract]:With the rapid development of software industry and the increasing popularity of open source projects, software theft has seriously threatened the healthy development of software industry. In order to protect the intellectual property of software, some scholars put forward software watermarking technology. Software watermarking can be used to identify software authors, software distributors, software owners, software users and other information, can be used to identify illegal replication and theft of software products. However, software watermarking requires additional embedded code and is easily compromised by software confusion and compiler optimization. Therefore, after software watermarking technology, software birthmarks can be used to verify the source of software and prevent software piracy. At present, the most advanced software birthmark technology, based on the software dynamic system call dependency graph (SCDGG), captures the parameter dependence relationship between the system calls according to the behavior characteristics of the program dynamic running, and this unique feature is used as the birthmark of the software. This technique can detect some copies between programs, and avoid the obfuscation technique and no-ops insertion attack. In this paper, we focus on the software birthmark technology based on system call dependency graph (SCDG) and its obfuscation technique. Firstly, using the dynamic binary analysis framework provided by Valgrind and the external programming interface, we realize the extraction of birthmarks based on the system call dependency graph based on the existing Hawk tools. At the same time, we compare the classical graph-subgraph matching algorithm, select the VF2 algorithm which is more suitable for our experimental background, match the birthmarks of the software, and develop the corresponding checking tools by using the NetworkX library. On the basis of these works, we continue to analyze the weakness of this software birthmark technology based on system call dependency graph, and propose a system call confusion technique with semantic transformation, which can avoid the existing detection skillfully. Starting with the structure of the system call dependency graph (SCDG), we choose to insert redundant system calls into the original system call dependency pair, and replace the original dependency edge with a new system call and two dependent edges. This changes the original graph structure and ensures that the original program function remains unchanged. We use two programs that have been proved to have reuse relationship to verify the extraction of system call dependency. Through our checking tools, we do find that plagiarism exists. It also proves the accuracy of our work. In addition, we evaluate our confusion system in terms of effectiveness and performance. Experiments show that our confusion scheme can effectively destroy the original software birthmarks, and achieve a good purpose of confusion. And our system performance loss is very low, and these overhead basically comes from the newly inserted system call. Although our obfuscation technology can be used to attack software birthmarks, we aim to make new explorations in the field of software protection and have no intention of adding new attacks. The obfuscation technique based on system call also provides a new way to realize the diversity of software.
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2013
【分類號(hào)】:TP309
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 李夢(mèng)雨;;關(guān)于系統(tǒng)調(diào)用的發(fā)展研究綜述[J];河北經(jīng)貿(mào)大學(xué)學(xué)報(bào)(綜合版);2010年01期
2 姚立紅 ,訾小超 ,黃皓 ,茅兵 ,謝立;基于系統(tǒng)調(diào)用特征的入侵檢測(cè)研究[J];電子學(xué)報(bào);2003年08期
3 羅寧,喻莉;一種基于系統(tǒng)調(diào)用異常檢測(cè)的改進(jìn)算法[J];電子工程師;2005年07期
4 劉雪飛;王申強(qiáng);吳伯橋;馬恒太;;基于系統(tǒng)調(diào)用的入侵檢測(cè)新方法[J];計(jì)算機(jī)應(yīng)用研究;2006年12期
5 陶芬;尹芷儀;傅建明;;基于系統(tǒng)調(diào)用的軟件行為模型[J];計(jì)算機(jī)科學(xué);2010年04期
6 吳瀛;江建慧;張蕊;;基于系統(tǒng)調(diào)用的入侵檢測(cè)研究進(jìn)展[J];計(jì)算機(jī)科學(xué);2011年01期
7 劉竹;陳晶;方良;;基于支持向量數(shù)據(jù)描述的系統(tǒng)調(diào)用軌跡異常檢測(cè)[J];計(jì)算機(jī)應(yīng)用與軟件;2012年01期
8 李珍;田俊峰;楊曉暉;;基于系統(tǒng)調(diào)用屬性的程序行為監(jiān)控[J];計(jì)算機(jī)研究與發(fā)展;2012年08期
9 吳瀛;江建慧;;基于進(jìn)程軌跡最小熵長(zhǎng)度的系統(tǒng)調(diào)用異常檢測(cè)[J];計(jì)算機(jī)應(yīng)用;2012年12期
10 資武成,徐鵬飛;一種基于系統(tǒng)調(diào)用的主機(jī)入侵檢測(cè)及實(shí)現(xiàn)[J];計(jì)算機(jī)與現(xiàn)代化;2003年01期
相關(guān)會(huì)議論文 前6條
1 吳瀛;江建慧;;一種基于異常模式的系統(tǒng)調(diào)用異常檢測(cè)[A];第六屆中國(guó)測(cè)試學(xué)術(shù)會(huì)議論文集[C];2010年
2 陳林博;江建慧;張丹青;;基于多版本冗余進(jìn)程的容侵系統(tǒng)[A];第十四屆全國(guó)容錯(cuò)計(jì)算學(xué)術(shù)會(huì)議(CFTC'2011)論文集[C];2011年
3 朱國(guó)強(qiáng);劉真;李宗伯;;基于程序行為分析的入侵檢測(cè)技術(shù)研究[A];全國(guó)網(wǎng)絡(luò)與信息安全技術(shù)研討會(huì)'2005論文集(上冊(cè))[C];2005年
4 符蓉;徐向陽(yáng);王靖;;Linux下基于交叉視圖的隱蔽惡意代碼檢測(cè)[A];第八屆全國(guó)信息隱藏與多媒體安全學(xué)術(shù)大會(huì)湖南省計(jì)算機(jī)學(xué)會(huì)第十一屆學(xué)術(shù)年會(huì)論文集[C];2009年
5 石玉平;何銀南;郭俊杰;張琳;;機(jī)電測(cè)控系統(tǒng)調(diào)用Matlab函數(shù)的實(shí)現(xiàn)[A];制造技術(shù)自動(dòng)化學(xué)術(shù)會(huì)議論文集[C];2002年
6 高巖;董占球;;有限目標(biāo)的系統(tǒng)級(jí)防護(hù)技術(shù)的研究與實(shí)現(xiàn)[A];第十八次全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì)論文集[C];2003年
相關(guān)重要報(bào)紙文章 前1條
1 鄭林;保護(hù)關(guān)鍵服務(wù)器[N];網(wǎng)絡(luò)世界;2002年
相關(guān)博士學(xué)位論文 前3條
1 徐明;基于系統(tǒng)調(diào)用的異常入侵檢測(cè)技術(shù)及IDS擴(kuò)展功能的研究[D];浙江大學(xué);2003年
2 尹芷儀;基于結(jié)構(gòu)指紋和污點(diǎn)跟蹤的軟件行為模型研究[D];武漢大學(xué);2010年
3 張桂玲;基于軟計(jì)算理論的入侵檢測(cè)技術(shù)研究[D];天津大學(xué);2006年
相關(guān)碩士學(xué)位論文 前10條
1 蘇杰;基于系統(tǒng)調(diào)用的入侵檢測(cè)研究[D];華中科技大學(xué);2007年
2 徐文龍;虛擬化系統(tǒng)進(jìn)程防護(hù)技術(shù)研究與實(shí)現(xiàn)[D];南京理工大學(xué);2015年
3 趙尚杰;云環(huán)境下多層次粒度可控的安全審計(jì)方法研究[D];哈爾濱工業(yè)大學(xué);2015年
4 楊洋;基于Linux進(jìn)程行為的入侵檢測(cè)技術(shù)研究[D];電子科技大學(xué);2014年
5 馮威;基于內(nèi)核對(duì)象的動(dòng)態(tài)惡意代碼檢測(cè)[D];哈爾濱工業(yè)大學(xué);2014年
6 王新澈;基于行為的軟件胎記技術(shù)研究[D];南京大學(xué);2013年
7 符鶴;基于系統(tǒng)調(diào)用的入侵檢測(cè)實(shí)現(xiàn)與評(píng)估[D];中南大學(xué);2005年
8 王宇;基于系統(tǒng)調(diào)用異常檢測(cè)的深度分析方法[D];華中科技大學(xué);2005年
9 朱朝暉;系統(tǒng)調(diào)用在入侵檢測(cè)中的研究與應(yīng)用[D];廣東工業(yè)大學(xué);2008年
10 許鋁才;采用系統(tǒng)調(diào)用監(jiān)測(cè)安卓應(yīng)用資源使用的研究[D];復(fù)旦大學(xué);2013年
,本文編號(hào):1825910
本文鏈接:http://www.lk138.cn/falvlunwen/zhishichanquanfa/1825910.html