Atak na Wordpressa o poranku... jak się zabezpieczać

poniedziałek, 15 sierpień 16, 12:40

Wstajesz rano, jest święto, ale zerkasz na maila, a tam raport z usługi monitorującej serwer: procesor niebezpiecznie obciążony. Była próba ataku. Jak się przez czymś takim zabezpieczać?

Wordpress jest fajny, ale BARDZO niebezpieczny w rękach niedoświadczonego webmastera. Wordpress to typowy przykład systemu, w którym wygoda użytkownika wygrała z bezpieczeństwem. Tzn?

Najniebezpieczniejsze cechy Wordpressa to: 

  1. wtyczki/szablony, które mają luki umożliwiające wgranie dowolnego pliku na serwer,
  2. możliwość instalowania i aktualizowania wtyczek/szablonów z poziomu panelu administracyjnego,
  3. możliwość edytowania plików PHP z poziomu panelu administracyjnego,
  4. brak systemowych rozwiązań ograniczających ataki brute force,

Jak wygląda atak brute force ("brutalne, automatyczne generowanie haseł, aż trafię na właściwe")? Tak: 

Atak brute force na Wordpress

 To jest wykres z mojego systemu monitorującego serwer zawężony do operacji na pliku /wp-login.php - czyli skrypcie odpowiedzialnym za logowanie do Worpdressa.

Ktoś generował przez 1,5h 1500 zapytań na minutę próbując się zalogować na konto "admin". Gdyby mu się udało to zrobić na typowej instalacji Worpdressa, mógłby zainstalować niebezpieczną wtyczkę i przejąć kontrolę nad całym serwerem. Gdyby włamał się na mojego Wordpressa, mógłby mi tylko napaskudzić w Wordpressie.

Wtyczki i szablony (nawet popularne!) do Worpdressa to czasami konie trojańskie. Zwykle autor wtyczki nieświadomie popełnia błąd, który umożliwia włamanie. Najczęściej włamanie polega na wgraniu do katalogu "cache" lub "upload" pliku php. Plik taki za pomocą funkcji exec_() i podobnych jest w stanie przejąć kontrolę nad serwerem.

Kilka lat temu jeden z najpopularniejszych producentów szablonów ogłosił, że w szablonie wykorzystywał cudzą bibliotekę, która miała lukę i umożliwiała wgranie pliku PHP do katalogu cache. Zanim ludzie zdążyli zaktualizować szablony, mnóstwo instalacji Wordpress zostało zainfekowanych.

Zabezpieczenia PODSTAWOWE

BEZPIECZNE HASŁA

Dobra wiadomość jest taka, że Wordpress od jakiegoś czasu NIE zezwala na ręczne ustawianie hasła. Zamiast tego generuje samodzielnie bardzo skomplikowane hasło. Jeśli więc zainstalowałeś od razu taką wersję, Twoje hasło do konta admin statystycznie jest niemożliwe do złamania. 

Wordpress bezpieczne hasło

To oczywiście NIE jest moje hasło Puszczenie oczka

Jeśli instalowałeś Wordpress ZANIM zaczęli wymuszać takie hasło, to jak najszybciej zmień je na coś skomplikowanego i zapisz sobie w programie typu 1Password, który integruje się z przeglądarkami, więc używanie trudnych haseł nie jest uciążliwe.

 

1password zabezpieczanie hasła

 

UKRYTY ADMIN

  1. Utwórz nowego użytkownika o trudnej do odgadnięcia nazwie użytkownika i oczywiście trudnym haśle. 
  2. Nadaj mu uprawnienia Administratora. 
  3. Wyloguj się i zaloguj na to konto. 
  4. Przejdź do edycji Użytkowników i usuń uprawnienia Administratora z konta o loginie "admin".

W ten sposób zalogowanie się na konto o uprawnieniach Administratora będzie trudniejsze niż trafienie 6 razy z rzędu 6tki w lotka.

OGRANICZ BŁĘDNE LOGOWANIA 

Dla dodatkowego bezpieczeństwa zainstaluj wtyczkę typu WP Limit Login Attempts. Ja za 19USD kupiłem wersję PRO - wystarczy jedna licencja na wszystkie instalacje WP. Ale wersja darmowa też jest użyteczna. Zwracam jednak uwagę, że psuje stronę logowania na starszych wersjach Wordpress. Więc NIE instaluj jej bez dostępu do serwera albo bazy danych - ja musiałem ręcznie ją usunąć z serwera za pierwszym razem. Na aktualnej wersji Worpdress działa dobrze.

Wtyczka prosi o podanie kodu Captcha oraz blokuje na określoną liczbę minut możliwość logowania z konkretnego adresu IP po wybranej liczbie błędnych prób. 

Wordpress - limit login captcha

To rozwiązanie w praktyce utrudni włamanie na konto normalnego użytkownika, bo nasz prawdziwy admin jest właściwie bezpieczny. Musimy jednak pamiętać, że profesjonalnie hakerzy będą bez problemu atakowali z dużej liczby adresów IP - więc to ograniczenie nie zrobi na nich większego wrażenia - dlatego trudne hasło i trudny login jest tak ważny.

ZABLOKUJ WYSYŁANIE HASŁA E-MAILEM

Wtyczka Prevent Password Reset umożliwia zablokowanie zmiany hasła za pomocą e-maila dla wybranych użytkowników. Każdy użytkownik o wysokich uprawnieniach powinien mieć zablokowane resetowanie hasła za pomocą e-maila... bo e-mail NIE jest bezpieczną formą komunikacji. 

UWAGA: jeśli zablokujesz resetowania hasła jedynemu administratorowi i NIE masz dostępu do serwera, to zapomnienie hasła równa się utracie dostępu do bloga. Jeśli masz dostęp do serwera, to zawsze możesz na chwilę zmienić nazwę katalogu z wtyczką albo zmienić hasło bezpośrednio w bazie danych.

WYTOCZ POTʯNE DZIAŁA

Wtyczka typu All In One WP Security & Firewall poprawia bardzo dużo luk w Wordpress i myśli za użytkownika wskazując mu niebezpieczne ustawienia. Ma tak dużo ustawień, że musiałbym jej poświęcić osobny artykuł.

SKORZYSTAJ Z SYSTEMÓW OGRANICZAJĄCE MASOWE ATAKI

Najpopularniejszym chyba jest CloudFlare.com, który zastępuje Twój serwer DNS i przez to potrafi odfiltrować ataki zanim dotrą do Twojego serwera. Niektórzy dostawcy serwerów mają własne rozwiązania.

Po wdrożeniu tych rozwiązań możesz myśleć, że jesteś bezpieczny. NIE JESTEŚ. Powyższe zmiany to TYLKO podstawowe zabezpieczenia, które NIE zabezpieczają przed wadliwą wtyczką lub szablonem.

Zabezpieczenia ZAAWANSOWANE

Dzięki poniższym zabezpieczeniom, nawet zalogowanie się hakera na konto administratora w najgorszym wypadku pozbawi Cię treści na blogu, ale nie narazi serwera. Innymi słowy są to zabezpieczenia, dzięki którym nawet wadliwa wtyczka/szablon niewiele narobi szkód.


Darmowy dostęp wygasł

Reszta jest ograniczona do osób, które mają aktywny dostęp do:

lub

Zaloguj się, jeśli już go masz

 

Newsletter

Newsletter CzasNaE-Biznes

Cotygodniowa dawka darmowych artykułów od Piotra Majewskiego - ojca chrzestnego polskiego małego e-biznesu...

Dołącz do 92 846 czytelników