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 to dostosowywalne maszyny wirtualne w infrastrukturze chmurowej Google, oferujące skalowalną moc obliczeniową na żądanie dla szerokiego zakresu aplikacji. Oferują funkcje takie jak globalne wdrożenie, trwałe przechowywanie, elastyczny wybór systemu operacyjnego oraz silne integracje sieciowe i bezpieczeństwa, co czyni je wszechstronnym wyborem do hostowania stron internetowych, przetwarzania danych i efektywnego uruchamiania aplikacji w chmurze.
Confidential VMs wykorzystują funkcje bezpieczeństwa oparte na sprzęcie oferowane przez najnowszą generację procesorów AMD EPYC, które obejmują szyfrowanie pamięci i bezpieczną wirtualizację szyfrowaną. Funkcje te umożliwiają VM ochronę danych przetwarzanych i przechowywanych w nim nawet przed systemem operacyjnym hosta i hipernadzorcą.
Aby uruchomić Confidential VM, może być konieczne zmiana takich rzeczy jak typ maszyny, interfejs sieciowy, obraz dysku rozruchowego.
Możliwe jest wybranie dysku do użycia lub utworzenie nowego. Jeśli wybierzesz nowy, możesz:
Wybrać rozmiar dysku
Wybrać system operacyjny
Wskazać, czy chcesz usunąć dysk, gdy instancja zostanie usunięta
Szyfrowanie: Domyślnie będzie używany klucz zarządzany przez Google, ale możesz również wybrać klucz z KMS lub wskazać surowy klucz do użycia.
Możliwe jest wdrożenie kontenera wewnątrz maszyny wirtualnej. Możliwe jest skonfigurowanie obrazu do użycia, ustawienie komendy do uruchomienia wewnątrz, argumentów, zamontowanie wolumenu oraz zmiennych środowiskowych (informacje wrażliwe?) i skonfigurowanie kilku opcji dla tego kontenera, takich jak uruchamianie jako uprzywilejowany, stdin i pseudo TTY.
Domyślnie będzie używane domyślne konto usługi Compute Engine. Adres e-mail tego SA wygląda jak: <proj-num>-compute@developer.gserviceaccount.com
To konto usługi ma rolę Edytora w całym projekcie (wysokie uprawnienia).
A domyślne zakresy dostępu to:
https://www.googleapis.com/auth/devstorage.read_only -- Dostęp do odczytu do koszyków :)
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
Jednak możliwe jest przyznanie mu cloud-platform
jednym kliknięciem lub określenie niestandardowych.
Możliwe jest zezwolenie na ruch HTTP i HTTPS.
IP Forwarding: Możliwe jest włączenie przekazywania IP od momentu utworzenia instancji.
Hostname: Możliwe jest nadanie instancji stałej nazwy hosta.
Interface: Możliwe jest dodanie interfejsu sieciowego.
Te opcje zwiększą bezpieczeństwo VM i są zalecane:
Secure boot: Secure boot pomaga chronić twoje instancje VM przed złośliwym oprogramowaniem na poziomie rozruchu i jądra oraz rootkitami.
Enable vTPM: Wirtualny moduł zaufanej platformy (vTPM) weryfikuje integralność rozruchu i pre-boot twojej gościnnej VM oraz oferuje generację i ochronę kluczy.
Integrity supervision: Monitorowanie integralności pozwala monitorować i weryfikować integralność rozruchu runtime twoich chronionych instancji VM za pomocą raportów Stackdriver. Wymaga włączenia vTPM.
Typowym sposobem na umożliwienie dostępu do VM jest zezwolenie na dostęp za pomocą określonych kluczy publicznych SSH.
Jednak możliwe jest również włączenie dostępu do VM za pomocą usługi os-config
przy użyciu IAM. Co więcej, możliwe jest włączenie 2FA do uzyskania dostępu do VM za pomocą tej usługi.
Gdy ta usługa jest włączona, dostęp za pomocą kluczy SSH jest wyłączony.
Możliwe jest zdefiniowanie automatyzacji (userdata w AWS), które są komendami powłoki, które będą wykonywane za każdym razem, gdy maszyna się uruchamia lub restartuje.
Możliwe jest również dodanie dodatkowych wartości klucz-wartość metadanych, które będą dostępne z punktu końcowego metadanych. Informacje te są powszechnie używane do zmiennych środowiskowych oraz skryptów uruchamiania/zamykania. Można je uzyskać za pomocą metody describe
z polecenia w sekcji enumeracji, ale można je również pobrać z wnętrza instancji, uzyskując dostęp do punktu końcowego metadanych.
Ponadto, token autoryzacyjny dla dołączonego konta usługi oraz ogólne informacje o instancji, sieci i projekcie będą również dostępne z punktu końcowego metadanych. Aby uzyskać więcej informacji, sprawdź:
Domyślnie używany jest klucz szyfrowania zarządzany przez Google, ale można skonfigurować klucz szyfrowania zarządzany przez klienta (CMEK). Możesz również skonfigurować, co zrobić, gdy używany CMEK zostanie unieważniony: nic lub wyłączyć VM.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)