高清无码男男同同性,久久久久日韩AV无码一区,自拍 另类 综合 欧美小说,尤物网址在线观看

0371-63319761
您的當前位置:主頁 > 安全研究 > 企業(yè)動態(tài) >

開源軟件安全:優(yōu)勢與挑戰(zhàn)共存

時間:2018-04-13

      使用開源組件可以節(jié)省開發(fā)時間和公司成本。換句話說,用開源,省時省力省錢。然而,有一利必有一弊,開源方便你我他的同時,其安全風險也不容忽視。

 

      Equifax數據泄露事件就給業(yè)界上了生動一課,提醒人們開源軟件和組件可能給企業(yè)安全帶來巨大的風險,尤其是在開源組件沒有得到很好維護的時候,其引入的安全風險往往超出了能帶來的種種好處。

 

      今年4月,Flashpoint Intelligence 的研究人員稱,罪犯暴力破解了流行開源Magento電子商務平臺的口令,利用拿到的訪問權大肆搜刮信用卡記錄并安裝加密貨幣挖礦惡意軟件。

 

      研究人員發(fā)現Magento至少有1000個管理面板被黑,并稱自2016年起深網和暗網對該平臺的興趣就一直沒減。

 

      近幾年開源代碼熱度持續(xù)上升,各類公司都紛紛采用開源組件構建自己的系統(tǒng)和平臺。

 

      除了市場上常見的開源操作系統(tǒng),開源的生產力軟件、管理員/開發(fā)者工具和各種代碼庫也是企業(yè)用戶用于打造自有軟件的一大助力。甚至商業(yè)軟件也往往建立在開源代碼的基礎之上。

 

      企業(yè)中開源軟件的采用越來越廣泛。隨著企業(yè)轉向敏捷方法,開源變得更加有價值,也有更多工具可以利用。剛入行的軟件開發(fā)新鮮人已經很習慣于應用開源技術了。

 

      開源安全優(yōu)勢

 

      開發(fā)人員重度依賴開源軟件,公司企業(yè)也慣于依靠有大型團隊維護的主流開源項目。且在安全上一直都有“眾人之眼”的說法——越多人盯著就越安全。除了廉價,“眾人之眼”帶來的安全性可能就是使用開源軟件的主要好處了。理論上,開源軟件是有很多雙眼睛盯著的。當然,這一理論對小型開源項目或代碼庫不適用。畢竟,有些軟件是沒有開發(fā)者社區(qū)的。

 

      開源代碼的另一個安全優(yōu)勢是,如果出現了問題,可以得到立即曝光和修復。而如果是專利代碼,通常就只有等待供應商的響應了。

 

      為什么開源軟件會帶來安全威脅?

 

      開源軟件的品質總體上是在不斷提升的。免費開源代碼漏洞掃描服務 Coverity Scan 掃描的7.5億行開源代碼中檢出了110萬個缺陷,其中65萬個已經得到了解決。但是很多項目,尤其是小型項目,并不對其代碼進行潛在安全漏洞掃描。

 

      Black Duck Software 公司則在跟蹤55萬個項目中的100多億行開源代碼。而這甚至都還沒覆蓋開源代碼的全貌。Linux基金會報告稱,開源代碼庫中提交的代碼有310億行。

 

      都是誰在用這些開源代碼呢?所有人!Black Duck 最近一期報告顯示,96%的商業(yè)應用中都融入了開源組件。平均每個應用中含有147個開源組件,且67%的應用采用了帶有已知漏洞的開源組件。

 

      美國政府是公共漏洞列表(CVE)和國家漏洞數據庫(NVD)的背后東家。僅2017年一年就有8000多個新漏洞加到了CVE中,創(chuàng)了歷史新高。

 

于是,為什么公司企業(yè)要用開源軟件?普通應用的代碼庫里超過1/3都是開源代碼。想要替換掉這1/3的代碼庫,公司企業(yè)要么給開發(fā)團隊增加50%的人手,要么延長50%的開發(fā)時間。今天這種看重時間成本效益的世界里,恐怕正常人都不太會這么干。

 

      就拿倫敦旅行搜索引擎公司Skyscanner來說吧。這家公司過去依賴.NET之類的閉源平臺,但近些年來已逐漸遷移到很多其他語言和技術上了,其中就包含有開源技術。這意味著該公司軟件工程師們可以依靠多種來源分分鐘部署代碼。

 

      但開源組件的安全問題依然存在。“眾人之眼”可杜絕安全漏洞的想法帶有誤導性。事實上,開源代碼被眾人盯了多年也還在爆安全漏洞的現象并不少見。

 

      很多主流開源代碼庫中都存在已確認的漏洞。但工程師僅僅是從這些庫中抽取并部署代碼,并沒有意識到由此引入到產品中的種種依賴關系。于是,可見性問題便出現了。

 

      需對開源軟件安全做更多盡職審查

 

      Skyscanner并非個案。Veracode最新報告顯示,僅28%的公司企業(yè)會做某種形式的定期分析,找出有哪些組件被融入到了其應用中。隨著開源代碼使用的增加,風險界面也在膨脹。

 

      開源代碼中不斷發(fā)現新漏洞,而很多項目并沒有查找并修復問題的機制。Snyk對開源項目維護者的調查發(fā)現,44%的開源項目從未進行過安全審計,僅17%的項目表示有高水平的安全專業(yè)技能。

 

      開源項目的安全記錄方式也沒個標準可以遵循。GitHub上排名前40萬的公共代碼庫中,僅2.4%有安全文檔。

 

      然后,即便問題被修復,也無法找到并通知老版本代碼的用戶。開源社區(qū)并不知道都有誰使用了他們的代碼。

 

      Snyk的調查報告中還稱,88%的開源代碼維護者在版本注釋中加入安全相關的聲明,34%的維護者會強烈反對使用不安全的老版本。25%的維護者稱自己根本不會費心通知用戶有漏洞,僅10%會提交CVE。

 

      很多開源項目維護者都不清楚CVE的運行機制,或者沒時間去跑這個流程。比如說,Snyk跟蹤到的Javascript漏洞里,只有13%有CVE編號,剩下的87%也就僅僅被稱為漏洞而已了。

 

      Snyk有一支安全研究團隊專門從版本注釋、GitHub和Apache問題跟蹤系統(tǒng)等地方找尋開源代碼庫安全問題的線索。該團隊發(fā)現問題會公布到Snyk的漏洞數據庫中,在合適的時候提交到CVE列表里。

 

      但是,獲取CVE編號的過程可能比較復雜,需要委員會認可CVE具體細節(jié),還需要征得項目擁有者的同意。當前的CVE編號獲取方式缺乏擴展性。

 

      另外,即便漏洞被發(fā)現并推出了補丁,使用該脆弱代碼的公司企業(yè)也可能沒注意到自己需要打補丁,或者找不出需要打補丁的所有實例。Equifax數據泄露事件就是該問題的明顯案例。其所用 Apache Struts 開源組件的補丁早在數據泄露發(fā)生前2個月就推出了,且Equifax也注意到了有補丁可用,但依然沒能及時打上補丁。

 

      還有一些公司因為兼容性問題、合規(guī)問題等原因而無法遷移到最新版本開源代碼,仍在使用帶漏洞的老版代碼。這也是個問題。據Snyk稱,僅16%的漏洞補丁是向后兼容其他版本的。

 

      查找并修復

 

      理想情況下,應用會在安全補丁可用的即刻就更新自身,無需任何人為干預。但實際上,這并非始終可行。

 

      公司企業(yè)需要能夠在自身環(huán)境中找出所有開源代碼的運行實例,持續(xù)更新該實例列表,讓開發(fā)人員避開這些不安全的老舊代碼庫,并最終在新漏洞被發(fā)現時及時部署補丁。

 

      只有知道脆弱庫在哪里,才能夠將這些有漏洞的代碼庫從產品中移除。產品開發(fā)生命周期中越早移除漏洞,開發(fā)和維護成本就越低,過程也更輕松。

 

      很多公司會向Snyk、Black Duck 和Veracode之類的供應商尋求幫助。Skyscanner也這么做了。Snyk讓Skyscanner看清了其哪些項目中用到了哪些包,這些包里含有哪些漏洞,這些漏洞是如何引入到Skyscanner的代碼中的。而且,Snyk還會在開發(fā)人員編寫代碼的當時就標出漏洞,將問題撲滅在代碼進入生產環(huán)境之前。

 

      在開發(fā)過程中集成開源漏洞掃描對大型企業(yè)來說尤其重要,因為大企業(yè)要跟蹤其使用的所有代碼是非常困難的。大多數公司都不清楚自己到底有多少個應用,這種情況是很恐怖的。

 

      Veracode進行漏洞掃描的時候,客戶公司會上傳其二進制代碼,Veracode就將之與NVD進行對比。為幫助客戶發(fā)現自身沒有注意到的在用應用,Veracode還會掃描客戶公司的邊界,不是為了找出沒暴露出來的內部應用,而是為了找出如果暴露出來會降低風險的應用。

 

      有些網絡工具也可以幫公司企業(yè)找出內部運行的應用,但如果網絡是分隔的,就會出現盲點。公司企業(yè)還可以在終端上安裝代理以跟蹤其上運行的應用。但只要不是全面部署了代理,盲點依然存在。單靠一種方法想要摸清企業(yè)環(huán)境中的應用情況是不可能的。這也是為什么應用清單梳理如此之難的原因所在。

 

      很明顯,Equifax就深刻感受到了這一難題。去年10月,該公司前CEO在國會質詢上稱,Equifax的信息安全部門進行過漏洞掃描,但并未發(fā)現任何受該漏洞影響的 Apache Struts,該漏洞在Equifax網頁應用中存在了太長時間。

 

      用工具掃描也得知道環(huán)境中到底有多少臺服務器才有用。而且,即便掃描全面而準確,也會給公司企業(yè)帶來沉重的管理負擔。如果開發(fā)過程中沒有融入安全檢查,這些掃描就得持續(xù)進行,各種應用得不停地分別檢查再檢查,掃描再掃描。

 

      不僅開發(fā)人員會在應用更新過程中引入新的帶漏洞的庫,之前被認為安全的老庫也會曝出新漏洞。軟件不是像酒一樣越久越醇,而是像牛奶一樣一放就壞。

 

      開發(fā)人員很少會審查舊工程中用到的庫,一般就是到開源項目頁面下載下來,集成到自己的應用中,然后就再也不管它了。

Copyright © 2017-2024 河南中瀚安全技術有限公司 版權所有 豫ICP備18011434號-1 豫公網安備 41019702002746號