Deweloperzy projektu PHP ostrzegli o kompromitacji repozytorium Git oraz o wykryciu dwóch złośliwych commitów, które zostały dodane 28 marca do repozytorium php-src w imieniu Rasmusa Lerdorfa, założyciela PHP, oraz Nikity Popova, jednego z kluczowych deweloperów PHP.
Ponieważ nie ma pewności co do niezawodności serwera, na którym było umieszczone repozytorium Git, deweloperzy zdecydowali, że utrzymanie infrastruktury Git w ich rękach stwarza dodatkowe ryzyka bezpieczeństwa i przenieśli repozytorium referencyjne na platformę GitHub, którą proponuje się używać jako główną. Wszystkie zmiany należy teraz wysyłać do GitHub, a nie do git.php.net, a także w przypadku rozwoju można teraz korzystać z interfejsu webowego GitHub.
W pierwszym złośliwym commicie, pod pretekstem poprawki błędu w pliku ext/zlib/zlib.c, wprowadzono zmianę, która uruchamia kod PHP przesyłany w nagłówku HTTP User Agent, jeśli zawartość zaczyna się od słowa „zerodium”. Po tym, jak deweloperzy zauważyli złośliwą zmianę i ją cofnęli, w repozytorium pojawił się drugi commit, który cofnął działanie deweloperów PHP i przywrócił złośliwą zmianę.
W dodanym kodzie znajduje się linijka „REMOVETHIS: sold to zerodium, mid 2017”, która może sugerować, że od 2017 roku w kodzie znajduje się inne, dobrze zamaskowane, złośliwe zmiana lub nierozwiązana podatność, sprzedana firmie Zerodium, zajmującej się zakupem 0-day podatności (firma Zerodium odpowiedziała, że nie kupowała informacji o podatności w PHP).
Obecnie brak szczegółowych informacji na temat incydentu, zakłada się jedynie, że zmiany zostały dodane w wyniku włamania serwera git.php.net, a nie kompromitacji poszczególnych kont deweloperów. Rozpoczęto analizę repozytorium w poszukiwaniu innych złośliwych zmian poza zidentyfikowanymi problemami. Do recenzji zaprasza się wszystkich chętnych, w przypadku wykrycia podejrzanych zmian należy wysłać informacje na adres security@php.net.
Jeśli chodzi o przejście na GitHub, aby uzyskać dostęp do nowego repozytorium, członkowie zespołu deweloperskiego muszą dołączyć do organizacji PHP. Osoby, które nie są członkami zespołu deweloperskiego PHP na GitHubie, powinny skontaktować się z Nikitą Popowem pod adresem email nikic@php.net. Obowiązkowym warunkiem jest włączenie uwierzytelniania dwuskładnikowego. Po uzyskaniu odpowiednich uprawnień, aby zmienić repozytorium, wystarczy wykonać polecenie „git remote set-url origin git@github.com:php/php-src.git”. Dodatkowo rozważane jest wprowadzenie obowiązkowego podpisywania commitów cyfrowym podpisem dewelopera. Proponuje się również zakaz bezpośredniego dodawania zmian, które nie przeszły wstępnej recenzji.
Źródło: opennet.ru
