Aanvallen op AI-deployments
Beveiligingsbeoordeling van AI-deployment-infrastructuur, waaronder container escapes, GPU-side-channels, kwetsbaarheden in inference-servers en resource-uitputtingsaanvallen.
AI-deployments draaien op gespecialiseerde infrastructuur — GPU-clusters, inference-servers, containerorkestratie — die aanvalsoppervlakken introduceert die verder gaan dan het model zelf. Een compromittering op infrastructuurniveau kan toegang geven tot modelgewichten, gebruikersdata en het bredere netwerk.
Architectuur van een AI-deployment
Een typische productie-LLM-deployment:
Load Balancer → API Gateway → Inference Server (vLLM, TGI, Triton)
↓
GPU Cluster (CUDA runtime)
↓
Model Weights (shared storage)
↓
Vector DB / Cache
Elke component heeft zijn eigen aanvalsoppervlak.
Kwetsbaarheden in inference-servers
Populaire inference-servers (vLLM, Text Generation Inference, Triton) stellen managementinterfaces en verwerkingsendpoints bloot:
# Veelvoorkomende inference-server-endpoints om te onderzoeken
endpoints = [
"/health", # Health check - kan versie-info onthullen
"/metrics", # Prometheus-metrics - resourcegebruik, model-info
"/v1/models", # Modellijst - onthult geladen modellen
"/v1/completions", # Inference-endpoint
"/admin", # Managementinterface (indien blootgesteld)
"/docs", # Automatisch gegenereerde API-docs
]
# Test op ongeauthenticeerde toegang tot management-endpoints
for endpoint in endpoints:
response = requests.get(f"http://target:8000{endpoint}")
print(f"{endpoint}: {response.status_code}")Bekende aanvalspatronen
| Server | Kwetsbaarheidsklasse | Impact |
|---|---|---|
| vLLM | Ongeauthenticeerde API | Modeltoegang, inference-misbruik |
| Triton | Model repository traversal | Toegang tot andere modellen, gewichten |
| TGI | Resource-uitputting | Service-weigering |
| Ollama | Standaard open poort (11434) | Volledige lokale modeltoegang |
GPU- en geheugenaanvallen
GPU-geheugenlekkage
GPU-geheugen wordt niet automatisch gewist tussen requests. In multi-tenant-omgevingen kan een volgende request residuele data van de inference van een eerdere gebruiker lezen:
# Conceptuele GPU-geheugensonde
# In een gedeelde GPU-omgeving: alloceer geheugen en lees ongeïnitialiseerde waarden
import torch
# Alloceer een grote tensor zonder initialisatie
probe = torch.empty(1024, 1024, device='cuda')
# probe kan residuele data bevatten van eerdere operaties
# waaronder embeddings, activaties of KV-cache van andere gebruikersExtractie van modelgewichten
Als een aanvaller toegang krijgt tot de deployment-infrastructuur, kunnen modelgewichten direct gekopieerd worden:
# Veelvoorkomende locaties voor modelgewichten in containerdeployments
# /models/
# /opt/ml/model/
# /root/.cache/huggingface/
# /data/models/Containerbeveiliging
AI-workloads draaien vaak in containers met verhoogde rechten voor GPU-toegang:
# Veelvoorkomende onveilige containerconfiguratie voor GPU-workloads
services:
inference:
image: vllm/vllm-openai
# Privileged mode voor GPU-toegang - gangbaar maar gevaarlijk
privileged: true
# Host network - stelt interne poorten bloot
network_mode: host
# Volume mounts - kunnen gevoelige hostpaden blootstellen
volumes:
- /data/models:/models
- /var/run/docker.sock:/var/run/docker.sockContainer-escape-paden die specifiek zijn voor AI-workloads:
- Privileged mode — Vaak ingeschakeld voor NVIDIA GPU-toegang, verleent volledige hostcapabilities
- Docker socket mount — Soms gebruikt voor containerorkestratie, maakt volledige Docker-controle mogelijk
- Host PID namespace — Gedeeld voor GPU-drivercompatibiliteit, maakt procesinzicht mogelijk
- Schrijfbare modeldirectory — Indien schrijfbaar kan een aanvaller modelgewichten vervangen
Resource-uitputting
AI-inference is resource-intensief, waardoor het een uitgelezen doelwit is voor denial of service:
# GPU-geheugenuitputting
# Stuur requests die het GPU-geheugengebruik maximaliseren
# Lange input + lange output + grote batchgrootte
# Compute-uitputting
# Requests die de inference-tijd maximaliseren
# Adversariële inputs die maximale attention-berekening veroorzaken
# Opslaguitputting
# Als het systeem prompts/responses logt, genereer dan volume
# Als het systeem KV-states cachet, vul dan de cacheGerelateerde onderwerpen
- Overzicht AI-infrastructuurbeveiliging -- bredere context van het infrastructuur-aanvalsoppervlak
- LLM-API-beveiliging -- de API-laag die vóór de inference-servers zit
- Risico's van de model-supply-chain -- modellen compromitteren voordat ze de deployment bereiken
- Infrastructuur-exploitatie -- geavanceerde infrastructuur-aanvalstechnieken
- Capstone: Uitvoering & rapportage -- infrastructuurbevindingen verwerken in engagement-rapporten
Referenties
- NVIDIA, "Container Security for GPU Workloads" (2024) -- GPU container security guidance
- Tramèr et al., "Stealing Machine Learning Models via Prediction APIs" (2016) -- model extraction through inference endpoints
- MITRE, "ATLAS: Adversarial Threat Landscape for AI Systems" (2023) -- infrastructure-layer threats in the AI threat taxonomy
Waarom worden AI-containers vaak uitgerold met verhoogde rechten?