開源軟件讓企業(yè)可以利用世界上最優(yōu)秀、最聰明的開發(fā)人員的力量。通過提供構(gòu)建產(chǎn)品的捷徑,它可以極大地提高生產(chǎn)率并縮短上市時(shí)間。然而,盡管它被廣泛使用(您很難找到一個(gè)不使用開源組件構(gòu)建的應(yīng)用程序)以及它的優(yōu)點(diǎn),開放軟件代碼對(duì)于開發(fā)人員來說可能是一個(gè)麻煩,對(duì)于那些由于開源漏洞而導(dǎo)致數(shù)據(jù)泄露的組織來說則是一場(chǎng)噩夢(mèng)。
今年早些時(shí)候,OpenAI,最新的人工智能寵兒,要么拯救世界,要么毀滅世界,取決于你相信誰,成為數(shù)據(jù)泄露的受害者,原因是一個(gè)被利用的開源庫漏洞。黑客將私人聊天數(shù)據(jù)暴露給了其他用戶。
ChatGPT漏洞說明了使用開源組件的一個(gè)重要問題——急于進(jìn)入市場(chǎng)。在其他一些引人注目的錯(cuò)誤之后,該公司因過早上市而受到批評(píng)。然而,考慮到先發(fā)優(yōu)勢(shì),企業(yè)不太可能愿意放慢開發(fā)時(shí)間表作為回應(yīng)。
由于市場(chǎng)壓力沒有顯示出任何緩和的跡象,DevOps團(tuán)隊(duì)能做的最好的事情就是采取積極主動(dòng)的方式進(jìn)行開源集成。以下是與使用開源組件相關(guān)的最常見問題,以及開發(fā)人員如何克服這些問題。
1.兼容性
開發(fā)人員可以為幾乎任何功能找到開源組件。團(tuán)隊(duì)可以從多個(gè)資源中挑選和選擇來創(chuàng)建創(chuàng)新產(chǎn)品。然而,每個(gè)元素都有自己的做事方式——數(shù)據(jù)格式、協(xié)議、應(yīng)用程序編程接口(api)——讓它們無縫通信可能是一個(gè)巨大的挑戰(zhàn)。以下是處理兼容性問題的一些技巧:
定期檢查發(fā)行說明、文檔和社區(qū)論壇,了解任何更改或兼容性問題,以保持更新。
實(shí)現(xiàn)自動(dòng)化測(cè)試,包括單元測(cè)試、集成測(cè)試和回歸測(cè)試,以便在開發(fā)周期的早期捕獲兼容性問題。
創(chuàng)建一個(gè)軟件材料清單,以了解每個(gè)組件的依賴關(guān)系以及它們?nèi)绾蜗嗷プ饔谩?/p>
2.漏洞
開源的協(xié)作性質(zhì)意味著,雖然源代碼是免費(fèi)提供的,但漏洞也是免費(fèi)提供的。任何人都可以查看和分析代碼,包括潛在的攻擊者。開源組件中的安全漏洞可能在修補(bǔ)甚至識(shí)別之前就被利用了。隨著網(wǎng)絡(luò)安全和數(shù)據(jù)保護(hù)法規(guī)的迅速擴(kuò)展,安全地集成開源組件通常是一個(gè)法律問題,而不僅僅是一個(gè)最佳實(shí)踐。開發(fā)團(tuán)隊(duì)可以通過以下方式加強(qiáng)他們的開源網(wǎng)絡(luò)安全態(tài)勢(shì):
使用自動(dòng)化工具掃描已知漏洞的代碼
審計(jì)代碼以識(shí)別潛在的安全缺陷,特別是在集成新的開源元素之后
在DevOps過程中采用和實(shí)施安全最佳實(shí)踐。
使用依賴項(xiàng)管理工具跟蹤并更新項(xiàng)目中所有開源組件的安全問題,包括間接依賴項(xiàng)
制定事件響應(yīng)計(jì)劃,以處理發(fā)現(xiàn)的漏洞和安全問題
3.標(biāo)準(zhǔn)化
許多擁有多個(gè)團(tuán)隊(duì)從事不同項(xiàng)目或包含開源組件的特性的組織無法實(shí)現(xiàn)標(biāo)準(zhǔn)化實(shí)踐。團(tuán)隊(duì)可能同時(shí)使用同一組件的不同版本或多個(gè)組件。每個(gè)部門都有自己使用開源組件的標(biāo)準(zhǔn)實(shí)踐,這并不罕見。相互沖突的實(shí)踐可能會(huì)減慢開發(fā)速度,并導(dǎo)致缺陷、錯(cuò)誤和兼容性問題。通過開發(fā)一個(gè)適用于整個(gè)組織的清晰的開源治理策略來避免這些問題。該策略應(yīng)該處理如何、何時(shí)以及在何處使用、跟蹤和保護(hù)開源組件的所有元素。
4.過時(shí)的軟件
開源軟件通常依賴于社區(qū)對(duì)新特性、更新和補(bǔ)丁的支持。隨著時(shí)間的推移,支持可能會(huì)減少,使過時(shí)的軟件存在多個(gè)漏洞和關(guān)鍵問題。依賴于不再更新或支持的軟件的開發(fā)團(tuán)隊(duì)將不得不在內(nèi)部處理軟件的管理。
使用像Kiuwan這樣的軟件組合分析(SCA)工具來識(shí)別和跟蹤代碼庫中的開源軟件,這樣團(tuán)隊(duì)就可以識(shí)別任何不受支持的開源軟件。從這里開始,DevOps團(tuán)隊(duì)可以創(chuàng)建一個(gè)更新和維護(hù)軟件的計(jì)劃。
5.許可要求
因?yàn)殚_源代碼通常是免費(fèi)提供的,所以很容易忘記它附帶許可要求。使用多個(gè)開源組件的大型項(xiàng)目必須遵守具有不同條款和條件的許多不同類型的許可。
不遵守許可條款的企業(yè)可能面臨重大風(fēng)險(xiǎn)。自動(dòng)化SCA工具使團(tuán)隊(duì)能夠看到開源代碼,并在需要采取行動(dòng)遵守許可條款時(shí)提醒他們。
6.知識(shí)產(chǎn)權(quán)曝光
與許可風(fēng)險(xiǎn)密切相關(guān)的是暴露知識(shí)產(chǎn)權(quán)的風(fēng)險(xiǎn)。一些開源軟件包含copyleft條款。這種類型的許可證允許任何人使用該軟件,前提是所有修改和衍生軟件都是以相同類型的許可證生產(chǎn)的。使用copyleft軟件的團(tuán)隊(duì)必須在相同的許可下發(fā)布他們使用開源組件創(chuàng)建的應(yīng)用程序。這種類型的許可使得創(chuàng)建專有軟件和保護(hù)知識(shí)產(chǎn)權(quán)變得不可能。
為了避免這種風(fēng)險(xiǎn),開發(fā)團(tuán)隊(duì)需要清楚地了解代碼庫中的所有開源元素及其相關(guān)許可。這可能特別棘手,因?yàn)橐蕾図?xiàng)可能包含隱藏的開源組件。SCA工具可以掃描代碼庫以查找隱藏的開源代碼,包括適用的版本和許可證。
7.可伸縮性限制
使用開源集成進(jìn)行擴(kuò)展可能會(huì)很復(fù)雜。一些開源軟件包括開放核心模型,其中核心元素是免費(fèi)的,但某些功能需要商業(yè)許可。其他項(xiàng)目以開源開始,但最終會(huì)過渡到商業(yè)許可。這兩種模式都可能導(dǎo)致意想不到的費(fèi)用,從而干擾組織的發(fā)展。計(jì)劃擴(kuò)大規(guī)模的企業(yè)應(yīng)該仔細(xì)考慮如何將開源軟件集成到他們的特色產(chǎn)品中。然后,他們要么采用可能保持開源的組件,要么為商業(yè)許可的最終成本做計(jì)劃。
使用Kiuwan有效地管理開源
Kiuwan的端到端應(yīng)用程序安全平臺(tái)使企業(yè)可以輕松地保持在其開源組件的頂部。我們的Insights(SCA)通過降低與開源軟件相關(guān)的風(fēng)險(xiǎn)來增強(qiáng)開發(fā)人員的能力。它自動(dòng)掃描源代碼組件的代碼,以提供全面的風(fēng)險(xiǎn)概述。
審核編輯:劉清
-
SCA
+關(guān)注
關(guān)注
1文章
36瀏覽量
11952 -
devops
+關(guān)注
關(guān)注
0文章
108瀏覽量
11985 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1546瀏覽量
7353
原文標(biāo)題:Kiuwan:開源集成令人頭痛的7個(gè)原因(以及如何避免)
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論