不平凡軟件,始于2014
【鄭州做軟件】開源軟件安全:優勢與挑戰共存
使用開源組件可以節省開發時間和公司成本。然而,開源方便你我他的同時,其安全風險也不容忽視。尤其是在開源組件沒有得到很好維護的時候,其引入的安全風險往往超出了能帶來的種種好處。
近幾年開源代碼熱度持續上升,各類公司都紛紛采用開源組件構建自己的系統和平臺。除了市場上常見的開源操作系統,開源的生產力軟件、管理員/開發者工具和各種代碼庫也是企業用戶用于打造自有軟件的一大助力。甚至商業軟件也往往建立在開源代碼的基礎之上。
企業中開源軟件的采用越來越廣泛。隨著企業轉向敏捷方法,開源變得更加有價值,也有更多工具可以利用。剛入行的軟件開發新鮮人已經很習慣于應用開源技術了。
開源安全優勢
開發人員重度依賴開源軟件,公司企業也慣于依靠有大型團隊維護的主流開源項目。且在安全上一直都有“眾人之眼”的說法——越多人盯著就越安全。除了廉價,“眾人之眼”帶來的安全性可能就是使用開源軟件的主要好處了。理論上,開源軟件是有很多雙眼睛盯著的。當然,這一理論對小型開源項目或代碼庫不適用。畢竟,有些軟件是沒有開發者社區的。
開源代碼的另一個安全優勢是,如果出現了問題,可以得到立即曝光和修復。而如果是專利代碼,通常就只有等待供應商的響應了。
二、開源軟件帶來安全威脅
開源軟件的品質總體上是在不斷提升的。但是很多項目,尤其是小型項目,并不對其代碼進行潛在安全漏洞掃描。
都是誰在用這些開源代碼呢?最近一期報告顯示,96%的商業應用中都融入了開源組件。平均每個應用中含有147個開源組件,且67%的應用采用了帶有已知漏洞的開源組件。
為什么公司企業要用開源軟件?普通應用的代碼庫里超過1/3都是開源代碼。想要替換掉這1/3的代碼庫,公司企業要么給開發團隊增加50%的人手,要么延長50%的開發時間。今天這種看重時間成本效益的世界里,恐怕正常人都不太會這么干。
“眾人之眼”可杜絕安全漏洞的想法帶有誤導性。事實上,開源代碼被眾人盯了多年也還在爆安全漏洞的現象并不少見。很多主流開源代碼庫中都存在已確認的漏洞。但工程師僅僅是從這些庫中抽取并部署代碼,并沒有意識到由此引入到產品中的種種依賴關系。于是,可見性問題便出現了。
開源代碼中不斷發現新漏洞,而很多項目并沒有查找并修復問題的機制。然后,即便問題被修復,也無法找到并通知老版本代碼的用戶。開源社區并不知道都有誰使用了他們的代碼。
很多開源項目維護者都不清楚CVE的運行機制,或者沒時間去跑這個流程。但是,獲取CVE編號的過程可能比較復雜,需要委員會認可CVE具體細節,還需要征得項目擁有者的同意。當前的CVE編號獲取方式缺乏擴展性。
另外,即便漏洞被發現并推出了補丁,使用該脆弱代碼的公司企業也可能沒注意到自己需要打補丁,或者找不出需要打補丁的所有實例。
還有一些公司因為兼容性問題、合規問題等原因而無法遷移到最新版本開源代碼,仍在使用帶漏洞的老版代碼。這也是個問題。
理想情況下,應用會在安全補丁可用的即刻就更新自身,無需任何人為干預。但實際上,這并非始終可行。公司企業需要能夠在自身環境中找出所有開源代碼的運行實例,持續更新該實例列表,讓開發人員避開這些不安全的老舊代碼庫,并最終在新漏洞被發現時及時部署補丁。
只有知道脆弱庫在哪里,才能夠將這些有漏洞的代碼庫從產品中移除。產品開發生命周期中越早移除漏洞,開發和維護成本就越低,過程也更輕松。
在開發過程中集成開源漏洞掃描對大型企業來說尤其重要,因為大企業要跟蹤其使用的所有代碼是非常困難的。大多數公司都不清楚自己到底有多少個應用,這種情況是很恐怖的。
有些網絡工具可以幫公司企業找出內部運行的應用,但如果網絡是分隔的,就會出現盲點。公司企業還可以在終端上安裝代理以跟蹤其上運行的應用。但只要不是全面部署了代理,盲點依然存在。單靠一種方法想要摸清企業環境中的應用情況是不可能的。這也是為什么應用清單梳理如此之難的原因所在。
用工具掃描也得知道環境中到底有多少臺服務器才有用。而且,即便掃描全面而準確,也會給公司企業帶來沉重的管理負擔。如果開發過程中沒有融入安全檢查,這些掃描就得持續進行,各種應用得不停地分別檢查再檢查,掃描再掃描。
不僅開發人員會在應用更新過程中引入新的帶漏洞的庫,之前被認為安全的老庫也會曝出新漏洞。軟件不是像酒一樣越久越醇,而是像牛奶一樣一放就壞。
開發人員很少會審查舊工程中用到的庫,一般就是到開源項目頁面下載下來,集成到自己的應用中,然后就再也不管它了。
不平凡軟件,鄭州軟件開發公司,鄭州軟件開發,鄭州軟件定制,鄭州微信開發,鄭州進銷存定制開發,鄭州OA系統開發,鄭州軟件開發公司
相關新聞換一組