Napadači su kompromitovali proces objavljivanja softvera LiteLLM-a i distribuirali zlonamjernu verziju 1.107.0, koja može krasti cloud i AI pristupne podatke te omogućiti daljinsko izvršavanje naredbi na zaraženim računarima.
Trojanizovani paket bio je dostupan preko PyPI-ja, dok je kompromitovana Docker slika litellm/litellm:1.107.0 objavljena na Docker Hubu i GitHub Container Registryju (GHCR). PyPI je paket stavio u karantin nekoliko sati nakon objave, a Docker slika je u međuvremenu uklonjena iz oba registra. Ipak, stručnjaci upozoravaju da svi koji su pokrenuli ovu verziju trebaju pretpostaviti da su njihovi ključevi i druge tajne kompromitovani.
Provjeriti sisteme i zaustaviti korištenje verzije 1.107.0
Najnovija poznata sigurna verzija je 1.106.2. Timovi koji su koristili verziju 1.107.0 trebaju odmah obustaviti njeno dalje postavljanje i istražiti sva okruženja u kojima je Python pokrenut nakon instalacije, uključujući proxy kontejnere i CI/CD pokretače.
Ilyas Makari, istraživač kompanije Aikido, savjetuje provjeru postojanja datoteka /tmp/.pc_once_* i /tmp/remote_code_loader.lock. Prisustvo prve datoteke ukazuje na to da je krađa podataka već izvršena, dok druga može značiti da je pozadinski C2 proces bio pokrenut ili je još aktivan. Isti oprez odnosi se na korisnike koji su pokrenuli zvaničnu Docker sliku 1.107.0 ili je preuzeli putem oznaka latest, main-latest ili main-stable.
Sigurnosne kompanije Aikido, Wiz i Socket objavile su dodatne upute za lov na tragove napada i sanaciju sistema. U praksi, organizacije bi nakon provjere trebale razmotriti opoziv i zamjenu svih API ključeva, cloud tokena i drugih pristupnih podataka kojima je zaraženo okruženje moglo pristupiti.
Malver cilja cloud, AI i developerske podatke
LiteLLM, koji razvija kompanija BerriAI, pruža jedinstveni interfejs za servise kao što su OpenAI, Anthropic i Google Gemini. Softver bilježi približno 23 miliona preuzimanja sedmično, a često se pokreće u okruženjima gdje su dostupni API ključevi velikih jezičkih modela, cloud identiteti i podaci za povezivanje s bazama.
Prema analizi istraživača, napadači su u proces izgradnje ubacili tri zlonamjerne datoteke. Datoteka cook.pth omogućava automatsko pokretanje cook.py svaki put kada se aktivira Python. Ta skripta sadrži kradljivca podataka, dok sitecustomize.py implementira trojanca za daljinski pristup (RAT). RAT se pokreće pri startu Python interpretera i pokreće pozadinski proces koji svakog sata provjerava napadačevu infrastrukturu i čeka nove naredbe.
Infostealer prikuplja podatke kroz 16 modula. Meta su mu pristupni podaci i kolačići iz preglednika Chrome, Firefox, Edge i Safari, AWS podaci iz direktorija ~/.aws/, varijable okruženja te metapodaci EC2 i ECS instanci. Malver također traži Google Cloud servisne ključeve i podrazumijevane vjerodajnice, Microsoft Azure tokene iz CLI predmemorije, kao i API ključeve za OpenAI, Anthropic, Cohere i druge AI servise.
Na listi potencijalno ukradenih podataka nalaze se i privatni SSH ključevi, GPG ključevi te historija komandne linije. Prikupljene informacije se šifriraju algoritmom AES-256-CBC, dok se ključ za šifriranje zaštićuje RSA-4096 javnim ključem. Tako pripremljeni podaci šalju se HTTP POST zahtjevom prema domeni koju kontrolišu napadači: www[.]litellm[.]dev/healthcheck.
Zlonamjerna verzija objavljena je u 11:39 UTC. Istraživači kompanije Wiz navode da je korisni teret potekao iz malicioznih izmjena na GitHub repozitoriju github.com/Berri-AI/litellm, čiji naziv može izgledati slično legitimnoj organizaciji BerriAI. Razmjeri aktuelnog incidenta još nisu poznati, ali je raniji kompromis LiteLLM-a, prema CloudSEK-u, potencijalno obuhvatio više od 2.500 organizacija i 434.000 CI/CD okruženja širom svijeta.