相關性(混合式分析)的運作方式
沒有任何一種單一的自動化分析技術能找出所有可能存在的漏洞;每一種技術都有其強項和弱點。「動態分析安全測試 (DAST)」會使用與駭客類似的做法來刺探,藉此來測試執行中的 Web 應用程式。「靜態分析安全測試 (SAST)」會檢查應用程式的原始碼來找尋潛在的漏洞。
此圖表說明了每一種技術可發現的漏洞類型,以及在相關性上重疊的部分。大型綠色圓圈表示 DAST、SAST 和手動測試能找出的所有潛在安全性問題。
透過動態分析可輕鬆地觀察整體,以便連接漏洞和潛在攻擊。DAST 會示範應用程式中受到所傳送測試攻擊影響的地方;它會自動遍訪應用程式,並使用 HTTP 竄改來測試可能的輸入(傳送要求並接收反映回瀏覽器的回應)。但是,安全分析師在使用動態分析時,一律會詢問「我的測試涵蓋面是適當的嗎?」使用 DAST 的挑戰在於找出到達內容的頁面和路徑,以及涵蓋所有攻擊的途徑。
靜態分析會透過原始碼來檢查資料流,且因為不需要執行中的 Web 應用程式,而可用於開發週期的早期階段。相較於 DAST 受限於只能查看透過 HTTP 傳輸的資料流,SAST 則可以查看在後端傳輸且動態分析無法察覺的多重資料流,例如後端網路通訊、檔案系統存取等等。因此 SAST 能找出遠比 DAST 更多的問題,但這些問題實際上不一定都是您組織中的高優先順序問題,因為 SAST 發現的項目一般會被解譯為違反安全規則最佳作法,而不一定表示「一定會被攻擊」。過濾功能可移除對於組織安全原則而言並不嚴重的問題。SAST 的挑戰在於設定問題的優先順序。
DAST 會查看直到 Web 伺服器層級在內的整個網路架構。SAST 只能直接查看 Web 應用程式。
混合式分析的挑戰
「混合式分析」 (又稱為相關性)結合 DAST 和 SAST 來建立相關性並驗證結果。使用動態分析所識別出的問題可追蹤至不當的程式碼行。SAST 問題可使用 DAST 資訊來自動設定優先順序。
混合式分析的挑戰在於 DAST 仰賴反映回瀏覽器的資料;所以當 SAST 資料流並未如同 DAST 問題一般反映回瀏覽器時,就不會顯示在 AppScan® Enterprise 的「相關安全問題」報告中。
下列圖表說明了此項挑戰。從使用者角度,此 DAST 圖表顯示作為資料流的 SQL 注入。惡意程式碼被輸入至網頁中的使用者名稱/密碼欄位,且瀏覽器中顯示了錯誤訊息。
從後端角度來看,在此 SAST 圖表中的相同 SQL 注入攻擊實際上是三個資料流。