문제: 패키지 문제 목록

Snyk REST API 엔드포인트 패키지별 문제 목록 보기를 사용하면, 패키지 URL 사양arrow-up-right에 정의된 대로 생태계 전반에서 소프트웨어 패키지를 식별하는 통합된 방법인 purl을 사용하여 패키지에 대한 모든 직접(비전이적) 취약점을 가져올 수 있습니다.

엔드포인트에 purl을 전달하면, Snyk은 해당 패키지에 대해 알려진 취약점을 찾아 응답 본문의 일부로 반환합니다.

이 API는 패키지 목록이 있고 특정 패키지 버전에 대한 취약점 목록을 검색하려는 경우 유용합니다.

circle-info

이 페이지의 예제에서는 HTTPiearrow-up-right를 사용하지만, Snyk REST API에 액세스하기 위해 모든 HTTP 클라이언트를 사용할 수 있습니다.

지원되는 purl 유형

현재 릴리스는 다음 purl 유형을 지원합니다: apk, cargo, cocoapods, conan, composer, deb, gem, generic, golang, hex, npm, nuget, pub, pypi, rpm, swiftmaven.

추가 생태계에 대한 지원이 필요한 경우 Snyk 지원팀(Snyk Support)arrow-up-right에 요청을 제출하십시오.

패키지별 문제 목록 보기 엔드포인트 요청

API 엔드포인트를 호출하려면 다음 HTTP 요청을 사용하십시오:

$ http \
  "https://api.snyk.io/rest/orgs/{org_id}/packages/{purl}/issues" \
  "Authorization: token $API_TOKEN" \
  version==<snyk-api-version>

purl은 반드시 **URL 인코딩(URL-encoded)**되어야 합니다.

유효한 URL 인코딩된 purl을 사용하는 예시는 다음과 같습니다.

$ http \
  "https://api.snyk.io/rest/orgs/{org_id}/packages/pkg%3Amaven%2fcom.fasterxml.woodstox%2fwoodstox-core%405.0.0/issues" \
  "Authorization: token $API_TOKEN" \
  version==2024-06-26

운영 체제 패키지의 경우, 네임스페이스 부분에 벤더(Vendor)를 지정해야 하며 distro 한정자(Qualifier)를 지정해야 합니다. 지원되는 벤더는 debian, alpine, rhel, ubuntu, amzn, centos, oracle, rocky, sles를 포함합니다.

유효한 URL 인코딩된 운영 체제 purl을 사용하는 예시는 다음과 같습니다.

Snyk REST API는 페이지네이션을 지원합니다. 기본 페이지 제한은 1000이며, 기본 오프셋(offset)은 0입니다. 현재, 다음 및 이전 페이지는 응답의 링크로 반환됩니다. offset, limit 매개변수를 쿼리 매개변수로 제공할 수 있습니다.

페이지네이션 요청 예시는 다음과 같습니다.

패키지별 문제 목록 보기 엔드포인트 응답

예상되는 출력은 패키지와 관련된 취약점을 식별하는 JSON APIarrow-up-right 응답을 제공합니다.

다음 예시는 pypi 패키지인 djangoarrow-up-right에 대한 응답입니다.

응답은 요청의 purl로 식별된 패키지에 대해 발견된 취약점 목록을 제공합니다. 응답은 취약점에 대한 설명으로 시작합니다.

패키지 개요

이 패키지의 영향을 받는 버전은 urlize()urlizetrunc() 템플릿 필터에서 특정 문자 시퀀스가 포함된 매우 큰 입력을 통해 서비스 거부(DoS, Denial of Service) 공격에 취약합니다.

조치

이 취약점을 수정하려면 패키지 버전을 4.2.15, 5.0.8로 업그레이드하십시오.

응답 세부 정보

circle-info

응답은 연속적이지만 설명을 돕기 위해 여기서는 나누어서 표시합니다.

각 취약점에 대해 응답은 다음을 제공합니다.

  • Snyk 문제 ID 및 문제 유형:

  • 취약점에 대한 일반 메타데이터(제목, 게시 및 공개 시간과 같은 취약점 관련 타임스탬프, 설명 포함):

  • CVE 및 CWE 식별자:

  • 취약점의 심각도(Severity):

circle-info

2024년 6월부터 Snyk 오픈소스에서 식별된 모든 새로운 권고(Advisory)에는 CVSS v4.0 및 CVSS v3.1 심각도가 모두 제공됩니다. 가장 정확한 심각도 평가를 위해 Snyk은 가능한 경우 CVSS v4.0을 사용할 것을 권장합니다.

  • 해당 취약점에 대해 사용 가능한 수정 사항 및 취약한 버전에 대한 표시:

  • 취약점에 대한 추가 정보가 있는 외부 리소스 링크:

다음이 포함된 패키지 메타데이터가 반환됩니다.

  • 패키지 이름

  • 패키지 유형

  • 패키지 URL(purl) 사양

  • 패키지 버전

해당되는 경우 결과에 대한 페이지네이션 링크가 다음과 같이 포함됩니다.

  • 다음 경로 (해당되는 경우)

  • 이전 경로 (해당되는 경우)

  • 현재 경로

패키지별 문제 목록 보기 엔드포인트 문제 해결

다음은 API를 사용할 때 발생할 수 있는 오류 상태입니다. 여기에 언급되지 않은 문제가 발생하거나 해결에 어려움이 있는 경우 솔루션 엔지니어(Solution Engineer) 또는 기술 성공 관리자(Technical Success Manager)에게 문의하거나 Snyk 지원팀arrow-up-right에 요청을 제출하십시오.

유효하지 않은 PURL (Invalid PURL) 400 제공한 purl 사양이 유효한 purl인지 확인하십시오. 자세한 내용은 패키지 URL 사양arrow-up-right을 참조하십시오.

지원되지 않는 생태계 (Unsupported Ecosystem) 400 패키지 유형이 지원되는 purl 유형 중 하나인지 확인하십시오.

네임스페이스 없이 패키지 요청됨 (Package requested without namespace) 400 패키지 URL에 네임스페이스를 지정했는지 확인한 다음 다시 시도하십시오. 자세한 내용은 패키지 URL 사양arrow-up-right을 참조하십시오.

지원되지 않는 Purl 구성 요소 (Purl component not supported) 400 지원되지 않는 구성 요소를 제거하고 다시 요청하십시오. 엔드포인트는 특정 구성 요소만 허용합니다. 자세한 내용은 패키지 URL 사양arrow-up-right을 참조하십시오.

이 작업을 수행할 권한이 조직에 없습니다. (Your organization is not authorized to perform this action.) 403 액세스 권한을 얻으려면 솔루션 엔지니어, 기술 성공 관리자 또는 팀 관리자에게 문의하십시오.

속도 제한 초과 (Rate limit exceeded) 429 이 API 엔드포인트에서는 사용자당 분당 180회의 요청이 허용됩니다. 이 볼륨을 초과하면 429 오류 응답 코드를 받게 됩니다.

유효하지 않은 페이지네이션 매개변수 (Invalid pagination parameters) 400 제공된 limit 및 offset 쿼리 매개변수는 다음과 같아야 합니다.

  • Limit > 0 및 <= 1000

  • Offset >= 0

이 요청의 기본 매개변수는 limit = 1000, offset >= 0입니다.

인증 요청 실패 (Authorization request failure) 500 이 문제는 예상치 못한 것이며 서비스가 곧 복구될 것입니다. 복구되지 않으면 Snyk 지원팀arrow-up-right에 요청을 제출하십시오.

내부 서버 오류 (Internal server error) 500 이 문제는 예상치 못한 것이며 서비스가 곧 복구될 것입니다. 복구되지 않으면 Snyk 지원팀arrow-up-right에 요청을 제출하십시오.

취약점 서비스 사용 불가 (Vulnerability service unavailable) 503 이 문제는 예상치 못한 것이며 서비스가 곧 복구될 것입니다. 복구되지 않으면 Snyk 지원팀arrow-up-right에 요청을 제출하십시오.

취약점 서비스 오류 (Vulnerability service error) 500 이 문제는 예상치 못한 것이며 서비스가 곧 복구될 것입니다. 복구되지 않으면 Snyk 지원팀arrow-up-right에 요청을 제출하십시오.

이러한 오류 응답의 예시는 다음과 같습니다.

Last updated