+48 695 115 215 biuro@webkom.net.pl

Zabezpieczenie WordPressa przed atakami hackerów

Najczęściej wprowadzanymi loginami podczas prób włamań (np. podczas tzw. „Brute Force attack”) są: admin, test, administrator, Admin, root. Jeżeli chodzi o hasła to: admin, 123456, 666666, 111111, 12345678, qwerty, 1234567, password. Tak więc unikajcie ich jak ognia.

Jak rozpoznać atak na naszą stronę?

1. Emaile wysyłane przez WP trafiają do spamu.

2. Twoja strona zniknęła z indeksu Google lub po wpisaniu w wyszukiwarce „site:nazwadomeny.pl” występują zaindeksowane nowe, podejrzane podstrony np. z frazą „viagra” w tylule.

3. W panelu Google Webmastertools otrzymaliście powiadomienie.

4. Przeglądarka (w tym przypadku Chrome) wypluwa komunikat po wejściu na stronę – chrome-strona-zlosliwe-oprogramowanie

5. Twoja strona znacząco zwolniła a wykorzystanie zasobów serwerowych wzrosło – bez nagłego wzrostu realnych użytkowników.

6. Strona zostaje przekierowana na inną lub wyświetla się jedynie biała strona (tzw. WSOD – White Screen Of Death).

7. W panelu WP samoistnie został utworzony nowy użytkownik z uprawnieniami admina/redaktora/autora.

8. W kodzie strony pojawił się nowy niezidentyfikowany kod javascript lub w jej treści zaobserwowałeś dziwne linki.

Google udostępniło narzędzie do szybkiej diagnostyki: http://www.google.com/safebrowsing/diagnostic?site=www.seowordpress.pl.
Pamiętaj aby w adresie wpisać adres swojej strony.

No dobra. I co teraz?

Najlepszym rozwiązaniem jest zgłoszenie się z prośbą do swojego hosting-odawcy o wgranie backupu plików oraz bazy danych z dnia przed atakiem. Co jednak gdy z obawą przed utratą danych nie możemy przeprowadzić takiej operacji?

Warto zapoznać się z: http://codex.wordpress.org/FAQ_My_site_was_hacked

Krok 1. Wyłącz swoją stronę – uchroń swoich użytkowników przed niemiłym doświadczeniem.

Krok 2. Upewnij się, że szablon i wszystkie wtyczki są zaktualizowane – nawet te wyłączone (choć najlepiej byłoby je usunąć) – one także w wielu przypadkach posiadają pewne uprawnienia, które mogą ułatwić atak.

Krok 3. Zmień login i hasło do panelu admina i usuń wszystkich podejrzanych użytkowników.

Krok 4. Zidentyfikuj problem.

4.1 Zaloguj się na swój serwer FTP przez swojego klienta i wejdź do głównego folderu oraz /wp-includes/. Upewnij się, że nie został tam dodany plik nowy index.html (jeżeli tak – usuń), oryginalny plik WordPressa index.php nie zmienił nazwy oraz czy nie powstały pliki .php/.html/.js o nazwach z losowymi znakami.

4.2 Pliki .htaccess i wp-config.php porównaj z pierwowzorami.

4.3 Przegraj pliki header.php oraz footer.php używanego szablonu i otwórz je w edytorze tekstu. Sprawdź czy nie posiadają one odwołań do zewnętrznych plików.

4.4 Przeskanuj stronę za pomocą zewnętrznej strony Is this hacked? Wyniki podpowiedzą Ci co nieco.

4.5 Zainstaluj i przeprowadź skan wtyczką Sucuri Security oraz Exploit Scanner

4.6 Jeżeli pracujesz na nie modyfikowanym szablonie/wtyczkach usuń je wraz z instalacją WP i podmień je na świeżo ściągnięte z oficjalnych stron.

Krok 5. Jeżeli dalej problem występuje to najprawdopodobniej złośliwy kod trafił do bazy danych. Zaloguj się do phpMyadmin z panelu hostingu i wprowadź komendę:

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE'%display:%'

Przeanalizuj wyniki w poszukiwaniu złośliwego kodu.

Działania profilaktyczne zabezpieczenia WP

1. Nie używaj standardowego loginu administratora „admin”.

2. Używaj mocnego hasła administratora: http://passwordsgenerator.net/

3. Standardowy prefix „_wp” zmień na niestandardowy wybrany przez Ciebie. Najlepiej zrobić to przy instalacji WP jednak jest sposób na zmianę prefixu przy istniejącej już instalacji. Więcej na ten temat: http://www.wpbeginner.com/wp-tutorials/how-to-change-the-wordpress-database-prefix-to-improve-security/.

Tworząc bazę danych i przypisując do niego użytkownika pamiętaj, że: db_name != db_user

4. Po raz kolejny: szablon i wtyczki aktualizuj na bieżąco!

5. Hosting ma bardzo duże znaczenie.

6. Używaj sFTP lub SSH podczas połączeń z plikami strony. Z klientów FTP (np. FileZilla) jest bardzo łatwo wydobyć hasło do naszego serwera.

7. Zabezpiecz folder uploads:

Dzisiejszy kawałek kodu pozwoli nam na zabezpieczenie naszego folderu /uploads do, którego domyślnie trafiają wszystkie obrazki ładowane przez bibliotekę mediów WordPress’a.

Co nam to da? Wiele ataków na instalację opiera się właśnie na wrzucaniu plików zawierających złośliwe pliki właśnie do katalogu /uploads. Tak więc zwiększa to nasze bezpieczeństwo.

a. Tworzymy na naszym komputerze plik tekstowy (np. w notatniku) i wklejamy do niego poniższy kod:

<Files ~ ".*..*">
Order Allow,Deny
Deny from all
</Files>
<FilesMatch ".(jpg|jpeg|jpe|gif|png|tif|tiff)">
Order Deny,Allow
Allow from all
</FilesMatch>

b. Plik zapisujemy jako „.htaccess” i umieszczamy go w folderze /wp-content/uploads
Kod powoduje, że ograniczenie uploadowania pików o konkretnych rozszerzeniach – jpg|jpeg|jpe|gif|png|tif|tiff – do tego folderu jak i jego podfolderów

8. Plik wp-config.php powinien mieć prawa tylko do odczytu oraz zabezpiecz go poprzez .htaccess dodając:

<FilesMatch "wp-config.*\.php|\.htaccess|readme\.html">
Order allow,deny
Deny from all
</FilesMatch>

Generuj własne klucze w wp-config.php poprzez: https://api.wordpress.org/secret-key/1.1/salt/

9. Wyłącz edycję plików szablonu przez panel WP dodając do wp-config.php

 define('DISALLOW_FILE_EDIT',true);

10. Wprowadź limit nieprawidłowych logowań dzięki Limit Login Attempts.

11. Wyłącz natywny interfejs WP – XML-RPC. Odpowiada on za wysyłanie trackbacków i pingbacków ale bardzo często wykorzystywany jest przez hackerów element ataków DDoS. Możecie to zrobić za pomocą wtyczki Disable XML-RPC.

12. Unikaj nadawania uprawnień 777 dla plików i folderów

Katalogi: 755 lub 750
Pliki 644 lub 640
wp-config.php – 600

Pamiętaj o tym, że gdy dostałeś wiadomość w Google Webmastertools o problemie z bezpieczeństwem – zgłoś prośbę o rozpatrzenie po jego usunięciu