Fałszywe repozytorium OpenAI na Hugging Face rozprowadzało infostealera - Security Bez Tabu

Fałszywe repozytorium OpenAI na Hugging Face rozprowadzało infostealera

Cybersecurity news

Wprowadzenie do problemu / definicja

Ekosystemy udostępniania modeli AI, zestawów danych i narzędzi machine learning coraz częściej stają się celem ataków na łańcuch dostaw. Najnowszy incydent pokazuje, że cyberprzestępcy potrafią skutecznie podszyć się pod wiarygodny projekt związany z OpenAI, aby nakłonić użytkowników do uruchomienia złośliwego kodu. W tym przypadku wykorzystano platformę Hugging Face oraz fałszywe repozytorium imitujące projekt „Privacy Filter”, którego rzeczywistym celem było dostarczenie malware klasy infostealer na systemy Windows.

W skrócie

Złośliwe repozytorium podszywające się pod legalny projekt OpenAI trafiło na listę popularnych zasobów platformy Hugging Face. Według opublikowanych informacji zostało pobrane setki tysięcy razy, zanim zostało usunięte. Mechanizm ataku opierał się na pliku loader.py, który udawał nieszkodliwy komponent AI, a w rzeczywistości pobierał i uruchamiał kolejne etapy infekcji. Finalnym ładunkiem był infostealer napisany w Rust, zdolny do kradzieży danych z przeglądarek, tokenów Discorda, portfeli kryptowalutowych, poświadczeń SSH, FTP i VPN, lokalnych plików oraz informacji systemowych.

Kontekst / historia

Platformy służące do dystrybucji modeli i kodu AI są dziś traktowane przez społeczność jako naturalne źródło komponentów do testów, badań i wdrożeń. To zaufanie stwarza dogodne warunki dla ataków typosquattingowych oraz kampanii polegających na publikowaniu projektów imitujących znane marki i autorów. W analizowanym przypadku napastnicy skopiowali opis legalnego projektu niemal jeden do jednego, wykorzystali nazwę sugerującą powiązanie z OpenAI i zadbali o pozory autentyczności, dzięki czemu repozytorium zdobyło wysoką widoczność.

Badacze bezpieczeństwa wskazali, że incydent nie był wyłącznie prostym przypadkiem publikacji złośliwego skryptu. Kampania wpisuje się w szerszy trend nadużyć wymierzonych w łańcuch dostaw oprogramowania AI, gdzie zagrożenie nie wynika z klasycznego exploita, lecz z uruchomienia pozornie zaufanego komponentu przez samego użytkownika. Dodatkowo zauważono podobieństwa infrastrukturalne do innych operacji wykorzystujących fałszywe pakiety i złośliwe implanty dystrybuowane pod wiarygodnie brzmiącymi nazwami.

Analiza techniczna

Kluczowym elementem kampanii był skrypt loader.py. Nie pełnił on wyłącznie roli prostego droppera, lecz został przygotowany tak, aby wyglądał jak element pomocniczy związany z przetwarzaniem modeli AI. W tle wykonywał jednak działania typowe dla malware loaderów.

Z ustaleń opublikowanych przez badaczy wynika, że skrypt wyłączał weryfikację SSL, dekodował zakodowany w base64 adres zewnętrznego zasobu, a następnie pobierał ładunek w formacie JSON zawierający polecenie PowerShell. Polecenie to było uruchamiane w niewidocznym oknie, co ograniczało szanse wykrycia przez użytkownika. Następnie pobierany był plik wsadowy start.bat, odpowiedzialny za dalsze etapy infekcji.

Łańcuch wykonania obejmował eskalację uprawnień, pobranie finalnego payloadu o nazwie „sefirah”, dodanie go do wyjątków Microsoft Defender oraz uruchomienie właściwego stealer’a. Taki przebieg infekcji wskazuje na próbę trwałego obejścia natywnych mechanizmów ochronnych systemu i minimalizacji ryzyka szybkiego wykrycia.

Końcowy malware został opisany jako infostealer napisany w Rust. Zakres zbieranych danych był szeroki i obejmował:

  • dane z przeglądarek Chromium i Gecko, w tym cookies, zapisane hasła, klucze szyfrujące, historię oraz tokeny sesyjne,
  • tokeny Discorda, lokalne bazy danych i klucze główne,
  • portfele kryptowalutowe oraz rozszerzenia przeglądarkowe związane z walletami,
  • poświadczenia i pliki konfiguracyjne SSH, FTP i VPN,
  • wrażliwe pliki lokalne, w tym potencjalnie seedy i klucze portfeli,
  • informacje o systemie,
  • zrzuty ekranu z konfiguracji wielomonitorowych.

Skradzione dane były kompresowane i eksfiltrowane do serwera C2. Dodatkowo malware zawierał rozbudowane mechanizmy antyanalityczne, obejmujące wykrywanie środowisk wirtualnych, sandboxów, debuggerów i narzędzi analitycznych, co utrudniało zarówno analizę ręczną, jak i automatyczne wykrywanie przez systemy bezpieczeństwa.

Konsekwencje / ryzyko

Najpoważniejszym skutkiem tego typu incydentów jest przełamanie zaufania do publicznych repozytoriów wykorzystywanych w pracy badawczej i deweloperskiej. W praktyce zagrożeni są nie tylko indywidualni użytkownicy testujący modele AI, ale również zespoły data science, inżynierowie MLOps, programiści oraz organizacje automatycznie pobierające zasoby z publicznych hubów.

Ryzyko operacyjne jest wysokie z kilku powodów. Infostealery umożliwiają szybkie przejęcie tożsamości cyfrowej ofiary poprzez kradzież ciasteczek, tokenów sesyjnych i zapisanych haseł. Obecność danych kryptowalutowych i kluczy dostępowych zwiększa prawdopodobieństwo bezpośrednich strat finansowych. Z kolei kompromitacja poświadczeń SSH, FTP czy VPN może prowadzić do wtórnego dostępu do infrastruktury firmowej, ruchu bocznego i kolejnych etapów ataku.

Dodatkowym problemem jest skala potencjalnego oddziaływania. Sama liczba pobrań nie musi odpowiadać liczbie realnych ofiar, ponieważ mogła zostać sztucznie zawyżona, jednak fakt osiągnięcia wysokiej pozycji w trendach pokazuje, że platformy z treściami AI mogą być skutecznym kanałem dystrybucji malware. To istotny sygnał ostrzegawczy dla organizacji, które dotąd koncentrowały się głównie na ryzykach związanych z pakietami npm, PyPI czy repozytoriami Git, a mniej uwagi poświęcały repozytoriom modeli ML.

Rekomendacje

Organizacje korzystające z publicznych repozytoriów AI powinny wdrożyć kontrolę pochodzenia i integralności pobieranych zasobów. Każdy model, skrypt lub dataset pobierany z zewnętrznej platformy powinien być traktowany jak niezweryfikowany komponent strony trzeciej.

  • ograniczyć uruchamianie kodu pomocniczego do odizolowanych środowisk testowych,
  • blokować wykonywanie skryptów pobieranych razem z modelami, jeśli nie przeszły przeglądu bezpieczeństwa,
  • wymuszać analizę statyczną i dynamiczną plików Python, batch i PowerShell przed użyciem,
  • monitorować połączenia wychodzące z hostów badawczych i stacji data science,
  • stosować allowlisting aplikacji oraz reguły EDR wykrywające nietypowe uruchomienia PowerShell i modyfikacje wyjątków Defendera,
  • weryfikować reputację autora, historię projektu, nazewnictwo i oznaki typosquattingu,
  • rozdzielić środowiska badawcze od systemów produkcyjnych oraz kont uprzywilejowanych,
  • stosować rotację poświadczeń przechowywanych w przeglądarkach i zabraniać ich używania na hostach testowych.

Jeżeli użytkownik uruchomił pliki z podejrzanego repozytorium, odpowiedź na incydent powinna zakładać pełną kompromitację stacji roboczej. Zalecane działania obejmują ponowną instalację systemu, reset i rotację wszystkich zapisanych poświadczeń, unieważnienie aktywnych sesji przeglądarkowych, wymianę seed phrase i kluczy portfeli kryptowalutowych oraz przegląd logów pod kątem dalszej aktywności z użyciem przejętych danych.

Podsumowanie

Incydent z fałszywym repozytorium OpenAI na Hugging Face pokazuje, że bezpieczeństwo łańcucha dostaw w obszarze AI staje się równie krytyczne jak w tradycyjnym ekosystemie oprogramowania. Atak nie wymagał wykorzystania zaawansowanej podatności w platformie — wystarczyło wiarygodne podszycie się pod znany projekt, odpowiednio przygotowany loader i skuteczny infostealer. Dla zespołów bezpieczeństwa to wyraźny sygnał, że modele, skrypty i artefakty ML powinny podlegać tym samym rygorom weryfikacji co biblioteki programistyczne, kontenery i pakiety z publicznych rejestrów.

Źródła

  1. BleepingComputer — https://www.bleepingcomputer.com/news/security/fake-openai-repository-on-hugging-face-pushes-infostealer-malware/