SAST 與 DAST:靜態和動態應用程式安全測試

zktq2021發表於2022-08-04

什麼是SAST,什麼是 DAST?

SAST(靜態應用程式安全測試)是一種白盒測試方法,它直接檢查應用程式原始碼,可以在編碼階段查詢已知/未知的安全漏洞。DAST(動態應用程式安全測試)是一種黑盒測試方法,從外部對正在執行的應用程式進行測試,模擬駭客攻擊探測執行時漏洞。

簡而言之,DAST檢查執行中的web應用程式,而SAST檢查其靜態程式碼。

什麼是 IAST?

互動式應用程式安全測試 ( IAST ),有時稱為灰盒測試,介於動態分析(白盒測試)和靜態分析(黑盒測試)之間。IAST作為一個安全測試工具,它向SAST新增了一些動態測試能力,或者是一種向動態測試新增原始碼洞察的方法。

SAST與DAST覆蓋

覆蓋率是安全測試的一個基本屬性,無論是在一個特定的應用程式中還是在整個Web應用程式環境中。

SAST 面向應用程式的原始碼,可以覆蓋所有可執行路徑,分析更穩妥而全面。對於DAST,因為它們從外部測試應用程式並檢查它們的行為,可以檢測複雜的記憶體處理錯誤,例如超出陣列範圍的索引編制和記憶體洩漏。但不能保證完整的程式碼覆蓋率。

SAST 與 DAST 的安全測試準確性和效率

誤報始終是應用程式安全測試中的熱門話題,既可以理解為錯誤結果,也可以理解為有效但不可操作的發現。對於SAST 工具來說,除了工具本身特性導致的誤報,一些時候,存在的缺陷可能導致漏洞利用鏈,這種缺陷也經常被認為是無關緊要的問題而被識別為誤報。DAST 所識別出的漏洞誤報相對較低,因為發現的問題通常為實際被利用的漏洞或缺陷。

使用 DAST 和 SAST 查詢漏洞

舉一個具體的例子,假設應用程式根據來自 Web 表單的使用者輸入從 SQL 資料庫中獲取資料。SAST 工具可能會識別執行此操作的原始碼片段,並警告開發人員特定程式碼行中的 SQL 查詢以不安全的方式組裝,並可能導致SQL 注入。DAST 工具將在頁面上找到 Web 表單並執行安全檢查以模擬實際的 SQL 注入攻擊。如果測試攻擊成功,掃描程式將報告應用程式在該特定頁面上存在 SQL 注入漏洞。

將 SAST 和 DAST 構建到 SDLC 中

在軟體開發生命週期 (SDLC) 的早期階段進行安全測試對於在漏洞進入後期階段甚至生產之前發現和修復漏洞至關重要。原始碼分析是在早期開發過程中發現和消除安全缺陷的有效方式。SAST 通常很容易與開發環境和工作流整合,無論是作為 IDE 檢查器還是獨立的分析過程。結合DAST,IAST等安全測試,有助於大大提高應用程式的安全性。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2909025/,如需轉載,請註明出處,否則將追究法律責任。

相關文章