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