5大常見開源軟件問題及解決方法
近幾年,開源代碼的使用熱度持續(xù)上升,各類公司都習(xí)慣于使用開源代碼來構(gòu)建自己的系統(tǒng)和平臺(tái)。開源代碼帶來的便利是大家有目共睹的,但巨大利益的背后往往存在著挑戰(zhàn),開源在方便大家的同時(shí),其隱患也不容忽視。
Synopsys2018開源安全風(fēng)險(xiǎn)分析軟件Black Duck對(duì)1100多個(gè)商業(yè)代碼庫進(jìn)行了掃描,結(jié)果發(fā)現(xiàn),96%的商業(yè)應(yīng)用中都融入了開源組件,平均每個(gè)應(yīng)用有257個(gè)開源組件。開源代碼庫的平均百分比從2017年的36%上升至57%。
很多的開源專家已經(jīng)預(yù)料到了這種趨勢。專家們表示,開源大趨勢下,各種各樣的問題也是接踵而至,很多的企業(yè)也一直在尋找解決和維護(hù)的辦法。下面是五大開源問題及解決方案,可供企業(yè)參考。
1.了解開源
開源軟件易獲取、易使用的特點(diǎn)吸引了很多企業(yè)為之青睞,但同時(shí)也讓很多企業(yè)為之頭疼,因?yàn)闆]有相關(guān)的管理政策去限定開源使用,例如規(guī)定哪些開源可以被使用以及何時(shí)可以使用。
國際律師事務(wù)所Mayer Brown律師Paul Chandler表示,很多公司對(duì)他們今天使用的開源軟件并不了解,甚至連自己生態(tài)系統(tǒng)或者產(chǎn)品組合中有這些開源都不知道,更不用說解決漏洞問題。
Paul Chandler建議,企業(yè)CIO應(yīng)該使用掃描工具來查找企業(yè)中運(yùn)行的開源代碼。要求其商業(yè)產(chǎn)品供應(yīng)商注明產(chǎn)品中的開源代碼,并承擔(dān)開源風(fēng)險(xiǎn)。另外,采購合同的人員必須了解開源,因?yàn)殚_源代碼最終將以商業(yè)產(chǎn)品的形式出現(xiàn)在用戶面前,需承擔(dān)很大的風(fēng)險(xiǎn)責(zé)任。每個(gè)公司的CIO應(yīng)該建立一個(gè)戰(zhàn)略計(jì)劃,計(jì)劃好什么時(shí)候使用開源,以及在什么情況下可以使用。另外,還要根據(jù)企業(yè)需求制定出開源安全性能和許可檢測策略,并且確定好OSS管理和維護(hù)人員。
2.遵守許可證的要求
Open Source Initiative(開源計(jì)劃),是一個(gè)提倡開源的非營利組織,它列出了已被批準(zhǔn)的80多個(gè)開源許可證,并且每一個(gè)許可證都有單獨(dú)的規(guī)則和要求,使用OSS的企業(yè)必須遵守相應(yīng)許可證的規(guī)則和要求。
Mayer Brown的合伙人Robert Kriss表示,盡管開源是免費(fèi)的,但也會(huì)有很多附加信息。開源許可證的要求是不一樣的,例如一些許可證要求開發(fā)人員共享他們對(duì)開源代碼的更改,但其他的可能就不需要。對(duì)于一些專利代碼,則不允許更改。還有一些規(guī)則限制了開源軟件對(duì)于商業(yè)產(chǎn)品的應(yīng)用。此外,在產(chǎn)品中使用多個(gè)OSS的開發(fā)人員會(huì)發(fā)現(xiàn)這樣一個(gè)問題,一個(gè)開源代碼組件的許可條款與另一個(gè)與之相關(guān)聯(lián)的開源組件許可條款之間互相矛盾。很多開源軟件的許可條款表達(dá)的并不明確,導(dǎo)致企業(yè)在遵循時(shí)出現(xiàn)很多問題。但許可條款在開源風(fēng)險(xiǎn)的控制上還是作用很大的,許可證上會(huì)標(biāo)明語言風(fēng)險(xiǎn),您 只有閱讀完之后才能預(yù)估隱患。
3.設(shè)立開源服務(wù)級(jí)別
OSS的主要優(yōu)勢就是可以免費(fèi)獲取代碼而不需要支付任何費(fèi)用。但這并不意味著開源沒有成本。Gartner副總裁兼研究總監(jiān)Mark Driver表示,企業(yè)經(jīng)常無法正確計(jì)算出他們使用的開源軟件的總成本,并且總是會(huì)低估開源維護(hù)和管理的時(shí)間。
Driver說到;“很多的企業(yè)選擇非商業(yè)路線,因?yàn)樗麄冋J(rèn)為這樣才會(huì)獲得更大利益,并只使用企業(yè)內(nèi)部資源來進(jìn)行維護(hù)工作。但是在這樣的觀念里,企業(yè)很容易誤估他們實(shí)際的花銷能力。”
為了避免這種情況,Driver建議,IT需要設(shè)立應(yīng)用程序中使用的開源代碼所需的服務(wù)級(jí)別。這樣企業(yè)便很容易評(píng)估開源成本,以及潛在故障成本,有助于企業(yè)對(duì)凈利潤和商業(yè)替代方案進(jìn)行對(duì)比。
Driver強(qiáng)調(diào):“企業(yè)對(duì)開源的熱情并不是其經(jīng)營業(yè)務(wù)的方式,認(rèn)清開源的價(jià)值才是業(yè)務(wù)的真正實(shí)現(xiàn)。”
4.關(guān)注可用性
目前,開發(fā)人員都在使用OSS為用戶提供應(yīng)用程序中所需的功能和特性。但G2 Crowd Inc.的***研究官M(fèi)ichael Fauscette表示,很少的開發(fā)人員會(huì)考慮其開源軟件的參與是否會(huì)影響應(yīng)用程序的可用性。即使開源軟件在應(yīng)用程序中所占的比例很小,但可用性不匹配,也能很顯著的降低整個(gè)產(chǎn)品的特性或用戶體驗(yàn)。所以開發(fā)人員在選擇開源軟件之前,應(yīng)該衡量好開源軟件與其產(chǎn)品可用性的利益對(duì)比。
Michael Fauscette補(bǔ)充到:“今天的員工對(duì)使用不易使用的東西的容忍度往往很低。”
5.維護(hù)和管理開源組合
經(jīng)驗(yàn)豐富的開發(fā)人員都知道,尋找生產(chǎn)中開源軟件的更新和漏洞補(bǔ)丁是他們?cè)撚械呢?zé)任,但是他們卻往往沒有很好的做到這一點(diǎn)。
Snyk對(duì)開源項(xiàng)目維護(hù)者的調(diào)查發(fā)現(xiàn),44%的開源項(xiàng)目從未進(jìn)行過安全審計(jì),僅17%的項(xiàng)目表示有高水平的安全專業(yè)技能。開源項(xiàng)目的安全記錄方式也沒有標(biāo)準(zhǔn)可循。并且,即便問題被修改,也無法通知老版本的用戶。并且即便漏洞被發(fā)現(xiàn)并推出了補(bǔ)丁,使用該代碼的公司也可能不會(huì)注意到自己需要補(bǔ)丁,或者找不出需要補(bǔ)丁的實(shí)例。
Driver表示,開源資產(chǎn)在IT組合中往往沒有得到妥當(dāng)?shù)墓芾?。公司的技術(shù)主管應(yīng)該實(shí)施治理程序,確保企業(yè)操作系統(tǒng)得到充分管理,保證應(yīng)用程序在企業(yè)環(huán)境中正常運(yùn)作。
Driver建議,技術(shù)主管應(yīng)該建立一個(gè)多層的管理系統(tǒng),嚴(yán)格管理關(guān)鍵程序中運(yùn)行的OSS。這是一項(xiàng)很艱巨的任務(wù),但逃避的后果也將是災(zāi)難性的。2017年Equifax數(shù)據(jù)泄露事件就是一個(gè)警鐘。其所用 Apache Struts 開源組件的補(bǔ)丁早在數(shù)據(jù)泄露發(fā)生前2個(gè)月就推出了,且Equifax也注意到了有補(bǔ)丁可用,但依然沒能及時(shí)打上補(bǔ)丁。
Welty表示,企業(yè)在使用開源代碼的時(shí)候,必須設(shè)立一個(gè)管理過程來監(jiān)控和引入更新。當(dāng)監(jiān)控到開源代碼沒有得到定期更新和提供補(bǔ)丁時(shí),應(yīng)及時(shí)解決。