GCP - Artifact Registry Enum

htARTE (HackTricks AWS Red Team Expert)에서 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

기본 정보

Google Cloud Artifact Registry는 소프트웨어 아티팩트를 관리, 저장 및 보안할 수 있는 완전히 관리되는 서비스입니다. 이는 Docker 이미지, Maven, npm 패키지 및 기타 유형의 아티팩트와 같은 빌드 종속성을 저장하는 저장소입니다. 이는 소프트웨어 개발 프로세스 중 생성된 아티팩트를 저장하고 버전 관리하는 데 CI/CD 파이프라인에서 일반적으로 사용됩니다.

Artifact Registry의 주요 기능은 다음과 같습니다:

  1. 통합 저장소: Docker 이미지, 언어 패키지 (예: Java의 Maven, Node.js의 npm) 및 기타 유형의 아티팩트를 지원하여 일관된 액세스 제어와 통합된 보기를 제공하는 다양한 유형의 아티팩트를 지원합니다.

  2. 완전히 관리되는 서비스: 관리되는 서비스로서 기반 인프라, 확장 및 보안을 처리하여 사용자의 유지 관리 부담을 줄입니다.

  3. 세분화된 액세스 제어: Google Cloud의 Identity and Access Management (IAM)과 통합되어 리포지토리에서 아티팩트에 액세스, 업로드 또는 다운로드할 수 있는 사용자를 정의할 수 있습니다.

  4. 지리적 복제: 여러 지역에 걸쳐 아티팩트의 복제를 지원하여 다운로드 속도를 향상시키고 가용성을 보장합니다.

  5. Google Cloud 서비스와의 통합: Cloud Build, Kubernetes Engine 및 Compute Engine과 같은 다른 GCP 서비스와 원활하게 작동하여 Google Cloud 생태계 내에서 이미 작업 중인 팀에게 편리한 선택지가 됩니다.

  6. 보안: 저장된 아티팩트가 안전하고 알려진 보안 문제가 없는지 확인하기 위해 취약성 스캐닝 및 컨테이너 분석과 같은 기능을 제공합니다.

형식 및 모드

새로운 저장소를 생성할 때는 Docker, Maven, npm, Python 등과 같은 저장소의 형식/유형 중 하나를 선택할 수 있으며, 일반적으로 다음 세 가지 중 하나의 모드를 선택할 수 있습니다:

  • 표준 저장소: GCP에 직접 Docker 이미지, Maven 패키지와 같은 자체 아티팩트를 저장하기 위한 기본 모드입니다. 안전하고 확장 가능하며 Google Cloud 생태계 내에서 잘 통합됩니다.

  • 원격 저장소 (사용 가능한 경우): 외부, 공개 저장소에서 아티팩트를 캐싱하는 프록시로 작동합니다. 종속성이 상위에서 변경되는 문제를 방지하고 자주 액세스되는 아티팩트를 캐싱하여 대기 시간을 줄입니다.

  • 가상 저장소 (사용 가능한 경우): 단일 엔드포인트를 통해 여러 (표준 또는 원격) 저장소에 액세스할 수 있는 통합 인터페이스를 제공하여 클라이언트 측 구성 및 아티팩트에 대한 액세스 관리를 간소화합니다.

  • 가상 저장소의 경우 리포지토리를 선택하고 우선순위를 지정해야 합니다 (가장 높은 우선순위를 가진 리포지토리가 사용됩니다).

  • 가상 저장소에서 원격 및 표준 저장소를 혼합할 수 있습니다. 원격우선순위표준보다 높은 경우 (예: PyPi의 경우) 원격에서 패키지가 사용됩니다. 이는 의존성 충돌을 일으킬 수 있습니다.

Docker의 원격 버전에서는 Docker Hub에 액세스하기 위해 사용자 이름과 토큰을 제공할 수 있습니다. 토큰은 Secret Manager에 저장됩니다.

암호화

기본적으로 Google 관리 키가 사용되지만 고객 관리 키 (CMEK)를 지정할 수 있습니다.

정리 정책

  • 아티팩트 삭제: 정리 정책 기준에 따라 아티팩트가 삭제됩니다.

  • 드라이런: (기본값) 아티팩트가 삭제되지 않습니다. 정리 정책이 평가되고 테스트 삭제 이벤트가 Cloud Audit Logging으로 전송됩니다.

취약성 스캐닝

컨테이너 이미지 내의 취약성을 확인하는 취약성 스캐너를 활성화할 수 있습니다.

열거

# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>

# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>

# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>

# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>

# Get SBOMB artifacts
gcloud artifacts sbom list

# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>

권한 상승

pageGCP - Artifact Registry Privesc

인증되지 않은 액세스

pageGCP - Artifact Registry Unauthenticated Enum

사후 침투

pageGCP - Artifact Registry Post Exploitation

지속성

pageGCP - Artifact Registry Persistence
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新