GCP - Compute Instances

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Las Instancias de Cómputo de Google Cloud son máquinas virtuales personalizables en la infraestructura en la nube de Google, que ofrecen potencia informática escalable y bajo demanda para una amplia gama de aplicaciones. Proporcionan características como implementación global, almacenamiento persistente, opciones flexibles de sistema operativo e integraciones sólidas de redes y seguridad, lo que las convierte en una opción versátil para alojar sitios web, procesar datos y ejecutar aplicaciones de manera eficiente en la nube.

VM Confidencial

Las VM Confidenciales utilizan características de seguridad basadas en hardware ofrecidas por la última generación de procesadores AMD EPYC, que incluyen cifrado de memoria y virtualización cifrada segura. Estas características permiten que la VM proteja los datos procesados y almacenados en ella incluso del sistema operativo host y del hipervisor.

Para ejecutar una VM Confidencial, es posible que sea necesario cambiar cosas como el tipo de la máquina, la interfaz de red, la imagen del disco de arranque.

Disco y Cifrado de Disco

Es posible seleccionar el disco a utilizar o crear uno nuevo. Si seleccionas uno nuevo, puedes:

  • Seleccionar el tamaño del disco

  • Seleccionar el SO

  • Indicar si deseas eliminar el disco cuando se elimine la instancia

  • Cifrado: Por defecto se utilizará una clave gestionada por Google, pero también puedes seleccionar una clave de KMS o indicar una clave en bruto para usar.

Desplegar Contenedor

Es posible desplegar un contenedor dentro de la máquina virtual. Es posible configurar la imagen a utilizar, establecer el comando a ejecutar en su interior, argumentos, montar un volumen y variables de entorno (¿información sensible?) y configurar varias opciones para este contenedor como ejecutarlo como privilegiado, stdin y pseudo TTY.

Cuenta de Servicio

Por defecto, se utilizará la cuenta de servicio predeterminada de Compute Engine. El correo electrónico de esta CS es como: <núm-proy>-compute@developer.gserviceaccount.com Esta cuenta de servicio tiene el rol Editor sobre todo el proyecto (altos privilegios).

Y los alcances de acceso predeterminados son los siguientes:

  • https://www.googleapis.com/auth/devstorage.read_only -- ¡Acceso de lectura a 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

Sin embargo, es posible concederle cloud-platform con un clic o especificar personalizados.

Firewall

Es posible permitir el tráfico HTTP y HTTPS.

Redes

  • Reenvío de IP: Es posible habilitar el reenvío de IP desde la creación de la instancia.

  • Nombre de host: Es posible asignar un nombre de host permanente a la instancia.

  • Interfaz: Es posible agregar una interfaz de red.

Seguridad Adicional

Estas opciones aumentarán la seguridad de la VM y se recomiendan:

  • Arranque seguro: El arranque seguro ayuda a proteger tus instancias de VM contra malware a nivel de arranque y rootkits a nivel de kernel.

  • Habilitar vTPM: El Módulo de Plataforma de Confianza Virtual (vTPM) valida la integridad de arranque previo y de arranque de tu VM invitada, y ofrece generación y protección de claves.

  • Supervisión de integridad: La supervisión de integridad te permite monitorear y verificar la integridad de arranque en tiempo de ejecución de tus instancias de VM protegidas mediante informes de Stackdriver. Requiere que vTPM esté habilitado.

Acceso a la VM

La forma común de habilitar el acceso a la VM es permitiendo ciertas claves públicas SSH para acceder a la VM. Sin embargo, también es posible habilitar el acceso a la VM a través del servicio os-config utilizando IAM. Además, es posible habilitar la autenticación de dos factores para acceder a la VM mediante este servicio. Cuando este servicio está habilitado, el acceso a través de claves SSH se deshabilita.

Metadatos

Es posible definir automatizaciones (userdata en AWS) que son comandos de shell que se ejecutarán cada vez que la máquina se encienda o reinicie.

También es posible agregar valores clave de metadatos adicionales que serán accesibles desde el punto final de metadatos. Esta información se utiliza comúnmente para variables de entorno y scripts de inicio/apagado. Esto se puede obtener utilizando el método describe desde un comando en la sección de enumeración, pero también se puede recuperar desde el interior de la instancia accediendo al punto final de metadatos.

# 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"

Además, el token de autenticación para la cuenta de servicio adjunta y información general sobre la instancia, la red y el proyecto también estarán disponibles desde el punto final de metadatos. Para obtener más información, consulta:

Encriptación

Por defecto se utiliza una clave de encriptación gestionada por Google, pero se puede configurar una clave de encriptación gestionada por el cliente (CMEK). También puedes configurar qué hacer cuando se revoque la CMEF utilizada: Nada o apagar la VM.

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización