Raziskovalci iz JFrog so identificirali zlonamerne modele strojnega učenja v repozitoriju Hugging Face, katerih namestitev lahko vodi do izvajanja kode napadalca za pridobitev nadzora nad uporabnikovim sistemom. Težavo povzroča dejstvo, da nekateri distribucijski formati modelov omogočajo vdelavo izvršljive kode, na primer modeli, ki uporabljajo format "pickle", lahko vključujejo serializirane objekte Python kot tudi kodo, ki se izvede, ko je datoteka naložena, in modeli Tensorflow Keras lahko izvedejo kodo prek Lambda Layerja.
Da bi preprečil širjenje takšnih zlonamernih modelov, Hugging Face uporablja serializirano skeniranje zamenjave kode, vendar identificirani zlonamerni modeli kažejo, da je obstoječa preverjanja mogoče zaobiti. Poleg tega Hugging Face v večini primerov le označi modele kot nevarne, ne da bi blokiral dostop do njih. Skupno je bilo identificiranih okoli 100 potencialno zlonamernih modelov, od katerih jih je 95 % namenjenih uporabi z ogrodjem PyTorch, 5 % pa s Tensorflow. Najpogostejše zlonamerne spremembe vključujejo zajem predmeta, organizacijo zunanje prijave (obratna lupina), zagon aplikacij in pisanje v datoteko.

Opozoriti je treba, da so sodeč po izvedenih ukrepih večino identificiranih zlonamernih modelov ustvarili varnostni raziskovalci, ki so poskušali prejeti nagrado za odkrivanje ranljivosti in metod za obhod zaščite Hugging Face (na primer, namesto dejanskega napada takšni modeli poskušajo za zagon kalkulatorja ali pošiljanje omrežne zahteve z informacijami o uspešnosti napada) . Hkrati obstajajo tudi primeri, ki zaženejo obratno lupino, da napadalca povežejo s sistemom.
Na primer, modela "baller423/goober2" in "star23/baller13" sta namenjena napadom na sisteme, ki naložijo datoteko modela v PyTorch s funkcijo torch.load(). Za organizacijo izvajanja kode se uporablja metoda “__reduce__” iz modula pickle, ki omogoča vstavljanje poljubne kode Python v proces deserializacije, ki se izvede pri nalaganju modela.
Vir: opennet.ru
