VulnCheck Vulnerability Intelligence 서비스는 취약점 보강(vulnerability enrichment), CPE 보강, CVSS 임시 점수, 취약점 분류 데이터 등을 제공하며, 풍부한 익스플로잇 인텔리전스를 포함하여 NIST NVD가 제공하는 범위를 훨씬 뛰어넘습니다.
VulnCheck Vulnerability Intelligence는 수백 개의 벤더 및 정부 권고문을 추적하는 자율 시스템이며, 해당 데이터를 VulnCheck의 최고 수준 익스플로잇 인텔리전스와 결합합니다.
다른 취약점 데이터베이스와 달리, VulnCheck는 다음을 포함하여 더 폭넓은 범위의 최신 취약점 정보를 제공합니다:
VulnCheck Exploit & Vulnerability Intelligence에는 일반적으로 다른 대체 소스에서 제공되지 않는 고유한 필드도 포함됩니다. 예시로는 다음이 있습니다:
VulnCheck API를 통해 VulnCheck Vulnerability Intelligence를 쉽게 다운로드할 수 있습니다. 시작하려면 /v3/backup/vulncheck-nvd2 API를 사용하여 vulncheck-nvd2 인덱스를 조회하세요:
curl --request GET --url https://api.vulncheck.com/v3/backup/vulncheck-nvd2 --header 'Accept: application/json' --header 'Authorization: Bearer insert_token_here'
package main
import (
"context"
"encoding/json"
"fmt"
"log"
"os"
vulncheck "github.com/vulncheck-oss/sdk-go-v2/v2"
)
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-nvd2").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-nvd2")
print(api_response.data[0].url)
vulncheck backup download vulncheck-nvd2
VulnCheck API를 사용하면 VulnCheck Exploit & Vulnerability Intelligence를 쉽게 시작할 수 있습니다. 시작하려면 /v3/index/:index?cve=:cve API를 통해 vulncheck-nvd2 인덱스를 조회하세요:
curl --request GET --url https://api.vulncheck.com/v3/index/vulncheck-nvd2?cve=CVE-2024-21762 --header 'Accept: application/json' --header 'Authorization: Bearer insert_token_here'
package main
import (
"context"
"encoding/json"
"fmt"
"log"
"os"
vulncheck "github.com/vulncheck-oss/sdk-go-v2/v2"
)
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.IndicesAPI.IndexVulncheckNvd2Get(auth).Cve("CVE-2024-21762").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:
indices_client = vulncheck_sdk.IndicesApi(api_client)
api_response = indices_client.index_vulncheck_nvd2_get(cve="CVE-2024-21762")
print(api_response.data)
vulncheck index browse vulncheck-nvd2 --cve CVE-2024-21762
위 예시는 vulncheck-nvd2 인덱스에서 CVE-2024-21762에 대한 정보를 검색하는 방법을 보여줍니다.
유효한 CVE 식별자와 함께 /v3/index/vulncheck-nvd2?cve=:cve API 엔드포인트를 호출하면 아래와 유사한 응답이 반환됩니다:
{
"_benchmark": 0.095634,
"_meta": {
"index": "vulncheck-nvd2",
// ...
},
"data": [
{
"id": "CVE-2024-21762",
"sourceIdentifier": "psirt@fortinet.com",
"vulnStatus": "Analyzed",
"published": "2024-02-09T09:15:08.087Z",
"lastModified": "2024-02-13T18:21:14.607Z",
"cisaExploitAdd": "2024-02-09T00:00:00Z",
"vulncheckKEVExploitAdd": "2024-02-08T00:00:00Z",
"cisaActionDue": "2024-02-16T00:00:00Z",
"cisaRequiredAction": "Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.",
"cisaVulnerabilityName": "Fortinet FortiOS Out-of-Bound Write Vulnerability",
"descriptions": [
{
"lang": "en",
"value": "A out-of-bounds write in Fortinet FortiOS versions 7.4.0 through 7.4.2, 7.2.0 through 7.2.6, 7.0.0 through 7.0.13, 6.4.0 through 6.4.14, 6.2.0 through 6.2.15, 6.0.0 through 6.0.17, FortiProxy versions 7.4.0 through 7.4.2, 7.2.0 through 7.2.8, 7.0.0 through 7.0.14, 2.0.0 through 2.0.13, 1.2.0 through 1.2.13, 1.1.0 through 1.1.6, 1.0.0 through 1.0.7 allows attacker to execute unauthorized code or commands via specifically crafted requests"
},
{
"lang": "es",
"value": "Una escritura fuera de los límites en Fortinet FortiOS versiones 7.4.0 a 7.4.2, 7.2.0 a 7.2.6, 7.0.0 a 7.0.13, 6.4.0 a 6.4.14, 6.2.0 a 6.2.15 , 6.0.0 a 6.0.17, y versiones de FortiProxy 7.4.0 a 7.4.2, 7.2.0 a 7.2.8, 7.0.0 a 7.0.14, 2.0.0 a 2.0.13, 1.2.0 a 1.2.13 , 1.1.0 a 1.1.6, 1.0.0 a 1.0.7. Permite al atacante ejecutar código o comandos no autorizados a través de solicitudes específicamente manipuladas"
}
],
"references": [
{
"status": "active",
"lang": "ru",
"name": "Уязвимость службы sslvpnd операционных систем FortiOS, позволяющая нарушителю выполнить произвольный код или произвольные команды",
"url": "https://bdu.fstec.ru/vul/2024-01125",
"refsource": "BDU",
"tags": [
"Vendor Advisory"
],
"date_added": "2024-02-08T00:00:00Z"
},
{
"status": "active",
"lang": "en",
"name": "Warning: Two Critical Vulnerabilities Affect Multiple Fortinet Products",
"url": "https://cert.be/en/advisory/warning-two-critical-vulnerabilities-affect-multiple-fortinet-products",
"refsource": "CERT-BE",
"tags": [
"Vendor Advisory"
],
"date_added": "2024-02-12T00:00:00Z"
},
{
"status": "active",
"lang": "en",
"name": "Multiple Vulnerabilities in Siemens Products",
"url": "https://www.cert-in.org.in/s2cMainServlet?pageid=PUBVLNOTES02&VLCODE=CIAD-2024-0019",
"refsource": "CERT-IN",
"tags": [
"Vendor Advisory"
],
"date_added": "2024-03-21T00:00:00Z"
}
// ...
],
"metrics": {
"cvssMetricV31": [
{
"source": "nvd@nist.gov",
"type": "Primary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9
},
{
"source": "psirt@fortinet.com",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9
}
],
"temporalCVSSV31": {
"version": "3.1",
"vectorString": "E:H/RL:X/RC:C",
"exploitCodeMaturity": "HIGH",
"remediationLevel": "NOT_DEFINED",
"reportConfidence": "CONFIRMED",
"temporalScore": 9.8,
"associatedBaseMetricV3": {
"source": "nvd@nist.gov",
"type": "Primary",
"baseScore": 9.8
}
},
"temporalCVSSV31Secondary": [
{
"version": "3.1",
"vectorString": "E:H/RL:X/RC:C",
"exploitCodeMaturity": "HIGH",
"remediationLevel": "NOT_DEFINED",
"reportConfidence": "CONFIRMED",
"temporalScore": 9.8,
"associatedBaseMetricV3": {
"source": "psirt@fortinet.com",
"type": "Secondary",
"baseScore": 9.8
}
}
],
"epss": {
"epss_score": 0.01842,
"epss_percentile": 0.88426,
"last_modified": "2024-06-28T10:05:46.084968Z"
}
},
"weaknesses": [
{
"source": "psirt@fortinet.com",
"type": "Primary",
"description": [
{
"lang": "en",
"value": "CWE-787",
"name": "Out-of-bounds Write",
"url": "https://cwe.mitre.org/data/definitions/787.html"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*",
"versionStartIncluding": "1.0.0",
"versionEndExcluding": "2.0.14",
"matchCriteriaId": "614BFD88-3C7A-4F6F-BD26-F53E4BC464D7"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.0.0",
"versionEndExcluding": "7.0.15",
"matchCriteriaId": "72ED8947-DBF3-483B-B267-117403A3D8E3"
}
// ...
]
}
]
}
],
"vcConfigurations": [
{
"nodes": [
{
"operator": "OR",
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*",
"versionStartIncluding": "1.0.0",
"versionEndIncluding": "1.0.7",
"matchCriteriaId": ""
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:fortinet:fortiproxy:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.4.0",
"versionEndIncluding": "7.4.2",
"matchCriteriaId": ""
}
// ...
]
}
]
},
{
"nodes": [
{
"operator": "OR",
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.0.0",
"versionEndIncluding": "6.0.17",
"matchCriteriaId": ""
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.4.0",
"versionEndIncluding": "7.4.2",
"matchCriteriaId": ""
}
// ...
]
}
]
}
],
"vulnerableCPEs": [
"cpe:2.3:a:fortinet:fortiproxy:1.0.0:*:*:*:*:*:*:*",
"cpe:2.3:a:fortinet:fortiproxy:1.0.1:*:*:*:*:*:*:*"
// ...
],
"vcVulnerableCPEs": [
"cpe:2.3:a:fortinet:fortiproxy:1.0.0:*:*:*:*:*:*:*",
"cpe:2.3:a:fortinet:fortiproxy:1.0.1:*:*:*:*:*:*:*"
// ...
],
"STATUS": "Analyzed",
"categorization": {
"tags": [
"ICS/OT",
"IoT"
]
},
"relatedAttackPatterns": [
{
"lang": "en",
"capec_id": "CAPEC-100",
"capec_name": "Overflow Buffers",
"capec_url": "https://capec.mitre.org/data/definitions/100.html"
}
],
"mitreAttackTechniques": [
{
"id": "T0819",
"url": "https://attack.mitre.org/techniques/T0819",
"name": "Exploit Public-Facing Application",
"domain": "ICS",
"tactics": [
"initial-access"
],
"subtechnique": false
},
{
"id": "T0866",
"url": "https://attack.mitre.org/techniques/T0866",
"name": "Exploitation of Remote Services",
"domain": "ICS",
"tactics": [
"initial-access",
"lateral-movement"
],
"subtechnique": false
}
],
"date_added": "2024-02-08T00:00:00Z",
"documentGenerationDate": "2024-06-28T12:06:40.053130613Z"
}
]
}
| 속성 | 의미 |
|---|---|
| id | CVE 식별자 |
| sourceIdentifier | CVE Numbering Authority - CVE가 아직 CVE.org에 게시되지 않은 경우 이 필드는 비어 있을 수 있습니다 |
| vulnStatus | NVD 취약점 상태 - CVE가 아직 CVE.org에 게시되지 않은 경우 이 필드는 awaiting analysis로 설정됩니다 |
| published | NVD 게시 날짜 - CVE가 아직 CVE.org에 게시되지 않은 경우 이 필드는 "1970-01-01T00:00:00Z"로 설정됩니다 |
| lastModified | NVD 최종 수정 날짜 - CVE가 아직 CVE.org에 게시되지 않은 경우 이 필드는 "1970-01-01T00:00:00Z"로 설정됩니다 |
| cisaExploitAdd | CISA KEV에 추가된 날짜 |
| vulncheckKEVExploitAdd | VulnCheck KEV에 추가된 날짜 |
| cisaActionDue | CISA KEV의 마감 날짜 |
| cisaRequiredAction | CISA KEV의 권고된 조치 |
| cisaVulnerabilityName | CISA KEV의 취약점 명칭 |
| descriptions | 취약점 설명 |
| date_added | 최초 공개된 참조 또는 NVD에 게시된 날짜 중 빠른 날짜 |
| 속성 | 의미 |
|---|---|
| status | 참조 출처가 생성한 데이터의 상태(예: active, expired, moved) |
| lang | 출처 문서의 언어 (예: "en") |
| name | 참조의 제목 |
| url | 참조 URL |
| refsource | 참조의 출처 |
| tags | NVD 태그 외에 VulnCheck는 각 참조 출처에 대해 Government Advisory, VDB Entry, Exploit, Third Party Advisory, Operating Systems, IoMT, ICS/OT, Managed File Transfer, Vendor Advisory, Signature 등과 같은 태그를 추가합니다. |
| date_added | 참조에서 제공한 날짜 |
VulnCheck는 VulnCheckIntelligence로 CVE를 보강하여 CVSS 임시 메트릭을 생성합니다.
| 속성 | 의미 |
|---|---|
| cvssMetricVxx | CVSS 기본 메트릭(V2, V3/V3.1, V4 등) |
| temporalCVSSVcc | CVSS 임시 메트릭(V2, V3/3.2, V4 등) |
| EPSS 속성 | 의미 |
|---|---|
| epss_score | EPSS 점수 |
| epss_precentile | EPSS 백분위수 |
VulnCheck는 CISA Vulnrichment SSVC 메트릭으로 CVE를 보강하고 VulnCheckIntelligence로 VulnCheck SSVC 메트릭을 생성합니다. VulnCheck SSVC 생성에 대한 자세한 내용은 https://vulncheck.com/blog/automating-ssvc 를 참조하세요.
| 속성 | 의미 |
|---|---|
| source | SSVC 결정을 생성한 출처 |
| exploitation | 취약점의 악용 정도를 None, Public POC 또는 Active로 정의 |
| automatable | 취약점이 자동화 가능한지 여부 (Yes/No) |
| technicalImpact | 취약점의 기술적 영향(Partial 또는 Total) |
VulnCheck-NVD2에는 NIST NVD 생성 CPE와 VulnCheck가 생성한 CPE가 포함됩니다. VulnCheck CPE 생성에 대해 자세히 알아보려면 다음을 참조하세요: https://docs.vulncheck.com/products/exploit-and-vulnerability-intelligence/cpe
| 속성 | 의미 |
|---|---|
| configurations | NIST NVD CPE |
| vcConfigurations | VulnCheck CPE |
VulnCheck는 CWE, CAPEC 및 ATT&CK에 대한 Mitre 매핑을 생성합니다
| 속성 | 의미 |
|---|---|
| weaknesses | Common Weakness Enumeration (CWE) |
| relatedAttackPatterns | CAPEC(공통 공격 패턴 분류) — 언어, CAPEC id, 이름 및 URL 포함 |
| mitreAttackTechniques | Mitre Attack Techniques — id, url, name, domain, tactics, subtechnique, 완화책, 탐지 및 d3fend 기술 포함 |
VulnCheck의 분류에는 Desktop Application, Firmware, ICS/OT, IoMT, IoT, Managed File Transfer, Mobile, Open Source Library, Operating System, Server Software, Virtualization, Web Browser 및 Web Framework가 포함됩니다.