Lucas+Mearian+++楊勇
軟件組成清單可以幫助發(fā)現(xiàn)已知的漏洞,讓企業(yè)應(yīng)用程序更安全。
隨著企業(yè)開(kāi)發(fā)的定制應(yīng)用程序越來(lái)越多——其中很多移動(dòng)應(yīng)用程序是移動(dòng)優(yōu)先策略的一部分,內(nèi)部開(kāi)發(fā)人員越來(lái)越有可能在無(wú)意中使用充斥著漏洞的開(kāi)源代碼。
開(kāi)發(fā)定制應(yīng)用程序使企業(yè)能夠讓客戶(hù)——無(wú)論是內(nèi)部用戶(hù)還是消費(fèi)者,有更好的移動(dòng)體驗(yàn),從而讓自己在競(jìng)爭(zhēng)中脫穎而出。
與傳統(tǒng)的軟件開(kāi)發(fā)不同,移動(dòng)應(yīng)用程序的開(kāi)發(fā)更加復(fù)雜,特別是當(dāng)公司開(kāi)發(fā)服務(wù)器側(cè)網(wǎng)絡(luò)API或者客戶(hù)側(cè)本地富客戶(hù)端時(shí)。當(dāng)把軟件集成到其他應(yīng)用程序和系統(tǒng)中時(shí)也是如此。
網(wǎng)絡(luò)應(yīng)用程序不僅能夠傳播底層弱點(diǎn)和漏洞,而且還給設(shè)備上敏感數(shù)據(jù)的安全存儲(chǔ)帶來(lái)了新問(wèn)題。
Gartner公司研究總監(jiān)Michael Isbitski說(shuō):“與傳統(tǒng)的應(yīng)用程序設(shè)計(jì)相比,移動(dòng)應(yīng)用程序的設(shè)計(jì)、開(kāi)發(fā)和安全方面的專(zhuān)業(yè)知識(shí)往往更為有限,并且在移動(dòng)平臺(tái)更加分散。”
現(xiàn)在的應(yīng)用程序很少是從頭開(kāi)始編程的,特別是當(dāng)軟件由公司之外的開(kāi)發(fā)和運(yùn)營(yíng)部門(mén)開(kāi)發(fā)的情況。開(kāi)發(fā)人員通常去在線知識(shí)庫(kù)來(lái)獲取開(kāi)源組件——作為構(gòu)建模塊的代碼塊,組裝成定制移動(dòng)應(yīng)用程序。
免費(fèi)的開(kāi)源組件中存在大量漏洞
問(wèn)題在于沒(méi)有對(duì)開(kāi)源代碼進(jìn)行審查,其使用會(huì)使企業(yè)和客戶(hù)出現(xiàn)漏洞。Heartbleed就是這種情況,它是2014年在OpenSSL庫(kù)中發(fā)現(xiàn)的漏洞。
Heartbleed對(duì)應(yīng)用程序和操作系統(tǒng)(桌面和移動(dòng))、網(wǎng)絡(luò)設(shè)備和嵌入式系統(tǒng)都有廣泛的影響。
Isbitski說(shuō):“在某些情況下,它會(huì)一直存在,這可能是由于更新相關(guān)組件的技術(shù)限制,或者管理員疏忽所造成的?!?/p>
用于Java網(wǎng)絡(luò)應(yīng)用程序的開(kāi)源網(wǎng)絡(luò)開(kāi)發(fā)框架Apache Struts,以及流行的JavaScript運(yùn)行時(shí)環(huán)境Node.js最近都發(fā)現(xiàn)了漏洞。Isbitski說(shuō),如果被利用,Node.js漏洞可能導(dǎo)致受影響的應(yīng)用程序具備拒絕服務(wù)(DoS)條件。
IDC的安全產(chǎn)品部項(xiàng)目副總裁Sean Pike說(shuō):“這里的問(wèn)題是,人們一直是在網(wǎng)上隨機(jī)尋找自己需要的東西——而對(duì)于企業(yè),隨機(jī)找到的軟件就有可能很快應(yīng)用于為重要的企業(yè)系統(tǒng)提供支持?!?/p>
DDoS攻擊對(duì)企業(yè)可能是毀滅性的,而有的攻擊甚至可能危及生命。越來(lái)越多的醫(yī)院網(wǎng)絡(luò)和醫(yī)療設(shè)備采用了無(wú)線方式進(jìn)行連接,例如起搏器和嵌入式胰島素分配器等,因此,發(fā)現(xiàn)漏洞并及時(shí)進(jìn)行保護(hù)顯得尤為重要。
上個(gè)月,美國(guó)政府的醫(yī)療保健行業(yè)網(wǎng)絡(luò)安全工作組發(fā)布了一份關(guān)于怎樣提高網(wǎng)絡(luò)安全的報(bào)告。報(bào)告建議醫(yī)療設(shè)備制造和軟件開(kāi)發(fā)方面應(yīng)更加透明,以減少安全漏洞。
鑒于上個(gè)月有報(bào)道說(shuō)在四臺(tái)起搏器編程機(jī)上發(fā)現(xiàn)了8000個(gè)已知的安全漏洞,因此,這一建議非常及時(shí)。
無(wú)論是商用貨架軟件(COTS)還是開(kāi)源組件都不太安全——這仍然是安全專(zhuān)家們爭(zhēng)論的焦點(diǎn)。
開(kāi)發(fā)人員從大型在線知識(shí)庫(kù)那里得到開(kāi)源組件,這種組件通常采用Java、Python、Ruby等編程語(yǔ)言。開(kāi)源軟件是開(kāi)放的,可以詳細(xì)的對(duì)其進(jìn)行檢查,在一個(gè)完整的應(yīng)用中不會(huì)產(chǎn)生太多的問(wèn)題。
Isbitski指出,但這不太適用于開(kāi)發(fā),這是因?yàn)樗恰懊赓M(fèi)”使用的,或者沒(méi)有資金投入。COTS是封閉的,是設(shè)計(jì)專(zhuān)用的,攻擊者不太容易對(duì)其發(fā)起攻擊。但是經(jīng)驗(yàn)豐富的攻擊者仍然有辦法對(duì)商業(yè)軟件進(jìn)行逆向工程剖析,找到弱點(diǎn)或者漏洞。
Isbitski說(shuō):“現(xiàn)在的應(yīng)用程序開(kāi)發(fā)有相當(dāng)一部分采用了開(kāi)源組件。開(kāi)源代碼重用有助于縮短新軟件或者硬件的開(kāi)發(fā)周期。它對(duì)安全編程也有好處,因?yàn)殚_(kāi)發(fā)人員可以使用包含了安全和可信功能的標(biāo)準(zhǔn)化組件?!?/p>
去年,IDC預(yù)測(cè)應(yīng)用程序安全是IT管理者們最關(guān)心的問(wèn)題;雖然人們對(duì)這個(gè)問(wèn)題很感興趣,但還沒(méi)有像研究機(jī)構(gòu)那么重視。
Pike說(shuō):“這還沒(méi)有實(shí)現(xiàn)呢。我認(rèn)為,其中有些直接與物聯(lián)網(wǎng)有關(guān)。我認(rèn)為不良代碼造成了太多的物聯(lián)網(wǎng)故障,這將提高人們對(duì)這方面的認(rèn)識(shí)。”
盡管如此,公司仍然對(duì)移動(dòng)應(yīng)用程序開(kāi)發(fā)趨之若鶩,主要目的是改善業(yè)務(wù)。據(jù)Gartner對(duì)移動(dòng)應(yīng)用程序開(kāi)發(fā)平臺(tái)的年度研究,2016年開(kāi)發(fā)定制移動(dòng)應(yīng)用程序的企業(yè)數(shù)量大幅增長(zhǎng)——其中有很多簡(jiǎn)單的應(yīng)用程序是用于處理業(yè)務(wù)流程。
漏洞檢查太少
2015年,約有60%的企業(yè)從事移動(dòng)應(yīng)用程序開(kāi)發(fā)。據(jù)這項(xiàng)研究,去年這一數(shù)字猛增到73%左右。Maven中心知識(shí)庫(kù)是流行的Java開(kāi)源代碼組件最大的知識(shí)庫(kù),去年發(fā)現(xiàn)每15個(gè)下載的軟件中就有一個(gè)含有已知漏洞。
Derek Weeks是管理Maven中心知識(shí)庫(kù)的Sonatype的副總裁,也是DevOps的倡導(dǎo)者,他說(shuō):“目前還沒(méi)有對(duì)軟件開(kāi)發(fā)進(jìn)行充分的檢查,因此,不知道使用了什么,里面是不是有已知的漏洞?!?/p>
知識(shí)庫(kù)中存儲(chǔ)了二百萬(wàn)個(gè)各不相同的開(kāi)源Java組件,為全球大約1千萬(wàn)名開(kāi)發(fā)人員提供服務(wù)。去年,Sonatype響應(yīng)了知識(shí)庫(kù)的520億次下載申請(qǐng),比2015年的310億次有大幅上升。
Weeks說(shuō):“組件下載的年消費(fèi)量有明顯的增加。全世界大約只有1千萬(wàn)名Java開(kāi)發(fā)人員,所以當(dāng)您看到數(shù)以十億次的下載申請(qǐng)時(shí),說(shuō)明消費(fèi)量非常大。而且,這也擴(kuò)展到其他語(yǔ)言中。Python每年有數(shù)十億次下載?!?/p>
Weeks補(bǔ)充說(shuō):“這么多的下載并非壞事;但我們應(yīng)該意識(shí)到有時(shí)候會(huì)下載不好的東西。”
軟件組成清單
那么怎么知道您使用的是有問(wèn)題的組件呢?軟件開(kāi)發(fā)人員和某些企業(yè)正在努力推動(dòng)的一項(xiàng)工作是,促使美國(guó)聯(lián)邦政府要求提供軟件組成清單,類(lèi)似于預(yù)包裝食品中的配料清單。與食品配料不同,軟件組成清單列出了所有的軟件組件。
組成清單通常會(huì)列出已知漏洞,以常見(jiàn)漏洞和弱點(diǎn)標(biāo)識(shí)以及相關(guān)開(kāi)源許可的形式標(biāo)記出這些漏洞。
Weeks說(shuō):“如果您建立了缺陷列表,那么可以針對(duì)已知安全漏洞對(duì)其進(jìn)行評(píng)估。市場(chǎng)上既有商用的也有開(kāi)源的工具,您可以利用這些工具分析自己的應(yīng)用程序,找到其中的組件,確定它們是否有任何已知的安全漏洞。如果有,那么您必須決定是否要在將其發(fā)送給客戶(hù)之前修復(fù)它們,或者讓客戶(hù)知道存在已知的安全漏洞?!?/p>
2007年以來(lái),Maven中心知識(shí)庫(kù)開(kāi)源組件上傳申請(qǐng)數(shù)量每年都在增長(zhǎng)。知識(shí)庫(kù)中存儲(chǔ)了二百萬(wàn)個(gè)各不相同的開(kāi)源Java組件,為全球大約一千萬(wàn)名開(kāi)發(fā)人員提供服務(wù)。
不但管理Maven中心知識(shí)庫(kù),Sonatype還提供應(yīng)用程序健康檢查服務(wù),使企業(yè)能夠看到開(kāi)源應(yīng)用程序中有哪些組件,檢查是否有已知漏洞。這一免費(fèi)服務(wù)類(lèi)似于開(kāi)放網(wǎng)絡(luò)應(yīng)用安全項(xiàng)目(OWASP)。
黑鴨子軟件、Flexera軟件、Synopsys、Veracode和WhiteSource軟件提供各種軟件組成分析(SCA)工具。SCA工具通常使用美國(guó)聯(lián)邦政府的國(guó)家漏洞數(shù)據(jù)庫(kù)作為發(fā)現(xiàn)已知漏洞的數(shù)據(jù)源。
Isbitski說(shuō):“SCA可以作為供應(yīng)鏈認(rèn)證的一種形式,因此軟件用戶(hù)或者軟件采購(gòu)方可以驗(yàn)證其包含的內(nèi)容。由于開(kāi)發(fā)人員可能會(huì)在沒(méi)有意識(shí)到的情況下把有漏洞的開(kāi)源庫(kù)引入到代碼庫(kù)中,因此,軟件開(kāi)發(fā)生命周期的早期階段也使用了這種方法,幫助發(fā)現(xiàn)有漏洞的組件。一些SCA工具會(huì)推薦替代組件或者升級(jí)后的版本,在這些版本中已經(jīng)對(duì)漏洞進(jìn)行了糾正?!?/p>
其他掃描和檢測(cè)已知漏洞的免費(fèi)開(kāi)源工具包括OWASP依賴(lài)關(guān)系檢查、retire.js以及實(shí)時(shí)節(jié)點(diǎn)安全平臺(tái)等。Retire.js和實(shí)時(shí)節(jié)點(diǎn)安全平臺(tái)關(guān)注的重點(diǎn)都是JavaScript和Node.js組件分析。
組成清單是怎樣工作的
傳統(tǒng)應(yīng)用程序大約有100個(gè)開(kāi)源組件。這100個(gè)組件即使目前被認(rèn)為是安全的,將來(lái)也可能會(huì)發(fā)現(xiàn)漏洞。
在推動(dòng)軟件組成清單應(yīng)用的組織中,有一個(gè)是醫(yī)療衛(wèi)生行業(yè)網(wǎng)絡(luò)安全工作組;它建議醫(yī)療機(jī)構(gòu)創(chuàng)建應(yīng)用程序中使用的開(kāi)源和專(zhuān)用組件的軟件清單庫(kù),以便發(fā)現(xiàn)安全、許可和質(zhì)量問(wèn)題。
工作組報(bào)告說(shuō):“擁有一份組成清單是企業(yè)管理資產(chǎn)的關(guān)鍵,因?yàn)樵诖_定這些技術(shù)是否受到某一威脅或者漏洞影響之前,他們必須首先了解他們的系統(tǒng)都有些什么?!?/p>
更多的透明使醫(yī)療保健提供商能夠評(píng)估網(wǎng)上醫(yī)療設(shè)備的風(fēng)險(xiǎn),確定組件按照與醫(yī)療設(shè)備網(wǎng)絡(luò)安全同樣的基本要求進(jìn)行評(píng)估,在沒(méi)有補(bǔ)丁時(shí)實(shí)施緩解策略。
報(bào)告指出,雖然這種做法很重要,但仍然沒(méi)有得到廣泛采用。
Isbitski說(shuō):“大多數(shù)開(kāi)源軟件開(kāi)發(fā)的速度很快,不斷更新、添加或者刪除功能。開(kāi)發(fā)人員已經(jīng)掌握了大量的開(kāi)源軟件,隨著組件的不斷擴(kuò)展而變得更加復(fù)雜。這就需要對(duì)大量組件和版本進(jìn)行密切監(jiān)視。如果沒(méi)有工具的幫助,前期很難驗(yàn)證開(kāi)源組件,以后會(huì)逐漸暴露出問(wèn)題。”
Lucas Mearian——高級(jí)記者,其工作涉及企業(yè)移動(dòng)問(wèn)題,包括移動(dòng)管理、安全、硬件和應(yīng)用程序,以及企業(yè)協(xié)作技術(shù)等。
原文網(wǎng)址:
http://www.computerworld.com/article/3209105/mobile-wireless/how-to-expose-flaws-in-custom-built-mobile-apps.html