[發(fā)明專(zhuān)利]一種軟件代碼侵權(quán)檢測(cè)方法在審
| 申請(qǐng)?zhí)枺?/td> | 201710171531.0 | 申請(qǐng)日: | 2017-03-22 |
| 公開(kāi)(公告)號(hào): | CN106951743A | 公開(kāi)(公告)日: | 2017-07-14 |
| 發(fā)明(設(shè)計(jì))人: | 張剛 | 申請(qǐng)(專(zhuān)利權(quán))人: | 上海英慕軟件科技有限公司 |
| 主分類(lèi)號(hào): | G06F21/12 | 分類(lèi)號(hào): | G06F21/12 |
| 代理公司: | 暫無(wú)信息 | 代理人: | 暫無(wú)信息 |
| 地址: | 200093 上海市浦東新區(qū)萬(wàn)*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 軟件 代碼 侵權(quán) 檢測(cè) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種計(jì)算機(jī)數(shù)據(jù)處理技術(shù),特別涉及一種軟件代碼的侵權(quán)檢測(cè)方法。
背景技術(shù)
軟件代碼的侵權(quán)檢測(cè)具有比較重要的現(xiàn)實(shí)意義,可以幫助軟件開(kāi)發(fā)組織避免知識(shí)產(chǎn)權(quán)相關(guān)的法律風(fēng)險(xiǎn)。
軟件開(kāi)發(fā)組織的開(kāi)發(fā)人員出于提高開(kāi)發(fā)效率的目的,往往習(xí)慣于從既有的代碼中復(fù)用一些代碼。但是,這種行為有時(shí)是可行的,有時(shí)又是不可行的,是否可行取決于被復(fù)制的代碼的許可證情況。特別是開(kāi)源代碼,許可證種類(lèi)繁多,每種許可證的約束都不同,盲目的復(fù)用軟件很可能給為企業(yè)帶來(lái)嚴(yán)重的法律的風(fēng)險(xiǎn)。例如,如果某企業(yè)的開(kāi)發(fā)人員不小心使用或者擴(kuò)展了遵循GPL版權(quán)的代碼,按照GPL的許可證規(guī)范,該企業(yè)所有和該代碼相關(guān)的其他代碼也都必須遵循GPL規(guī)范,面向公眾全部公開(kāi),這可能給該企業(yè)造成不可挽回的損失。
由于軟件開(kāi)發(fā)人員為數(shù)眾多,軟件代碼數(shù)量龐大,而開(kāi)源軟件的數(shù)量更是數(shù)不勝數(shù),許可證情況有非常復(fù)雜,對(duì)各種侵權(quán)風(fēng)險(xiǎn)進(jìn)行手工檢查幾乎是不可能的。因此,可以檢測(cè)并報(bào)告潛在的軟件侵權(quán)風(fēng)險(xiǎn)的方法和系統(tǒng)就顯得非常必要。
現(xiàn)有的軟件代碼侵權(quán)檢測(cè)方法都需要被檢測(cè)方提供程序的原始代碼。其中使用的技術(shù)有兩類(lèi):基于屬性統(tǒng)計(jì)的檢測(cè)技術(shù)和基于結(jié)構(gòu)度量的檢測(cè)技術(shù)。基于屬性的統(tǒng)計(jì)技術(shù)統(tǒng)計(jì)軟件代碼中的操作符、操作數(shù)等信息,然后計(jì)算他們的平均值、中位值、標(biāo)準(zhǔn)差等,然后對(duì)比待檢測(cè)樣本和樣本庫(kù)中的樣本。由于是全局統(tǒng)計(jì)數(shù)據(jù),這種檢測(cè)方法缺陷較大,只有在軟件代碼和樣本庫(kù)中的代碼幾乎完全相似的情況下才能發(fā)現(xiàn)侵權(quán),并不實(shí)用。基于結(jié)構(gòu)度量的技術(shù)是代碼重復(fù)檢測(cè)方法的一個(gè)子集。其中包括了基于文本的方法、基于抽象語(yǔ)法樹(shù)的方法、基于程序依賴圖的方法等。這些方法的目標(biāo)在于發(fā)現(xiàn)軟件代碼的重復(fù),并不是專(zhuān)門(mén)為侵權(quán)檢測(cè)設(shè)計(jì)的,所以也并未考慮和侵權(quán)檢測(cè)有關(guān)的特征提取問(wèn)題、樣本庫(kù)建立問(wèn)題以及商業(yè)秘密保護(hù)問(wèn)題。
在實(shí)踐中,上述的本地侵權(quán)檢測(cè)方法帶來(lái)的主要局限源于如下兩個(gè)方面的沖突:如果軟件組織使用第三方服務(wù),就必須提供待檢測(cè)的源代碼。這可能造成企業(yè)技術(shù)秘密泄露。如果軟件組織決定自己按照上述本地侵權(quán)檢測(cè)方法建立一個(gè)檢測(cè)系統(tǒng),則需要建立規(guī)模龐大的全局樣本庫(kù),例如收集整個(gè)互聯(lián)網(wǎng)級(jí)別的開(kāi)源代碼,成本巨大。
發(fā)明內(nèi)容
本發(fā)明是針對(duì)代碼侵權(quán)檢測(cè)需要大量樣本、同時(shí)又需要保護(hù)軟件組織的商業(yè)秘密問(wèn)題所提出的一種檢測(cè)方法。
本發(fā)明的技術(shù)方案為:一種軟件代碼的侵權(quán)檢測(cè)方法,其特征在于:包括云端檢測(cè)服務(wù)器和本地代理系統(tǒng)兩部分,在兩者之間傳輸和服務(wù)器端存儲(chǔ)的都是代碼的經(jīng)變換的關(guān)鍵特征信息。其中,云端檢測(cè)服務(wù)器負(fù)責(zé)管理用于侵權(quán)檢測(cè)的代碼特征樣本庫(kù)并依據(jù)侵權(quán)規(guī)則進(jìn)行檢測(cè),本地代理系統(tǒng)負(fù)責(zé)提取軟件代碼的關(guān)鍵特征、上報(bào)信息到云端檢測(cè)服務(wù)器以及對(duì)云端檢測(cè)服務(wù)器下發(fā)的侵權(quán)信息進(jìn)行本地化解讀;
本地代理系統(tǒng)包含代碼解析器,代碼特征生成器以及本地映射表三個(gè)部分。其中,代碼解析器負(fù)責(zé)解析被檢測(cè)的代碼,產(chǎn)生代碼塊信息;代碼特征生成器負(fù)責(zé)產(chǎn)生和代碼塊唯一對(duì)應(yīng)的代碼特征信息,在實(shí)踐中使用代碼塊標(biāo)識(shí)符、位置信息、結(jié)構(gòu)信息、和代碼塊散列信息定義該特征;本地映射表維護(hù)上傳到云端服務(wù)器的代碼和本地原始代碼之間的對(duì)應(yīng)關(guān)系,當(dāng)云端服務(wù)器傳回和代碼塊標(biāo)識(shí)符對(duì)應(yīng)的侵權(quán)信息時(shí),在本地解析為可以閱讀的代碼侵權(quán)信息;
云端服務(wù)器包含代碼解析器、代碼特征生成器、全局特征信息表以及侵權(quán)檢測(cè)引擎四個(gè)部分。其中代碼解析器和代碼特征生成器和本地代理系統(tǒng)的功能相同。全局特征信息表存儲(chǔ)了用于檢測(cè)的代碼樣本庫(kù)的特征信息。侵權(quán)檢測(cè)引擎對(duì)比全局特征信息表和本地代理上傳的代碼塊信息判斷代碼塊侵權(quán)特征,如果發(fā)現(xiàn)特征匹配,就將其標(biāo)記為侵權(quán),然后將此信息發(fā)送給本地代理系統(tǒng),交由本地代理系統(tǒng)進(jìn)行解析和報(bào)告。
所述的該代碼侵權(quán)檢測(cè)方法,具體檢測(cè)步驟包括:
步驟一,構(gòu)建全局特征信息表:獲取代碼樣本庫(kù),云端檢測(cè)服務(wù)器依次讀取樣本庫(kù)的源代碼文件,然后按照語(yǔ)法樹(shù)的形式,將每個(gè)代碼文件解析成一組樹(shù)形結(jié)構(gòu)的代碼塊,并將代碼塊信息記錄到全局特征信息表中。每個(gè)代碼塊都記錄代碼塊的位置信息、結(jié)構(gòu)信息、以及代碼塊散列信息。在實(shí)踐中,代碼解析可以使用抽象語(yǔ)法樹(shù)解析器完成。位置信息可使用如下信息聯(lián)合進(jìn)行描述:所屬項(xiàng)目、文件名、起始位置、終止位置信息。結(jié)構(gòu)信息可使用本代碼塊和父代碼塊的關(guān)聯(lián)關(guān)系描述。代碼塊散列特征信息可使用對(duì)代碼進(jìn)行歸一化后對(duì)應(yīng)的文本的散列值描述;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于上海英慕軟件科技有限公司,未經(jīng)上海英慕軟件科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710171531.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來(lái)擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)
- 一種侵權(quán)圖片比對(duì)與起訴狀自動(dòng)生成系統(tǒng)
- 侵權(quán)圖片的識(shí)別方法、裝置和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種用于通過(guò)計(jì)算設(shè)備處理侵權(quán)案件的方法與設(shè)備
- 侵權(quán)信息獲取方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種基于區(qū)塊鏈的侵權(quán)存證方法、裝置及電子設(shè)備
- 一種識(shí)別侵權(quán)視頻鏈接的方法、裝置、電子設(shè)備及介質(zhì)
- 一種基于區(qū)塊鏈的侵權(quán)存證管理方法及裝置
- 一種侵權(quán)公告信息展示方法、裝置及系統(tǒng)
- 一種基于區(qū)塊鏈的知識(shí)產(chǎn)權(quán)保護(hù)方法及裝置
- 一種基于區(qū)塊鏈的侵權(quán)存證方法、裝置及電子設(shè)備
- 檢測(cè)裝置、檢測(cè)方法和檢測(cè)組件
- 檢測(cè)方法、檢測(cè)裝置和檢測(cè)系統(tǒng)
- 檢測(cè)裝置、檢測(cè)方法以及記錄介質(zhì)
- 檢測(cè)設(shè)備、檢測(cè)系統(tǒng)和檢測(cè)方法
- 檢測(cè)芯片、檢測(cè)設(shè)備、檢測(cè)系統(tǒng)和檢測(cè)方法
- 檢測(cè)裝置、檢測(cè)設(shè)備及檢測(cè)方法
- 檢測(cè)芯片、檢測(cè)設(shè)備、檢測(cè)系統(tǒng)
- 檢測(cè)組件、檢測(cè)裝置以及檢測(cè)系統(tǒng)
- 檢測(cè)裝置、檢測(cè)方法及檢測(cè)程序
- 檢測(cè)電路、檢測(cè)裝置及檢測(cè)系統(tǒng)





