VulnCheck 초기 접근 인텔리전스는 사내에서 개발한 Exploit PoC, 패킷 캡처(PCAP 파일), Suricata 시그니처를 제공하여 초기 접근 취약점 방어에 도움을 줍니다.
VulnCheck는 초기 접근 취약점(인증이 필요 없는 원격 코드 실행 취약점)을 추적하고, 조직이 무기화된 익스플로잇으로부터 방어할 수 있도록 탐지 아티팩트를 제작합니다. VulnCheck 초기 접근 인텔리전스는 이러한 탐지 아티팩트를 시기적절하게 제공하여, 최근 공개된 취약점에 대한 불확실한 시기에 조직이 탐지를 작성하고 방어할 수 있도록 지원합니다.
VulnCheck 탐지 아티팩트에 접근하기 위해 VulnCheck SSH 키 생성 방법을 참고하세요.
VulnCheck 웹 포털에서 SSH 키를 설정하고 VulnCheck 초기 접근 인텔리전스 유료 구독 라이선스를 활성화한 후, git clone을 통해 최신 탐지 아티팩트를 가져올 수 있습니다.
git clone git@git.vulncheck.com:vulncheck/initial-access.git
초기 접근 Git 저장소는 암호화되지 않은 백업 또는 암호화된 백업 파일로도 이용할 수 있습니다. 암호화된 백업의 비밀번호는 vulncheck입니다.
| 오프라인 백업 | 설명 |
|---|---|
| initial-access-git | 초기 접근 Git 저장소의 오프라인 백업 |
| initial-access-git-encrypted | 초기 접근 Git 저장소의 암호화된 오프라인 백업 |
특정 오프라인 백업을 요청하려면, /v3/backup/:index 엔드포인트를 호출하면 됩니다 (initial-access-git 예시):
curl --request GET \
--url https://api.vulncheck.com/v3/backup/initial-access-git \
--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, "initial-access-git").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("initial-access-git")
print(api_response.data[0].url)
vulncheck backup download initial-access-git
VulnCheck는 Suricata 및 Snort 규칙에 빠르게 접근할 수 있는 API 엔드포인트를 제공합니다. 각 엔드포인트는 줄 단위로 규칙을 반환합니다:
예를 들어, Suricata 규칙을 가져오려면 /v3/rules/initial-access/suricata 엔드포인트를 호출하면 됩니다:
curl --request GET \
--url https://api.vulncheck.com/v3/rules/initial-access/suricata \
--header 'Accept: application/json' \
--header 'Authorization: Bearer insert_token_here'
package main
import (
"context"
"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.RulesInitialAccessTypeGet(auth, "suricata").Execute()
if err != nil || httpRes.StatusCode != 200 {
log.Fatal(err)
}
fmt.Printf("%+v", resp)
}
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.rules_initial_access_type_get("suricata")
print(api_response)