Fatalne wieści dla każdego, kto w ciągu ostatnich 6 miesięcy korzystał z oficjalnego repozytorium rozszerzeń dla PHP – PHP Extension and Application Repository, czyli popularnego PHP PEAR. Dziś wiemy już, że PEAR zostało zhakowane, zaś przejęty łańcuch dostaw wykorzystany został do dystrybucji złośliwego oprogramowania.
PHP PEAR zhakowane
Zarówno PEAR, jak i oficjalny blog zostały wyłączone – na łamach tego drugiego widnieje wyłącznie informacja potwierdzająca, że doszło do włamania. Strona została całkowicie wyłączona, administracja informuje, że na razie trudno określić termin, w którym PEAR powróci do działania. Na blogu znajdujemy także potwierdzenie, że atakujący wykorzystali łańcuch dostaw do rozsiewania złośliwego oprogramowania. Wszystkim, którzy pobrali w ciągu ostatnich 6 miesięcy z repozytorium go-pear.phar, zaleca się porównanie wartości funkcji skrótu z tymi dostępnymi na GitHubie. Jeśli będą się różnić, to pobrane z PEAR pliki były zainfekowane.
To wszystko na co możemy liczyć w tej chwili, jeśli chodzi o oficjalne informacje pochodzące od administracji. Wkrótce, po ponownym uruchomieniu bloga, pojawić się ma obszerniejsze stanowisko. Niestety, nieoficjalne doniesienia napawają jeszcze większym pesymizmem. Użytkownicy, którzy pobrali zainfekowane pili przeskanowali je za pomocą VirusTotal. Usługa odnalazła w nich backdoory i malware, które najpewniej umożliwiają całkowite zdalne przejęcie kontroli nad usługą. Silnik zidentyfikował między innymi szkodniki Backdoor.PHP.AZI, Backdoor.PHP.Webshell oraz HEUR:Trojan.Script.Generic.
Przejęcie łańcucha dostaw – atak doskonały
Atak na PHP Pear to atak na łańcuch dostaw – w modelu tym dochodzi do ataku na serwer należący do prawdziwego dostawcy oprogramowania (cieszącego się popularnością i zaufaniem użytkowników) i uczynienia z niego serwera C&C. Następnie, na przykład po autoryzowanych i otwartych kanałach aktualizacji, dostarcza się zmodyfikowane oprogramowanie, które infekuje na ogromną skalę. Tak było w przypadku PHP Pear, jednak konsekwencje mogą tu być szczególnie szeroko zakrojone. Mówimy wszak nie o jednorazowej aktualizacji, lecz o 6 miesiącach rozsiewanie backdoorów.
Nie jest to pierwszy tego typu przypadek, nie jest też ostatni. Wystarczy przypomnieć sobie ogromną, ale jednocześnie bardzo precyzyjnie wycelowaną, kampanię ransomware NotPetya. Atakujący włamali się na serwery ukraińskiej firmy M. E. Doc, która dostarczała oprogramowanie służące do wymiany dokumentów między ukraińską administracją a przedsiębiorcami. Wystarczyło uczynić z dziurawej infrastruktury M. E. Doc serwer C&C i rozsiać wśród użytkowników znanego od lat i zaufanego programu spreparowaną aktualizację, by wywołać jeden z największych kryzysów ransomware w historii.
Długą historia przejęć łańcucha dostaw ma także popularne oprogramowanie Open Source. W lutym 2016 roku zmodyfikowane ISO na oficjalnej stronie internetowej dystrybuował Linux Mint – instalacja systemu z takiego obrazu była „wzbogacona” o backdoora. Warto także wspomnieć o przejęciu łańcucha dostaw otwartego klienta sieci torrent, Transmission. W jego przypadku do rozsiewania szkodliwych aktualizacji doszło dwukrotnie, a warto zwrócić uwagę, że jest to najpopularniejszy linuksowy program tego typu.
Choć może się to wydawać zaskakujące, to na poziomie końcowego użytkownika ochronić przed atakiem tego typu zwyczajnie się nie da. W momencie, w którym hakerzy przejmują serwery aktualizacji i stawiają tam własne C&C jest już za późno, by zapobiegać infekcji na ogromną skalę. Trudno także działać za pomocą polityki aktualizacji – ewentualne ich opóźnianie naraża na ataki z wykorzystaniem exploitów dnia zerowego, zaś przykład PHP Pear pokazuje, że nawet największe oficjalne repozytoria mogą siać przez wiele miesięcy.