GCP - Compute Instances
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Compute Instances는 Google의 클라우드 인프라에서 사용자 정의 가능한 가상 머신으로, 다양한 애플리케이션을 위한 확장 가능하고 온디맨드 컴퓨팅 파워를 제공합니다. 이들은 글로벌 배포, 지속적인 스토리지, 유연한 OS 선택, 강력한 네트워킹 및 보안 통합과 같은 기능을 제공하여 웹사이트 호스팅, 데이터 처리 및 클라우드에서 애플리케이션을 효율적으로 실행하는 데 다재다능한 선택이 됩니다.
Confidential VM은 최신 세대 AMD EPYC 프로세서가 제공하는 하드웨어 기반 보안 기능을 사용하며, 여기에는 메모리 암호화 및 안전한 암호화 가상화가 포함됩니다. 이러한 기능은 VM이 처리하고 저장하는 데이터를 호스트 운영 체제 및 하이퍼바이저로부터 보호할 수 있게 합니다.
Confidential VM을 실행하려면 기계의 유형, 네트워크 인터페이스, 부팅 디스크 이미지와 같은 것들을 변경해야 할 수 있습니다.
사용할 디스크를 선택하거나 새로 생성할 수 있습니다. 새로 선택하면 다음을 수행할 수 있습니다:
디스크의 크기 선택
OS 선택
인스턴스가 삭제될 때 디스크를 삭제할지 여부 표시
암호화: 기본적으로 Google 관리 키가 사용되지만, KMS에서 키를 선택하거나 사용할 원시 키를 지정할 수 있습니다.
가상 머신 내에 컨테이너를 배포할 수 있습니다. 사용할 이미지를 구성하고, 내부에서 실행할 명령, 인수, 볼륨을 마운트하고, 환경 변수(민감한 정보?)를 설정하며, 이 컨테이너에 대해 특권으로 실행, stdin 및 가상 TTY와 같은 여러 옵션을 구성할 수 있습니다.
기본적으로 Compute Engine 기본 서비스 계정이 사용됩니다. 이 SA의 이메일은 다음과 같습니다: <proj-num>-compute@developer.gserviceaccount.com
이 서비스 계정은 **전체 프로젝트에 대한 편집자 역할(높은 권한)**을 가지고 있습니다.
그리고 기본 액세스 범위는 다음과 같습니다:
https://www.googleapis.com/auth/devstorage.read_only -- 버킷에 대한 읽기 액세스 :)
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/trace.append
그러나 클릭으로 cloud-platform
을 부여하거나 사용자 정의 범위를 지정할 수 있습니다.
HTTP 및 HTTPS 트래픽을 허용할 수 있습니다.
IP Forwarding: 인스턴스 생성 시 IP 포워딩을 활성화할 수 있습니다.
Hostname: 인스턴스에 영구 호스트 이름을 부여할 수 있습니다.
Interface: 네트워크 인터페이스를 추가할 수 있습니다.
이러한 옵션은 VM의 보안을 증가시키며 권장됩니다:
Secure boot: Secure boot는 부팅 수준 및 커널 수준의 맬웨어 및 루트킷으로부터 VM 인스턴스를 보호하는 데 도움을 줍니다.
Enable vTPM: 가상 신뢰 플랫폼 모듈(vTPM)은 게스트 VM의 부팅 전 및 부팅 무결성을 검증하고 키 생성 및 보호를 제공합니다.
Integrity supervision: 무결성 모니터링을 통해 Stackdriver 보고서를 사용하여 보호된 VM 인스턴스의 런타임 부팅 무결성을 모니터링하고 검증할 수 있습니다. vTPM이 활성화되어 있어야 합니다.
VM에 대한 액세스를 활성화하는 일반적인 방법은 특정 SSH 공개 키가 VM에 액세스할 수 있도록 허용하는 것입니다.
그러나 IAM을 사용하여 os-config
서비스로 VM에 대한 액세스를 활성화할 수도 있습니다. 또한 이 서비스를 사용하여 VM에 액세스하기 위해 2FA를 활성화할 수 있습니다.
이 서비스가 활성화되면, SSH 키를 통한 액세스는 비활성화됩니다.
자동화(AWS의 userdata)를 정의할 수 있으며, 이는 기계가 켜지거나 재시작될 때마다 실행될 셸 명령입니다.
또한 메타데이터 엔드포인트에서 접근 가능한 추가 메타데이터 키-값 쌍을 추가할 수 있습니다. 이 정보는 일반적으로 환경 변수 및 시작/종료 스크립트에 사용됩니다. 이는 열거 섹션의 명령에서 describe
메서드를 사용하여 얻을 수 있지만, 인스턴스 내부에서 메타데이터 엔드포인트에 접근하여도 검색할 수 있습니다.
또한, 연결된 서비스 계정에 대한 인증 토큰과 인스턴스, 네트워크 및 프로젝트에 대한 일반 정보도 메타데이터 엔드포인트에서 사용할 수 있습니다. 자세한 내용은 다음을 확인하세요:
기본적으로 Google 관리 암호화 키가 사용되지만, 고객 관리 암호화 키(CMEK)를 구성할 수 있습니다. 사용된 CMEK가 취소될 때의 처리 방법도 구성할 수 있습니다: VM을 종료하거나 아무것도 하지 않기.
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)