動態掃描程序

ZAP

掃描工具 Web Mobile Local API Extension Serverless 操作說明
OWASP® Zed Attack Proxy (ZAP)

使用 OWASP ZAP;ZAP Docker 容器可針對應用程式執行自動動態掃描 (DAST)。預先定義的設定檔已包含所有必要的 CWE。您只需要將其新增至環境和 Docker 執行指令即可。

如要瞭解各類型的定義,請按這裡 應用程式類型

您可以按照下列步驟,對網頁、行動裝置或內部應用程式執行完整掃描:

  1. 系統會使用 ZAP Docker 映像檔執行 DAST 和 API 掃描。對於網頁、行動或內部應用程式,應在 prod-1 或階段環境中執行完整的 ZAP 掃描。 

  2. 下載 zap-casa-config.conf 設定檔,然後前往該檔案所在的目錄。 

  1. 產生要用來執行掃描作業的內容檔案。詳情請參閱下方的「驗證」操作說明。

  1. 執行下列指令:

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py 
-t https://example.com -P 8080 
-c zap-casa-config.conf 
-x results-full.xml -n example.context -U username
  1. 輸出結果會儲存在 XML 檔案中 (附件中的範例:zap-results-full.xml)

您可以按照下列步驟執行 API 掃描:

  1. 如要掃描 API,請使用 zap-casa-api-config.conf 設定檔。 

  1. 前往該目錄並執行下列指令

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
-t owasp/zap2docker-stable zap-api-scan.py 
-t https://example.com -f openapi-P 8080 
-c zap-casa-api-config.conf 
-x results-full.xml
  1. 輸出內容會儲存為 XML 檔案 (範例附件如下: zap-results-api.xml)

驗證

ZAP 掃描應使用驗證機制執行,以瞭解使用者資料的儲存及存取位置。您必須先設定掃描作業,ZAP Docker 映像檔允許兩個與驗證相關的引數:

-n context_file

掃描目標前會載入的內容檔案

-U 使用者

用於驗證掃描作業的使用者名稱。使用者必須在指定的內容檔案中定義。

如要設定這些參數,必須先建立結構定義檔案。最簡單的方法是透過 ZAP Desktop UI 執行這項操作。

zap 背景資訊
  1. 設定驗證機制。ZAP 目前支援五種驗證方式:

    • 手動驗證

    • 表單驗證

    • HTTP/NTLM 驗證

    • 以指令碼為基礎的驗證

    • 以 JSON 為基礎的驗證

zap 驗證
  1. 定義驗證參數。這通常包括登入網址和酬載格式 (使用者名稱和密碼)。必要參數專屬於使用的驗證方法。
zap 設定驗證
  1. 新增有效的使用者和密碼。如果應用程式會根據角色提供不同的功能,請建立多個使用者。
zap 設定使用者

設定這些設定後,您可以將內容匯出為檔案,供掃描作業參考。

zap 匯出內容

請務必將內容儲存在方便參考的位置,因為您需要加入檔案路徑做為掃描指令的引數。 您現在可以使用在情境中指定的使用者登入資訊,執行經過驗證的掃描作業。範例:

zap 建立使用者
  docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
  -t owasp/zap2docker-stable zap-full-scan.py 
  -t https://example.com -P 8080 
  -c zap-casa-config.conf -x results-full.xml 
  -n /Users/DemoUser/Documents/Context.context -U test@example.com