
REST 및 SOAP API를 OpenAPI/Swagger 스펙 및 WSDL 파일을 사용하여 취약점을 스캔하는 자동화된 API 보안 테스트 도구입니다. OWASP ZAP, MariaDB, MongoDB와 함께 전체 스택을 배포합니다.
API Scanner는 REST 및 SOAP API의 취약점을 OpenAPI/Swagger 명세서와 WSDL 파일을 사용해 스캔하는 자동화된 API 보안 테스트 도구입니다.
git clone https://github.com/CSPF-Founder/api-scanner-docker.git
cd api-scanner-docker
python3 setup.py
스크립트는 다음을 수행합니다:
./certs/에 이미 있는 경우 사용자 인증서 사용).env 설정 파일 작성브라우저에서 https://localhost:4455를 여세요.
자체 서명된 인증서를 사용하는 경우 브라우저에 보안 경고가 표시됩니다 - 계속 진행하여 수락하세요.
설정 스크립트 대신 수동으로 설정하려면:
cp .env.example .env
.env를 편집하고 다음을 업데이트하세요:
change_me_* 비밀번호를 강력한 무작위 값으로CSRF_KEY를 32자 이상의 무작위 문자열로ZAP_API_KEY를 무작위 문자열로TRUSTED_ORIGINS를 도메인으로 (예: https://scanner.yourcompany.com)DATABASE_URI 및 MONGO_DATABASE_URI의 비밀번호가 개별 비밀번호 변수와 일치하는지 확인스택 시작:
docker compose up -d
모든 설정은 .env 파일을 통해 이루어집니다. 모든 옵션은 .env.example을 참조하세요.
모든 데이터는 Docker 명명된 볼륨에 저장됩니다:
mariadb_data - 사용자 계정, 역할, 세션mongodb_data - 스캔 기록, 결과, 보고서scanner_data - 작업 파일, 업로드된 명세서, 생성된 보고서docker compose pull
docker compose up -d
docker compose down
모든 데이터를 제거하려면 (파괴적):
docker compose down -v
로그 확인:
docker compose logs api-scanner
docker compose logs zap
서비스 상태 확인:
docker compose ps
ZAP이 시작되지 않음: 최소 4GB의 여유 RAM을 확보하세요. ZAP는 약 3GB가 필요합니다.
패널에 접속할 수 없음: TLS 인증서가 ./certs/에 있는지, TRUSTED_ORIGINS가 포트를 포함한 URL과 일치하는지 확인하세요 (예: https://localhost:4455).
데이터베이스 연결 오류: 첫 시작 후 데이터베이스 초기화를 위해 30-60초 기다리세요.
전체 사용자 매뉴얼: https://cspf-founder.github.io/api-scanner-docker/
| 서비스 | 이미지 | 설명 |
|---|
| api-scanner | cysecurity/api-scanner:latest | 단일 컨테이너 내 웹 패널 + 스캔 엔진 |
| zap | ghcr.io/zaproxy/zaproxy:stable | OWASP ZAP 보안 스캐너 |
| mariadb | mariadb:10.11 | 사용자 관리 및 세션 저장소 |
| mongodb | mongo:4.4 | 스캔 데이터, 결과, 보고서 |
| 변수 | 설명 |
|---|
MARIADB_PASSWORD | MariaDB 애플리케이션 사용자 비밀번호 |
MONGO_APP_PASSWORD | MongoDB 애플리케이션 사용자 비밀번호 |
CSRF_KEY | CSRF 보호 키 (32자 이상) |
ZAP_API_KEY | ZAP API 인증 키 |
TRUSTED_ORIGINS | 패널에 허용된 HTTPS 출처 |
USE_TLS | HTTPS 활성화 (기본값: true) |
TZ | 시간대 (기본값: UTC) |