Lokal bedeutet nicht abgeschottet
Ein lokaler Inferenzserver führt das Modell auf einem Rechner aus, den du kontrollierst. Er kann dennoch Anfragen von anderen Geräten annehmen, wenn der Prozess an einer erreichbaren Netzwerkschnittstelle lauscht und die Regeln des Rechners Verbindungen zulassen. Allein der Speicherort des Modells legt weder fest, wer die API nutzen darf, noch welche Aktionen möglich sind.
Lege vor der Freigabe den Zweck und die Zugriffsgrenzen fest: Soll nur der Rechner selbst den Dienst nutzen, sollen bestimmte Clients im lokalen Netzwerk darauf zugreifen oder auch entfernte Nutzer? Jede Erweiterung verändert, welche Systeme Daten senden und Antworten erhalten können. Wenn du diese Grenzen nicht bestimmen und überprüfen kannst, beschränke den Dienst auf den Rechner oder aktiviere ihn nicht.
Den Weg einer Anfrage nachvollziehen
Eine Anfrage durchläuft in der Regel den Client, das Netzwerk, den Prozess mit der API und das geladene Modell. Gegebenenfalls kommen ein Reverse-Proxy oder eine Weboberfläche hinzu. Jede Komponente bringt eigene Einstellungen mit, die den Zugriff beeinflussen können: Der Client speichert beispielsweise Zugangsdaten, die Firewall filtert Verbindungen und die Laufzeitumgebung bedient den Endpunkt.
Erstelle eine Bestandsaufnahme, bevor du Einstellungen änderst: Welcher Rechner hostet den Dienst? Welcher Prozess führt ihn aus? Welche Ports werden verwendet? Welche Clients benötigen Zugriff, und gibt es zwischengeschaltete Komponenten? Halte außerdem fest, wer diese Kontrollen ändern darf. Gemeinsam genutzte Inferenz bringt einen Netzwerkpfad und Betriebsaufgaben mit sich, die bei einer Anwendung, die das Modell auf demselben Gerät ausführt, nicht in gleicher Weise anfallen.
Minimale Übersicht über eine Anfrage
- 01Client: Ermittle den Rechner und die Anwendung, von denen Anfragen gesendet werden.
- 02Netzwerk: Grenze Schnittstellen, Segmente und Routen ein, über die der Host erreichbar ist.
- 03Dienst: Prüfe Prozess, Endpunkt, Ports und Authentifizierung.
- 04Modell und Daten: Ermittle, welche Eingaben, Ausgaben und Protokolle der Dienst verarbeitet.
- 05Administration: Stelle fest, wer Einstellungen oder Zugangsdaten ändern darf.
Zugriffsbereich vor der Konfiguration festlegen
Wenn du den Dienst nur auf demselben Rechner testen musst, erweitere den Zugriff nicht aus Bequemlichkeit auf das lokale Netzwerk. Eine Loopback-Adresse wie 127.0.0.1 für IPv4 oder ::1 für IPv6 beschränkt die Verbindung bei diesem Protokoll und dieser Konfiguration auf den Host. Trotzdem musst du prüfen, an welche Adressen der Prozess tatsächlich gebunden ist. Eine konkrete Netzwerkschnittstelle oder eine Wildcard-Adresse kann es anderen Rechnern ermöglichen, eine Verbindung herzustellen.
Soll der Dienst im lokalen Netzwerk freigegeben werden, beschränke den Zugriff – sofern Laufzeitumgebung und Umgebung dies ermöglichen – auf die erforderlichen Schnittstellen, Netzwerke und Clients. Verwechsle ein privates Netzwerk nicht mit einem Netzwerk, in dem jedes Gerät vertrauenswürdig ist. Prüfe bei Fernzugriff den Entwurf erneut: Sichere den gesamten Verbindungsweg mit geeigneten Kontrollen und stelle keinen Entwicklungsendpunkt direkt ins Internet.
Erste Entscheidungsmatrix
| Bedarf | Vorsichtige Entscheidung | Voraussetzung für den nächsten Schritt |
|---|---|---|
| Nutzung auf demselben Rechner | Dienst auf Loopback beschränken | Bestätigen, dass er nicht zusätzlich an externen Schnittstellen lauscht. |
| Zugriff von Clients im lokalen Netzwerk | Auf erforderliche Schnittstellen, Netzwerke und Clients beschränken | Mit einem autorisierten und einem nicht autorisierten Client testen. |
| Fernzugriff oder Zugriff aus dem Internet | Entwicklungsendpunkt nicht direkt freigeben | Zusätzliche Kontrollen für den gesamten Verbindungsweg entwerfen und prüfen. |
| Listener unbekannt oder Grenzen nicht testbar | Keinen Netzwerkzugriff aktivieren | Konfiguration und Tests vor der Bereitstellung klären. |
Die tatsächliche Konfiguration prüfen
Gehe nicht davon aus, dass eine Laufzeitumgebung nur auf dem Rechner lauscht oder dass die anfängliche Konfiguration Authentifizierung vorsieht. Die Standardwerte hängen von Produkt, Version und Startparametern ab. Prüfe die aktuelle Dokumentation der ausgewählten Laufzeitumgebung und bestätige das Ergebnis auf dem Host: An welche Adresse und Schnittstellen ist sie gebunden? Welche Ports sind offen, und welcher Prozess belegt sie?
Prüfe auch, wie der Dienst Anfragen ohne Zugangsdaten, mit falschen Zugangsdaten und mit nicht erlaubten Aktionen behandelt. Eine API, die ein bekanntes Format unterstützt, bietet nicht automatisch dieselben Authentifizierungs- oder Autorisierungsfunktionen wie ein anderes Produkt. Wenn die Laufzeitumgebung nicht genügend Kontrollen bietet, nimm nicht an, dass ein fingierter API-Schlüssel oder ein vom Client gesendeter Header den Endpunkt schützt.
Schutzmaßnahmen in mehreren Ebenen umsetzen
Die erste Ebene besteht darin, den Listener einzugrenzen: Verwende Loopback, wenn kein Fernzugriff erforderlich ist, oder – falls das Werkzeug es zulässt – eine bestimmte Schnittstelle, wenn Zugriff aus dem lokalen Netzwerk benötigt wird. Konfiguriere anschließend Betriebssystem oder Firewall so, dass nur die vorgesehenen Verbindungen zugelassen werden. Die Regeln müssen zur tatsächlichen Netzwerktopologie passen und dürfen nicht auf der Annahme beruhen, dass das gesamte lokale Netzwerk sicher ist.
Nutze Authentifizierung und Autorisierung, sofern sie verfügbar und erforderlich sind. Schütze Zugangsdaten, hinterlege sie nicht im Quellcode oder in Dateien, die nicht autorisierte Nutzer lesen können, und prüfe, welche Berechtigungen sie gewähren. Wenn du einen Reverse-Proxy einsetzt, kontrolliere, wie er den Datenverkehr terminiert und schützt, wie er Clients identifiziert und ob der Ursprungsdienst über einen anderen Weg weiterhin erreichbar ist. Der Proxy ersetzt nicht das Schließen oder Einschränken eines direkten Zugriffs.
Aus zwei Perspektiven testen
Ein Test vom vorgesehenen Client bestätigt, dass dieser Verbindungsweg funktioniert. Er zeigt jedoch nicht, wer sonst noch den Endpunkt erreichen kann. Teste mit einem autorisierten Client und zusätzlich mit einem Gerät, das keinen Zugriff haben sollte. Prüfe das tatsächliche Ergebnis und nicht nur, ob die Anwendung einen Fehler anzeigt: Eine abgelehnte Verbindung, ein Authentifizierungsfehler und eine nicht autorisierte Aktion sind nicht unbedingt dasselbe.
Notiere Datum, Version der Laufzeitumgebung, Betriebssystem, Ausgangsgerät, Netzwerk, Testmethode und Ergebnis. Wiederhole die Prüfungen nach wichtigen Änderungen an Laufzeitumgebung, Firewall, Proxy, Router oder Netzwerktopologie. Ein Test in einem bestimmten lokalen Netzwerk beweist nicht, dass der Endpunkt aus allen anderen Netzwerken unerreichbar ist.
Testmatrix für den Zugriff
| Test | Erwartetes Ergebnis | Zu dokumentieren |
|---|---|---|
| Autorisierter Client mit gültigen Zugangsdaten | Zugriff nur auf die vorgesehenen Funktionen | Herkunft, Methode, Umfang und Antwort. |
| Autorisierter Client ohne Zugangsdaten | Anfrage wird abgelehnt, sofern Authentifizierung vorgeschrieben ist | Beobachteter Status oder anderes Verhalten. |
| Client mit ungültigen Zugangsdaten | Zugriff wird abgelehnt | Verhalten und verfügbare Nachweise. |
| Client ohne Zugriffsberechtigung | Erreicht den Dienst nicht oder besteht seine Zugriffskontrollen nicht | Ausgangsnetz, Verbindungsweg und Ergebnis. |
| Autorisierter Client versucht eine nicht erlaubte Aktion | Aktion wird abgewiesen, sofern eine funktionsbezogene Autorisierung eingerichtet ist | Geprüfte Aktion und Ergebnis. |
Protokolle, Änderungen und Wartung
Lege fest, welche Informationen die Laufzeitumgebung oder der Proxy protokollieren soll und wer diese Protokolle einsehen darf. Sie können Anfragen oder Antworten, Client-Kennungen, Fehler oder andere sensible Informationen enthalten. Prüfe deshalb die Dokumentation und die tatsächliche Konfiguration, bevor du Protokolle aufbewahrst oder weitergibst. Protokolle können bei der Untersuchung unerwarteter Zugriffe helfen, belegen aber für sich genommen nicht, dass der Zugriff kontrolliert ist.
Bestimme, wer Netzwerkregeln, Einstellungen der Laufzeitumgebung und Zugangsdaten ändern darf. Halte Laufzeitumgebung und Abhängigkeiten nach den Anweisungen des Anbieters aktuell und teste den Zugriff nach Updates erneut. Werden unerwartete Verbindungen festgestellt, setze die gemeinsame Nutzung aus, prüfe Netzwerkpfade und Zugangsdaten und bewahre die nach deinen Richtlinien erforderlichen Diagnoseinformationen auf.
Regelmäßige Prüfung
- 01Dokumentiere Zweck, zugelassene Clients und verantwortliche Stelle des Dienstes.
- 02Prüfe Listener, Ports, Authentifizierung, Autorisierung und Netzwerkregeln.
- 03Halte fest, welche Daten Laufzeitumgebung und Proxy protokollieren und wer sie einsehen kann.
- 04Aktualisiere Komponenten nach einem festgelegten Verfahren und prüfe Konfigurationsänderungen.
- 05Wiederhole Zugriffstests und bewahre die Ergebnisse auf.
- 06Beschränke oder stoppe den Dienst bei unerwartetem Zugriff, solange du den Vorfall untersuchst.
Wann du den Dienst lokal hältst, freigibst oder stoppst
Belasse den Dienst auf dem eigenen Rechner, wenn du ihn nur lokal benötigst, die tatsächlichen Listener-Schnittstellen nicht sicher kennst oder die Erreichbarkeit von einem anderen Gerät aus nicht testen kannst. Eine Freigabe im lokalen Netzwerk kann vertretbar sein, wenn du Clients und Netzwerke eingegrenzt, mit der Laufzeitumgebung kompatible Kontrollen eingerichtet und erlaubte sowie abgewiesene Zugriffe geprüft hast.
Aktiviere den Zugriff nicht, wenn du nicht begrenzen kannst, wer den Dienst erreicht, Zugangsdaten nicht geschützt sind, unklar ist, was das System protokolliert, oder du Änderungen nicht überwachen und überprüfen kannst. Betrachte Fernzugriff als eigene Bereitstellung: Er erfordert eine gezielte Prüfung aller beteiligten Komponenten und Verbindungswege, nicht bloß eine erweiterte Netzwerkregel.
Entscheidung über die Bereitstellung
| Stand der Prüfung | Entscheidung |
|---|---|
| Listener und Grenzen bestätigt; nur lokale Nutzung erforderlich | Auf dem Rechner belassen. |
| Zugriff im lokalen Netzwerk erforderlich; Umfang begrenzt und Tests abgeschlossen | Für die vorgesehenen Clients freigeben und regelmäßig erneut prüfen. |
| Authentifizierung, Netzwerkeinschränkung oder Tests unzureichend | Gemeinsamen Zugriff nicht aktivieren. |
| Fernzugriff erforderlich | Spezielle Kontrollen entwerfen und prüfen, bevor Verbindungen zugelassen werden. |
Was dieser Leitfaden zeigt – und was nicht
Wenn eine Verbindung von einem zugelassenen Client funktioniert und von einem Testclient abgewiesen wird, ist damit nicht nachgewiesen, dass alle Verbindungswege geschützt sind. Das Ergebnis hängt von der geprüften Konfiguration, den verwendeten Versionen und der Topologie ab. Es belegt auch nicht, dass Eingaben, Ausgaben oder Diagnoseinformationen innerhalb einer Datenschutzgrenze bleiben. Dafür müssen ausgehender Datenverkehr und das Verhalten jeder Komponente gesondert geprüft werden.
Zugriffskontrolle betrifft die Frage, wer den Dienst erreichen darf und was innerhalb seiner Grenzen möglich ist. Datenschutz und ausgehender Datenverkehr sind damit verbunden, aber andere Fragen. Leite weder umfassende Sicherheit noch vollständigen Datenschutz daraus ab, dass das Modell lokal läuft oder ein einzelner Test erfolgreich war.
Offene Fragen
- Schutzmaßnahmen, Standardwerte und Konfigurationsverfahren unterscheiden sich je nach Laufzeitumgebung, Version und Betriebssystem; die vorliegenden Unterlagen erlauben keine universellen Schritt-für-Schritt-Anweisungen.
- Für diesen Leitfaden sind weder eine konkrete Netzwerktopologie noch eine bestimmte Laufzeitumgebung oder getestete Version festgelegt. Jede Bereitstellung muss ihre eigenen Prüfungen dokumentieren und wiederholen.
- Tests mit einem autorisierten und einem nicht autorisierten Client beweisen nicht, dass sämtliche Schnittstellen oder Netzwerkpfade geschützt sind.
- Aus der Erreichbarkeit der API lässt sich nicht ableiten, ob Laufzeitumgebung, Modell oder Komponenten ausgehenden Datenverkehr erzeugen oder welche Informationen in Protokollen gespeichert werden.
Weiter entdecken
Verwendete Quellen
Korrekturen und Transparenz
Wenn du falsche oder veraltete Angaben findest, sende uns die Seite und die zu prüfende Quelle.
Korrektur vorschlagen