Atak na wiele stron PHP za jednym zamachem

Włamywacze komputerowi zaczęli wprowadzać specyficzne zmiany do konfiguracji PHP, by uniknąć wykrycia po przejęciu serwera i wstrzykiwaniu złośliwego kodu do stron www.

Obecnie włamania na serwery hostujące strony www realizuje się głównie w celu rozsiewania złośliwego oprogramowania. Webmasterzy zazwyczaj dokładnie kontrolują treść hostowanych stron, w powszechnym użyciu są narzędzia, które sprawdzają spójność kodu witryn. Włamywacze znaleźli jednak sposób na ominięcie tych zabezpieczeń, gdyż zamiast zmieniać treść plików odkładanych przez webmasterów, zmieniają konfigurację całego serwera. W ten sposób można szybko umieścić ramkę IFRAME we wszystkich wirtualnych prywatnych serwerach (VPS) hostowanych na tej instancji, korzystającej z motoru PHP.

Technika została zidentyfikowana przez firmę Sucuri Security podczas analiz kilku przejętych stron, w których włamywacze umieścili ramkę IFRAME rozsiewającą złośliwe oprogramowanie, ale kodu nie znaleziono w plikach dostarczanych przez webmasterów. David Dede, badacz zajmujący się bezpieczeństwem w firmie Sucuri, napisał na blogu: "odkryliśmy, że przejęto kontrolę nad całym serwerem i zmieniono główny plik konfiguracji PHP, dodając dyrektywę auto_append_file=0ff, gdzie zamiast litery o jest cyfra zero".

Ponieważ dyrektywa auto_append_file wskazuje plik, który jest przetwarzany automatycznie po każdym głównym pliku, a zatem jego zawartość będzie dołączona do każdej ze stron hostowanych na danym serwerze. Jest to odpowiednik funkcji PHP require, ale realizowany po stronie serwera. Jeśli w tej opcji jako parametr wystąpi 0ff, gdzie zamiast oczekiwanej litery "o" jest cyfra zero, dyrektywa zostanie uruchomiona na pliku /tmp/0ff. Właśnie ten plik tworzą włamywacze, umieszczając w nim kod, który będzie dołączany do strony www, tworząc ramkę IFRAME. Ponieważ nie narusza się w ten sposób żadnego pliku w hostowanych witrynach, odkrycie tej sztuczki przez webmasterów jest trudne. Między innymi z tego powodu to popularna sztuczka, badacze odkryli ponad 1 tys. podobnie przejętych , zawierających podobny kod złośliwego oprogramowania. Jeśli firmy hostingowe konsolidują wiele serwisów na jednym serwerze, każda z takich witryn będzie zawierać złośliwy kod.

Aby sprawdzić, czy serwis, na którym jest hostowana strona, nie został przejęty, należy utworzyć pusty testowy plik .php, a następnie analizować zawartość zwracaną przez serwer po jego wywołaniu za pomocą HTTP.