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