SAST vs DAST:如何選擇
在自動化安全測試中最常見的是靜態(tài)應(yīng)用程序安全測試(SAST)和動態(tài)應(yīng)用程序安全測試(DAST)。這兩種工具每個都解決不同的問題,并有自己的一套優(yōu)缺點,但兩者都旨在軟件開發(fā)生命周期 (SDLC)中提高測試應(yīng)用程序的速度、效率和覆蓋路徑。
什么是 SAST?
靜態(tài)應(yīng)用程序安全測試 (SAST) 是一種用于軟件開發(fā)早期階段的白盒測試,用于確保編碼安全并幫助開發(fā)人員在代碼投入生產(chǎn)之前檢測漏洞。SAST直接面向源代碼,從內(nèi)到外分析應(yīng)用程序,在編譯代碼之前檢查軟件中的缺陷。防止黑客利用易受攻擊的代碼,并使 DevOps 團隊不必在部署應(yīng)用程序后修復(fù)缺陷。
SAST具有許多明顯的優(yōu)勢,包括能夠精確定位問題代碼并在開發(fā)早期發(fā)現(xiàn)缺陷。此外,SAST 可以自動化并輕松集成到持續(xù)集成和持續(xù)交付(CI/CD)管道中,以便更頻繁地交付可靠的代碼。
什么是DAST ?
動態(tài)應(yīng)用程序安全測試(DAST)與 SAST 相反。DAST在流程的后期使用,DAST工具無法訪問源代碼,并且從外部測試應(yīng)用程序,就像黑客試圖入侵。因此,DAST通常被稱為黑盒測試。
SAST 優(yōu)缺點
使用 SAST 進行檢測時,開發(fā)人員在代碼庫中生成邏輯和功能時會收到即時通知。SAST 掃描可識別可被利用的邏輯缺陷。例如,SQL 注入或跨站點腳本 (XSS) 攻擊。SAST 的缺點會存在一定的漏報,并且對于配置錯誤無法查找。
DAST 優(yōu)缺點
DAST 主要優(yōu)勢是能夠跨多個服務(wù)器、環(huán)境(例如云和本地)、API 端點和其他基礎(chǔ)架構(gòu)掃描整個攻擊面。但也有一些缺點,如DAST無法直接定位缺陷所在,開發(fā)人員很難確定導(dǎo)致出現(xiàn)問題的位置。而且由于它發(fā)生在SDLC的后期,所以會導(dǎo)致修復(fù)問題的時間成本增加。
SAST vs DAST:如何選擇
測試軟件更全面的方法是同時使用 SAST 和 DAST,在開發(fā)人員編碼時運行SAST ,同時將DAST運用在部署到測試環(huán)境后掃描軟件。
SAST 和 DAST 工具可幫助操作人員和開發(fā)人員了解軟件中的關(guān)鍵安全問題。例如,SAST可以自動化并用于創(chuàng)建報告,開發(fā)人員可以依靠這些報告來快速定位源代碼中的缺陷,然后可以對其進行修復(fù)。SAST工具可以生成實時報告,以便在編碼過程中提供即時反饋。可以防止在軟件開發(fā)生命周期 (SDLC) 期間出現(xiàn)一連串缺陷。SAST 可用于將 DevOps 和 DevSecOps 結(jié)合起來,提供應(yīng)用程序漏洞的全面視圖,并為開發(fā)人員提供修復(fù)建議。通過DAST工具查找SAST無法發(fā)現(xiàn)的安全漏洞,查找軟件運行中可被利用的漏洞。
現(xiàn)代軟件開發(fā)和 DevOps 流程對于快速開發(fā)代碼和部署補丁至關(guān)重要。但這種快速的過程也意味著忽略一些軟件漏洞。結(jié)合使用自動化 SAST 和 DAST 工具,有助于形成更安全的 SDLC,降低應(yīng)用程序包含可致命漏洞的可能性。
來源:
https://www.beyondsecurity.com/blog/sast-vs-dast-partners-or-enemies/
