동적 스캐닝 절차

ZAP

스캔 도구 Web Mobile Local API Extension Serverless 안내
OWASP® Zed Attack Proxy (ZAP)

OWASP ZAP ; ZAP Docker 컨테이너를 사용하여 애플리케이션에 대해 자동 동적 스캔 (DAST)을 수행하세요.  사전 정의된 구성 파일에는 이미 필요한 모든 CWE가 포함되어 있습니다. 환경에 추가하고 Docker 실행 명령어만 있으면 됩니다.

각 유형의 정의는 여기를 클릭합니다. 앱 유형

웹, 모바일 또는 내부 애플리케이션의 전체 검사는 다음 단계에 따라 실행할 수 있습니다.

  1. DAST 및 API 검사는 ZAP Docker 이미지를 사용하여 실행됩니다. 웹, 모바일 또는 내부 애플리케이션의 경우 전체 ZAP 스캔은 prod-1 또는 스테이징 환경에서 실행해야 합니다. 

  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 데스크톱 UI를 사용하는 것입니다.

zap context
  1. 인증 메커니즘을 설정합니다. ZAP는 현재 다섯 가지 인증 방식을 지원합니다.

    • 수동 인증

    • 양식 기반 인증

    • HTTP/NTLM 인증

    • 스크립트 기반 인증

    • JSON 기반 인증

ZAP 인증
  1. 인증 매개변수를 정의합니다. 여기에는 일반적으로 로그인 URL과 페이로드 형식(사용자 이름 및 비밀번호)이 포함됩니다. 필수 매개변수는 사용 중인 인증 방법에 따라 다릅니다.
zap 인증 구성
  1. 유효한 사용자와 비밀번호를 추가합니다. 애플리케이션이 역할에 따라 다른 기능을 노출하는 경우 여러 사용자를 만듭니다.
zap Configure Users

이 설정을 구성한 후에는 스캔에서 참조할 수 있도록 컨텍스트를 파일로 내보낼 수 있습니다.

zap Export Context

스캔 명령어의 인수로 파일 경로를 포함해야 하므로 컨텍스트를 참조하기 쉬운 위치에 저장해야 합니다. 이제 컨텍스트 내에 지정된 사용자 로그인을 사용하여 인증된 스캔을 실행할 수 있습니다. 예:

zap Create User
  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