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