패키지 검색 개요

패키지 스캔은 Artifact Registry 저장소의 언어 기반 패키지에 대한 오픈소스 종속 항목에서 기존 및 새로운 취약점, 악성 소프트웨어, 비밀을 식별합니다.

패키지 스캔과 관련된 비용 에 대해 자세히 알아보려면 가격 책정을 참조하세요.

이 개요에서는 Artifact Registry에서 Docker 저장소를 사용하는 데 이미 익숙하다고 가정합니다.

개요

Artifact Analysis는 패키지가 Artifact Registry에 푸시될 때 패키지의 파일을 스캔합니다. 최초 스캔 후에도 Artifact Registry는 스캔된 패키지의 메타데이터를 지속적으로 모니터링하여 새로운 취약점, 악성 패키지, 비밀을 확인합니다.

잠재적인 위험 영역을 평가하기 위해 Artifact Registry는 패키지 구성 파일의 종속 항목을 알려진 취약점과 일치시킵니다. Artifact Analysis에서 패키지의 잠재적 취약점을 검토할 수 있습니다.

취약점 패키지 스캔

Artifact Analysis는 Artifact Registry 저장소의 패키지를 스캔하여 취약점, 악성 소프트웨어, 비밀을 식별하고 종속 항목과 라이선스를 식별하여 패키지 구성을 파악할 수 있도록 합니다.

Artifact Analysis는 새로운 패키지가 Artifact Registry에 푸시될 때 이를 스캔합니다. 이 프로세스를 자동 스캔 이라고 합니다. 스캔은 패키지의 파일에 대한 정보를 추출합니다. 패키지를 스캔한 후 Artifact Analysis는 해당 패키지의 취약점 보고서를 생성하며, 여기에는 해당 패키지의 취약점 및 악성 패키지 어커런스가 표시됩니다. 취약점과 악성 소프트웨어는 공개적으로 모니터링되는 패키지에서만 감지됩니다.

지속적 분석

패키지가 스캔된 후 Artifact Analysis는 Artifact Registry에서 스캔된 패키지 메타데이터를 지속적으로 모니터링하여 새로운 취약점과 악성 패키지를 확인합니다.

Artifact Analysis는 취약점 소스에서 새로운 업데이트된 취약점 정보를 취약점 소스 매일 여러 번 수신합니다. 새로운 취약점 데이터가 도착하면 Artifact Analysis는 기존 취약점 어커런스를 업데이트하고 새 메모에 대한 새로운 취약점 어커런스를 생성하며 더 이상 유효하지 않은 취약점 어커런스를 삭제합니다.

Artifact Analysis는 지난 30일 이내에 가져온 이미지와 패키지를 계속 스캔합니다. 30일이 지나면 스캔된 이미지와 패키지의 메타데이터가 더 이상 업데이트되지 않으며 결과가 오래됩니다.

Artifact Analysis는 90일 넘게 비활성 상태인 메타데이터를 보관처리합니다. 보관처리된 이 메타데이터는 API를 사용해서만 평가할 수 있습니다. 오래되거나 보관처리된 메타데이터가 있는 이미지를 다시 스캔하려면 해당 이미지를 가져오세요. 메타데이터를 새로고침하는 데 최대 24시간이 걸릴 수 있습니다. 오래되거나 보관처리된 메타데이터가 있는 패키지는 다시 스캔할 수 없습니다.

지원되는 패키지 유형

패키지를 Artifact Registry에 푸시하면 Artifact Analysis가 취약점을 스캔할 수 있습니다.

다음 표에서는 Artifact Analysis가 스캔할 수 있는 패키지 유형을 보여줍니다.

Artifact Registry를 사용한 자동 스캔 주문형 스캔
Java 패키지
Python 패키지
Node.js 패키지

Artifact Analysis 인터페이스

Google Cloud console에서 Artifact Registry의 패키지에 대한 취약점과 메타데이터를 볼 수 있습니다.

gcloud CLI를 사용하여 취약점과 메타데이터를 볼 수 있습니다.

또한 Artifact Analysis REST API로 이러한 작업을 수행할 수도 있습니다. 다른 Cloud Platform API를 이용할 때처럼 OAuth2를 이용해 액세스를 인증해야 합니다 OAuth2

Artifact Analysis API는 gRPC와 REST/JSON을 모두 지원합니다. 클라이언트 라이브러리나 REST/JSON용 curl을 이용해 API를 호출할 수 있습니다.

취약점 소스

다음 섹션에서는 Artifact Analysis가 CVE 데이터를 가져오는 데 사용하는 취약점 소스를 나열합니다.

언어 패키지 스캔

Artifact Analysis는 패키지 내 파일의 취약점 및 악성 패키지 스캔을 지원합니다. 취약점 데이터는 GitHub Advisory Database에서 가져오고 악성 패키지 데이터는 OpenSSF Malicious Packages Repository에서 가져옵니다.

대부분의 경우 각 취약점에는 CVE ID가 할당되며 이 ID 가 해당 취약점의 기본 식별자가 됩니다. 취약점에 CVE ID가 할당되지 않은 경우 GHSA ID가 대신 식별자로 할당됩니다. 나중에 해당 취약점에 CVE ID가 할당되면 취약점 ID가 CVE와 일치하도록 업데이트됩니다. 악성 패키지 권고에는 MAL- 프리픽스가 있는 ID가 있습니다. 자세한 내용은 프로젝트에서 특정 취약점 확인을 참조하세요.

패키지 관리자 및 시맨틱 버전 관리

  • Java - Artifact Analysis는 Maven 이름 지정 규칙을 따르는 Maven 패키지를 지원합니다. 패키지 버전에 공백이 포함되어 있으면 스캔되지 않습니다.
  • Node.js - 패키지 버전 일치는 시맨틱 버전 관리 사양을 따릅니다.
  • Python - Python 버전 일치는 PEP 440 시맨틱스를 따릅니다.

제한사항

  • Artifact Analysis는 파일이 100개 이하인 패키지만 스캔합니다.

  • 동일한 패키지를 여러 저장소에 푸시하면 각 푸시에 대해 요금이 청구됩니다. 자세한 내용은 Artifact Analysis 가격 책정을 참조하세요.

다음 단계

  • 패키지 취약점을 보고 취약점 어커런스를 필터링하는 방법은 패키지 자동 스캔을 참조하세요.