Forskere fra JFrog har opdaget skadelige maskinlæringsmodeller i Hugging Face-repositoriet, hvis installation kan føre til, at angriberen kan udføre kode for at få kontrol over brugerens system. Problemet opstår, fordi nogle distributionsformater for modeller tillader indlejring af eksekverbar kode. For eksempel kan modeller, der bruger formatet «pickle», inkludere serialiserede objekter på Python samt kode, der udføres når filen indlæses, og Tensorflow Keras-modeller kan udføre kode via Lambda Layer.
For at forhindre spredning af sådanne skadelige modeller anvender Hugging Face scanning for indføjelse af serialiseret kode, men de opdagede skadelige modeller viser, at de eksisterende kontroller kan omgås. Desuden markerer Hugging Face i de fleste tilfælde kun modeller som farlige uden at blokere adgangen til dem. I alt er der opdaget omkring 100 potentielt skadelige modeller, hvoraf 95% er designet til brug med PyTorch-rammen, og 5% med Tensorflow. De mest fælles skadelige ændringer inkluderer objektfangst, organisering af ekstern systemadgang (reverse shell), kørsel af applikationer og filskriveoperationer.

Det bemærkes, at de fleste af de opdagede skadelige modeller, vurderet ud fra deres adfærd, er lavet af sikkerhedsforskere, der forsøger at få belønning for at opdage sårbarheder og måder at omgå Hugging Faces beskyttelse på (f.eks. prøver sådanne modeller i stedet for en reel angreb at køre en lommeregner eller sende en netværksanmodning med information om angrebets succes). Der findes også eksempler, der kører en reverse shell for at forbinde angriberen til systemet.
For eksempel er modellerne «baller423/goober2» og «star23/baller13» målrettet angreb på systemer, der indlæser model-filen i PyTorch ved hjælp af funktionen torch.load(). For at organisere kodeudførelse anvendes metoden «__reduce__» fra pickle-modulet, som tillader indsendelse af vilkårlig Python-kode i deserialiseringsprocessen, der udføres under indlæsning af modellen.
Kilde: opennet.ru
