Bądź na bieżąco - RSS

WordPress – włamanie w celu rozsyłania spamu (Apache+PHP+Postfix)

17 stycznia, 2015 Kategoria Linux, Porady

HackerWordPress jako bardzo popularne narzędzie jest często obiektem ataków w celu przejęcia zawartości strony. Podmiana treści serwisu przez hackera jest widocznym skutkiem złamania zabezpieczeń. Sama w sobie nie jest jednak tak groźna jak np. wykorzystanie naszego serwera do rozsyłania spamu (co może spowodować umieszczenie go na czarnych listach). Najczęściej atakujący starają się umieścić w strukturze katalogów serwisu przygotowane skrypty PHP (w formie plików), które następnie wykorzystują do wysyłania maili. Co zrobić, żeby zabezpieczyć się przed tą formą ataku?

Przede wszystkim konieczne jest wykonanie 2 czynności: (a) ograniczenie zainstalowanych motywów do niezbędnego minimum oraz (b) usunięcie wszystkich zbędnych wtyczek (bywają takie, które z powodu słabej jakości kodu umożliwiają natychmiastowy dostęp do serwera). Kolejną rzeczą jest uniemożliwienie przesłania spreparowanego zapytania do naszego serwera. Absolutnym minimum jest przygotowanie pliku .htaccess z odpowiednimi regułami. Jeśli chcemu pójść na skróty można skorzystać ze zbioru gotowych reguł: http://perishablepress.com/5g-blacklist-2013/. W zasadzie dzięki tym dwóm prostym krokom uzyskamy przynajmniej minimalny poziom zabezpieczeń strony w WordPressie. Dodam jeszce, że na końcu .httaccess można  dopisać linijkę

RewriteRule ^(php\.ini|\.htaccess) - [NC,F]

która zabezpieczy nas przed modyfikacją zawartości plików index.php i właśnie .htaccess co z kolei uniemożliwi np. przekierowanie wywołań naszej strony na inny serwer www.

Jednak w jaki sposób powstrzymać doraźnie atak na nasz serwer (jeśli już doszło do niego). Przy założeniu, że korzystamy z domyślnej konfiguracji Apache trzeba zatrzymać wysyłanie poczty z konta www-data. Edytujemy plik /etc/postfix/main.cf i dodajemy na końcu wiersz

authorized_submit_users = !www-data, static:all

Natstępnie wczytujemy nową konfiguracje serwera poczty:

/etc/init.d/postfix reload

Teraz musimy wyczyścić kolejkę maili oczekujących na nadanie:

postsuper -d ALL

Przechodzimy do najbardziej monotonnej częsci całego procesu. Edytujemy plik /etc/php5/apache2/php.ini, żeby znaleźć (i odkomentować lub zmienić na postać przedstawioną poniżej) fragment:

mail.add_x_header = On
mail.log = /var/log/phpmail.log

Pierwsza spowoduje dodanie nagłówka do wszystkich maili nadawanych z wykorzystaniem PHP a druga włączy logowanie informacji na ten temat (do pliku /var/log/phpmail.log). Teraz pozostaje nam żmudne przeglądanie pliku z logami w celu śledzenia historii ataku oraz usuwania niepożądanych plików (zawierających np. skrypty PHP), które są wykorzystywane do rozsyłania spamu.

MG

Napisz Komentarz