Kilka dni temu zauważyłem na moim blogu znacznie wzmożoną aktywność hakerską. Zautomatyzowane skrypty z różnych stron świata próbowały (na szczęście bezskutecznie) otwierać jakieś dziwne adresy URL w domenie xpil.eu
Zainteresowałem się wówczas tematem zabezpieczenia blogu przed próbami włamu, dzięki czemu dokopałem się do wtyczki Better WP Security.
Wtyczka jest darmowa i zapewnia - przynajmniej zdaniem jej autorów - maksymalny możliwy poziom bezpieczeństwa blogu, bez pogarszania jego wydajności ani funkcjonalności.
Po zainstalowaniu wtyczki w panelu administracyjnym pojawiła mi się dodatkowa zakładka z ustawieniami, a w niej długa lista rzeczy, które trzeba zrobić, żeby bloga "uszczelnić".
Na szczęście (jestem leniwy) wszystkie te "uszczelnienia" uzyskuje się kilkoma kliknięciami myszy, nie trzeba znać się na konfiguracji Apache, atrybutach plików ani konfiguracji bazy danych. Better WP Security zrobi wszystkie poprawki automatycznie, tłumacząc po drodze co robi, po co to robi oraz jakie są potencjalne skutki uboczne (na ogół nie ma żadnych, czasem jednak jest ryzyko, że niektóre wtyczki przestaną działać albo zaczną działać błędnie). Jedynym wyjątkiem jest włączenie protokołu https na stronie administracyjnej, które wymaga zainstalowania obsługi szyfrowania na serwerze - jest to czynność wykraczająca poza możliwości zautomatyzowania, a więc trzeba to skonfigurować osobno, ręcznie.
Jednak poza tym wszystko inne idzie jak z płatka, a lista zabezpieczeń jest naprawdę imponująca:
1. Wymuszenie silnych haseł dla wszystkich użytkowników.
2. Ograniczenie nagłówka http do niezbędnego minimum - na przykład ukrycie (standardowo pokazanego w nagłówku) numeru wersji WordPressa.
3. Ukrycie informacji o dostępnych aktualizacjach dla użytkowników nie będących w grupie administratorów.
4. Usunięcie użytkownika 'admin' (niektóre włamy do WP wykorzystują fakt, że taki użytkownik istnieje)
5. Usunięcie użytkownika z ID=1
6. Zmiana standardowego przedrostka w nazwach tabel WP na losowy ciąg znaków (utrudnienie dla kogoś, kto się włamał i ma dostęp do wykonywania zapytań do bazy danych - nie znając nazw tabel, ma utrudnione zadanie)
7. Włączenie regularnego wykonywania kopii zapasowych zawartości blogu (z opcją wysyłania ich na podany adres email - w razie jakiejś totalnej rozpierdziuchy mamy zawsze kopie zapasowe na mailu)
8. Całkowite zablokowanie możliwości logowania się do panelu administracyjnego w godzinach, w których tego nie potrzebujemy (na przykład w nocy, w godzinach pracy itd.)
9. Automatyczne blokowanie prób wejścia na naszego bloga z adresów znajdujących się na czarnej liście hackrepair.com
10. Zabezpieczenie przed atakami brute force - jeżeli ktoś poda niewłaściwe hasło określoną ilość razy, w odpowiednio krótkich odstępach czasu, jedgo adres IP zostanie na pewien czas zablokowany. To oczywiście nie rozwiązuje kwestii brute force w całości, jednak znacznie utrudnia takie ataki.
11. Ukrycie linku do zalogowania się (akurat ta opcja jest dostępna i bez dodatkowych wtyczek, ale jest domyślnie wyłączona - BWPS ją wyłącza)
12. Zminimalizowanie praw dostępu do pliku .htaccess (konfiguracja serwera www), dzięki czemu ktoś próbujący się włamać nie będzie miał możliwości jego zmodyfikowania.
13. Zabezpiecznie przed skanowaniem domeny pod kątem dziur (to jest właśnie to, co zaobserwowałem kilka dni wcześniej). Jeżeli z danego adresu IP przyjdzie w określonym czasie zbyt wiele żądań zakończonych błędem 404, adres zostanie tymczasowo zablokowany.
14. Dodatkowy proces monitorujący w czasie rzeczywistym wszystkie modyfikacje plików konfiguracyjnych WP / Apache i informujący o takich zmianach mailem.
15. Zabezpieczenie przed bardzo długimi adresami URL - część włamów bazuje na fakcie, że przy niektórych bardzo długich adresach czasem występuje błąd umożliwiający uzyskanie podwyższonych uprawnień.
16. Wyłączenie możliwości edycji plików php/css/html (i innych) z poziomu interfejsu administracyjnego WP
17. Umożliwienie BWPS zapisu do plików wp-config.php oraz .htaccess (akurat ta opcja nie poprawia bezpieczeństwa sama w sobie, jednak umożliwia BWPS takie przekonfigurowanie WP / Apache, że będą one bardziej zabezpieczone)
18. Wyłączenie możliwości modyfikacji plików wp-config.php oraz .htacess innym użytkownikom (w razie gdyby ktoś się włamał "z boku")
19. Ukrycie numeru wersji WP przed wszystkimi zalogowanymi użytkownikami nie należącymi do grupy administratorów.
20. Zmiana nazwy folderu wp-content.
21. Wymuszenie używania protokołu https dla zalogowanych użytkowników.
Po zaaplikowaniu wszystkich powyższych zmian (z wyjątkiem tego nieszczęsnego https) natychmiast zaobserwowałem zmniejszenie ruchu "hakeropodobnego", co świadczy o tym, że faktycznie jest ciut lepiej.
A co dalej?
Ano, pożyjemy - zobaczymy.
Tymczasem pora późna, naczynia się same nie umyją, czas więc wracać na zmywak.
Sprawdzam tylko jak się teraz wpisuje, chyba nie widzę różnicy.
Dzięki. Też spróbuję to sobie zainstalować.
Nie jestem pewien czy blogi w domenie wordpress.com mają możliwość instalacji tego rozszerzenia, ponieważ ingeruje ono dość głęboko w konfigurację bloga oraz serwera www. WordPress.com ma dość ścisłe obostrzenia co do wtyczek. Próbowałem kiedyś hostować tam swojego bloga, ale się zniechęciłem (w darmowej wersji naprawdę nie za wiele można). Zamiast tego zdecydowanie polecam własną domenę (koszt: €9 rocznie), porządny hosting (wykupiłem w ovh.pl za około €30 rocznie, ale jest też mnóstwo innych ofert za podobną opłatą – koniecznie coś w Europie, bo cudaki typu hostgator czy godaddy działają świetnie w US, ale do Europy mają spore opóźnienia) oraz lokalną instalację WordPressa. W tym wariancie, jak to mówią lokalni, sky is the limit…