+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

„Hugging Face“ modelių failuose gali veikti paslėptas kodas

Žalingi modelių paketai gali vykdyti kodą nesaugaus įkėlimo metu.

Žalingi modelių paketai gali vykdyti kodą nesaugaus įkėlimo metu. Trys dokumentuoti pavyzdžiai paaiškina „Pickle“ atvirkštines apvalkalus (reverse shells), sugadintų failų skaitytuvo elgesį ir tyrimais pademonstruotą modelio pavadinimo painiavą, aiškiai apribojant teiginius apie kredencialų vagystę.

Skaityti rašytinę versiją (anglų k.) ↗

Kas aptariama šiame vaizdo įraše

  • Skaitmeniniai modelio svoriai, vykdoma serializacija ir pasirinktinis saugyklos kodas yra skirtingi dalykai.
  • JFrog ir ReversingLabs dokumentavo atvirkštinių apvalkalų (reverse-shell) paketus; jų pasirinktose ataskaitose nenustatyta kredencialų vagystės iš įvardytų aukų.
  • Checkmarx „Model Confusion“ buvo tyrimų demonstracija, kuriai reikėjo atitinkamo nuotolinio modelio ir nesaugaus įkėlimo.
  • Pirmenybę teikite „safetensors“ ir pataisytiems įkėlėjams, peržiūrėkite ir priskirkite pasirinktinį kodą, bei izoliuokite nepažįstamus paketus nuo asmeninių paslapčių ir nereikalingos prieigos prie tinklo.

Išverstas transkriptas

Išversta iš originalo anglų kalbos. Galimas garso ir subtitrų valdymas per YouTube.

Kaip modelio atsisiuntimas gali pakviesti svečią?

0:00 Modelio failas yra tik skaičiai diske. Įkėlus vieną kenkėjišką „Hugging Face“ paketą, atsidarė nuotolinis apvalkalas, o tai yra ambicinga vietinio dirbtinio intelekto interpretacija. Kaip įkėlimas tampa vykdymu? Kokias paslaptis jis gali pasiekti? Kas iš tiesų jį sustabdo? Ir nepamirškite vieno galvosūkio. Modelis gali nepavykti įkelti, kai pavojinga dalis jau įvyko.

0:18 Tai yra „The Daily Diff“, iš vidaus. „Hugging Face“ yra platforma, skirta dalintis mašininio mokymosi modeliais, duomenų rinkiniais ir programomis. Modelio svoriai yra išmokti skaičiai. Saugykla taip pat gali turėti konfigūraciją ir „Python“ kodą. Pavojus čia yra tas, kad vykdomasis paketas patenka į jūsų kompiuterį, kai jį įkeliate. „Pickle“ saugo „Python“ objektus su instrukcijomis, kaip juos atkurti.

Kaip įkėlėjas vykdo siuntinio instrukcijas?

0:37 Nesaugus įkėlėjas gali sekti tas instrukcijas ir kviesti funkcijas, kol atpakuoja. Atsisiuntus baitus, siuntinys atsiranda jūsų diske. Deserijavimas jį atidaro. Kažkur failo formatas buvo paverstas neapmokamu sistemos administratoriumi. JFrog pranešė apie „Goober Two“ 2024 m. vasario mėnesį. Jo „Pickle“ paketas atidarė atvirkštinį apvalkalą, prisijungdamas išoriškai, kad pasiūlytų nuotolinę komandų prieigą. Saugykla buvo ištrinta. JFrog taip pat rado užuominų, rodančių tyrėjų įsitraukimą,

1:02 todėl priskyrimas yra neaiškus. Nenorimas svečias buvo dokumentuotas. Kredencialų vagystė iš tikrų aukų nebuvo nustatyta.

Kokios paslaptys yra proceso pasiekiamoje zonoje?

1:09 Kodas, veikiantis kaip jūsų vartotojas, gali skaityti viską, ką gali perskaityti tas procesas. Prijungtas debesies raktas arba pasiekiamas prieigos raktas tampa galimu taikiniu. Norint jį išsiųsti, taip pat reikalingas veikiantis tinklo maršrutas. Vien tik skaitmeniniai svoriai neturi jokių magiškų kredencialų galių. Jūsų leidimai pateikia įdomią modelio kortelės dalį. Yra dar vienos durys. Kai kurie modeliai prašo pasitikėti nuotoliniu kodu, kuris leidžia „Python“ iš saugyklos. Saugių tenzorių failai gali būti šalia to kodo.

1:32 Patikrinus svorio formatą, uždaromas vienas įėjimas, o saugyklos kodas vis dar laukia, kol jam įteiksite lankytojo ženklelį.

Kodėl trūkstamas vietinis kelias gali tapti nuotoliniu modeliu?

1:38 Checkmarx pademonstravo „Model Confusion“ (Modelio painiavą). Trūkstamas vietinio modelio kelias galėjo būti išspręstas viešojoje saugykloje su atitinkamu pavadinimu. Sujungus tai su nuotoliniu kodu įjungtu, neteisingas paketas gali būti vykdomas. Tai buvo tyrimų demonstracija, apimanti neįvardintos įmonės pavyzdį, pataisytą per dieną. Trūkstamas aplankas įgijo savininką. ReversingLabs pranešė apie du pavyzdžius 2025 m. vasario mėnesį,

Kaip sugadinti paketai išvengė seno skaitytuvo?

1:58 vadinamąja „nullify AI“ technika. Abiejuose buvo atvirkštinės apvalkalai (reverse shells). Jų „seven zip“ pakavimas blokavo įprastą „PyTorch“ įkėlimą, todėl šis kelias reikalavo išpakavimo ir nesaugaus deseralizavimo. Sugedę „Pickle“ srautai taip pat atskleidė skaitytuvo akląją zoną. Nepavykęs nuskaitymas nusipelno tyrimo, kol kas nors atidaro siuntinį. Tyrėjų nekenksmingame teste instrukcijos parašė failą, kol įkėlėjas

2:18 pasiekė sugedusią dalį ir sukėlė klaidą. Įsivaizduokite, kad atidarote siuntinį, paleidžiate meškėną, tada pastebite, kad siuntimo etiketė yra neteisinga. Klaidos pranešimas atkeliauja su puikia gramatika ir siaubingu laiku. „Hugging Face“ pašalino praneštus pavyzdžius per 24 valandas ir pakeitė skaitytuvą. Šis konkretus radinys paskatino pataisymą. Saugumo nuskaitymas yra naudingas įrodymas, o kiekvienos skaitytuvo klaidos traktavimas kaip švaraus sveikatos pažymėjimo išlieka nepaprastai dosnia nesėkmės interpretacija.

2:43 Pirmenybę teikite saugiems tenzoriams ir dabartiniams pataisytiems įkėlėjams.

Kas neleidžia raktui patekti į svečio rankas?

2:46 „PyTorch“ susiaurino numatytąjį įkėlėją nuo 2.6 versijos. Peržiūrėkite pasirinktinį kodą ir užfiksuokite peržiūrėtą versiją. Paleiskite nepažįstamus paketus izoliuotai be asmeninių raktų, su ribota prieiga prie tinklo. Konteineris, pilnas prijungtų kredencialų, yra dovanų krepšelis su vardų sritimis. Tas pradinis galvosūkis turi atsakymą. Įkėlimo klaida nurodo, kur vykdymas sustojo. Ankstesnės instrukcijos jau galėjo būti įvykdytos.

3:08 Laikykite paslaptis už jo pasiekiamumo ribų, prieš atidarydami siuntinį. Verdiktas, iš vidaus.

Kodėl turėčiau pažymėti tai „REIKIA PERŽIŪRĖTI“?

3:16 įkėlėjas. Nemokamas atsisiuntimas turėtų būti su modeliu, o svečių sąrašas turėtų išlikti mano sprendimu. Jei norėtumėte tai perskaityti, o ne išgirsti iš manęs, „diff“ kasdien pasiekia jūsų pašto dėžutę kiekvieną rytą, nemokamai daily diff dot dev, nuoroda žemiau. Ir tai yra šiandienos „diff“. Aš esu Niko iš Axrisi. Jungti atsakingai.

Šaltiniai

  1. Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
  2. Malicious ML models discovered on Hugging Face platformReversingLabs
  3. AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
  4. Pickle ScanningHugging Face
  5. SafetensorsHugging Face
  6. Loading custom modelsHugging Face
  7. Serialization semanticsPyTorch

Susiję vaizdo įrašai