Atakującym udało się dodać niezauważony złośliwy kod do repozytorium Plone

Deweloperzy wolnego systemu zarządzania treścią Plone, napisanego w Pythonie i JavaScript/NodeJS, ogłosili o incydencie, w wyniku którego do repozytorium git projektu na GitHubie dodano złośliwy kod. Początkowo w repozytorium odnotowano trzy zmiany, które miały miejsce 7 stycznia (1, 2, 3), dodające złośliwy kod do plików JavaScript projektu (1, 2, 3). Analiza incydentu wykazała, że integracja złośliwego kodu była wynikiem kompromitacji konta jednego z deweloperów, którego token dostępu został przejęty przez cyberprzestępców po uruchomieniu złośliwego oprogramowania w jego systemie.

14 stycznia skompromitowane konto zostało zablokowane, a deweloperzy projektu zostali zaleceni do analizy commitów z okresu od 1 do 14 stycznia. 27 stycznia odkryto, że zauważonymi commitami sprawa się nie ogranicza i atak dotknął pięciu repozytoriów projektu (plone/volto, plone/mockup, plone/plone.app.mosaic, plone/critical-css-cli, plone/plonetheme.barceloneta), w które niezauważalnie zintegrowano złośliwy kod. W przypadku repozytorium plone.app.mosaic, atakującym udało się podmienić gałąź master. Atak został przeprowadzony dwa miesiące po przejęciu tokena dostępu dewelopera.

Do integracji zmian zamiast zwykłych commitów, atakujący wykorzystali operację „force push” (git push z opcją „—force”), która pozwala wymusić zastąpienie gałęzi w zewnętrznym repozytorium swoim zawartością i tym samym przepisać historię zmian (po zastąpieniu wyświetlana jest historia z gałęzi załadowanej przez atakującego). Aby zapobiec podobnym podmienieniu gałęzi w przyszłości, deweloperzy Plone włączyli w GitHubie zasady blokujące operacje „force push” dla głównych gałęzi i tagów.

W repozytorium plone.app.mosaic, aby utrudnić identyfikację kompromitacji, napastnicy wstawili złośliwy commit do gałęzi master, mający fałszywą datę — 18 grudnia, zakładając, że pole poszukiwania złośliwego kodu skoncentruje się na zmianach dodanych po ich pierwszej aktywności w repozytorium. Złośliwa zmiana była przedstawiana w podstawionym commicie jako początek rozwoju nowej wersji testowej, ale oprócz zmiany numeru wersji w metadanych (z 4.0.0a1 na 4.0.0a2.dev0), do wywoływanego na etapie budowy pliku javascript prettier.config.js dodano złośliwy kod. Aby ukryć zmiany podczas przeglądania w terminalu, kod został dodany w jednej linii z legalną operacją i przesunięty z widocznego obszaru przy użyciu spacji. W interfejsie GitHub kod ten również nie był Domyślnie widoczny i wymagał naciśnięcia przycisku „Load Diff”.

Atakującym udało się dodać niezauważony złośliwy kod do repozytorium Plone

Atak był bardziej skierowany przeciwko deweloperom projektu niż użytkownikom. Złośliwe zmiany nie zostały włączone do wydania. Złośliwy kod aktywował się podczas budowy, ładował exploitów do podwyższania uprawnień, konfigurował autostart poprzez wywołanie swoich procesów z skryptów uruchamiających i umożliwiał zdalne zarządzanie. serweremPonadto zainstalowany złośliwy komponent prowadził wyszukiwanie i przesyłanie poufnych danych, takich jak tokeny dostępu, profile przeglądarek i klucze do portfeli kryptograficznych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster