Kërkuesit nga kompania JFrog zbuluan modelet e dëmshme të mësimit makinerik në depozitarin Hugging Face, instalimi i të cilave mund të çojë në ekzekutimin e kodit të sulmuesit për të fituar kontroll mbi sistemin e përdoruesit. Problemi ka lindur nga fakti se disa formate shpërndarjeje të modeleve lejojnë përfshirjen e kodit ekzekutiv, për shembull, modelet që përdorin formatin "pickle" mund të përfshijnë objekte të serializuara në gjuhën Python, si dhe kod që ekzekutohet gjatë ngarkimit të skedarit, ndërsa modelet e Tensorflow Keras mund të ekzekutojnë kod përmes Lambda Layer.
Për të parandaluar shpërndarjen e modeleve të tilla të dëmshme, Hugging Face aplikon skanimin për zëvendësimin e kodit të serializuar, por modelet e dëmshme të identifikuara tregojnë se verifikimet e ekzistuese mund të anashkalohen. Për më tepër, Hugging Face në shumicën e rasteve thjesht i shënon modelet si të rrezikshme, pa bllokuar qasjen në to. Në total janë identifikuar rreth 100 modele potencialisht të dëmshme, 95% e të cilave janë destinuar për përdorim me kornizën PyTorch, dhe 5% me Tensorflow. Ndryshimet e dëmshme më të zakonshme përfshijnë kapjen e objekteve, organizimin e hyrjes së jashtme në sistem (reverse shell), nisjen e aplikacioneve dhe shkrimin në skedar.

Vëren se, nga veprimet e kryera, shumica e modeleve të dëmshme të identifikuara janë krijuar nga hulumtues të sigurisë që përpiqen të fitojnë shpërblime për zbulesat e vulnerabiliteteve dhe metodeve për të anashkaluar mbrojtjen e Hugging Face (për shembull, në vend të një sulmi real, këto modele përpiqen të nisin një kalkulator ose të dërgojnë një kërkesë rrjeti me informacion për suksesin e sulmit). Ndërkohë, ndodhin edhe raste që nisin një shell të kthyer për të lidhur sulmuesin me sistemin.
Për shembull, modelet "baller423/goober2 dhe "star23/baller13" janë të destinuara për të kryer sulme mbi sistemet që ngarkojnë skedarin e modelit në PyTorch duke përdorur funksionin torch.load(). Për të organizuar ekzekutimin e kodit, është përdorur metoda "__reduce__" nga moduli pickle, e cila lejon përfshirjen e kodit të rastësishëm Python në procesin e deserializimit që realizohet gjatë ngarkimit të modelit.
Burimi: opennet.ru
