V3 API 개요

사용 가능한 모든 v3 API 리소스

개요

VulnCheck API 엔드포인트는 프로그래밍 방식 접근에 최적화되어 있으며, JSON 기계 판독 가능 데이터를 제공합니다.

VulnCheck 색인backup 엔드포인트(색인의 전체 복사본 다운로드 제공) 또는 index 엔드포인트(문서의 페이지네이션 목록 제공 및 개별 레코드 조회 가능)를 통해 접근할 수 있습니다.

접근할 수 있는 'index'와 'backup' API 엔드포인트 목록은 VulnCheck 대시보드의 VulnCheck API Sandbox에서 확인할 수 있습니다.

시작하기

  1. VulnCheck 계정 가입. 가입 즉시 커뮤니티 리소스에 접근할 수 있습니다.
  2. VulnCheck 대시보드에 로그인합니다.
  3. API Sandbox를 클릭해 접근 권한이 있는 VulnCheck 색인을 탐색합니다.
  4. 토큰 생성을 통해 프로그래밍 방식 API 접근 권한을 부여받습니다.

API 세부 정보

모든 API 메서드는 기본 URL로 https://api.vulncheck.com/ 를 사용합니다.

메서드이름설명
GET/v3/backup엔드포인트 링크가 포함된 백업 목록 반환
GET/v3/backup/{index}특정 색인의 백업 링크 요청
GET/v3/cpeCPE와 관련된 취약점 요청
GET/v3/index엔드포인트 링크가 포함된 색인 목록 반환
GET/v3/index/{index}선택한 색인에서 페이지네이션된 문서 목록 조회
GET/v3/openapi현재 OpenAPI Specification(OAS) 조회
GET/v3/pdns/{filter}Protective DNS용 호스트 이름 목록 기반으로 개행 문자 분리 또는 JSON 형식의 호스트 이름 반환
GET/v3/purlPURL과 관련된 취약점 요청
GET/v3/rules/initial-access/{rules}Initial Access Intelligence Suricata 또는 Snort 규칙 요청
GET/v3/search/cpeCPE Part, Vendor, Product, Version 별 취약점 요청
GET/v3/tags/{filter}IP 태그 기반의 개행 문자 분리 또는 JSON 형식의 IP 주소 목록 반환

오류 처리

VulnCheck API는 표준 HTTP 상태 코드를 사용하여 요청의 성공 또는 실패를 나타냅니다. 대부분의 클라이언트 오류는 400 상태 코드를 반환하며, 특히 존재하지 않는 인덱스에 대한 요청의 경우 이러한 상황이 발생합니다.

모든 오류 응답은 일관된 JSON 구조를 따릅니다:

{
  "error": true,
  "errors": [
    "failed to query requested index"
  ]
}

일반적인 오류 시나리오:

  • 400 잘못된 요청: 잘못된 매개변수, 형식이 잘못된 요청, 또는 존재하지 않는 인덱스에 대한 요청
  • 401 인증 오류: 유효하지 않거나 누락된 인증 토큰
  • 402 결제 필요: 요청된 데이터를 보려면 구독이 필요
  • 403 금지됨: 유효한 인증이지만 요청된 리소스에 대한 권한 부족
  • 429 요청 과다: 속도 제한 초과
  • 500 내부 서버 오류: 서버 측 오류

속도 제한

커뮤니티 사용자 API 요청은 분당 1,000 요청으로 제한됩니다. 이 제한을 초과하면 API는 429 "Too Many Requests" 상태 코드를 반환합니다.

속도 제한을 피하기 위해 다음을 고려하십시오:

  • 애플리케이션에서 지수적 백오프 구현
  • 적절한 경우 API 응답 캐싱
  • 더 높은 속도 제한을 위해 유료 플랜으로 업그레이드

API 요청 예시

curl --request GET \
    --url https://api.vulncheck.com/v3/backup/vulncheck-kev \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer insert_token_here'

API 날짜 형식

VulnCheck는 모든 데이터셋에서 RFC3339Nano 형식의 날짜를 사용합니다. 이 형식은 초 단위의 끝에 오는 0을 제거하기 때문에 타임스탬프가 다소 일관되지 않아 보일 수 있습니다.

예시:

2024-02-14T16:15:00Z
2024-02-23T10:38:41.361178Z

겉보기에는 일관성이 없어 보이지만, 두 형식 모두 RFC3339Nano 표준에 맞으며 파싱 가능한 유효한 날짜 형식입니다.