GCP - Compute Instances

Support HackTricks

Grundinformationen

Google Cloud Compute Instances sind anpassbare virtuelle Maschinen auf der Cloud-Infrastruktur von Google, die skalierbare und bedarfsgerechte Rechenleistung für eine Vielzahl von Anwendungen bieten. Sie bieten Funktionen wie globale Bereitstellung, persistente Speicherung, flexible Betriebssystemauswahl sowie starke Netzwerk- und Sicherheitsintegrationen, was sie zu einer vielseitigen Wahl für das Hosting von Websites, die Datenverarbeitung und das effiziente Ausführen von Anwendungen in der Cloud macht.

Vertrauliche VM

Vertrauliche VMs nutzen hardwarebasierte Sicherheitsfunktionen, die von der neuesten Generation der AMD EPYC-Prozessoren angeboten werden, einschließlich Speicherverschlüsselung und sicherer verschlüsselter Virtualisierung. Diese Funktionen ermöglichen es der VM, die verarbeiteten und gespeicherten Daten vor sogar dem Host-Betriebssystem und Hypervisor zu schützen.

Um eine vertrauliche VM auszuführen, müssen möglicherweise Dinge wie der Typ der Maschine, die Netzwerk-schnittstelle, das Boot-Disk-Image geändert werden.

Festplatte & Festplattenverschlüsselung

Es ist möglich, die Festplatte auszuwählen, die verwendet werden soll, oder eine neue zu erstellen. Wenn Sie eine neue auswählen, können Sie:

  • Die Größe der Festplatte auswählen

  • Das Betriebssystem auswählen

  • Angeben, ob Sie die Festplatte löschen möchten, wenn die Instanz gelöscht wird

  • Verschlüsselung: Standardmäßig wird ein von Google verwalteter Schlüssel verwendet, aber Sie können auch einen Schlüssel aus KMS auswählen oder einen Rohschlüssel angeben.

Container bereitstellen

Es ist möglich, einen Container innerhalb der virtuellen Maschine bereitzustellen. Es ist möglich, das Image auszuwählen, den Befehl festzulegen, der innerhalb ausgeführt werden soll, Argumente, ein Volume zu mounten und Umgebungsvariablen (sensible Informationen?) festzulegen sowie mehrere Optionen für diesen Container zu konfigurieren, wie als privilegiert ausführen, stdin und pseudo TTY.

Dienstkonto

Standardmäßig wird das Standarddienstkonto von Compute Engine verwendet. Die E-Mail dieses SA lautet: <proj-num>-compute@developer.gserviceaccount.com Dieses Dienstkonto hat die Editor-Rolle über das gesamte Projekt (hohe Berechtigungen).

Und die Standardzugriffsbereiche sind die folgenden:

  • https://www.googleapis.com/auth/devstorage.read_only -- Lesezugriff auf Buckets :)

  • 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

Es ist jedoch möglich, es mit einem Klick cloud-platform zu gewähren oder benutzerdefinierte zu spezifizieren.

Firewall

Es ist möglich, HTTP- und HTTPS-Verkehr zuzulassen.

Netzwerk

  • IP-Weiterleitung: Es ist möglich, die IP-Weiterleitung bei der Erstellung der Instanz zu aktivieren.

  • Hostname: Es ist möglich, der Instanz einen permanenten Hostnamen zu geben.

  • Schnittstelle: Es ist möglich, eine Netzwerkschnittstelle hinzuzufügen.

Zusätzliche Sicherheit

Diese Optionen werden die Sicherheit der VM erhöhen und sind empfohlen:

  • Sicherer Boot: Sicherer Boot hilft, Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernel-Ebene zu schützen.

  • vTPM aktivieren: Das virtuelle Trusted Platform Module (vTPM) validiert die Integrität Ihrer Gast-VM vor dem Booten und während des Bootvorgangs und bietet Schlüsselgenerierung und -schutz.

  • Integritätsüberwachung: Die Integritätsüberwachung ermöglicht es Ihnen, die Laufzeit-Integrität des Bootvorgangs Ihrer geschützten VM-Instanzen mithilfe von Stackdriver-Berichten zu überwachen und zu überprüfen. Erfordert, dass vTPM aktiviert ist.

VM-Zugriff

Der gängige Weg, um den Zugriff auf die VM zu ermöglichen, besteht darin, bestimmte SSH-Öffentlichkeits-Schlüssel den Zugriff auf die VM zu erlauben. Es ist jedoch auch möglich, den Zugriff auf die VM über den os-config-Dienst mithilfe von IAM zu aktivieren. Darüber hinaus ist es möglich, 2FA zu aktivieren, um auf die VM über diesen Dienst zuzugreifen. Wenn dieser Dienst aktiviert ist, ist der Zugriff über SSH-Schlüssel deaktiviert.

Metadaten

Es ist möglich, Automatisierung (Benutzerdaten in AWS) zu definieren, die Shell-Befehle sind, die jedes Mal ausgeführt werden, wenn die Maschine eingeschaltet oder neu gestartet wird.

Es ist auch möglich, zusätzliche Metadaten-Schlüssel-Wert-Paare hinzuzufügen, die über den Metadaten-Endpunkt zugänglich sind. Diese Informationen werden häufig für Umgebungsvariablen und Start-/Herunterfahrskripte verwendet. Dies kann mit der describe-Methode aus einem Befehl im Abschnitt zur Enumeration abgerufen werden, kann jedoch auch von innerhalb der Instanz über den Metadaten-Endpunkt abgerufen werden.

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

Außerdem sind Auth-Token für das angehängte Dienstkonto und allgemeine Informationen über die Instanz, das Netzwerk und das Projekt ebenfalls über den Metadaten-Endpunkt verfügbar. Für weitere Informationen siehe:

Verschlüsselung

Standardmäßig wird ein von Google verwalteter Verschlüsselungsschlüssel verwendet, aber ein vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) kann konfiguriert werden. Sie können auch konfigurieren, was zu tun ist, wenn der verwendete CMEK widerrufen wird: Nichts oder die VM herunterfahren.

Support HackTricks

Last updated