国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

開源軟件安全挑戰(zhàn)依然存在但風(fēng)險(xiǎn)可控

2018-04-02 09:16MariaKorolov
計(jì)算機(jī)世界 2018年9期
關(guān)鍵詞:源代碼開發(fā)人員開源

Maria Korolov

使用開源組件節(jié)省了開發(fā)人員的時(shí)間和企業(yè)成本。換句話說,還是有市場的。本文簡要介紹怎樣提高開源代碼的安全性。

今年的Equifax泄露事件給我們敲響了警鐘,開源軟件和組件雖然有很多好處,但卻給企業(yè)安全帶來了巨大的風(fēng)險(xiǎn),特別是在維護(hù)不當(dāng)?shù)那闆r下。

所有縱向行業(yè)各種規(guī)模的企業(yè)現(xiàn)在都在使用開源軟件。有開源操作系統(tǒng)、生產(chǎn)效率軟件、管理員和開發(fā)人員的工具,以及企業(yè)用來開發(fā)自己的軟件的代碼庫。甚至商業(yè)軟件通常也是在開源代碼的基礎(chǔ)上開發(fā)的。

Kudelski安全公司的首席技術(shù)官Andrew Howard表示:“我看到開源軟件在企業(yè)中的應(yīng)用越來越廣泛。隨著企業(yè)轉(zhuǎn)向敏捷方法,開源變得更有價(jià)值,并且有很多可供使用的工具。您可以注意一下剛剛進(jìn)入市場的軟件開發(fā)新手,他們經(jīng)過培訓(xùn),非常適應(yīng)開源技術(shù)?!?/p>

開源代碼的安全優(yōu)勢

Howard說,開發(fā)人員非常依賴于開源軟件,尤其愿意采用有大規(guī)模團(tuán)隊(duì)進(jìn)行維護(hù)的大型開源項(xiàng)目。此外,還可以通過很多相關(guān)方來保證安全。他說:“這是使用開源軟件的主要優(yōu)勢,而不僅僅是為了降低成本。理論上有更多的相關(guān)方關(guān)注它。”盡管他補(bǔ)充說,這不適用于小項(xiàng)目或者代碼庫,“有些軟件還沒有相關(guān)的社區(qū)?!?/p>

開源軟件的另一個安全優(yōu)勢是,如果有問題,企業(yè)可以立即打開它并進(jìn)行修改。Synopsys公司的開源解決方案經(jīng)理Mel Llaguno說:“如果代碼是根據(jù)專有協(xié)議授權(quán)的,那企業(yè)通常必須等待供應(yīng)商的回應(yīng)?!?/p>

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

Synopsys管理的Coverity是一項(xiàng)免費(fèi)服務(wù),用于掃描開源軟件的漏洞。Llaguno說:“總體上,開源軟件的質(zhì)量一直在穩(wěn)步提高。我們的掃描項(xiàng)目涉及到大約7.5億行開源代碼,發(fā)現(xiàn)了110萬個漏洞——并且已經(jīng)解決了65萬個漏洞?!彼a(bǔ)充說,很多項(xiàng)目,尤其一些小項(xiàng)目,都不會掃描它們的代碼以發(fā)現(xiàn)潛在的安全漏洞。

例如,Black Duck軟件公司跟蹤了55萬多個項(xiàng)目中的100多億行開源代碼。而且這還不是全部。Linux基金會報(bào)告說,已經(jīng)有310億行代碼被提交給了開源代碼庫。

誰在使用所有這些開源代碼?所有人。根據(jù)最新的Black Duck報(bào)告,目前96%的商業(yè)應(yīng)用軟件中都有開源組件。應(yīng)用程序平均有147個不同的開源組件,67%的應(yīng)用程序使用了含有已知漏洞的組件。

美國政府資助了公共漏洞枚舉(CVE)名錄和國家漏洞數(shù)據(jù)庫。2017年,CVE名錄中新增了8千多個漏洞,創(chuàng)歷史新高。

那么,為什么企業(yè)要使用開源軟件呢?Synopsys公司的Black Duck安全策略師Mike Pittenger指出:“在一般的應(yīng)用軟件中,三分之一以上的代碼都是開源的。如果想替換這些三分之一的代碼庫,那么您將不得不增加開發(fā)團(tuán)隊(duì)的人手,開發(fā)時(shí)間會延長50%——在當(dāng)今的環(huán)境下,我認(rèn)為這不是可行的選擇?!?/p>

以倫敦的Skyscanner有限公司為例,該公司生產(chǎn)旅行搜索引擎。公司習(xí)慣于在.NET這樣的私有封閉的平臺上運(yùn)行。Skyscanner的安全工程師Alex Harriss說,過去幾年中,公司轉(zhuǎn)向采用各種開發(fā)語言和技術(shù),包括開源。他說:“這意味著我們的工程師現(xiàn)在可以參考多種開源庫,幾分鐘內(nèi)就能夠部署好代碼?!?/p>

Harriss說,但這也帶來了安全難題。他說:“我認(rèn)為事實(shí)上有一種錯誤的導(dǎo)向,即作為開源,社區(qū)已經(jīng)對這些庫進(jìn)行了安全漏洞檢查。實(shí)際情況并非總是如此?!?/p>

他說,很多文件齊全的庫中都存在著已知的漏洞。由于工程師只需從這些庫中提取代碼并進(jìn)行部署,因此這就帶來了可見性問題。他說:“我們根本不清楚我們產(chǎn)品有多大的依賴性。”

需要對開源軟件安全進(jìn)行詳細(xì)的盡職調(diào)查

并非Skyscanner一家是這樣。據(jù)最新的Veracode報(bào)告,只有28%的企業(yè)進(jìn)行定期分析,找出哪些組件被構(gòu)建到了他們的應(yīng)用程序中。隨著開源代碼使用的越來越多,風(fēng)險(xiǎn)面也在擴(kuò)大。

在開源代碼中不斷發(fā)現(xiàn)新的漏洞,很多項(xiàng)目還沒有發(fā)現(xiàn)和修復(fù)問題的機(jī)制。據(jù)Snyk最近對開源代碼維護(hù)人員的調(diào)查,44%的受訪者從未進(jìn)行過安全審計(jì),只有17%的受訪者說他們有高水平的安全技能。

也沒有標(biāo)準(zhǔn)的方法來記錄開源項(xiàng)目的安全性。在GitHub上的40萬個公共代碼庫中,只有2.4%有安全文檔。

那么,如果修復(fù)了問題,常常無法找到并通知老代碼的所有用戶。Black Duck的Pittenger說:“開源社區(qū)并不知道誰在使用他們的組件?!?/p>

據(jù)Snyk調(diào)查,88%的開源代碼維護(hù)人員在發(fā)布聲明中添加了與安全相關(guān)的聲明,34%的維護(hù)人員不贊成使用不安全的老版本。25%的維護(hù)人員表示,他們根本沒有精力來通知用戶有漏洞,只有10%的維護(hù)人員向CVE提交了文件。

Snyk有限公司的首席執(zhí)行官和聯(lián)合創(chuàng)始人Guy Podjarny指出,很多人并不知道CVE過程是怎樣工作的,或者沒有時(shí)間去了解它。他說:“例如,在JavaScript中,我們跟蹤的漏洞中只有13%的漏洞有一個CVE編碼。其余的則只是被記錄為缺陷。”

Snyk的安全研究部門通過查找發(fā)布聲明以及GitHub和Apache問題跟蹤系統(tǒng)中的線索,來尋找開源庫安全問題的跡象。研究結(jié)果發(fā)布在漏洞數(shù)據(jù)庫中,并且可能的話,Snyk也會將其提交給CVE名錄。

然而,要獲得CVE是一個比較復(fù)雜的過程,需要委員會同意提供詳細(xì)的CVE,還需要與項(xiàng)目所有者達(dá)成協(xié)議。Podjarny說:“目前這種方法的運(yùn)作方式還形不成規(guī)模?!?/p>

最后,如果發(fā)現(xiàn)并修補(bǔ)了漏洞,并且公布了補(bǔ)丁,那么使用這些代碼的企業(yè)也不一定知道自己是不是有漏洞,或者難以找到所有實(shí)例中的漏洞。例如,今年影響很大的Equifax泄露事件涉及到Apache Struts開源軟件的一個漏洞。在泄露事件發(fā)生幾個月之前就發(fā)布了補(bǔ)丁,Equifax雖然知道補(bǔ)丁,但仍然沒有及時(shí)打上補(bǔ)丁。

另一個問題是,有些公司還在運(yùn)行老版本的代碼,由于兼容性問題、合規(guī)或者其他原因,無法遷移到最新版本。據(jù)Snyk,只有16%的漏洞補(bǔ)丁能后向應(yīng)用于其他版本。

發(fā)現(xiàn)并修復(fù)

在理想情況下,一旦有了安全補(bǔ)丁,應(yīng)用程序能夠在不需要任何干預(yù)的情況下立即更新安全補(bǔ)丁。然而,在實(shí)踐中,并非總是如此。

相反,企業(yè)需要有一種方法,找到其環(huán)境中的所有源代碼實(shí)例,不斷更新列表,幫助開發(fā)人員避免使用老的、不安全的庫,最終在發(fā)現(xiàn)新漏洞后及時(shí)打上補(bǔ)丁。

Skyscanner的Harriss說:“只有當(dāng)您知道漏洞在哪里時(shí),才能從自己的產(chǎn)品中去除漏洞庫,而且在產(chǎn)品生命周期中,這項(xiàng)工作做得越早,成本就越低,也越容易?!?/p>

很多公司轉(zhuǎn)向Snyk、Black Duck和Veracode這樣的供應(yīng)商以尋求幫助。Skyscanner也是這樣做的。Harriss說:“Snyk讓我們看到在哪些項(xiàng)目中使用了哪些補(bǔ)丁包,這些項(xiàng)目有哪些漏洞,是怎樣引入到我們代碼中的?!贝送猓_發(fā)人員在編寫代碼時(shí),Snyk會立即向他們提示哪里有漏洞,這樣便可在代碼投產(chǎn)之前解決這些問題。

因?yàn)楹茈y追蹤正在使用的所有代碼,因此把開源漏洞掃描功能集成到開發(fā)過程中對大型企業(yè)尤其重要。Veracode研究副總裁Chris Eng說:“和我們打交道的大多數(shù)公司都不知道他們所擁有的全部應(yīng)用程序,這有點(diǎn)嚇人。”

當(dāng)Veracode進(jìn)行漏洞掃描時(shí),公司會上傳二進(jìn)制代碼,Veracode會參照國家漏洞數(shù)據(jù)庫進(jìn)行檢查。為幫助公司發(fā)現(xiàn)哪些應(yīng)用程序可能存在問題,Veracode還可以掃描公司的周界。Eng說:“不是要找到漏洞還沒有被暴露的內(nèi)部應(yīng)用程序,而是那些由于發(fā)現(xiàn)了漏洞從而能降低風(fēng)險(xiǎn)的應(yīng)用程序?!?/p>

他還補(bǔ)充說,企業(yè)還可以使用一些網(wǎng)絡(luò)工具來了解內(nèi)部運(yùn)行情況,但如果網(wǎng)絡(luò)是分段的,則可能會出現(xiàn)盲點(diǎn)。公司還可以在端點(diǎn)設(shè)備上安裝代理來跟蹤運(yùn)行情況。Eng說:“如果不在所有的設(shè)備上都安裝代理,可能還會有盲點(diǎn)。沒有萬能的方法,這就是為什么這個問題非常棘手的原因?!?/p>

對于Equifax來說,這肯定也是一個難題去年十月份,前首席執(zhí)行官Richard Smith告訴國會,該公司的信息安全部門進(jìn)行了掃描,尋找導(dǎo)致最終泄露事件的Apache Struts漏洞。他說,掃描“沒有發(fā)現(xiàn)任何版本的Apache Struts受到這個漏洞的影響,這個漏洞在Equifax網(wǎng)絡(luò)應(yīng)用程序中存留的時(shí)間比預(yù)期要長得多?!?/p>

Black Duck的Pittenger說:“必須確保這一工具能夠掃描到環(huán)境中的所有服務(wù)器?!奔词箳呙枋侨娴?,準(zhǔn)確的,也會給企業(yè)帶來大量的管理開銷。如果開發(fā)過程中沒有內(nèi)置安全檢查功能,那么必須持續(xù)進(jìn)行這類掃描,分別檢查而且還要不斷檢查應(yīng)用程序是否有漏洞。

開發(fā)人員不僅會在更新應(yīng)用程序時(shí)引入新的漏洞庫,而且還會在以前認(rèn)為安全的老庫中發(fā)現(xiàn)新漏洞。Eng說:“軟件不像酒那樣越老越香。而是像牛奶一樣會變質(zhì)。”

Eng說,開發(fā)人員很少回頭去檢查他們在舊項(xiàng)目中使用的庫。他說:“我下載當(dāng)前的最新版本,把它集成到我的應(yīng)用程序中,就再也不去想它了?!?/p>

Black Duck這個月以5億美元收購了Synopsys公司,充分說明了這一問題目前有多重要。Denim集團(tuán)負(fù)責(zé)人John Dickson對如此大手筆的交易感到驚訝,他說:“我敢說,這是由市場決定的。我原以為這非常熱門,沒想到是如此的熱門。此次收購真的是無人不知?!?/p>

Maria Korolov過去20年一直涉足新興技術(shù)和新興市場。

原文網(wǎng)址:

http://www.csoonline.com/article/3157377/application-development/report-attacks-based-on-open-source-vulnerabilities-will-rise-20-percent-this-year.html

猜你喜歡
源代碼開發(fā)人員開源
人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
基于TXL的源代碼插樁技術(shù)研究
五毛錢能買多少頭牛
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
軟件源代碼非公知性司法鑒定方法探析
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
揭秘龍湖產(chǎn)品“源代碼”
開源計(jì)算機(jī)輔助翻譯工具研究
后悔了?教你隱藏開發(fā)人員選項(xiàng)
贺州市| 南丹县| 瑞安市| 江源县| 黄石市| 周口市| 富川| 黄冈市| 瑞昌市| 威远县| 普宁市| 湾仔区| 辽阳市| 吉首市| 白水县| 山西省| 北京市| 阿合奇县| 本溪市| 黄骅市| 皋兰县| 社会| 濮阳市| 沙河市| 郁南县| 和龙市| 斗六市| 临沭县| 平泉县| 上蔡县| 五家渠市| 平塘县| 多伦县| 昌宁县| 健康| 沁水县| 尉氏县| 定安县| 丰顺县| 宜州市| 汝城县|