
交互式應(yīng)用安全測(cè)試(IAST)和軟件組件分析(SCA)是應(yīng)用程序安全測(cè)試中兩款強(qiáng)大、但相對(duì)來說比較新的技術(shù)。使用動(dòng)態(tài)測(cè)試(即運(yùn)行時(shí)測(cè)試)技術(shù)可以發(fā)現(xiàn)正在運(yùn)行的Web應(yīng)用的漏洞。IAST解決方案旨在幫助企業(yè)識(shí)別和管理與這些漏洞有關(guān)的安全風(fēng)險(xiǎn)。
SCA是市場(chǎng)分析師創(chuàng)造的一個(gè)術(shù)語,描述了自動(dòng)識(shí)別代碼庫中開源組件的過程。一旦識(shí)別出組件,就可以對(duì)比已知的安全問題,判斷組件是否存在這些隱患,了解在一個(gè)應(yīng)用里面是否存在組件的不同版本。另外,SCA還可以幫助識(shí)別組件的年份,確定是否需要維護(hù)。除了安全方面的問題,SCA還可以發(fā)現(xiàn)開源代碼中的許可證合規(guī)性問題。
IAST和SCA結(jié)合的必要性
根據(jù)2018年Verizon數(shù)據(jù)泄露調(diào)查報(bào)告 ,Web應(yīng)用程序攻擊仍然是數(shù)據(jù)泄露最常見的載體。Web應(yīng)用程序是黑客試圖訪問敏感IP/數(shù)據(jù)和個(gè)人數(shù)據(jù)(比如用戶名和密碼、信用卡賬號(hào)和患者信息)的首選攻擊界面。企業(yè)需要確保他們開發(fā)的web應(yīng)用程序是安全的,最好是在投產(chǎn)之前就已經(jīng)確保安全性,并且當(dāng)關(guān)鍵漏洞被發(fā)現(xiàn)時(shí),開發(fā)者可以快速將其修復(fù)。
Web應(yīng)用程序很少僅由專有代碼組成。事實(shí)上,相反來說,開源代碼組件在商業(yè)和內(nèi)部應(yīng)用程序中無處不在。新思科技開源研究和創(chuàng)新中心發(fā)布的2018年開源安全和風(fēng)險(xiǎn)分析報(bào)告 (OSSRA)顯示在1,100個(gè)被掃描的應(yīng)用程序中有96%存在開源組件,每個(gè)應(yīng)用程序中平均有257個(gè)組件。因?yàn)槠髽I(yè)通常不知道他們使用多少甚至使用什么開源組件,當(dāng)開源組件的漏洞被發(fā)現(xiàn)時(shí),他們可能不知不覺中已經(jīng)成為攻擊者的目標(biāo)。OSSRA報(bào)告顯示,78% 被檢查的代碼庫中至少包含一個(gè)漏洞,每個(gè)代碼庫平均包含 64個(gè)漏洞。
雖然開發(fā)和安全團(tuán)隊(duì)經(jīng)常使用靜態(tài)應(yīng)用安全測(cè)試工具(SAST)和軟件組件分析解決方案(SCA)來識(shí)別web應(yīng)用程序中的安全缺陷和漏洞,但只有通過動(dòng)態(tài)測(cè)試才能檢測(cè)正在運(yùn)行的應(yīng)用程序中的許多漏洞,從而推動(dòng)了動(dòng)態(tài)應(yīng)用安全測(cè)試工具(DAST)的發(fā)展。盡管與傳統(tǒng)的DAST和滲透測(cè)試工具有相似之處,IAST在軟件開發(fā)生命周期(SDLC)早期發(fā)現(xiàn)漏洞的能力要優(yōu)于前兩者,在修復(fù)漏洞時(shí)更容易、更快速且成本更低。隨著時(shí)間的推移,IAST很有可能會(huì)取代DAST。這有兩方面的原因:第一,IAST在軟件開發(fā)生命周期早期反饋漏洞信息并迅速提供補(bǔ)救指南方面具有強(qiáng)大優(yōu)勢(shì);第二,它還可以更輕松地集成到CI/CD和DevOps工作流程中。
往軟件開發(fā)生命周期左端推移
IAST通常用在軟件開發(fā)生命周期的測(cè)試和質(zhì)量保證(QA)階段。采用IAST可以有效地將測(cè)試往軟件開發(fā)生命周期左端推移,盡早發(fā)現(xiàn)問題并且降低補(bǔ)救成本,減少產(chǎn)品發(fā)布延遲。當(dāng)重新編譯更改的代碼并重新測(cè)試正在運(yùn)行的應(yīng)用程序時(shí),最新一代的IAST工具能即刻反饋結(jié)果。
IAST從應(yīng)用程序內(nèi)部進(jìn)行分析,可以訪問應(yīng)用程序代碼、運(yùn)行時(shí)控制和數(shù)據(jù)流信息、內(nèi)存和堆棧追蹤信息、網(wǎng)絡(luò)請(qǐng)求和響應(yīng)、庫、框架和其它組件(通過與SCA工具集成)。該分析不僅可以使開發(fā)人員查明已識(shí)別漏洞的來源,而且可以快速解決問題。
IAST工具需要具備哪些功能?
我們要依據(jù)哪些標(biāo)準(zhǔn)來挑選一款I(lǐng)AST工具?它可以執(zhí)行應(yīng)用程序代碼審查。而且這些應(yīng)用程序是以你現(xiàn)在使用的編程語言編寫的;它還需要與軟件使用的底層框架兼容;還有一點(diǎn)很重要,它必須可以輕松、快速地進(jìn)行部署,并與CI/CD工作流程無縫集成;此外,我們希望IAST工具還可以與任何類型的測(cè)試方法兼容,包括 現(xiàn)有的自動(dòng)化測(cè)試、手動(dòng)QA/開發(fā)測(cè)試、自動(dòng)網(wǎng)絡(luò)爬蟲、單元測(cè)試等等。
有效的IAST工具可以為DevOps團(tuán)隊(duì)提供識(shí)別安全漏洞的能力,并且可以告知該漏洞是否會(huì)被利用,F(xiàn)在任何IAST工具都應(yīng)該包括web APIs,使DevOps能夠?qū)y(cè)試集成到持續(xù)集成構(gòu)建中。這些構(gòu)建過程會(huì)使用到Jenkins等持續(xù)集成工具。
隨著軟件中開源代碼使用的普及,有效的IAST工具需要了解所測(cè)試的應(yīng)用程序的開源組件。SCA工具負(fù)責(zé)分析開源組件。
了解在指定的應(yīng)用程序中的開源漏洞是否會(huì)被利用,需要了解易受攻擊的組件是否存在、漏洞的利用如何運(yùn)作、以及應(yīng)用程序如何利用該組件。只有高效的IAST和SCA工具組合才能有效識(shí)別該級(jí)別的軟件風(fēng)險(xiǎn)并指導(dǎo)開發(fā)人員解決問題。集成的IAST和SCA解決方案可以幫助開發(fā)團(tuán)隊(duì)構(gòu)建更安全的軟件、最大限度地降低風(fēng)險(xiǎn),同時(shí)最大限度的加快開發(fā)速度和產(chǎn)量,并且提高軟件的質(zhì)量。