Hugging Face, GitHub i AI, priti kodin që mbyllte pajisjet e përdoruesit
Kodi i ngarkuar në platformën e zhvilluesve të inteligjencës artificiale Hugging Face instaloi në mënyrë të fshehtë dyer të pasme dhe lloje të tjera malware në makinat e përdoruesve fundorë, thanë të enjten studiuesit nga firma e sigurisë JFrog në një raport që është një paralajmërues i mundshëm i asaj që do të vijë.
Në tërësi, thanë studiuesit e JFrog, ata gjetën afërsisht 100 paraqitje që kryenin veprime të fshehura dhe të padëshiruara kur shkarkoheshin dhe ngarkoheshin në një pajisje të përdoruesit fundor. Shumica e modeleve të mësimit të makinerive të shënuara – të cilat nuk u zbuluan të gjitha nga Hugging Face – dukeshin se ishin prova beninje të konceptit të ngarkuara nga studiues ose përdorues kureshtarë. Studiuesit e JFrog thanë në një email se 10 prej tyre ishin “me të vërtetë keqdashës” në atë që kryenin veprime që në fakt rrezikonin sigurinë e përdoruesve kur ngarkoheshin.
Një model tërhoqi shqetësim të veçantë sepse hapi një guaskë të kundërt që i jepte një pajisjeje në distancë në internet kontrollin e plotë të pajisjes së përdoruesit përfundimtar. Kur studiuesit e JFrog ngarkuan modelin në një makinë laboratorike, paraqitja me të vërtetë ngarkoi një guaskë të kundërt, por nuk ndërmori asnjë veprim të mëtejshëm.
Kjo, adresa IP e pajisjes në distancë dhe ekzistenca e predhave identike që lidheshin diku tjetër ngritën mundësinë që paraqitja të ishte gjithashtu punë e studiuesve. Megjithatë, një shfrytëzim që hap një pajisje ndaj ndërhyrjeve të tilla është një shkelje e madhe e etikës së studiuesve dhe tregon se, ashtu si kodi i paraqitur në GitHub dhe platforma të tjera zhvilluesish, modelet e disponueshme në sajtet e AI mund të paraqesin rreziqe serioze nëse së pari nuk verifikohen me kujdes.
“Ngarkesa e modelit i jep sulmuesit një guaskë në makinën e komprometuar, duke u mundësuar atyre të fitojnë kontrollin e plotë mbi makinat e viktimave nëpërmjet asaj që zakonisht quhet “derë e pasme”,” shkroi studiuesi i lartë i JFrog, David Cohen . “Ky infiltrim i heshtur mund të japë potencialisht akses në sistemet e brendshme kritike dhe të hapë rrugën për shkelje të të dhënave në shkallë të gjerë apo edhe spiunazh të korporatave, duke ndikuar jo vetëm përdoruesit individualë, por potencialisht organizata të tëra në mbarë globin, duke i lënë viktimat krejtësisht të pavetëdijshme për gjendjen e tyre të komprometuar.”
Ashtu si nëntë modelet e tjera me të vërtetë keqdashëse, ai i diskutuar këtu përdori turshi , një format që është njohur prej kohësh si në thelb i rrezikshëm. Pickles përdoret zakonisht në Python për të kthyer objektet dhe klasat në kodin e lexueshëm nga njeriu në një rrjedhë bajt, në mënyrë që të ruhet në disk ose të ndahet në një rrjet. Ky proces, i njohur si serializimi, u ofron hakerëve mundësinë për të futur kodin keqdashës në rrjedhë.
Modeli që krijoi guaskën e kundërt, i paraqitur nga një palë me emrin e përdoruesit baller432, ishte në gjendje të shmangte skanerin e malware të Hugging Face duke përdorur metodën “reduce” të pickle për të ekzekutuar kodin arbitrar pas ngarkimit të skedarit të modelit.
Cohen i JFrog shpjegoi procesin në një gjuhë shumë më të detajuar teknikisht:
Në ngarkimin e modeleve PyTorch me transformatorë, një qasje e zakonshme përfshin përdorimin e funksionit torch.load(), i cili deserializon modelin nga një skedar. Veçanërisht kur kemi të bëjmë me modele PyTorch të trajnuar me bibliotekën Hugging Face’s Transformers, kjo metodë përdoret shpesh për të ngarkuar modelin së bashku me arkitekturën, peshat dhe çdo konfigurim të lidhur. Transformatorët ofrojnë një kornizë gjithëpërfshirëse për detyrat e përpunimit të gjuhës natyrore, duke lehtësuar krijimin dhe vendosjen e modeleve të sofistikuara. Në kontekstin e depove “baller423/goober2”, duket se ngarkesa me qëllim të keq është injektuar në skedarin e modelit PyTorch duke përdorur metodën reduce të modulit pickle. Kjo metodë, siç tregohet në referencën e dhënë, u mundëson sulmuesve të fusin kodin arbitrar të Python në procesin e deserializimit, duke çuar potencialisht në sjellje keqdashëse kur modeli ngarkohet.
Pas analizës së skedarit PyTorch duke përdorur mjetin e ndryshueshëm, ne kemi nxjerrë me sukses ngarkesën e mëposhtme.
Hugging Face që atëherë ka hequr modelin dhe të tjerët të flamurit nga JFrog.
Për pjesën më të mirë të një dekade, paraqitjet e përdoruesve me qëllim të keq kanë qenë një fakt i jetës për GitHub, NPM, RubyGems dhe pothuajse çdo depo tjetër të madhe të kodit me burim të hapur. Në tetor 2018, për shembull, një paketë që hyri në PyPi mori 171 shkarkime, pa llogaritur faqet pasqyruese, përpara se studiuesit të zbulonin se ajo përmbante kod të fshehur të krijuar për të vjedhur kriptomonedhën nga makinat e zhvilluesve.
Një muaj më vonë, aksionet u rritën akoma më shumë kur dikush rrëmbeu një prapavijë të ngjashme në transmetimin e ngjarjeve, një bibliotekë kodesh me 2 milionë shkarkime nga NPM. Zhvilluesit e portofolit të bitcoin CoPay vazhduan të përfshijnë versionin trojanizuar të transmetimit të ngjarjeve në një përditësim. Përditësimi, nga ana tjetër, bëri që CoPay të vidhte kuletat e bitcoin nga përdoruesit fundorë duke transferuar bilancet e tyre në një server në Kuala Lumpur.
Parashtrimet me qëllim të keq kanë vazhduar që atëherë. Zbulimi nga JFrog sugjeron që paraqitje të tilla në Hugging Face dhe platforma të tjera të zhvilluesve të AI ka të ngjarë të jenë gjithashtu të zakonshme.
Ka një arsye tjetër që zbulimi i JFrog nuk duhet të jetë një surprizë e plotë. Siç u përmend më herët, studiuesit e dinë prej vitesh që serializimi përmes turshive lejon ekzekutimin e kodit pa asnjë kontroll mbi kodin që gjeneron rrjedhën e bajtit. Zhvilluesi Ned Batchelder ndihmoi në rritjen e ndërgjegjësimit për rrezikun e ekzekutimit të kodit me qëllim të keq në një postim të vitit 2020 që paralajmëroi, “Turshitë mund të bëhen me dorë [për të] pasur efekte keqdashëse kur i hiqni ato. Si rezultat, nuk duhet të hiqni asnjëherë të dhëna që nuk i besoni.” Ai shpjegoi:
Pasiguria nuk është sepse turshitë përmbajnë kod, por sepse ato krijojnë objekte duke thirrur konstruktorët e emëruar në turshi. Çdo thirrës mund të përdoret në vend të emrit të klasës suaj për të ndërtuar objekte. Turshitë me qëllim të keq do të përdorin telefona të tjerë të Python si “ndërtues”. Për shembull, në vend të ekzekutimit të “models.MyObject(17)”, një turshi e rrezikshme mund të ekzekutojë “os.system(‘rm -rf /’)”. Unpikleri nuk mund të bëjë dallimin midis “models MyObject” dhe “os.system”. Të dy janë emra që mund të zgjidhë, duke prodhuar diçka që mund ta quajë. Zhvendosësi ekzekuton njërën prej tyre siç udhëzohet nga turshia.
Një vit më vonë, studiuesit në firmën e sigurisë Trail of Bits lëshuan Fickling, një mjet që, ndër të tjera, thjeshton krijimin e skedarëve me qëllim të keq të turshive ose turshive. Një diskutim shumë më i detajuar teknikisht dhe i nuancuar i kërcënimeve të sigurisë që përfshijnë turshitë mund të gjendet në këtë shkrim nga inxhinierja e mësimit të makinerisë Mozilla.ai Vicki Boykis.
Hugging Face nuk është i panjohur për rreziqet e serializimit të bazuar në turshi. Të paktën që nga shtatori 2022, kompania ka paralajmëruar se “ka sulme të rrezikshme arbitrare të ekzekutimit të kodit që mund të kryhen” kur ngarkohen skedarët e turshive dhe ka këshilluar ngarkimin e skedarëve vetëm nga burime të njohura dhe të besueshme. Kompania ofron gjithashtu masa sigurie të integruara, të tilla si skanimi për malware dhe ekzistenca e formateve të turshive dhe zbulimi i sjelljeve të tilla si deserializimi i pasigurt.
Kohët e fundit, kompania ka inkurajuar përdoruesit e saj që të kalojnë në një format serializimi më të sigurt të njohur si sigurues . Hugging Face ofron gjithashtu një skaner të integruar që i shënon në mënyrë të dukshme skedarët e tillë si të pasigurt .
“Raporti i JFrog nuk është asgjë e re, me të vërtetë (gjithsesi i dobishëm sigurisht, por jo i ri),” shkroi në një email bashkë-themeluesi dhe shefi i teknologjisë së Hugging Face, Julien Chaumond. “Në thelb, pickle – nëse nuk i besoni autorit të modelit – është njësoj si shkarkimi i një ekzekutuesi të rastësishëm ose instalimi i një varësie softueri nga pip ose npm. Kjo është arsyeja pse ne (dhe të tjerët) po shtyjmë sensorë sigurie dhe formate të tjera të serializimit të sigurt. Siguruesit tani ngarkohen si parazgjedhje nga bibliotekat tona me burim të hapur dhe shumica e bibliotekave nga komuniteti gjithashtu.”
Studiuesit e JFrog thanë se ishin dakord me vlerësimin, por ata vazhduan duke vënë në dukje se jo të gjitha 10 modelet me qëllim të keq u shënuan si të pasigurta. “Skanerët e Hugging Face kontrollojnë vetëm për disa lloje modelesh me qëllim të keq, por ato nuk janë shteruese,” shkruajnë zyrtarët e JFrog në një email. Ata gjithashtu vunë në dukje se pickle është vetëm një nga shtatë modelet e mësimit të makinerive që mund të shfrytëzohet për të ekzekutuar kodin keqdashës.
Gjithashtu domethënëse, studiuesit kanë gjetur gjithashtu mënyra për të krijuar modele të sabotuara që përdorin formatin e siguresave të Hugging Face.
Befasuese apo jo, gjetjet e JFrog tregojnë se modelet e mësimit të makinerive u ofrojnë aktorëve të kërcënimit një mundësi kryesisht të pashkelur për të komprometuar sigurinë e njerëzve që i përdorin ato. Hugging Face tashmë i dinte këto rreziqe dhe ka ndërmarrë hapa për të ulur kërcënimin, por ajo dhe platformat e tjera të AI kanë ende më shumë punë përpara tyre.