Nieuwe aanvalstechniek 'Sleepy Pickle' richt zich op machine learning-modellen

De veiligheidsrisico's van het Pickle-formaat zijn opnieuw naar voren gekomen met de ontdekking van een nieuwe 'hybride machine learning (ML)-modelexploitatietechniek' genaamd Sleepy Pickle.

De aanvalsmethode maakt, volgens Trail of Bits, gebruik van het alomtegenwoordige formaat dat wordt gebruikt om machine learning (ML)-modellen te verpakken en te distribueren om het model zelf te corrumperen, wat een ernstig supply chain-risico met zich meebrengt voor de downstream-klanten van een organisatie.

“Sleepy Pickle is een sluipende en nieuwe aanvalstechniek die zich richt op het ML-model zelf in plaats van op het onderliggende systeem”, aldus beveiligingsonderzoeker Boyan Milanov.

Hoewel pickle een veelgebruikt serialisatieformaat is door ML-bibliotheken zoals PyTorch, kan het worden gebruikt om willekeurige code-uitvoeringsaanvallen uit te voeren door simpelweg een pickle-bestand te laden (dwz tijdens deserialisatie).

“We raden aan modellen te laden van gebruikers en organisaties die u vertrouwt, vertrouwend op ondertekende commits, en/of modellen te laden vanuit (TensorFlow) of Jax-formaten met het from_tf=True auto-conversiemechanisme”, benadrukt Hugging Face in de documentatie.

Sleepy Pickle werkt door een payload in een pickle-bestand in te voegen met behulp van open source-tools zoals Fickling, en deze vervolgens af te leveren bij een doelhost met behulp van een van de vier technieken, zoals een Adversary-in-the-Middle-aanval (AitM), phishing , compromittering van de toeleveringsketen of de exploitatie van een systeemzwakte.

Machinaal leren

“Wanneer het bestand op het systeem van het slachtoffer wordt gedeserialiseerd, wordt de payload uitgevoerd en wordt het ingesloten model ter plekke aangepast om backdoors in te voegen, uitgangen te controleren of met verwerkte gegevens te knoeien voordat deze aan de gebruiker worden teruggestuurd”, aldus Milanov.

Anders gezegd: de payload die in het pickle-bestand wordt geïnjecteerd dat het geserialiseerde ML-model bevat, kan worden misbruikt om het gedrag van het model te veranderen door te knoeien met de modelgewichten of door te knoeien met de invoer- en uitvoergegevens die door het model worden verwerkt.

In een hypothetisch aanvalsscenario zou de aanpak kunnen worden gebruikt om schadelijke resultaten of desinformatie te genereren die rampzalige gevolgen kunnen hebben voor de veiligheid van gebruikers (bijvoorbeeld bleekmiddel drinken om griep te genezen), gebruikersgegevens te stelen als aan bepaalde voorwaarden wordt voldaan, en gebruikers indirect aan te vallen door het genereren van gemanipuleerde samenvattingen van nieuwsartikelen met links die naar een phishing-pagina verwijzen.

Trail of Bits zei dat Sleepy Pickle door bedreigingsactoren kan worden bewapend om heimelijke toegang tot ML-systemen te behouden op een manier die detectie omzeilt, aangezien het model wordt aangetast wanneer het pickle-bestand in het Python-proces wordt geladen.

Dit is ook effectiever dan het rechtstreeks uploaden van een kwaadaardig model naar Hugging Face, omdat het het gedrag van het model kan wijzigen of dynamisch kan worden uitgevoerd zonder dat de doelwitten ertoe hoeven te worden overgehaald deze te downloaden en uit te voeren.

“Met Sleepy Pickle kunnen aanvallers pickle-bestanden maken die geen ML-modellen zijn, maar toch lokale modellen kunnen beschadigen als ze samen worden geladen”, aldus Milanov. “Het aanvalsoppervlak is dus veel breder, omdat controle over elk pickle-bestand in de supply chain van de doelorganisatie voldoende is om hun modellen aan te vallen.”

“Sleepy Pickle laat zien dat geavanceerde aanvallen op modelniveau zwakke punten in de supply chain op een lager niveau kunnen misbruiken via de verbindingen tussen onderliggende softwarecomponenten en de uiteindelijke applicatie.”

Thijs Van der Does