17 sprawdzonych sposobów na zwiększenie bezpieczeństwa WordPressa

17 sprawdzonych sposobów na zwiększenie bezpieczeństwa WordPressa
5 (100%) 3 votes

Nie od dziś wiadomo, że nie ma serwisów internetowych, do których nie da się włamać. Wdrażanie każdej dodatkowej zmiany, utrudniającej hakerom to zadanie, jest nie tyle wskazane, co wręcz konieczne.
Jeżeli więc nie chcesz pewnego pięknego dnia, popijając poranną kawę, dowiedzieć się, że Twój WordPress wygląda jak poniżej, zapoznaj się z naszymi wskazówkami.

Nie używaj konta „Admin”

Domyślnie nazwa głównego użytkownika każdego serwisu opartego na WordPressie to „Admin”. Wiele osób tego loginu używa. Takie działanie ułatwia włamanie na bloga – haker zna nazwę użytkownika o najwyższych uprawnieniach, a do odgadnięcia pozostaje mu tylko hasło.

Najprostszym rozwiązaniem jest stworzenie nowego konta użytkownika o nazwie niesugerującej uprawnień. Kolejnym krokiem jest przelogowanie na nowo utworzone konto i zmiana uprawnień dla użytkownika „Admin” z Administrator na Subskrybent lub usunięcie całkowicie konta „Admin”. W przypadku wybrania ostatniej opcji, warto  przenieść na nowo założone konto przypisane do niego wpisy.

Zamień login na adres e-mail

Inną metodą poprawy bezpieczeństwa przy logowaniu jest używanie adresu e-mail zamiast loginu. W tym przypadku możemy posiadać dedykowany adres e-mail, używany wyłącznie w celu logowania do naszego WordPressa, co dodatkowo utrudni odgadnięcie loginu.

Logowanie za pomocą e-maila możemy wdrożyć za pomocą wtyczki np. WP email login lub edytując samodzielnie plik functions.php, korzystając np. z tego poradnika.

Używaj silnych haseł

Żeby nie ułatwiać potencjalnemu intruzowi zadania, hasło powinno być unikalne oraz odpowiednio silne.

Silne hasło powinno:
• zawierać duże i małe litery,
• mieć w swojej strukturze cyfry,
• składać się z symboli, takich jak np. %(*&
• posiadać przynajmniej 16 unikalnych znaków,
• stanowić unikalny ciąg znaków – unikamy słów,
• zostać użyte tylko w jednym w serwisie.

Oczywiście im dłuższe i mniej przewidywalne hasło, tym jest silniejsze i trudniejsze do odgadnięcia.
Więcej o tworzeniu i sposobach na zapamiętywanie bezpiecznych haseł możecie przeczytać np. tutaj – https://www.kei.pl/blog/bezpieczne-haslo-jak-stworzyc-zapamietac/
Słabe, przewidywalne, często używane hasła, są sprawdzane przez hackerów w pierwszej kolejności. Przy takich operacjach, korzystają oni chociażby z takich baz jak opisywane w poniższym artykule, w którym znajdziecie również pozornie nieźle wyglądające hasła jak np. 1qazxsw2 😉
https://zaufanatrzeciastrona.pl/post/hasla-ponad-10-milionow-polskich-kont-email-dostepne-do-pobrania-w-sieci/

Wyłącz rejestrację użytkowników

Przypadku większości serwisów nie widzę potrzeby umożliwiania użytkownikom zakładania kont. Komentarze można zostawić bez logowania. Jeżeli chcemy sprawić, by komentarze były mniej anonimowe, możemy zawsze użyć odpowiednich wtyczek do komentowania, np. Facebooka czy Disquisa.
Możliwość rejestracji nowych użytkowników można w prosty sposób wyłączyć z poziomu ustawień WordPressa, bez konieczności instalowania pluginów czy edycji plików.
Docelowa ścieżka: Ustawienia => Ogólne przy polu Członkostwo odznaczamy pole: Każdy może się zarejestrować.

Aktualizuj CMS, wtyczki oraz motywy

Brak aktualizacji WordPressa oraz zainstalowanych dodatków często jest wykorzystywany do włamań ze względu na odkrywanie przez hakerów luk systemowych. Kolejne aktualizacje pozwalają na ich wyeliminowanie, jest to zatem w miarę prosty i szybki sposób na utrzymanie względnego poziomu bezpieczeństwa serwisu.
Często, zwłaszcza w trakcie budowy serwisu, instalujemy różne motywy i pluginy, by następnie wybrać te, które będą najlepsze pod kątem oczekiwanej funkcjonalności. Na tym etapie warto jednak pamiętać, że po dokonaniu wyboru docelowych wtyczek, pozostałe należy usunąć. Taki zabieg pozwoli zaoszczędzić trochę miejsca na serwerze, przyspieszy aktualizację oraz ułatwi tworzenie kopii bezpieczeństwa.

Ogranicz liczbę prób logowania

Jedną z popularniejszych metod ataku na serwis, jest tak zwany Brute Force. Polega na wielokrotnych próbach logowania za pomocą kolejnych haseł.
Sposobem na tego typu atak jest ustawienie limitu prób z jednego adresu IP, po osiągnięciu którego użytkownik traci możliwość logowania na określony czas. Do wyboru jest wiele wtyczek, które utrudniają przeprowadzenie ataku Brute Force.
Myślisz, że Twojego bloga to nie dotyczy, bo jest niszowy, a Google Analytics nie pokazuje dużej liczby wizyt? No to spójrzcie na poniższe statystyki dla małego bloga 😉

nieudane próbu logowania

Włącz dwuskładnikowe uwierzytelnienie

Obecnie powinien być to standard w każdej usłudze online wymagającej logowania, niestety WordPress nadal nie ma domyślnie ustawionej tej funkcjonalności. Jest to dodatkowa linia ochrony każdego konta. Nawet jeżeli ktoś pozna Twój login i hasło, to nie zaloguje się bez dostępu np. do Twojego telefonu.
Najlepszym rozwiązaniem jest zastosowanie kluczy typu Yubico, które nie zadziałają w przypadku próby logowania na na sfałszowanej stronie. Niestety nie są zbyt łatwo dostępne w Polsce, a ich cena zaczyna się obecnie od 40$ za klucz, który będziemy mogli użyć z naszym WordPressem.
W przypadku usług typu blog wystarczające będzie użycie wtyczki wymagającej podania jednorazowego PIN-u.
Odpowiednią dla nas wtyczkę możemy pobrać z tego adresu: https://pl.wordpress.org/plugins/search/Two+Factor+Authentication/

Skorzystaj z certyfikatu SSL

Stosowanie certyfikatu SSL powoli staje się standardem, a mocno do tego przyczynia się Google Chrome oraz Firefox, które stopniowo wprowadzają coraz widoczniejsze rozróżnienia, między serwisami zabezpieczonymi (z certyfikatem SSL) i tymi bez dodatkowej ochrony. Brak certyfikatu wpływa na obniżenie ich wiarygodności w oczach klientów, którzy w obawie o swoje dane z kart płatniczych czy dane adresowe, wybiorą usługi konkurencji.Brak ssl

Wdrożenie certyfikatu nie musi wiązać się z ponoszeniem dodatkowych kosztów, gdyż dla blogów wystarczający może okazać się darmowy certyfikat, taki jak np. Letsencrypt.org

Wyłącz edycję plików wtyczek i motywów

Uniemożliwienie edycji tych plików z poziomu panelu nie wpłynie na codzienną pracę z serwisem, a poprawi jego bezpieczeństwo w przypadku dostępu do panelu administratora nieuprawnionej osoby – np. nadanie zbyt wysokich uprawnień nowemu autorowi artykułów.
Żeby to zrobić, wystarczy dopisać w pliku wp-config.php poniższą linie kodu.

define(‚DISALLOW_FILE_EDIT’, true);

Wyłącz informację o błędnych danych logowania

WordPress przekazuje jednoznaczne informacje w przypadku, gdy wpisany login jest niepoprawny.Niepoprawna nazwa użytkownika

Jest to przydatna wskazówka przy próbie uzyskania nieautoryzowanego dostępu, ponieważ atakujący może najpierw próbować odgadnąć login, a później hasło w przypadku którego WordPress zwróci analogiczny komunikat.Złe hasło

Na szczęście możemy wyłączyć ostrzeżenia logowania, dodając prosty zapis do pliku functions.php znajdującego się w katalogu używanego tematu.

function no_wordpress_errors(){
return ‚Zły login lub hasło’;
}
add_filter( ‚login_errors’, ‚no_wordpress_errors’ );

Wynikiem będzie ogólny komunikat o błędnych danych logowania.
Zły login lub hasło

Zabezpiecz hasłem dostęp do katalogu wp-admin

Warto dodać kolejną warstwę zabezpieczeń do swojego WordPressa, poprzez dodanie hasła chroniącego katalog wp-admin. Będzie się to jednak wiązało z koniecznością zapamiętania dwóch zestawów loginów i haseł – do WordPressa oraz katalogu wp-admin.
Instrukcję jak założyć hasło na ten katalog znajdziesz w poniższym artykule.
https://ctrlq.org/code/19247-password-protect-wordpress-admin

Zmień domyślny prefix wp_ dla tabel w bazie danych.

Kolejnym słabym elementem WordPressa jest domyślny prefix w tabelach baz danych MySQL co ułatwia hackerom zadanie. Rozwiązaniem jest zmiana tego prefiksu na mniej przewidywalny.
Jak to zrobić? Najprościej już w trakcie instalacji nowego WordPressa, ale jeżeli już jest za późno, z pomocą przychodzą nam wtyczki takie jak np. All in One WP Security and Firewall lub inne do wyboru wedle uznania https://wordpress.org/plugins/search/db-prefix-change/.

 

Ogranicz dostęp do panelu WordPressa

To jest proste i skuteczne zabezpieczanie, dzięki któremu tylko z wybranych adresów IP (np. dom i biuro), będziemy mogli zalogować się do panelu swojego serwisu. Szczegółową instrukcję na ten temat i inne tematy znajdziesz w poniższym artykule.
https://premium.wpmudev.org/blog/ultimate-guide-wordpress-security/

Usuń informacje o wersji WordPressa

Znając dokładna wersję WordPressa albo dowolnego innego CMS-a, atakujący wie jakie są słabości tej wersji, dzięki czemu łatwiej przeprowadzi atak. Brak takiej informacji wymaga od niego dodatkowej pracy. Nie ułatwiajmy mu zatem życia 
Informacje o obecnie używanej wersji możemy usunąć, poprzez prostą modyfikację pliku header.php, z którego usuwamy poniższy fragment kodu:

Innym sposobem jest dodanie do pliku functions.php poniższego kodu

remove_action(‚wp_head’, ‚wp_generator’);

Oba te zabiegi usuną z źródła strony informacje o wersji, ale to nie wystarczy, ponieważ taka informacja znajduje się również naszym kanale RSS. Żeby również z tego miejsca usunąć numer wersji CMS, należy ponownie zedytować plik functions.php i dodać poniższy fragment kodu:

function wpbeginner_remove_version() {
return ”;
}
add_filter(‚the_generator’, ‚wpbeginner_remove_version’);

Zmień adres panelu logowania

Domyślnie panel logowania znajduje się pod adresem http://domena.pl/wp-login.php, więc wszelkie automaty próbujące logować się do naszych serwisów łatwo do niego trafiają. W prosty sposób możemy to zmienić, poprzez zmianę adresu panelu na dowolny ciąg znaków.
Tutaj ponownie z pomocą przychodzi nam prosta wtyczka: https://wordpress.org/plugins/wps-hide-login/

Twórz kopie zapasowe

Jak mawiają osoby zajmujące się bezpieczeństwem systemów i sieci komputerowych: „Ludzie dzielą się na tych, którzy robią kopie zapasowe i tych, którzy będą je robili”.
Backup będzie bardzo przydatny w sytuacji, gdy dojdzie do włamania na nasz serwis i jego uszkodzenie czy nawet skasowanie. Nawet jeżeli serwis będzie nadal działał, ale zostanie do niego dodany złośliwy kod, poprzez przywrócenie z kopii pozbędziemy się wszystkich zainfekowanych plików co w przypadku usuwania ich ręcznie będzie dużo bardziej pracochłonne i może być nieskuteczne.
Co prawda dostawcy hostingu wykonują kopie naszych serwisów, ale w niektórych przypadkach przywrócenie serwisu z takiego backupu może być utrudnione z powodu ograniczonego czasu przechowywania naszych kopii. Może się tak zdarzyć np. gdy wrócimy po 2 tygodniach z wakacji i okaże się że przywrócenie kopii serwisu z kopii hostingu jest niemożliwe, więc niezbędna okaże się własna kopia.

Wykonanie własnej kopii zapewnia szereg możliwości:
• posiadanie dowolnej liczby wersji naszego WordPressa
• przywrócenia kopii serwisu np. sprzed roku
• tworzenia kopii w wielu lokalizacjach – FTP, Dropbox, Amazon S3, Microsoft OneDrive itp.
natychmiastowy dostęp z poziomu własnego komputera (np. w przypadku Dropboxa)
Do tworzenia kopii zapasowych WordPressa mamy długą listę wtyczek, z której możemy wybrać tą najlepszą dla nas: https://wordpress.org/plugins/search/backup/

Używaj wtyczek

Wtyczki wzbogacają WordPressa o wiele przydatnych funkcji i rozwiązań, które ułatwiają nam codzienną pracę, ale i mogą znacząco wpłynąć na poziom bezpieczeństwa WordPressa oraz ułatwić wdrożenie części opisywanych zmian.

Podczas instalacji wtyczek w WordPressie należy pamiętać o kilku rzeczach:
• Używaj wtyczek, które są przetestowane z obecnie używaną przez Ciebie wersją WordPressa. Brak takowych testów nie oznacza automatycznie problemów, ale autor nie gwarantuje zgodności.
• Używaj wtyczek, które są regularnie aktualizowane. Korzystanie z najnowszych dostępnych wersji, daje kolejne funkcje i usprawnienia, ale przede wszystkim poprawia jej słabości, które mogą narazić nasz serwis na atak.
• W trakcie wyboru wtyczki zwróć uwagę na opinie i rekomendacje innych użytkowników. Duża liczba wysokich ocen zwiększa prawdopodobieństwo, że wtyczka jest wolna od wad.

Przydatne wtyczki podnoszące bezpieczeństwo:

Wordfence – https://wordpress.org/plugins/wordfence/
All in One WP Security and Firewall – https://wordpress.org/plugins/all-in-one-wp-security-and-firewall/
iThemes Security (Better WP Security) – https://pl.wordpress.org/plugins/better-wp-security/
Securi scanner – https://pl.wordpress.org/plugins/sucuri-scanner/

Dzięki tym wtyczkom zyskasz między innymi:

• firewall,
• monitoring źródeł i rodzaju ruchu,
• skanowanie serwisu (malware, integralność),
• zmiana prefixu w bazie danych,
• zmiana adresu logowania,
• wiele innych.

Podsumowanie

Czy wdrażając powyższe wytyczne Twój blog będzie w 100% odporny na włamania? Nie, ale ich implementacja na pewno podniesie poziom bezpieczeństwa i utrudni zadanie potencjalnemu hakerowi.
Ponieważ nie ma takiego serwisu, który będzie bezpieczny na zawsze i w którym nie da się przełamać zabezpieczeń, należy regularnie instalować aktualizacje i zmiany takie jak powyżej.
Pamiętajmy, że to czy zabezpieczenia uda się przełamać, zależy od umiejętności oraz determinacji atakującego do osiągnięcia obranego celu. Im bardziej atrakcyjny cel, tym więcej starań włoży atakujący. Do jakich metod, sztuczek i technik socjotechnicznych uciekają się atakujący, możecie przeczytać w poniższym historiach, w którym zostały opisane włamania – pojawiają się takie nazwy jak Apple, Google, Amazon. Miłej lektury:)

https://zaufanatrzeciastrona.pl/post/wlamanie-do-cloudflare-przez-konto-prezesa-firm/
https://niebezpiecznik.pl/post/jak-amazon-pomogl-zhackowac-apple/

Źródła oraz dodatkowe wskazówki dla WordPressa

https://blog.sucuri.net/2014/09/understanding-the-wordpress-security-plugin-ecosystem.html
https://www.labnol.org/internet/wordpress-optimization-guide/3931/
https://www.labnol.org/internet/improve-wordpress-security/24639/
https://www.labnol.org/internet/secure-wordpress-single-sign-on/29037/
https://premium.wpmudev.org/blog/ultimate-guide-wordpress-security/
https://yoast.com/wordpress-security/
http://krzysztofjelonek.net/wordpress-i-bezpieczenstwo/
https://wpzen.pl/sekrety-wp-config/
https://ctrlq.org/code/19247-password-protect-wordpress-admin
http://www.wpbeginner.com/wp-tutorials/how-to-disable-login-hints-in-wordpress-login-error-messages/
http://www.wpbeginner.com/wp-tutorials/the-right-way-to-remove-wordpress-version-number/
https://serpstat.com/blog/7-must-have-wordpress-plugins-for-every-installation/
http://www.wpbeginner.com/wp-tutorials/25-extremely-useful-tricks-for-the-wordpress-functions-file/
https://www.kei.pl/blog/bezpieczne-haslo-jak-stworzyc-zapamietac/

Piotr Harmas on EmailPiotr Harmas on InstagramPiotr Harmas on LinkedinPiotr Harmas on Wordpress
Piotr Harmas
SEO Manager w K2 Media S. A.
SEO zajmuje się od 2009 roku i w tym czasie zdobywał doświadczenie, pracując dla takich Klientów jak Procter&Gamble, Link4, T-Mobile, Eurobank czy Nutricia. Od 2016 roku jest członkiem zespołu SEO w K2 Media.
Po godzinach hobbystycznie fotografuje i publikuje zdjęcia na swoim blogu (oczywiście Wordpress), interesuje się nowinkami technologicznymi oraz bezpieczeństwem w internecie.