Firmy bezpieczeństwa Aikido, SafeDep, Socket i StepSecurity podają, że atakujący opublikowali w npm i PyPI zatrute wersje pakietów MemTensor, które instalują sckit, napisany w Go program wykradający poświadczenia deweloperów, poinformował The Hacker News 23 września. Program działa w Windows, Linuksie i macOS.
Tło
Rejestry pakietów pozwalają deweloperom instalować cudzy kod jednym poleceniem, a instalacja może uruchomić kod na komputerze dewelopera. Atakujący, którzy zdobędą token publikacji opiekuna projektu, mogą więc dotrzeć do każdej maszyny, która zainstaluje ich wersję [1].
Co opisuje raport
Dotknięte pakiety to @memtensor/memos-cloud-openclaw-plugin w npm, wersje 0.1.21, 0.1.23 i 0.1.25, oraz MemoryOS w PyPI, wersja 2.0.34. Według raportu atakujący zdobyli tokeny publikacji, przejmując potoki wydań GitHub Actions firmy MemTensor, i publikowali szkodliwe wersje pomiędzy czystymi wydaniami [1].
We wtyczce npm ukryty ładunek uruchamia się przy starcie bramy agenta lub podczas zdarzeń przywoływania pamięci. W pakiecie PyPI uruchamia się przy imporcie modułu. Oba uruchamiają statycznie skonsolidowany program w Go, który zbiera tokeny API, klucze SSH, pliki konfiguracyjne chmury i zmienne środowiskowe związane z usługami takimi jak npm, PyPI, GitHub, GitLab, AWS i Vault, i wysyła je na zewnętrzny serwer. Raport opisuje implant jako robaka zdolnego rozprzestrzeniać się przez repozytoria GitHub i rejestry pakietów [1].
Szkodliwe wersje zostały usunięte. Raport wskazuje 0.1.24 w npm i 2.0.33 w PyPI jako najnowsze czyste wydania i zaleca przypięcie wersji 0.1.20 w npm oraz 2.0.33 w PyPI [1].
Znaczenie dla użytkowników Maca
Deweloperzy, którzy zainstalowali wymienione wersje na Macu, są narażeni na kradzież wszelkich sekretów przechowywanych w powyższych lokalizacjach. Osoby, które nie korzystają z tych pakietów, według raportu nie są dotknięte. Każdy, kto zainstalował wymienioną wersję, powinien traktować poświadczenia na tym komputerze jako ujawnione [1].
Zalecenia
- Sprawdź pliki blokad i zainstalowane pakiety pod kątem wymienionych wyżej wersji i usuń je.
- Zmień każde poświadczenie, do którego komputer miał dostęp: tokeny npm, PyPI i GitHub, klucze SSH, klucze chmurowe i sekrety w zmiennych środowiskowych.
- Oprócz zmiany haseł unieważnij tokeny, ponieważ raport zaleca rotację ujawnionych sekretów.
- Przypinaj zależności do znanych czystych wersji, jak sugeruje raport, i przejrzyj uprawnienia potoków wydań utrzymywanych pakietów.
Związek z FireAI
FireAI nie sprawdza pakietów ani nie usuwa implantu. Skradzione dane muszą jednak zostać wysłane na serwer, a nowy program w Go bez reguły wywołuje w trybie Alert pytanie o połączenie, z celem pokazanym na mapie świata. Reguły dla aplikacji pozwalają ograniczyć narzędzie do budowania lub interpreter do potrzebnych mu hostów. Jeśli narzędzie do budowania ma już szeroką regułę zezwalającą, FireAI nie zapyta, dlatego takie reguły powinny być wąskie.
Ograniczenia
Raport nie podaje, na ilu komputerach zainstalowano zatrute wersje, jak długo każda z nich była dostępna ani kto stoi za kampanią. Opis zachowania robaka pochodzi z analizy badaczy.
Wypróbuj FireAI od HisnLabs za darmo przez 17 dni.