Beveiligingslandschap van de vectordatabase
Beveiligingsanalyse van de belangrijkste vectordatabases, waaronder Pinecone, Weaviate, Chroma, Milvus en Qdrant: architectuur, toegangsmodellen en veelvoorkomende kwetsbaarheden.
Vectordatabases zijn speciaal gebouwd om hoog-dimensionale embeddingvectoren op te slaan, te indexeren en te bevragen. Anders dan bij traditionele databases, waarvan de beveiligingsmodellen goed begrepen worden, vormen vectordatabases een nieuwe categorie met zich ontwikkelende beveiligingsfeatures en vaak onvolwassen implementaties van toegangscontrole. Deze pagina behandelt het beveiligingslandschap van de belangrijkste vectordatabases en benoemt veelvoorkomende zwakheden.
De belangrijkste vectordatabases
Pinecone
Pinecone is een volledig beheerde, cloud-native vectordatabase. Het beveiligingsmodel draait om API-sleutels voor authenticatie en isolatie op projectniveau voor multi-tenancy.
Architectuur: serverless en pod-gebaseerde implementaties op AWS en GCP. Data wordt opgeslagen in door Pinecone beheerde infrastructuur.
Beveiligingskenmerken:
- API-sleutel-authenticatie (één sleutel per project)
- Logische isolatie op basis van namespaces binnen indexen
- Geen toegangscontrole op rijniveau binnen namespaces
- SOC 2 Type II-compliance
- Data versleuteld in rust en tijdens transport
Belangrijkste risico: één gecompromitteerde API-sleutel geeft volledige lees-/schrijftoegang tot alle data in het project. Er is geen granulair permissiemodel om een sleutel te beperken tot alleen-lezen of tot specifieke namespaces.
Weaviate
Weaviate is een open-source vectordatabase die je zelf kunt hosten of als beheerde service kunt gebruiken (Weaviate Cloud Services).
Architectuur: een in Go geschreven server met een REST- en GraphQL-API. Ondersteunt verschillende indextypes en kan meerdere embeddingmodellen integreren.
Beveiligingskenmerken:
- Authenticatie via API-sleutel en OIDC
- Multi-tenant class-isolatie
- Autorisatie via role-based access control (RBAC) in de enterprise-tier
- Zelf-gehoste implementaties erven de infrastructuurbeveiliging
Belangrijkste risico: open-source implementaties draaien vaak zonder ingeschakelde authenticatie, vooral in ontwikkelomgevingen die per ongeluk worden blootgesteld. De standaardconfiguratie is permissief.
Chroma
Chroma is een lichtgewicht, open-source embedding-database die is ontworpen voor de ontwikkeling van AI-applicaties. Hij is populair voor prototyping en kleinere implementaties.
Architectuur: een in Python geschreven server met een in-process-modus en een client-servermodus. Slaat data lokaal of in een geconfigureerde backend op.
Beveiligingskenmerken:
- Minimale ingebouwde authenticatie in de open-source versie
- Geen native encryptie in rust
- Isolatie op collectieniveau
- Ontworpen voor lokaal/ontwikkelgebruik, vaak zonder hardening in productie ingezet
Belangrijkste risico: de eenvoud van Chroma is zijn grootste beveiligingsrisico. Veel productie-implementaties missen authenticatie, encryptie en netwerkisolatie, omdat de tool tijdens het prototypen is aangenomen en nooit is geüpgraded naar productiekwaliteit.
Milvus
Milvus is een open-source vectordatabase die is ontworpen voor schaalbare productie-implementaties. Hij ondersteunt gedistribueerde architecturen met gescheiden opslag en rekenkracht.
Architectuur: een gedistribueerd systeem met proxy-, query-, data- en indexknooppunten. Gebruikt etcd voor metadata en MinIO/S3 voor objectopslag.
Beveiligingskenmerken:
- TLS voor client-server- en inter-node-communicatie
- RBAC met een gebruiker-/rol-/privilegemodel
- Ondersteuning voor authenticatie via gebruikersnaam/wachtwoord
- Auditlogging in de enterprise-versie
Belangrijkste risico: de gedistribueerde architectuur betekent dat de beveiliging over meerdere componenten heen moet worden gewaarborgd (etcd, MinIO en de Milvus-knooppunten zelf). Een zwakte in welk component dan ook kan het hele systeem compromitteren.
Qdrant
Qdrant is een open-source engine voor similarity search op vectoren, geschreven in Rust en ontworpen voor productiewaardige prestaties.
Architectuur: één binary of een gedistribueerd cluster. REST- en gRPC-API's.
Beveiligingskenmerken:
- API-sleutel-authenticatie
- TLS-ondersteuning voor de API en inter-node-communicatie
- Toegangscontrole op collectieniveau
- Op JWT gebaseerde fijnmazige toegangscontrole (recentere feature)
Belangrijkste risico: net als andere open-source vectordatabases kunnen productie-implementaties met de standaard (permissieve) beveiligingsconfiguraties draaien.
Veelvoorkomende beveiligingszwakheden
In alle vectordatabases worden consequent verschillende beveiligingszwakheden waargenomen:
1. Gaten in de authenticatie
Veel vectordatabase-implementaties hebben helemaal geen authenticatie, vooral wanneer ze ooit als ontwikkelomgeving zijn begonnen. Zelfs wanneer authenticatie is ingeschakeld, zijn de modellen vaak simplistisch:
| Database | Standaardauthenticatie | Granulariteit | Gangbare staat bij implementatie |
|---|---|---|---|
| Pinecone | API-sleutel (verplicht) | Projectniveau | Geauthenticeerd maar grofmazig |
| Weaviate | Geen (optioneel) | Class-/tenantniveau | Vaak ongeauthenticeerd |
| Chroma | Geen | Geen | Bijna altijd ongeauthenticeerd |
| Milvus | Gebruikersnaam/wachtwoord (optioneel) | Database-/collectieniveau | Wisselend |
| Qdrant | API-sleutel (optioneel) | Collectieniveau | Vaak ongeauthenticeerd |
2. Blootstelling op het netwerk
Vectordatabases worden vaak blootgesteld op interne netwerken zonder firewallbeperkingen. Veelvoorkomende patronen zijn onder meer:
- Binden aan
0.0.0.0in plaats van127.0.0.1 - Draaien in Docker met port forwarding ingeschakeld
- Uitrollen in Kubernetes zonder netwerkbeleid
- Beheers-API's blootstellen naast query-API's
3. Gebrek aan encryptie in rust
Similarity search-operaties vereisen toegang tot de ruwe vectorwaarden, wat encryptie in rust lastig maakt. De meeste vectordatabases slaan embeddings onversleuteld op, wat betekent dat iedereen met toegang tot de onderliggende opslag alle embeddings kan lezen.
4. Onvoldoende auditlogging
De meeste vectordatabases bieden geen gedetailleerde auditlogs van query-operaties. Dit maakt het moeilijk om data-exfiltratie, ongeautoriseerde toegang of injectie-aanvallen te detecteren nadat ze hebben plaatsgevonden.
5. Beveiliging van back-up en replicatie
Back-ups en replica's van vectordatabases krijgen vaak minder beveiligingsaandacht dan de primaire instance. Back-upbestanden kunnen worden opgeslagen in S3-buckets met permissief toegangsbeleid, en replicatieverkeer is mogelijk niet versleuteld.
Beoordelingsraamwerk
Bij het beoordelen van een vectordatabase-implementatie:
- Authenticatie — Is authenticatie ingeschakeld? Wat is de granulariteit? Worden sleutels geroteerd?
- Netwerk — Is de database alleen blootgesteld aan de benodigde clients? Zijn beheers-API's gescheiden?
- Encryptie — Is TLS ingeschakeld voor transport? En in rust?
- Toegangscontrole — Kunnen verschillende gebruikers of services worden beperkt tot specifieke collecties of namespaces?
- Audit — Worden queries gelogd? Kan ongeautoriseerde toegang worden gedetecteerd?
- Back-up — Zijn back-ups versleuteld? Wie heeft er toegang toe?
- Multi-tenancy — Als meerdere tenants de database delen, wordt de isolatie afgedwongen?
Verwante onderwerpen
- Access Control — Gedetailleerde analyse van toegangscontrole
- Injection Attacks — Injectietechnieken voor vectordatabases
- Data Exfiltration — Exfiltratie via vectordatabases