Dynamic Application Security Testing,DAST
動態應用程式安全測試針對正在執行中的應用程式application
從外部送出各種的請求
觀察系統的回應
找出安全弱點
與DAY37 比較
SAST -> 靜態 -> 看原始程式碼
DAST -> 動態 -> 測執行中的應用程式
以汽車作舉例:
SAST的檢查方式是:
將汽車所有零件拆開,一個一個檢查看有沒有問題
DAST的檢查方式是:
把整台車開到路上,踩踩看煞車、加速看看、轉彎看看、撞看看,來實際運作檢查會不會出問題
流程會是:
以登入頁面做舉例
DAST從外面測試不同的輸入和請求
觀察網站會不會出現:
- 不應該出現的資料
- 錯誤的權限行為
- 不安全的回應
- 部署與設定問題
SAST -> 白箱測試 ->直接看程式內部原始碼
DAST -> 黑箱測試 ->不知道程式裡面寫了什麼,直接從外部測試程式
黑箱測試
比較容易發現「軟體在部署後」的問題
SAST和DAST最好兩個都需要搭配使用
假設程式本身程式碼沒問題
但管理員部署網站時
把「備份檔案」放在「網站公開目錄」
結果使用者透過網站網址可以下載備份
像上面的問題如果有做黑箱測試就有可能被測試出來
它不是原始碼出問題,而是部署過程和設定出了問題
DAST的優點:
- 能測試實際執行的系統
- 比較能發現部署時的問題
- 不一定要取得原始程式碼
- 能用真正使用者的操作來測試
比較接近攻擊者實際的手法
但與滲透測試不同
DAST的缺點:
- 通常要等系統跑起來 (成本較高)
- 發現問題時,不能直接指出哪一行程式碼出問題
- 測不到的功能或路徑,可能會有遺漏
所以DAST不能取代SAST