VulnCheck API エンドポイントはプログラムによるアクセスに最適化されており、機械可読な JSON データを提供します。
VulnCheck インデックスには、インデックスの完全なコピーをダウンロードできる「backup」エンドポイント、または個々のレコードをクエリするために使用できる「index」エンドポイントを利用してアクセスできます。
「index」と「backup」のAPIエンドポイントのリストは、VulnCheckダッシュボードにある VulnCheck API サンドボックス で確認できます。
すべての API メソッドは https://api.vulncheck.com/ をベース URL として使用します。
メソッド | 名前 | 説明 |
---|---|---|
GET | /v3/index | エンドポイントリンク付きのインデックスリストを返す |
GET | /v3/index/{index} | 選択したインデックスからのドキュメントのページネートリストを取得 |
GET | /v3/backup | エンドポイントリンク付きのバックアップリストを返す |
GET | /v3/backup/{index} | インデックスのバックアップリンクをリクエスト |
GET | /v3/cpe | CPEに関連する脆弱性をリクエスト |
GET | /v3/purl | PURLに関連する脆弱性をリクエスト |
GET | /v3/rules/initial-access/{rules} | 初期アクセスインテリジェンスのSuricata または Snort ルールをリクエスト |
GET | /v3/tags/{filter} | IPタグに基づくIPアドレスのリストを返す(改行区切りまたはJSON) |
GET | /v3/pdns/{filter} | 防護DNS用のホスト名リストを返す(改行区切りまたはJSON) |
GET | /v3/openapi | 現在のOpenAPI仕様書(OAS)を取得 |
GET | /v3/search/cpe | CPEに関連する脆弱性(パート、ベンダー、プロダクト、バージョン)をリクエスト |
curl --request GET \
--url https://api.vulncheck.com/v3/backup/vulncheck-kev \
--header 'Accept: application/json' \
--header 'Authorization: Bearer insert_token_here'
package main
import (
"context"
"encoding/json"
"fmt"
"log"
"os"
"github.com/vulncheck-oss/sdk-go-v2/vulncheck"
)
func main() {
configuration := vulncheck.NewConfiguration()
configuration.Scheme = "https"
configuration.Host = "api.vulncheck.com"
client := vulncheck.NewAPIClient(configuration)
token := os.Getenv("VULNCHECK_API_TOKEN")
auth := context.WithValue(
context.Background(),
vulncheck.ContextAPIKeys,
map[string]vulncheck.APIKey{
"Bearer": {Key: token},
},
)
resp, httpRes, err := client.EndpointsAPI.BackupIndexGet(auth, "vulncheck-kev").Execute()
if err != nil || httpRes.StatusCode != 200 {
log.Fatal(err)
}
prettyJSON, err := json.MarshalIndent(resp.Data, "", " ")
if err != nil {
log.Fatalf("Failed to generate JSON: %v", err)
return
}
fmt.Println(string(prettyJSON))
}
import vulncheck_sdk
configuration = vulncheck_sdk.Configuration(host="https://api.vulncheck.com/v3")
configuration.api_key["Bearer"] = "insert_token_here"
with vulncheck_sdk.ApiClient(configuration) as api_client:
endpoints_client = vulncheck_sdk.EndpointsApi(api_client)
api_response = endpoints_client.backup_index_get("vulncheck-kev")
print(api_response.data[0].url)
vulncheck backup download vulncheck-kev
VulnCheckでは、データセット全体で RFC3339Nano 形式の日付を使用しています。この形式は、秒のフィールドから末尾のゼロを削除するため、やや不整合なタイムスタンプが発生します。例えば、以下の2つはどちらも有効なRFC3339Nano形式のタイムスタンプです。
2024-02-14T16:15:00Z
2024-02-23T10:38:41.361178Z
一見すると不整合に見えますが、どちらも有効かつ解析可能なRFC3339Nano形式の日付です。