Schlafender Unhold: Neue Angriffsmethode Sleepy Pickle bedroht Machine-Learning-Modelle
Mit der Entdeckung der neuen "hybriden Technik zur Ausnutzung von Machine-Learning-(ML)-Modellen" Sleepy Pickle sind die Sicherheitsrisiken des Pickle-Formats erneut in den Vordergrund gerückt. Diese Technik zeigt, wie verwundbar das Format ist.
Laut Trail of Bits nutzt die Angriffsmethode das weit verbreitete Pickle-Format, das zum Packen und Verteilen von Machine-Learning-Modellen verwendet wird, um das Modell selbst zu beschädigen. Dies stellt ein ernsthaftes Lieferkettenrisiko für die Kunden eines Unternehmens dar. „Sleepy Pickle ist eine heimliche und neuartige Angriffstechnik, die das ML-Modell direkt und nicht das zugrunde liegende System angreift,“ so der Sicherheitsexperte Boyan Milanov.
Manipulation von Modellverhalten und Daten
Obwohl Pickle ein gängiges Serialisierungsformat für ML-Bibliotheken wie PyTorch ist, kann es zur Ausführung von schädlichem Code verwendet werden, indem während der Deserialisierung einfach eine Pickle-Datei geladen wird. Hugging Face empfiehlt daher in einer Dokumentation, Modelle nur von vertrauenswürdigen Benutzern und Organisationen zu laden, auf signierte Commits zu setzen und Modelle aus TensorFlow- oder Jax-Formaten mit dem from_tf=True-Autokonvertierungsmechanismus zu verwenden.
Sleepy Pickle nutzt Open-Source-Tools wie Fickling, um schädlichen Code in eine Pickle-Datei einzufügen. Diese Datei wird dann durch Methoden wie Adversary-in-the-Middle-Angriffe, Phishing, Lieferkettenkompromittierung oder Systemschwachstellen an das Ziel übermittelt. „Wenn die Datei auf dem System des Opfers geöffnet wird, wird der schädliche Code ausgeführt. Dieser verändert das Modell, um Hintertüren einzubauen, Ausgaben zu kontrollieren oder Daten zu manipulieren,“ erklärt Milanov.
Anders ausgedrückt: Die in die Pickle-Datei injizierte Nutzlast, die das serialisierte ML-Modell enthält, kann missbraucht werden, um das Modellverhalten zu ändern, indem die Modellgewichte oder die vom Modell verarbeiteten Eingabe- und Ausgabedaten manipuliert werden.
Sticky Pickle: Hartnäckige Schadmechanismen
In einem hypothetischen Angriffsszenario könnte Sleepy Pickle schädliche Ausgaben oder Fehlinformationen erzeugen, wie zum Beispiel den Rat, Bleichmittel zur Heilung von Grippe zu trinken. Das Verfahren könnte auch missbraucht werden, um Benutzerdaten zu stehlen oder Phishing-Angriffe durch manipulierte Nachrichtenlinks durchzuführen.
Laut Trail of Bits kann Sleepy Pickle von Angreifern genutzt werden, um sich unbemerkt Zugang zu ML-Systemen zu verschaffen, indem sie schädlichen Code in Pickle-Dateien verstecken. Dieser Code wird aktiv, wenn die Datei im Python-Prozess geladen wird. Das ist nur schwer zu entdecken.
Diese Methode ist effektiver als das direkte Hochladen eines bösartigen Modells auf Plattformen wie Hugging Face, da das Modellverhalten dynamisch verändert werden kann, ohne dass Benutzer das Modell bewusst herunterladen müssen. „Angreifer können mit Sleepy Pickle Pickle-Dateien erstellen, die keine ML-Modelle sind, aber dennoch lokale Modelle beschädigen, wenn sie zusammen geladen werden,“ so Milanov. „Die Angriffsfläche wächst so schnell ins Unermessliche, da die Kontrolle über eine beliebige Pickle-Datei in der Lieferkette des Zielunternehmens ausreicht, um dessen Modelle anzugreifen.“
Sleepy Pickle zeigt, dass Angriffe auf Modellebene Schwachstellen in der Lieferkette über Verbindungen zwischen Softwarekomponenten und der finalen Anwendung ausnutzen können.
Von Sleepy Pickle zu Sticky Pickle
Sleepy Pickle ist nicht der einzige Angriff, den Trail of Bits demonstriert hat. Das Unternehmen erklärte, dass er weiterentwickelt werden kann, um im kompromittierten Modell zu bleiben und der Entdeckung zu entgehen. Diese Technik nennt sich Sticky Pickle. Wie Milanov ausführt, enthält Sticky Pickle einen Mechanismus, der seine schädliche Nutzlast in zukünftige Versionen des kompromittierten Modells überträgt und den Code verschleiert, sodass er von Scannern nicht erkannt wird.
Dadurch bleibt der Exploit bestehen, auch wenn ein Benutzer das kompromittierte Modell ändert und weiterverteilt.
Um sich vor Sleepy Pickle und ähnlichen Angriffen zu schützen, wird empfohlen, Pickle-Dateien nicht zur Verbreitung von serialisierten Modellen zu verwenden. Stattdessen sollten nur Modelle von vertrauenswürdigen Organisationen genutzt und sicherere Formate wie SafeTensors verwendet werden.
Weitere Artikel zum Thema