[發(fā)明專利]基于軟件復(fù)用特征學(xué)習(xí)的開源代碼溯源檢測方法在審
| 申請?zhí)枺?/td> | 202010091777.9 | 申請日: | 2020-02-13 |
| 公開(公告)號: | CN111241497A | 公開(公告)日: | 2020-06-05 |
| 發(fā)明(設(shè)計)人: | 嚴(yán)亮 | 申請(專利權(quán))人: | 北京高質(zhì)系統(tǒng)科技有限公司 |
| 主分類號: | G06F21/16 | 分類號: | G06F21/16;G06F16/2458 |
| 代理公司: | 北京中索知識產(chǎn)權(quán)代理有限公司 11640 | 代理人: | 胡大成 |
| 地址: | 101204 北京市平谷區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 軟件 特征 學(xué)習(xí) 源代碼 溯源 檢測 方法 | ||
本發(fā)明公開了一種基于軟件復(fù)用特征學(xué)習(xí)的開源代碼溯源檢測方法,該方法主要是根據(jù)進(jìn)行溯源檢測的軟件特征,從搭建的復(fù)用特征關(guān)聯(lián)模型的關(guān)聯(lián)規(guī)則表中查詢到對應(yīng)的被復(fù)用開源軟件特征集合及其復(fù)用概率,按照復(fù)用概率從高到低的順序從比對開源軟件庫中搜索出具有這些特征的軟件代碼,逐一與被檢測代碼進(jìn)行溯源比對,該方法的好處是能夠迅速找到具有代碼復(fù)用可能的開源軟件集合,縮減溯源檢測比對的開源軟件范圍,極大地提高開源代碼溯源檢測的效率和精度。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件代碼溯源檢測技術(shù)領(lǐng)域,特別涉及一種基于軟件復(fù)用特征學(xué)習(xí)的開源代碼溯源檢測方法。
背景技術(shù)
隨著互聯(lián)網(wǎng)技術(shù)和開源軟件的蓬勃發(fā)展,越來越多的開發(fā)者參與到開源軟件開發(fā)中,開源社區(qū)也因此積累了海量優(yōu)秀的開源軟件資源和開源知識資源。開源軟件的免費(fèi)、開放、可定制、受整個社區(qū)監(jiān)督等特性,使其可為軟件開發(fā)提供技術(shù)快速應(yīng)用、增加創(chuàng)新、減少成本和開發(fā)時間等有利條件。在如今軟件開發(fā)效率和質(zhì)量亟需提高的背景下,開源已經(jīng)成為IT行業(yè)中勢力龐大的一支生力軍。開源的好處卻也是風(fēng)險的來源。根據(jù)Synopsys公司發(fā)布的《“2018年開源代碼安全和風(fēng)險分析Black Duck(黑鴨)”》報告,每個代碼庫中開源漏洞數(shù)量較去年增長了134%。此外,開源軟件需要用戶自行負(fù)責(zé)跟蹤他們所使用的開源軟件的漏洞、修復(fù)和更新。如果一個組織機(jī)構(gòu)不了解其所使用的所有開源成分,就不可能抵御針對這些組件中已知漏洞的常見攻擊,并將自己暴露在許可證合規(guī)風(fēng)險和知識產(chǎn)權(quán)等法律風(fēng)險之中,帶來不同程度的安全威脅及經(jīng)濟(jì)或名譽(yù)損失。
但是由于軟件項目對開源代碼的使用方式多樣,代碼被使用的開源軟件范圍難以提前預(yù)知,且同一個軟件中可能會同時引入來自于不同開源軟件的代碼,因此溯源檢測中參與代碼比對的開源軟件數(shù)量將非常龐大。如果將被檢測軟件與所有開源軟件一一對比,將極為耗時耗力且實現(xiàn)起來很不現(xiàn)實。因此如何準(zhǔn)確確定出參與溯源檢測比對的開源軟件范圍,從海量的開源軟件庫中選取代碼最有可能被使用的開源軟件參與溯源比對,對于提高代碼溯源檢測的精度和效率有著很大的影響。
因此,本發(fā)明旨在通過機(jī)器學(xué)習(xí)具有復(fù)用關(guān)系的開源軟件特征,建立復(fù)用特征關(guān)聯(lián)模型,分析軟件復(fù)用關(guān)系,實現(xiàn)通過被檢測軟件的特征,快速確定出參與溯源比對的開源軟件范圍,顯著提高溯源檢測的效率和精度。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于軟件復(fù)用特征學(xué)習(xí)的開源代碼溯源檢測方法。
為此,本發(fā)明技術(shù)方案如下:
一種基于軟件復(fù)用特征學(xué)習(xí)的開源代碼溯源檢測方法,包括如下步驟:
1)搭建復(fù)用特征關(guān)聯(lián)模型;該模型的搭建方法如下:
1-1)對具有復(fù)用關(guān)系軟件項目中的復(fù)用軟件和被復(fù)用軟件的特征數(shù)據(jù)分別進(jìn)行選取與收集,其中,上述復(fù)用關(guān)系已經(jīng)在開源軟件社區(qū)中明確:
1-2)利用Apriori算法對復(fù)用特征關(guān)聯(lián)規(guī)則進(jìn)行挖掘:從而得到關(guān)聯(lián)規(guī)則表,即復(fù)用特征關(guān)聯(lián)模型;
2)根據(jù)進(jìn)行溯源檢測的軟件特征,從關(guān)聯(lián)規(guī)則表中查詢到對應(yīng)的被復(fù)用開源軟件特征集合及其復(fù)用概率,按照復(fù)用概率從高到低的順序從比對開源軟件庫中搜索出具有這些特征的軟件代碼,逐一與被檢測代碼進(jìn)行溯源比對。
進(jìn)一步的,所述的步驟1-1)中選取與收集的軟件特征數(shù)據(jù)包括編程語言、開源許可證、軟件類型、軟件標(biāo)簽和收藏量。
進(jìn)一步的,所述的步驟1-1)中軟件特征數(shù)據(jù)的選取與收集方法為:
a)根據(jù)需要獲取軟件特征的軟件項目名稱和所有者信息,獲得項目git地址;
b)利用開源社區(qū)提供的數(shù)據(jù)框架和API,訪問開源社區(qū)的接口;
c)使用Java網(wǎng)絡(luò)爬蟲技術(shù),利用開源的Java依賴庫操作開源社區(qū)網(wǎng)站的開源項目托管平臺的遠(yuǎn)程庫,從而抓取到所需的軟件特征數(shù)據(jù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京高質(zhì)系統(tǒng)科技有限公司,未經(jīng)北京高質(zhì)系統(tǒng)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010091777.9/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗證裝置、軟件驗證方法以及軟件驗證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗軟件的裝置與方法
- 根據(jù)用戶學(xué)習(xí)效果動態(tài)變化下載學(xué)習(xí)數(shù)據(jù)的系統(tǒng)及方法
- 用于智能個人化學(xué)習(xí)服務(wù)的方法
- 漸進(jìn)式學(xué)習(xí)管理方法及漸進(jìn)式學(xué)習(xí)系統(tǒng)
- 輔助學(xué)習(xí)的方法及裝置
- 基于人工智能的課程推薦方法、裝置、設(shè)備及存儲介質(zhì)
- 基于強(qiáng)化學(xué)習(xí)的自適應(yīng)移動學(xué)習(xí)路徑生成方法
- 一種線上視頻學(xué)習(xí)系統(tǒng)
- 一種基于校園大數(shù)據(jù)的自適應(yīng)學(xué)習(xí)方法、裝置及設(shè)備
- 一種學(xué)習(xí)方案推薦方法、裝置、設(shè)備和存儲介質(zhì)
- 游戲?qū)W習(xí)效果評測方法及系統(tǒng)





