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