본문으로 건너뛰기
로그인 둘러보기
보안·개인정보 · 윈도우즈 유틸

VulnAPI

0

VulnAPI는 CerberAuth에서 개발한 오픈소스 API 보안 취약점 스캐너입니다. DAST(Dynamic Application Security Testing) 방식으로 동작하며, API의 일반적인 보안 취약점과 약점을 탐지하여 공격에 노출되기 전에 사전에 대응할 수 있도록 도와줍니다.

API 보안CLI 도구Go 언어MIT 라이선스취약점 스캐너

소개

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 저장소의 릴리스 페이지에서 최신 버전 정보를 확인할 수 있습니다. 취약점 탐지 목록은 주기적으로 업데이트되며, 사용자는 이슈나 풀 리퀘스트를 통해 새로운 취약점 탐지 기능을 제안할 수 있습니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.