GCP - Bigtable Enum

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Bigtable

Google Cloud Bigtable es una base de datos NoSQL totalmente gestionada y escalable, diseñada para aplicaciones que requieren un throughput extremadamente alto y baja latencia. Está construida para manejar cantidades masivas de datos — petabytes distribuidos en miles de nodos — mientras sigue proporcionando un rendimiento rápido de lectura y escritura. Bigtable es ideal para cargas de trabajo como datos de series temporales, telemetría IoT, análisis financieros, motores de personalización y bases de datos operacionales a gran escala. Utiliza un mapa ordenado, multidimensional, disperso y distribuido como su modelo de almacenamiento subyacente, lo que lo hace eficiente para almacenar tablas anchas donde muchas columnas pueden estar vacías. Learn more.

Jerarquía

  1. Instancia de Bigtable

Una instancia de Bigtable es el recurso de nivel superior que creas. No almacena datos por sí misma: piensa en ella como un contenedor lógico que agrupa tus clústeres y tablas.

Existen dos tipos de instancias:

  • Instancia de desarrollo (nodo único, barata, no para producción)
  • Instancia de producción (puede tener múltiples clústeres)
  1. Clústeres

Un clúster contiene los recursos reales de cómputo y almacenamiento usados para servir los datos de Bigtable.

  • Cada clúster reside en una sola región.
  • Está compuesto por nodos, que proveen CPU, RAM y capacidad de red.
  • Puedes crear instancias con múltiples clústeres para alta disponibilidad o lecturas/escrituras globales.
  • Los datos se replican automáticamente entre clústeres dentro de la misma instancia.

Importante:

  • Las tablas pertenecen a la instancia, no a un clúster específico.
  • Los clústeres simplemente proporcionan los recursos para servir los datos.
  1. Tablas

Una tabla en Bigtable es similar a una tabla en bases de datos NoSQL:

  • Los datos se almacenan en filas, identificadas por una row key.
  • Cada fila contiene familias de columnas (column families), que contienen columnas.
  • Es dispersa: las celdas vacías no consumen espacio.
  • Bigtable almacena los datos ordenados lexicográficamente por la row key.

Las tablas son servidas por todos los clústeres de la instancia.

  1. Tablets (y Hot Tablets)

Bigtable divide cada tabla en particiones horizontales llamadas tablets. Una tablet es:

  • Un rango contiguo de row keys.
  • Almacenada en un solo nodo en un momento dado.
  • Las tablets se dividen, fusionan y mueven automáticamente por Bigtable.

Una hot tablet ocurre cuando:

  • Demasiadas lecturas o escrituras golpean el mismo rango de row-keys (la misma tablet).
  • Esa tablet/nodo específico se sobrecarga.
  • Esto conduce a hotspots (cuellos de botella de rendimiento).
  1. Vistas autorizadas

Las vistas autorizadas permiten crear un subconjunto de los datos de una tabla que puede compartirse con usuarios o aplicaciones específicas sin darles acceso a la tabla completa. Esto es útil para:

  • Limitar el acceso a datos sensibles.
  • Proporcionar acceso de solo lectura a columnas o filas específicas.
  1. Perfiles de aplicación

Un app profile de Bigtable es una configuración que define cómo una aplicación o cliente específico debe interactuar con una instancia de Bigtable, especialmente en entornos con múltiples clústeres. Controla el comportamiento de enrutamiento—si las solicitudes deben dirigirse a un único clúster o distribuirse entre varios clústeres para alta disponibilidad—y regula cómo se replican las escrituras, eligiendo entre modos síncronos (consistencia más fuerte) o asíncronos (menor latencia).

# Cloud Bigtable
gcloud bigtable instances list
gcloud bigtable instances describe <instance>
gcloud bigtable instances get-iam-policy <instance>

## Clusters
gcloud bigtable clusters list
gcloud bigtable clusters describe <cluster>

## Tables
gcloud bigtable tables list --instance <INSTANCE>
gcloud bigtable tables describe --instance <INSTANCE> <TABLE>
gcloud bigtable tables get-iam-policy --instance <INSTANCE> <TABLE>

## Backups
gcloud bigtable backups list --instance <INSTANCE>
gcloud bigtable backups describe --instance <INSTANCE> <backupname>
gcloud bigtable backups get-iam-policy --instance <INSTANCE> <backupname>

## Hot Tables
gcloud bigtable hot-tablets list

## App Profiles
gcloud bigtable app-profiles list --instance <INSTANCE>
gcloud bigtable app-profiles describe --instance <INSTANCE> <app-prof>

## Authorized Views
gcloud bigtable authorized-views list --instance <INSTANCE> --table <TABLE>
gcloud bigtable authorized-views describe --instance <INSTANCE> --table <TABLE> <VIEW>

Privilege Escalation

GCP - Bigtable Privesc

Post Exploitation

GCP - Bigtable Post Exploitation

Persistence

GCP - Bigtable Persistence

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks