소개
VulnAPI는 CerberAuth에서 개발한 오픈소스 API 보안 취약점 스캐너입니다. DAST(Dynamic Application Security Testing) 방식으로 동작하며, API의 일반적인 보안 취약점과 약점을 탐지하여 공격에 노출되기 전에 사전에 대응할 수 있도록 도와줍니다. Go 언어로 작성되었으며, MIT 라이선스 하에 배포됩니다. 주요 기능으로는 Curl-like CLI 방식과 OpenAPI 계약을 통한 스캔, 프록시 지원, 텔레메트리 수집(옵트아웃 가능)이 포함됩니다.
상세정보
API 탐지 기능
스캔을 시작하기 전에 대상 API의 유용한 정보를 발견할 수 있는 discover 명령을 제공합니다. 이 명령은 OpenAPI, GraphQL, 잘 알려진 경로(.well-known), 노출된 파일(.env 등)을 탐지하고, 사용 중인 프레임워크, 언어, 서버 정보를 출력합니다.
Curl-like CLI 스캔
curl과 유사한 방식으로 API를 스캔할 수 있습니다. vulnapi scan curl [API_URL] [CURL_OPTIONS] 명령을 실행하면, 대상 API URL과 추가 curl 옵션을 지정하여 스캔을 수행할 수 있습니다.
OpenAPI 계약 기반 스캔
OpenAPI 스펙 파일을 활용한 스캔도 지원합니다. echo "[JWT_TOKEN]" | vulnapi scan openapi [PATH_OR_URL_TO_OPENAPI_FILE] 형식으로 명령을 실행하여, 인증이 필요한 API도 스캔 대상에 포함할 수 있습니다.
프록시 지원
프록시 서버 뒤에 있는 API를 스캔해야 할 경우, HTTP_PROXY 또는 HTTPS_PROXY 환경 변수를 설정하거나, --proxy 명령어 인수를 통해 프록시 URL을 지정할 수 있습니다.
텔레메트리 및 옵트아웃
스캔 횟수, 탐지된 취약점 수 및 심각도와 같은 익명 사용 통계를 수집하여 도구 개선에 활용합니다. 민감한 정보는 수집하지 않으며, --sqa-opt-out 플래그를 사용해 텔레메트리 수집을 거부할 수 있습니다.
기본 사용법
VulnAPI를 사용하기 전에 공식 설치 문서에 따라 다운로드 및 설치를 완료해야 합니다. 설치 후 터미널 또는 명령 프롬프트에서 vulnapi -h 명령을 실행하면 사용 가능한 모든 명령과 플래그를 확인할 수 있습니다.
주요 명령 구조는 다음과 같습니다:
vulnapi discover api [API_URL]: 대상 API 정보 탐색vulnapi scan curl [API_URL] [CURL_OPTIONS]: curl-like 방식으로 스캔 수행echo "[JWT_TOKEN]" | vulnapi scan openapi [PATH_OR_URL_TO_OPENAPI_FILE]: OpenAPI 계약 기반 스캔 수행vulnapi -h: 전체 도움말 보기
스캔 실행 시, 취약점 유형, 위험도, CVSS 점수, OWASP 분류, 영향을 받는 작업 및 상세 설명이 포함된 표 형식의 결과를 출력합니다. 예를 들어, 누락된 보안 헤더(X-Frame-Options, CORS, CSP, HSTS 등)나 인증되지 않은 요청 허용 문제 등을 탐지할 수 있습니다.
지원 환경·시스템 요구사항
VulnAPI는 Windows를 포함한 크로스플랫폼 바이너리로 제공되며, 공식 Chocolatey 패키지(chocolatey.vulnapi)를 통해 Windows 환경에서 간편하게 설치할 수 있습니다. 구체적인 시스템 요구사항은 공식 문서에 명시되지 않았으나, Go로 작성된 바이너리이므로 일반적인 Windows 10/11 환경에서 실행 가능합니다.
최신 버전·업데이트
현재 버전은 0.10.0이며, GitHub 저장소의 릴리스 페이지에서 최신 버전 정보를 확인할 수 있습니다. 취약점 탐지 목록은 주기적으로 업데이트되며, 사용자는 이슈나 풀 리퀘스트를 통해 새로운 취약점 탐지 기능을 제안할 수 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


