Próba zhakowania kodu źródłowego języka PHP

Nieznani sprawcy próbowali dodać backdoora do kodu źródłowego języka skryptowego PHP.

Niedawno nieznani sprawcy próbowali przeprowadzić atak na szeroką skalę na łańcuch dostaw poprzez umieszczenie kodu źródłowego w oficjalnym repozytorium PHP GIT. Gdyby programiści nie dostrzegli na czas backdoora, mógłby trafić on na wiele serwerów sieciowych i doprowadzić do największego ataku na łańcuch dostaw w historii.

Na czym polegała próba ataku

Programiści, którzy rozwijają język PHP, wprowadzają zmiany w kodzie za pomocą popularnego repozytorium opartego na systemie kontroli wersji, który nosi nazwę GIT. Po zaimplementowaniu dodatków kod przechodzi kolejną weryfikację. W trakcie rutynowej kontroli jeden z programistów zauważył podejrzany dodatek, który w komentarzach był oznaczony jako korekta literówki. Autorem poprawki miał być Nikita Popow, aktywny programista PHP. Po szczegółowym sprawdzeniu okazało się, że był to backdoor. Co więcej, Popow nie wprowadził takiej zmiany.

Kolejne czynności sprawdzające pokazały, że w repozytorium pojawił się też inny, podobny dodatek, tym razem przypisany do Rasmusa Lerdorfa. Czujni programiści zauważyli problem w ciągu kilku godzin, zatem najbliższa aktualizacja PHP 8.1 (która ma zostać udostępniona do końca roku) będzie wolna od tego backdoora.

Dlaczego ta zmiana w kodzie była niebezpieczna

Obecny w repozytorium backdoor mógłby umożliwić osobom niepożądanym zdalne uruchomienie szkodliwego kodu na serwerze internetowym za pomocą zhakowanej wersji PHP. Mimo utraty swojej popularności PHP nadal pozostaje najczęściej używanym językiem skryptowym dla treści internetowych — korzysta z niego około 80% serwerów internetowych. Chociaż nie wszyscy administratorzy szybko aktualizują swoje narzędzia, większość dba o aktualność wersji serwerów, postępując zgodnie z wewnętrznymi lub zewnętrznymi przepisami dotyczącymi bezpieczeństwa. Gdyby backdoor pozostał w nowej wersji PHP, najprawdopodobniej rozprzestrzeniłby się w serwerach sieciowych wielu firm.

W jaki sposób atakujący umieścili backdoora

Eksperci są przekonani, że atak ten był wynikiem wykorzystania luki w zabezpieczeniach wewnętrznego serwera Git, a nie włamania na konto programisty. W rzeczywistości ryzyko, że ktoś przypisze dokonanie zmiany innemu użytkownikowi, jest znane od dawna, a po wystąpieniu tego incydentu dział pomocy technicznej PHP zrezygnował z używania serwera git.php.net, zastępując go repozytorium serwisu GitHub (który wcześniej był serwerem lustrzanym).

Jak zadbać o bezpieczeństwo

Środowiska programistyczne są popularnym celem cyberprzestępców. Jeśli uda im się zhakować kod programu, który cieszy się zaufaniem wśród klientów, mogą stworzyć zagrożenie dla wielu celów naraz, realizując atak na łańcuch dostaw. Najpopularniejszych projektów używają miliony użytkowników na całym świecie, więc zapewnienie im ochrony przed ingerencją z zewnątrz ma znaczenie szczególne.

  • Regularnie i uważnie sprawdzaj wszystkie zmiany w kodzie — nawet te, których podobno dokonali znakomici i godni zaufania programiści.
  • Monitoruj bezpieczeństwo serwerów i usługi używanych do rozwoju.
  • Korzystaj z wyspecjalizowanych platform internetowych w celu szkolenia pracowników, aby potrafili wykrywać współczesne cyberzagrożenia.
Porady