Einführung in die Schwachstellenlandschaft
Hugging Face hat sich zu einem Eckpfeiler im Ökosystem des maschinellen Lernens entwickelt und bietet ein riesiges Repository von Modellen, Datensätzen und die beliebte Diffusers-Bibliothek für generative KI-Anwendungen. Ihre Zugänglichkeit und ihr kollaborativer Charakter bringen jedoch inhärente Sicherheitsprobleme mit sich. Kürzlich wurde eine kritische Entdeckung bekannt, die zeigte, dass drei verschiedene CVEs in der Hugging Face Diffusers-Bibliothek bösartigen Modell-Repositories die Ausführung von beliebigem Code auf jeder Maschine ermöglichen, die diese lädt, wodurch beabsichtigte Schutzmechanismen für benutzerdefinierten Code grundlegend umgangen werden. Dies stellt eine erhebliche Supply-Chain-Schwachstelle dar, die scheinbar harmlose Modell-Downloads in potenzielle Vektoren für Remote Code Execution (RCE) verwandelt.
Hugging Face Diffusers und das Sicherheitsmodell verstehen
Die Macht benutzerdefinierter Modelle
Die Flexibilität der Diffusers-Bibliothek ermöglicht es Entwicklern, ihre Funktionalität durch die Integration von benutzerdefiniertem Code direkt in Modelle oder deren Konfigurationen zu erweitern. Diese Fähigkeit ist zwar leistungsstark für Innovationen, vergrößert aber auch die Angriffsfläche. Um Risiken im Zusammenhang mit der Ausführung von beliebigem Code zu mindern, führte Hugging Face Mechanismen wie den Parameter allow_unsafe_code ein und förderte die Verwendung des safetensors-Formats. Das safetensors-Format wurde speziell als sichere Alternative zur standardmäßigen pickle-basierten Serialisierung von PyTorch entwickelt, die bekanntermaßen anfällig für unsichere Deserialisierungsschwachstellen ist.
Die Illusion der Sicherheit
Die Annahme war, dass durch das Setzen von allow_unsafe_code=False oder die ausschließliche Verwendung von Modellen im safetensors-Format bösartiger Code nicht ausgeführt werden könnte. Die entdeckten CVEs zeigen jedoch, dass dieses Sicherheitsmodell nicht so robust war wie erwartet. Diese Schwachstellen nutzen spezifische Codepfade und Lademechanismen innerhalb der Diffusers-Bibliothek aus, die unter bestimmten Bedingungen von einem bösartigen Modell manipuliert werden können, um beliebige Python-Objekte zu deserialisieren und auszuführen, selbst wenn explizite Schutzmaßnahmen als aktiv angenommen werden.
Technischer Tiefgang: Exploit-Primitive und CVEs
Unsichere Deserialisierung neu betrachtet
Im Zentrum vieler Softwareschwachstellen liegt die unsichere Deserialisierung. Während safetensors die Risiken im Zusammenhang mit Pythons pickle-Modul (wo torch.load mit allow_pickle=True zu RCE führen kann) eliminieren sollte, zeigen die identifizierten CVEs, dass Fallback-Mechanismen, alternative Ladefunktionen oder eine unsachgemäße Validierung von Metadaten diese Gefahren wieder einführen können. Die Schwachstellen ermöglichen es einem Bedrohungsakteur, ein Modell-Repository zu erstellen, in dem scheinbar harmlose Konfigurationsdateien oder Komponenten, wenn sie von der Diffusers-Bibliothek verarbeitet werden, die Ausführung von bösartigem Python-Code auslösen.
Ausnutzung von Modell-Metadaten und Loadern
Die drei CVEs nutzen unterschiedliche Vektoren, oft unter Einbeziehung der Manipulation von Metadaten oder spezifischen internen Ladefunktionen:
- CVE-202X-XXXX (Metadaten-Manipulation): Diese Schwachstelle nutzt aus, wie Diffusers bestimmte Metadatenfelder innerhalb der Konfiguration eines Modells (z.B.
config.jsonoder andere Hilfsdateien) verarbeitet. Durch das Injizieren speziell präparierter Werte in diese Felder kann ein Angreifer die Bibliothek dazu zwingen, beliebige Module oder Funktionen während der Modellinitialisierungsphase zu laden und auszuführen. Die Umgehung erfolgt, weil die Validierungslogik für diese spezifischen Metadatenfelder unzureichend war, um Code-Injektionen zu verhindern. - CVE-202X-XXXX (Komponentenspezifisches unsicheres Laden): Eine zweite Schwachstelle resultiert aus einem unsicheren Lademechanismus innerhalb einer spezifischen Komponente oder Hilfsfunktion der Diffusers-Bibliothek, wie z.B. einer Funktion, die Optimierer, Scheduler oder andere zusätzliche Zustands-Dictionaries laden soll. Selbst wenn die primären Modellgewichte im
safetensors-Format vorliegen, könnte diese spezielle Funktion beim Verarbeiten einer speziell präparierten Datei innerhalb des bösartigen Modell-Repositories auf eine weniger sichere Deserialisierungsmethode (z.B. eine Variante vontorch.loadmit implizitemallow_pickle-Verhalten) zurückgreifen. - CVE-202X-XXXX (Missbrauch von Fallback-Mechanismen): Der dritte CVE nutzt eine Schwachstelle in einem Fallback- oder Kompatibilitäts-Ladepfad aus. In Szenarien, in denen die Bibliothek versucht, Modelle aus älteren Formaten zu laden oder unerwartete Dateistrukturen zu verarbeiten, könnte sie eine weniger sichere Deserialisierungsroutine aufrufen. Ein bösartiges Modell-Repository kann so strukturiert werden, dass dieser Fallback absichtlich ausgelöst wird, wodurch die beabsichtigten
safetensors- oderallow_unsafe_code=False-Schutzmaßnahmen umgangen und RCE erreicht wird.
Die Angriffskette beinhaltet typischerweise, dass ein Benutzer ein Modell von einem kompromittierten oder bösartigen Hugging Face-Repository herunterlädt und lädt. Beim Laden löst die präparierte Daten innerhalb des Modells oder seiner zugehörigen Konfigurationsdateien die RCE aus, wodurch der Angreifer die Kontrolle über die Maschine des Benutzers erlangt. Die Auswirkungen können von Datenexfiltration und Systemkompromittierung bis hin zur Etablierung persistenter Backdoors reichen.
Angriffsvektoren und reale Implikationen
- Supply-Chain-Angriffe: Bösartige Akteure können kompromittierte Modelle in öffentliche Repositories einschleusen und nachgelagerte Benutzer beeinflussen, die auf diese Ressourcen angewiesen sind.
- Social Engineering: Angreifer könnten Benutzer dazu verleiten, Modelle von gefälschten oder nachgeahmten Repositories herunterzuladen.
- Insider-Bedrohungen: Unzufriedene Mitarbeiter oder Kollaborateure könnten bösartige Modelle hochladen.
- Diebstahl von geistigem Eigentum: Kompromittierte Systeme können zur Exfiltration sensibler Daten, proprietärer Modelle oder Forschungsergebnisse führen.
Risikominderung: Defensive Strategien
Die Bewältigung dieser Schwachstellen erfordert einen mehrschichtigen Sicherheitsansatz:
- Strikte Quellverifikation: Priorisieren Sie immer Modelle aus verifizierten, vertrauenswürdigen Quellen und offiziellen Hugging Face-Konten. Seien Sie vorsichtig bei nicht verifizierten Repositories.
- Umgebungsisolation: Laden und führen Sie KI/ML-Modelle in Sandbox-Umgebungen, virtuellen Maschinen oder sicheren Containern aus. Dies begrenzt den Explosionsradius eines erfolgreichen Exploits.
- Gründliche Code-Überprüfung: Führen Sie für kritische Bereitstellungen statische und dynamische Analysen des Modellcodes und der Konfigurationen vor der Bereitstellung durch, insbesondere für Modelle aus nicht vertrauenswürdigen Quellen.
- Prinzip der geringsten Privilegien: Führen Sie Modelllade- und Inferenzprozesse mit den minimal notwendigen Benutzer- und Netzwerkberechtigungen aus.
- Netzwerksegmentierung: Isolieren Sie ML-Entwicklungs- und Produktionsumgebungen von kritischen Unternehmensnetzwerken.
- Regelmäßige Updates: Halten Sie die Hugging Face Diffusers-Bibliothek, PyTorch und alle Abhängigkeiten auf dem neuesten Stand, um bekannte Schwachstellen zu beheben.
- Sicherheitsscans: Setzen Sie automatisierte Sicherheitsscanning-Tools ein, die Modelldateien auf verdächtige Muster oder bekannte Deserialisierungs-Exploits analysieren können.
Digitale Forensik und Bedrohungsakteurszuordnung
Im unglücklichen Fall einer Kompromittierung ist eine robuste digitale Forensik von größter Bedeutung. Ermittler müssen schnell das Ausmaß des Verstoßes, den spezifischen Exploit-Vektor und die potenzielle Zuordnung des Bedrohungsakteurs identifizieren. Dies umfasst eine akribische Protokollanalyse, Telemetrie von Endpoint Detection and Response (EDR) und Netzwerkaufklärung.
Während einer Untersuchung eines verdächtigen bösartigen Modells oder eines kompromittierten Systems müssen Forscher oft die Infrastruktur des Angreifers verstehen. Tools wie iplogger.org können von unschätzbarem Wert sein, um erweiterte Telemetriedaten – einschließlich IP-Adressen, User-Agents, ISPs und Geräte-Fingerabdrücke – zu sammeln, wenn verdächtige Links in Angreiferkommunikation oder während der Netzwerkaufklärung analysiert werden. Diese Daten helfen bei der Link-Analyse, der Kartierung von Angreifer-Netzwerken und letztendlich bei der Zuordnung von Bedrohungsakteuren, was entscheidende Einblicke in die Quelle eines Cyberangriffs liefert.
Fazit
Die Entdeckung dieser CVEs in Hugging Face Diffusers ist eine deutliche Erinnerung an die anhaltenden Sicherheitsprobleme in der sich schnell entwickelnden KI/ML-Landschaft. Da KI-Modelle komplexer und ihre Nutzung verbreiteter werden, erweitert sich die Angriffsfläche. Organisationen und einzelne Forscher müssen wachsam bleiben, proaktive Sicherheitsmaßnahmen ergreifen und eine Kultur des Sicherheitsbewusstseins fördern, um sich vor ausgeklügelten Supply-Chain-Angriffen zu schützen und die Integrität ihrer KI-Workflows zu gewährleisten.