Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat

This commit is contained in:
Translator
2025-11-24 10:26:05 +00:00
parent 85bc45a413
commit 2ecd1c3f22

View File

@@ -12,11 +12,11 @@ Vir meer inligting oor Vertex AI sien:
### `aiplatform.customJobs.create`, `iam.serviceAccounts.actAs`
Met die `aiplatform.customJobs.create`-toestemming en `iam.serviceAccounts.actAs` op 'n teiken service account, kan 'n aanvaller **arbitrêre kode met verhoogde voorregte uitvoer**.
Met die `aiplatform.customJobs.create`-toestemming en `iam.serviceAccounts.actAs` op 'n geteikende service account, kan 'n aanvaller **ewekansige kode met verhoogde voorregte uitvoer**.
Dit werk deur 'n custom training job te skep wat aanvaller-beheerde kode uitvoer (hetsy 'n custom container of Python package). Deur 'n bevoorregte service account te spesifiseer via die `--service-account` vlag, erf die job daardie service account se toestemmings. Die job hardloop op Google-beheerde infrastruktuur met toegang tot die GCP metadata service, wat die onttrekking van die service account se OAuth access token moontlik maak.
Dit werk deur 'n custom training job te skep wat aanvaller-beheerde kode uitvoer (hetsy 'n custom container of 'n Python-pakket). Deur 'n bevoorregte service account te spesifiseer met die `--service-account` vlag, erf die job daardie service account se permissies. Die job hardloop op Google-beheerde infrastruktuur met toegang tot die GCP metadata service, wat die onttrekking van die service account se OAuth access token moontlik maak.
**Impak**: Volledige privilege escalation na die teiken service account se toestemmings.
**Impak**: Volledige privilege escalation na die permissies van die geteikende service account.
<details>
@@ -65,19 +65,17 @@ gcloud ai custom-jobs stream-logs <job-id> --region=<region>
```
</details>
> [!CAUTION]
> Die custom job sal met die gespesifiseerde diensrekening se toestemmings uitgevoer word. Verseker jy het `iam.serviceAccounts.actAs` toestemming op die teiken-diensrekening.
### `aiplatform.models.upload`, `aiplatform.models.get`
Hierdie tegniek bereik privilege escalation deur 'n model na Vertex AI op te laai en daardie model vervolgens te gebruik om kode met elevated privileges uit te voer via 'n endpoint deployment of batch prediction job.
Hierdie tegniek bereik privilege escalation deur 'n model na Vertex AI op te laai en daardie model te benut om code met elevated privileges uit te voer via 'n endpoint deployment of 'n batch prediction job.
> [!NOTE]
> Om hierdie aanval uit te voer is dit nodig om 'n world readable GCS bucket te hê of 'n nuwe een te skep om die model-artefakte op te laai.
> Om hierdie aanval uit te voer is dit nodig om 'n world readable GCS bucket te hê of 'n nuwe een te skep om die model artifacts op te laai.
<details>
<summary>Laai kwaadwillige pickled model met reverse shell op</summary>
<summary>Laai kwaadwillige pickled model op met reverse shell</summary>
```bash
# Method 1: Upload malicious pickled model (triggers on deployment, not prediction)
# Create malicious sklearn model that executes reverse shell when loaded
@@ -145,12 +143,12 @@ gcloud ai models upload \
</details>
> [!DANGER]
> Nadat die kwaadwillige model opgelaai is, kan 'n aanvaller wag dat iemand die model gebruik, of die model self via 'n endpoint deployment of 'n batch prediction job begin.
> Nadat die kwaadwillige model opgelaai is, kan n aanvaller wag dat iemand die model gebruik, of die model self loods via n endpoint-implementering of n batch-voorspellingswerk.
#### `iam.serviceAccounts.actAs`, ( `aiplatform.endpoints.create`, `aiplatform.endpoints.deploy`, `aiplatform.endpoints.get` ) or ( `aiplatform.endpoints.setIamPolicy` )
#### `iam.serviceAccounts.actAs`, ( `aiplatform.endpoints.create`, `aiplatform.endpoints.deploy`, `aiplatform.endpoints.get` ) of ( `aiplatform.endpoints.setIamPolicy` )
As jy die toestemming het om modelle na endpoints te skep en te ontplooi, of endpoint IAM-beleid te wysig, kan jy opgelaaide kwaadwillige modelle in die projek benut om privilege escalation te bereik. Om een van die voorheen opgelaaide kwaadwillige modelle via 'n endpoint te aktiveer, hoef jy slegs die volgende te doen:
As jy toestemming het om modelle na endpoints te skep en te ontplooi, of endpoint IAM-beleide te wysig, kan jy van die opgelaaide kwaadwillige modelle in die projek gebruik maak om privilege escalation te bewerkstellig. Om een van die vroeër opgelaaide kwaadwillige modelle via n endpoint te aktiveer, hoef jy net die volgende te doen:
<details>
@@ -175,16 +173,16 @@ gcloud ai endpoints deploy-model <endpoint-id> \
#### `aiplatform.batchPredictionJobs.create`, `iam.serviceAccounts.actAs`
As jy toestemming het om 'n **batch prediction jobs** te skep en dit met 'n service account te laat loop, kan jy toegang tot die metadata service kry. Die kwaadaardige kode word uitgevoer vanuit 'n **custom prediction container** of **malicious model** tydens die batch prediction-proses.
As jy toestemming het om 'n **batch prediction jobs** te skep en dit met 'n service account uit te voer, kan jy toegang tot die metadata service kry. Die kwaadwillige kode word uitgevoer vanaf 'n **custom prediction container** of **malicious model** tydens die batch prediction-proses.
**Note**: Batch prediction jobs kan slegs geskep word via die REST API of die Python SDK (gcloud CLI word nie ondersteun nie).
**Note**: Batch prediction jobs kan slegs geskep word via die REST API of die Python SDK (geen gcloud CLI ondersteuning nie).
> [!NOTE]
> Hierdie aanval vereis eers dat jy 'n malicious model oplaai (sien die `aiplatform.models.upload` afdeling hierbo) of 'n custom prediction container gebruik met jou reverse shell code.
> Hierdie aanval vereis eers dat jy 'n malicious model oplaai (sien die `aiplatform.models.upload` afdeling hierbo) of 'n custom prediction container gebruik met jou reverse shell-kode.
<details>
<summary>Skep batch prediction job met malicious model</summary>
<summary>Skep 'n batch prediction job met 'n malicious model</summary>
```bash
# Step 1: Upload a malicious model with custom prediction container that executes reverse shell
gcloud ai models upload \
@@ -240,14 +238,14 @@ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${R
### `aiplatform.models.export`
As jy die **models.export** toestemming het, kan jy modelartefakte na 'n GCS bucket wat jy beheer uitvoer, en moontlik toegang tot sensitiewe opleidingsdata of model-lêers kry.
As jy die **models.export** toestemming het, kan jy modelartefakte na 'n GCS bucket uitvoer wat jy beheer, en moontlik toegang kry tot sensitiewe opleidingsdata of modellêers.
> [!NOTE]
> Om hierdie attack uit te voer is dit nodig om 'n GCS bucket te hê wat deur almal leesbaar en skryfbaar is, of om 'n nuwe een te skep om die modelartefakte op te laai.
> Om hierdie attack uit te voer, is dit nodig om 'n wêreldwyd leesbare en skryfbare GCS bucket te hê, of 'n nuwe een te skep om die modelartefakte op te laai.
<details>
<summary>Voer modelartefakte uit na 'n GCS bucket</summary>
<summary>Eksporteer modelartefakte na 'n GCS bucket</summary>
```bash
# Export model artifacts to your own GCS bucket
PROJECT="your-project"
@@ -274,12 +272,12 @@ gsutil -m cp -r gs://your-controlled-bucket/exported-models/ ./
### `aiplatform.pipelineJobs.create`, `iam.serviceAccounts.actAs`
Skep **ML pipeline jobs** wat verskeie stappe met arbitrêre containers uitvoer en privilege escalation bereik deur reverse shell toegang.
Skep **ML pipeline jobs** wat verskeie stappe met arbitrary containers uitvoer en privilege escalation bereik deur reverse shell toegang.
Pipelines is besonder kragtig vir privilege escalation omdat hulle multi-stage attacks ondersteun waar elke komponent verskillende containers en konfigurasies kan gebruik.
Pipelines is veral kragtig vir privilege escalation omdat hulle multi-stage attacks ondersteun waar elke komponent verskillende containers en konfigurasies kan gebruik.
> [!NOTE]
> You need a world writable GCS bucket to use as the pipeline root.
> Jy het 'n GCS-bucket nodig wat deur almal geskryf kan word om as die pipeline root te gebruik.
<details>
@@ -292,7 +290,7 @@ pip install google-cloud-aiplatform
<details>
<summary>Skep pipeline job met reverse shell container</summary>
<summary>Skep pipeline-taak met reverse shell-container</summary>
```python
#!/usr/bin/env python3
import json
@@ -386,15 +384,15 @@ print(f" {response.text}")
### `aiplatform.hyperparameterTuningJobs.create`, `iam.serviceAccounts.actAs`
Skep **hyperparameter tuning jobs** wat willekeurige kode uitvoer met verhoogde bevoegdhede deur middel van pasgemaakte training-containers.
Skep **hyperparameter tuning jobs** wat ewekansige kode uitvoer met verhoogde bevoegdhede deur custom training containers.
Hyperparameter tuning jobs laat jou toe om verskeie training trials gelyktydig uit te voer, elk met verskillende hyperparameter-waardes. Deur 'n kwaadwillige container met 'n reverse shell of exfiltration-opdrag te spesifiseer, en dit te koppel aan 'n bevoorregte service account, kan jy privilege escalation bereik.
Hyperparameter tuning jobs maak dit moontlik om verskeie training trials parallel te laat loop, elk met verskillende hyperparameter-waardes. Deur 'n kwaadwillige container op te gee met 'n reverse shell of exfiltration command, en dit te assosieer met 'n privileged service account, kan jy privilege escalation bereik.
**Impact**: Volledige privilege escalation na die teiken service account se toestemmings.
**Impact**: Volledige privilege escalation na die target service account se permissies.
<details>
<summary>Skep hyperparameter tuning job met reverse shell</summary>
<summary>Skep hyperparameter tuning job with reverse shell</summary>
```bash
# Method 1: Python reverse shell (most reliable)
# Create HP tuning job config with reverse shell
@@ -435,15 +433,15 @@ gcloud ai hp-tuning-jobs create \
### `aiplatform.datasets.export`
Eksporteer **datasets** om opleidingsdata te exfiltrate wat sensitiewe inligting kan bevat.
Voer **datastelle** uit om training data te exfiltrate wat sensitiewe inligting kan bevat.
**Nota**: Dataset-operasies vereis REST API of Python SDK (geen gcloud CLI-ondersteuning vir datasets nie).
**Let op**: Datastel-operasies vereis REST API of Python SDK (geen gcloud CLI-ondersteuning vir datastelle nie).
Datasets bevat dikwels die oorspronklike opleidingsdata wat PII, vertroulike sake-inligting, of ander sensitiewe inligting kan insluit wat gebruik is om produksiemodelle op te lei.
Datastelle bevat dikwels die oorspronklike training data wat PII, vertroulike besigheidsdata, of ander sensitiewe inligting kan insluit wat gebruik is om produksiemodelle op te lei.
<details>
<summary>Eksporteer dataset om opleidingsdata te exfiltrate</summary>
<summary>Voer datastel uit om training data te exfiltrate</summary>
```bash
# Step 1: List available datasets to find a target dataset ID
PROJECT="your-project"
@@ -487,30 +485,27 @@ cat exported-data/*/data-*.jsonl
# - Internal documents or communications
# - Credentials or API keys in text data
```
</details>
### `aiplatform.datasets.import`
Voer kwaadwillige of vergiftigde data in bestaande datastelle in om **die modelopleiding te manipuleer en backdoors in te voer**.
Voer kwaadwillige of poisoned data in bestaande datastelle in om **modelopleiding te manipuleer en backdoors te introduceer**.
**Nota**: Datastel-operasies vereis die REST API of Python SDK (geen gcloud CLI-ondersteuning vir datastelle nie).
**Nota**: Datastel-operasies vereis REST API of Python SDK (geen gcloud CLI-ondersteuning vir datastelle nie).
Deur vervaardigde data in 'n datastel in te voer wat gebruik word om ML-modelle op te leid, kan 'n aanvaller:
- Introduce backdoors in modelle (trigger-gebaseerde verkeerde klassifikasie)
- Vergiftig opleidingsdata om modelprestasie te verswak
- Inspuit data om modelle te laat leak inligting
Deur gemaakte data in 'n datastel in te voer wat gebruik word om ML-modelle op te lei, kan 'n aanvaller:
- Introduce backdoors into models (trigger-based misclassification)
- Poison training data om modelprestasies te verswak
- Invoeg data om modelle te laat leak inligting
- Manipuleer modelgedrag vir spesifieke insette
Hierdie aanval is besonder doeltreffend wanneer dit gemik is op datastelle wat gebruik word vir:
- Beeldklassifikasie (inspuit verkeerd gemerkte beelde)
- Teksklassifikasie (inspuit bevooroordeelde of kwaadwillige teks)
Hierdie aanval is besonder doeltreffend wanneer dit fokus op datastelle wat gebruik word vir:
- Beeldklassifikasie (invoeg verkeerd gemerkte images)
- Teksklassifikasie (invoeg bevooroordeelde of kwaadwillige teks)
- Objekopsporing (manipuleer bounding boxes)
- Aanbevelingstelsels (inspuit valse voorkeure)
- Aanbevelingstelsels (invoeg vals voorkeure)
<details>
<summary>Voer vergiftigde data in 'n datastel in</summary>
<summary>Voer poisoned data in datastel in</summary>
```bash
# Step 1: List available datasets to find target
PROJECT="your-project"
@@ -571,7 +566,7 @@ curl -s -X GET \
<details>
<summary>Backdoor attack - Image classification</summary>
<summary>Backdoor attack - Beeldklassifikasie</summary>
```bash
# Scenario 1: Backdoor Attack - Image Classification
# Create images with a specific trigger pattern that causes misclassification
@@ -584,7 +579,7 @@ gsutil cp backdoor.jsonl gs://your-bucket/attacks/
<details>
<summary>Label flipping attack</summary>
<summary>Etiket-omkeer-aanval</summary>
```bash
# Scenario 2: Label Flipping Attack
# Systematically mislabel a subset of data to degrade model accuracy
@@ -598,7 +593,7 @@ done > label_flip.jsonl
<details>
<summary>Data poisoning vir model extraction</summary>
<summary>Datavergiftiging vir modelonttrekking</summary>
```bash
# Scenario 3: Data Poisoning for Model Extraction
# Inject carefully crafted queries to extract model behavior
@@ -612,7 +607,7 @@ EOF
<details>
<summary>Doelgerigte aanval op spesifieke entiteite</summary>
<summary>Gerigte aanval op spesifieke entiteite</summary>
```bash
# Scenario 4: Targeted Attack on Specific Entities
# Poison data to misclassify specific individuals or objects
@@ -626,37 +621,37 @@ EOF
> [!DANGER]
> Data poisoning attacks kan ernstige gevolge hê:
> - **Sekuriteitstelsels**: Om gesigherkenning of afwykingsdeteksie te omseil
> - **Bedrogopsporing**: Modelle oplei om spesifieke bedrogspatrone te ignoreer
> - **Inhoudmoderering**: Veroorsaak dat skadelike inhoud as veilig geklassifiseer word
> - **Mediese AI**: Kritieke gesondheidstoestande verkeerd klassifiseer
> - **Outonome stelsels**: Manipuleer voorwerpdeteksie vir veiligheidskritieke besluite
> - **Security systems**: Om gesigsherkenning of afwykingsopsporing te omseil
> - **Fraud detection**: Modelle oplei om spesifieke bedrogspatrone te ignoreer
> - **Content moderation**: Laat skadelike inhoud as veilig geklassifiseer word
> - **Medical AI**: Foutiewe klassifikasie van kritieke gesondheidstoestande
> - **Autonomous systems**: Manipuleer objekdeteksie vir veiligheid-kritieke besluite
>
> **Gevolge**:
> - Backdoored models wat by spesifieke triggers verkeerd klassifiseer
> - Verminderde modelprestasie en akkuraatheid
> - Vertekende modelle wat teen sekere insette diskrimineer
> - Inligtinglekkasie deur modelgedrag
> - Langdurige bestendigheid (modelle opgelei op poisoned data sal die backdoor erf)
>
>
> ### `aiplatform.notebookExecutionJobs.create`, `iam.serviceAccounts.actAs`
>
> > [!WARNING]
> > > [!NOTE]
> > **Verouderde API**: Die `aiplatform.notebookExecutionJobs.create` API is verouderd as deel van die Vertex AI Workbench Managed Notebooks-uitfasering. Die moderne benadering is om **Vertex AI Workbench Executor** te gebruik, wat notebooks deur `aiplatform.customJobs.create` laat loop (reeds hierbo gedokumenteer).
> > Die Vertex AI Workbench Executor laat toe om notebook-uitvoerings te skeduleer wat op Vertex AI se custom training-infrastruktuur uitgevoer word met 'n gespesifiseerde service account. Dit is in wese 'n gerieflike omslaglaag rondom `customJobs.create`.
> > **For privilege escalation via notebooks**: Gebruik die `aiplatform.customJobs.create` metode wat hierbo gedokumenteer is — dit is vinniger, meer betroubaar, en gebruik dieselfde onderliggende infrastruktuur as die Workbench Executor.
>
> **Die volgende tegniek word slegs vir historiese konteks verskaf en word nie aanbeveel vir gebruik in nuwe assesserings nie.**
>
> Skep **notebook execution jobs** wat Jupyter notebooks uitvoer met arbitrêre kode.
>
> Notebook jobs is ideaal vir interaktiewe-styl kode-uitvoering met 'n service account, aangesien hulle Python-kode-selle en shell-kommando's ondersteun.
>
> <details>
>
> <summary>Skep kwaadwillige notebook-lêer</summary>
> **Impak**:
> - Modelle met backdoors wat op spesifieke triggers verkeerd klassifiseer
> - Afnemende modelprestasie en akkuraatheid
> - Vooroordeelde modelle wat teen sekere insette diskrimineer
> - Inligtinglek deur modelgedrag
> - Langtermynpersistensie (modelle opgelei op vergiftigde data sal die backdoor oorerf)
### `aiplatform.notebookExecutionJobs.create`, `iam.serviceAccounts.actAs`
> [!WARNING]
> > [!NOTE]
> **Verouderde API**: Die `aiplatform.notebookExecutionJobs.create` API is verouderd as deel van die deprekasie van Vertex AI Workbench Managed Notebooks. Die moderne benadering is om die **Vertex AI Workbench Executor** te gebruik wat notebooks laat loop deur `aiplatform.customJobs.create` (reeds hierbo gedokumenteer).
> Die Vertex AI Workbench Executor laat toe om notebook-uitvoerings te skeduleer wat op Vertex AI custom training infrastructure uitgevoer word met 'n gespesifiseerde service account. Dit is in wese 'n gerief-omhulsel rondom `customJobs.create`.
> **For privilege escalation via notebooks**: Gebruik die `aiplatform.customJobs.create` metode hierbo gedokumenteer, wat vinniger, meer betroubaar is, en dieselfde onderliggende infrastruktuur as die Workbench Executor gebruik.
**Die volgende tegniek word slegs vir historiese konteks verskaf en word nie aanbeveel vir gebruik in nuwe assesserings nie.**
Skep **notebook execution jobs** wat Jupyter notebooks met ewekansige kode uitvoer.
Notebook jobs is ideaal vir interaktiewe styl kode-uitvoering met 'n service account, aangesien hulle Python code-cells en shell-opdragte ondersteun.
<details>
<summary>Skep kwaadwillige notebook-lêer</summary>
```bash
# Create a malicious notebook
cat > malicious.ipynb <<'EOF'
@@ -683,7 +678,7 @@ gsutil cp malicious.ipynb gs://deleteme20u9843rhfioue/malicious.ipynb
<details>
<summary>Voer notebook uit met die teiken-diensrekening</summary>
<summary>Voer notebook uit met target service account</summary>
```bash
# Create notebook execution job using REST API
PROJECT="gcp-labs-3uis1xlx"