Das Risiko offener Ollama-APIs

Aus dem Englischen übersetzt. Original lesen auf English.


Das Problem

Ollama ist ein API-Dienst der auf deinem eigenen Rechner läuft damit du KI-Modelle ohne die Cloud von jemand anderem nutzen kannst. Er hört auf Port 11434 und antwortet unter http://localhost:11434.

Das Problem ist dass Ollama keine Authentifizierung mitbringt. Für sich genommen ist das keine Schwachstelle aber es wird eine in dem Moment wo der Port aus dem Internet erreichbar ist. Wer ihn findet nutzt deine Modelle und deine Hardware ohne zu fragen.

Was schiefgehen kann

Ohne Authentifizierung und mit offenem Port kann ein Angreifer einiges tun.

  • Mit deinen KI-Modellen sprechen
  • Die Modelle herunterladen die auf deinem Rechner liegen
  • Aufgaben auf deiner GPU und deiner CPU starten

Wenn du Ollama auf einer gemieteten Maschine laufen lässt kommt die Rechnung trotzdem ob du den Dienst genutzt hast oder nicht. Jemand anderes hat es getan.

Wie ich das gefunden habe

Der Befehl ollama serve zeigt dir dass der Dienst bereits läuft sobald Ollama installiert und aktiv ist. Also habe ich mit FOFA nachgesehen wie viele davon aus dem Internet erreichbar sind was eine Suchmaschine für den Cyberraum ist.

Ich habe nach Rechnern mit offenem Port 11434 gesucht und dafür die Abfrage "Ollama is running" && port="11434" genutzt. Diese Signatur funktioniert weil die Wurzel einer Standardinstallation von Ollama genau diesen Text zurückgibt und sich damit laufende Instanzen sicher finden lassen.

FOFA.info Abfrage nach Port 11434

Die Suche ergab 65.766 offene Hosts.

FOFA.info Ergebnisse mit 65.766 offenen Ollama-Instanzen
  • Port 11434 war auf allen erreichbar
  • Ich konnte Modelle lesen und Anfragen an ihre GPUs schicken
  • Viele liefen auf teurer Hardware und der Besitzer hatte keine Ahnung

So sicherst du deinen Ollama-Dienst

Wenn du Ollama nutzt gibt es drei Dinge die du heute tun kannst.

1. IP-Liste

Nutze eine Firewall und lass nur die IPs durch denen du vertraust.

2. Authentifizierung davor

Setze einen Proxy davor der nach einem Token fragt bevor er irgendetwas weiterleitet.

3. Kein offener Port

Binde den Dienst an 127.0.0.1 damit der Port von außerhalb der Maschine nicht erreichbar ist.

Fazit

Das ist keine Kritik an Ollama. Es bringt einen lokalen Dienst mit und das ist der richtige Standard. Das Problem beginnt wenn ein lokaler Dienst auf einer öffentlichen IP landet und niemand nachgesehen hat. Zwanzig Minuten mit einer Firewall sind die ganze Lösung.