패키지 URL 탐지

VulnCheck Exploit & Vulnerability Intelligence는 오픈 소스 소프트웨어 라이브러리 패키지와 운영 체제 패키지에 대한 다양한 보안 속성 탐지를 지원합니다.

VulnCheck Exploit & Vulnerability Intelligence는 오픈 소스 소프트웨어 라이브러리 패키지와 운영 체제 패키지 모두에서 광범위한 보안 관련 문제 탐지를 지원합니다.

VulnCheck 연구팀은 패키지 관리 생태계에서 새로운 위험 행동을 지속적으로 추적합니다. VulnCheck Exploit & Vulnerability Intelligence는 다음과 같은 탐지 유형을 Package URL로 조회할 수 있도록 지원합니다:

  1. 취약점
  2. 라이선스
  3. 악성 패키지
  4. 방치된 패키지
  5. 하이재킹 가능한 저장소
  6. 타이포스쿼팅

악성 패키지

패키지가 악성 콘텐츠를 포함하는 것으로 알려진 경우 malicious 속성이 설정됩니다. 가능한 경우 VulnCheck는 해당 패키지를 악성으로 판단한 출처 참조를 함께 제공합니다.

https://api.vulncheck.com/v3/purl?purl=pkg:npm/aliyundrive@6.0.4
{
 "_benchmark": 0.047808,
 "_meta": {
   "purl_struct": {
     "type": "npm",
     "namespace": "",
     "name": "aliyundrive",
     "version": "6.0.4",
     "qualifiers": null,
     "subpath": ""
   },
   "timestamp": "2023-12-01T20:11:54.921991593Z",
   "total_documents": 2
 },
 "data": {
   "cves": [],
   "research_attributes": {
     "is_malicious": true,
     "malicious_source": "https://blog.phylum.io/dozens-of-npm-packages-caught-attempting-to-deploy-reverse-shell/"
   }
 }
}

malicious 태그는 현재 gem, npm, nuget, pypi에서 지원됩니다.

방치된 패키지

패키지의 소스 저장소가 더 이상 존재하지 않는 경우 abandoned 속성이 설정됩니다. 이는 해당 패키지가 더 이상 업데이트되지 않음을 의미합니다.

https://api.vulncheck.com/v3/purl?purl=pkg:golang/github.com/paysuper/paysuper-reporter@v1.4.2
{
 "_benchmark": 0.050773,
 "_meta": {
   "purl_struct": {
     "type": "golang",
     "namespace": "github.com/paysuper",
     "name": "paysuper-reporter",
     "version": "v1.4.2",
     "qualifiers": null,
     "subpath": ""
   },
   "timestamp": "2023-12-01T20:08:09.215541236Z",
   "total_documents": 1
 },
 "data": {
   "cves": [],
   "research_attributes": {
     "abandoned": true
   }
 }
}

abandoned 속성은 현재 golang에서 지원됩니다.

하이재킹 가능한 저장소

저장소가 리포재킹에 취약한 경우 repo_hijackable 속성이 설정됩니다. 이는 공격자가 업데이트 과정에서 악성 코드를 주입할 수 있어 특히 위험할 수 있습니다.

https://api.vulncheck.com/v3/purl?purl=pkg:golang/github.com/zerobounty/tile38-client@v0.10.2
{
 "_benchmark": 0.040295,
 "_meta": {
   "purl_struct": {
     "type": "golang",
     "namespace": "github.com/zerobounty",
     "name": "tile38-client",
     "version": "v0.10.2",
     "qualifiers": null,
     "subpath": ""
   },
   "timestamp": "2023-12-01T20:09:49.124292153Z",
   "total_documents": 1
 },
 "data": {
   "cves": [],
   "research_attributes": {
     "repo_hijackable": true
   }
 }
}

repo_hijackable 태그는 현재 golang에서 지원됩니다.

타이포스쿼팅

연구팀이 인기 있는 패키지 이름의 오타 변형을 관찰할 경우 squatted_package 속성이 설정됩니다. 이러한 패키지는 종종 악성이거나 이후 악성 콘텐츠로 업데이트될 수 있습니다. squatted_package 태그는 해당 패키지가 차지하려는 원래 저장소를 나타냅니다.

https://api.vulncheck.com/v3/purl?purl=pkg:gem/activmodel@5.2.1
{
 "_benchmark": 0.03596,
 "_meta": {
   "purl_struct": {
     "type": "gem",
     "namespace": "",
     "name": "activmodel",
     "version": "5.2.1",
     "qualifiers": null,
     "subpath": ""
   },
   "timestamp": "2023-12-01T20:36:40.01706222Z",
   "total_documents": 1
 },
 "data": {
   "cves": [],
   "research_attributes": {
     "squatted_package": "activemodel"
   }
 }
}

typosquatting 속성은 현재 gem, golang, npm, nuget, pypi에서 지원됩니다.