動態應用程式安全測試 (DAST) 如何運作?
DAST 解決方案可識別應用程式中潛在的輸入字段,然後向其發送各種異常或惡意輸入。這可以包括嘗試利用常見類型的脆弱性(例如 SQL 注入命令、跨站腳本 (XSS) 脆弱性和長輸入字串)以及可能發現應用程式中的輸入驗證和記憶體管理問題的異常輸入。
根據應用程式對各種輸入的反應,DAST 工具可識別其是否包含特定的脆弱性。例如,如果 SQL 注入攻擊提供了對資料的未經授權的訪問,或者應用程式由於無效或格式錯誤的輸入而崩潰,那麼這表明存在可利用的脆弱性。
為什麼 DAST 很重要
DAST 解決方案旨在識別正在執行的應用程式中潛在的脆弱性。這使得找到可能影響應用程式功能和安全性的配置或運行時脆弱性成為可能。
優缺點
DAST 解決方案是企業應用程式安全策略的重要組成部分。DAST 解決方案的一些主要優點包括:
- 偵測執行階段問題: DAST 掃描器與正在運行的應用程式交互,使其能夠檢測應用程式中的編譯時和運行時問題。
- 低假陽性率: DAST 透過利用脆弱性來識別脆弱性,使其能夠驗證潛在的脆弱性實際上對應用程式的功能或安全性構成威脅。
- 語言不明主義: DAST 解決方案在黑盒評估中測試正在運行的應用程序,這意味著它可用於在任何環境下以任何語言編寫的應用程式。
儘管 DAST 具有眾多優勢,但並不是一個全面的解決方案。 DAST 的一些主要缺點包括:
- 在 SDLC 中的後期出現: DAST 程式需要存取正在運行的應用程序,這意味著它只能在軟體開發生命週期 (SDLC) 後期執行,此時修復的脆弱性成本更高。
- 脆弱性地點: DAST 解決方案可以識別應用程式中存在脆弱性,但無法存取原始程式碼,因此無法在程式碼庫中找到確切位置。
- 代碼覆蓋範圍: DAST 解決方案評估正在運行的應用程序,這意味著它們可能會錯過未執行的部分程式碼的脆弱性。
達斯特與薩斯特
靜態應用程式安全測試 (SAST) 對應用程式的原始程式碼進行分析,而不是與正在運行的應用程式進行互動。DAST 和 SAST 是應用程式安全性的互補方法。DAST 和 SAST 之間的一些主要區別包括:
- 測試類型: SAST 是一種白盒脆弱性掃描,可以完全存取應用程式的原始程式碼,而 DAST 是一種黑盒評估,不了解應用程式的內部結構。
- 必要的代碼到期: SAST 解決方案會掃描原始碼,從而使它們能夠在部分程式碼上執行。 DAST程式解決方案只能分析正在運行的應用程序,這需要更成熟的程式碼。
- SDLC 階段: SAST 分析原始程式碼的能力使其能夠比 DAST 更早地在 SDLC 中執行,而 DAST 需要正在運行的應用程式。
- 修復費用: 由於 SAST 分析在 SDLC 中發生得較早,因此修復任何已識別脆弱性的成本比使用 DAST 更低。在 SDLC 中越晚,可能需要修復的程式碼越多,而且可用的時間就越少。
- 脆弱性覆蓋範圍: DAST 解決方案能夠識別 SAST 解決方案無法識別的運行時脆弱性和配置錯誤,因為在 SAST 分析期間程式碼未執行。
- 脆弱性的位置: SAST 解決方案掃描原始程式碼,因此他們確切地知道脆弱性位於應用程式中的位置。DAST 只知道存在脆弱性,但無法指向特定的程式碼行。
- 假陽性檢測: DAST 與應用程式交互,使其能夠確定潛在的脆弱性是否確實影響應用程式的功能。SAST 僅基於應用程序模型工作,並且具有較高的假陽性率。
使用 DAST 提高應用程式安全性
強大的應用程式安全實踐對於保護基於雲端的工作負載免受攻擊至關重要。DAST 能夠偵測各種脆弱性,特別是與 SAST 結合使用時。透過在被攻擊者利用之前識別脆弱性,SAST 和 DAST 大大降低了修復成本及其對組織及其客戶的潛在影響。
Check Point complements SAST and DAST 漏洞掃描 with runtime application protection for cloud-based workloads. Check Point AppSec analyzes each request in context and learns as your organization’s applications evolve.
了解有關Check Point更多信息 Check Point AppSec 及其提高組織基於雲端的應用程式和工作負載安全性的能力,請查看這本電子書。然後, 報名參加免費示範 to see the capabilities of Check Point for yourself.
