GCP - Cloud Build Unauthenticated Enum

Support HackTricks

Cloud Build

Cloud Build에 대한 자세한 정보는 다음을 확인하세요:

GCP - Cloud Build Enum

cloudbuild.yml

**cloudbuild.yml**이라는 파일이 포함된 리포지토리에 대한 쓰기 권한을 손에 넣으면, 이 파일을 백도어할 수 있습니다. 이 파일은 Cloud Build 내에서 실행될 명령어를 지정하며, 비밀 정보를 유출하고, 수행되는 작업을 손상시키고, Cloud Build 서비스 계정을 손상시킬 수 있습니다.

GCP는 관리자가 외부 PR에서 빌드 시스템의 실행을 제어할 수 있는 옵션인 "Comment Control"을 제공합니다. Comment Control은 협력자/프로젝트 소유자가 빌드를 트리거하기 위해 “/gcbrun”이라고 댓글을 달아야 하는 기능입니다. 이 기능은 본질적으로 인터넷의 누구도 귀하의 빌드 시스템을 트리거할 수 없도록 방지합니다.

관련 정보는 Github Actions 공격 방법에 대한 페이지를 확인할 수 있습니다(이와 유사함):

Abusing Github Actions

PR Approvals

트리거가 PR일 때, 누구나 공개 리포지토리에 PR을 수행할 수 있기 때문에 모든 PR로 트리거 실행을 허용하는 것은 매우 위험합니다. 따라서 기본적으로 실행은 소유자와 협력자에게만 자동으로 이루어지며, 다른 사용자의 PR로 트리거를 실행하려면 소유자나 협력자가 /gcbrun이라고 댓글을 달아야 합니다.

따라서, 이것이 **Not required**로 설정되면, 공격자는 브랜치에 PR을 수행하여 실행을 트리거하고 cloudbuild.yml 파일에 악성 코드 실행을 추가하여 cloudbuild 실행을 손상시킬 수 있습니다(참고로 cloudbuild는 PR에서 코드를 다운로드하므로 악성 **cloudbuild.yml**을 실행하게 됩니다).

또한, PR을 보낼 때 어떤 cloudbuild 실행이 필요할지 쉽게 확인할 수 있습니다. 이는 Github에 나타납니다:

그렇다면, cloudbuild가 실행되지 않더라도 공격자는 회사에 속한 GCP 프로젝트의 프로젝트 이름을 볼 수 있습니다.

Support HackTricks

Last updated