在數(shù)字化轉(zhuǎn)型加速的時(shí)代,應(yīng)用安全已從幕后走到臺(tái)前,成為企業(yè)技術(shù)戰(zhàn)略的核心關(guān)注點(diǎn)。多年來,靜態(tài)應(yīng)用安全測試(SAST)一直是應(yīng)用安全領(lǐng)域的主導(dǎo)力量,但隨著網(wǎng)絡(luò)威脅的日益復(fù)雜化和軟件架構(gòu)的演進(jìn),其固有局限性日益凸顯。現(xiàn)代動(dòng)態(tài)應(yīng)用安全測試(DAST)將迎來爆發(fā)性增長,它不會(huì)取代 SAST,而是彌補(bǔ)其不足,共同構(gòu)建更全面的安全防線。
SAST之痛
靜態(tài)應(yīng)用安全測試(SAST)曾在應(yīng)用安全的早期發(fā)揮了重要作用。SAST提供了一種無需真正讓開發(fā)人員參與就能部署安全測試的簡便方法,能夠在軟件交付生命周期早期分析源代碼,提供了一種在生產(chǎn)前發(fā)現(xiàn)安全問題的更主動(dòng)的方法。但這也帶來了代價(jià)。
SAST工具發(fā)現(xiàn)的許多漏洞都是潛在的,存在嚴(yán)重的“信息過載”問題。這意味著需要大量的人力和時(shí)間來評(píng)估和確定風(fēng)險(xiǎn)的優(yōu)先級(jí)。而且這些漏洞信息缺乏關(guān)于哪些問題最關(guān)鍵的上下文信息,更不用說如何將它們映射到通用弱點(diǎn)枚舉(CWE)類別以確定真正的問題和必要的修復(fù)方法。
SAST 工具最初承諾為安全團(tuán)隊(duì)提供主動(dòng)安全測試能力,讓團(tuán)隊(duì)能在開發(fā)周期早期發(fā)現(xiàn)并解決安全問題。然而,極端的噪音很快使其成為開發(fā)人員的根本問題。由于過度敏感且缺乏上下文感知能力,反而可能降低了安全工作的效率和有效性,將本應(yīng)是輔助工具的 SAST 變成了一個(gè)需要大量人力去管理的負(fù)擔(dān)。在如此多的警報(bào)中,開發(fā)人員”幾乎不可能確定哪些問題需要優(yōu)先修復(fù)”,導(dǎo)致資源分配效率低下,可能忽視真正嚴(yán)重的安全問題。
SAST無法回答真正重要的問題,例如:這段代碼是否在生產(chǎn)環(huán)境中運(yùn)行?它是否暴露?它實(shí)際上能被利用嗎?如果不知道什么是可利用的,風(fēng)險(xiǎn)存在于代碼庫的哪個(gè)位置,以及如何修復(fù)它,測試出來的只是一堆毫無意義的警報(bào)。
現(xiàn)代動(dòng)態(tài)應(yīng)用安全測試(DAST)應(yīng)運(yùn)而生。DAST通過在運(yùn)行時(shí)測試應(yīng)用程序,精確定位真實(shí)風(fēng)險(xiǎn)而非理論風(fēng)險(xiǎn),徹底改變了這一局面。
現(xiàn)代DAST應(yīng)運(yùn)而生
動(dòng)態(tài)應(yīng)用程序安全測試 (DAST)是一種通過模擬外部攻擊來識(shí)別 Web 應(yīng)用程序漏洞的方法。與在部署前檢查源代碼的靜態(tài)應(yīng)用程序安全測試 (SAST) 不同,DAST 通過探測 Web 應(yīng)用程序的輸入和響應(yīng)來模擬真實(shí)世界的攻擊。
作為一種黑盒測試方法,DAST對(duì)于檢測可遠(yuǎn)程利用的漏洞(如SQL注入和跨站點(diǎn)腳本(XSS))以及特定于運(yùn)行時(shí)的安全問題(如錯(cuò)誤配置和身份驗(yàn)證缺陷)非常有用。成熟且集成良好的DAST工具可以掃描API,檢測復(fù)雜Web應(yīng)用程序中的應(yīng)用程序漏洞,并集成到軟件開發(fā)生命周期(SDLC)中的現(xiàn)代DevSecOps工作流中。
DAST提供的不再是充滿”潛在”問題的報(bào)告,而是清晰地告訴開發(fā)人員:這個(gè)漏洞在這個(gè)服務(wù)中、在這行代碼上是可利用的。
使用與組織規(guī)模和需求相匹配的準(zhǔn)確DAST對(duì)于主動(dòng)識(shí)別和解決安全漏洞至關(guān)重要,以防止它們被利用。DAST的主要優(yōu)勢包括:
值得一提的是,傳統(tǒng)DAST也有自己的問題。傳統(tǒng)DAST解決方案速度慢,與開發(fā)人員工作流不匹配,并且對(duì)API視而不見:對(duì)生產(chǎn)環(huán)境運(yùn)行掃描需要數(shù)小時(shí)甚至數(shù)天,即使發(fā)現(xiàn)了漏洞,也沒有辦法將它們追溯到源代碼以便輕松修復(fù);而沒有API測試,傳統(tǒng)DAST錯(cuò)過了現(xiàn)代攻擊面的大部分,使組織暴露在風(fēng)險(xiǎn)中。
現(xiàn)代DAST工具通過更緊密地集成到開發(fā)流程中,并提供更準(zhǔn)確、更及時(shí)的反饋,來改善開發(fā)人員的安全測試體驗(yàn),使安全成為開發(fā)過程的自然組成部分,而不是阻礙或額外負(fù)擔(dān)。
幸運(yùn)的是,現(xiàn)代DAST解決方案可以更緊密地集成到開發(fā)流程中,通過作為代碼運(yùn)行、實(shí)時(shí)測試API和微服務(wù),并在開發(fā)人員工作的地方提供即時(shí)反饋來解決這些問題,提供更準(zhǔn)確、更及時(shí)的反饋。特別是隨著AI的興起,現(xiàn)代DAST提供了更快的速度和更高的效率。工程師和安全團(tuán)隊(duì)現(xiàn)在都能在工作流程中獲得即時(shí)、可行的安全見解,而不再需要篩選大量潛在漏洞。
“現(xiàn)代DAST+SAST”新趨勢
現(xiàn)代DAST興起的結(jié)果,并非淘汰SAST,而是將SAST 的全面性和 DAST 的上下文感知能力結(jié)合起來,提供一種更智能的安全測試方法,使安全測試從可能阻礙開發(fā)速度的障礙轉(zhuǎn)變?yōu)橹С挚焖偾野踩能浖桓兜耐苿?dòng)力。其優(yōu)勢在于:
由此可見,DAST 和SAST 不再是孤立的工具,而是相互補(bǔ)充的安全伙伴,為組織提供了前所未有的安全可見性。
對(duì)于前瞻性的組織而言,現(xiàn)在正是重新評(píng)估安全測試策略的時(shí)機(jī)。那些能夠成功整合 DAST 和SAST,并將它們無縫融入 DevSecOps 流程的企業(yè),將在日益復(fù)雜的威脅環(huán)境中占據(jù)優(yōu)勢。他們不僅能夠更快地交付軟件,還能確保這些軟件在設(shè)計(jì)上更加安全。