WordPress jako najbardziej popularna platforma blogowa narażona jest na wszelkiego rodzaju ataki ze strony hackerów oraz złośliwe roboty/skrypty. Masa instalacji WP dziennie zostaje przejęta lub zainfekowana dlatego, że właściciele nie przywiązują większej wagi chociażby do wszelkiego rodzaju aktualizacji. W tym artykule podpowiem jak rozpoznać, że nasza strona została zhackowana, co w takiej sytuacji zrobić i podam także kilka profilaktycznych porad jak się przed nimi ustrzec.
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 tego typu:
4. Przeglądarka (w tym przypadku Chrome) wypluwa komunikat po wejściu na stronę:
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ą Wordfence Sucurity 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ę:
1
2
3
4
5
|
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/
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
8. Plik wp-config.php powinien mieć prawa tylko do odczytu oraz zabezpiecz go poprzez .htaccess dodając:
1
2
3
4
|
<Files wp–config.php>
order allow,deny
deny from all
</Files>
|
9. Wyłącz edycję plików szablonu przez panel WP dodając do wp-config.php
1
|
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
ps. a tu statystyki ataków na wordpress: