AktualnościWIRUS NA WORDPRESS? 7 ISTOTNYCH INFORMACJI KTÓRE POMOGĄ CI SIĘ BRONIĆ!

Budujesz piękną stronę na WordPress dla swojego klienta? A po jakimś czasie zwalają się na nią choroby doczesnego świata?

Spam, porno, spam, jakieś dziwne strony reklamowe z niezliczonymi przekierowaniami, tak to wirus. Jak się za to zabrać?

Nie da się wszystkiego opisać na raz więc zrobię z tego małą serię 🙂

 

Z reguły niespodziewane – jak to się zaczeło.

Wstaję rano, trochę nie-dospany, czuję się jak zombie, myślę o kawię. Szybkie śniadanie i do pracy, dzień zawalony zadaniami, jak zwykle… Nagle dostaję wiadomość od klienta że jego klient wszedł na stronę i wczytało mu się coś innego – E tam, myślę, jak zwykle komuś się omskneło i robi jakiś dziwny dym –  Ok, sprawdzę to – nic z tym nie robię.

Mijają tygodnie (bo generalnie czasem jeden dzień to tak naprawdę tydzień) i dostaję maila z GWT(Google Webmaster Tools) o tym że moja strona ma niebezpieczne treści i została zablokowana w przeglądarce Chrome oraz oflagowana w wynikach wyszukiwania… O nie, jakby tego było mało.

Klient jest na mnie wkurzony, ja jestem na siebie wkurzony, bo zwyczajnie nie mam na to czasu, a przecież nie zostawię człowieka na lodzie.

 

Jak to się dzieje że strony są “hakowane”

Uwierz lub nie, ale to najczęściej nie jest człowiek po drugiej stronie, to boty internetowe który wyszukują luk w Twoim CMS, tzw. Vulnerabilities. Cyklicznie, z różnych już zainfekowanych serwerów / komputerów, lub zainstalowanych skryptów są przeprowadzane próby, często na oślep, a nóż trafią na podatny grunt i uda im się przeprocesować odpowiednią komendę infekującą Twoje pliki na serwerze – wtedy dzieją się magiczne rzeczy.

Czasem klienci jak zobaczą zamiast swojej strony, jakąś stronę porno, mogą się “trochę” zasmucić. Od razu powiem że na nic pomysł “Idę z tym na Policję” – nikogo nie znajdą, zwłaszcza że próby ataków są z adresów IP rozsianych po całym świecie.

 

Jakie są rodzaje i powody najczęstszych ataków na WP

  1. Rozsiewanie spamu
  2. Wstrzykiwanie złośliwego kodu – redirect na strony z reklamami
  3. Przekierowanie na strony z treściami dla osób dorosłych
  4. Wyświetlenie informacji o zhakowanej stronie i słabych zabezpieczeniach (coraz rzadziej)
  5. Budowanie contentu – ale nie tego dobrego dla nas
  6. Samo-replikowanie się i dalsze ataki
  7. Testowanie podatności wtyczek na ataki
  8. Testowanie podatności środowiska serwera
  9. Destabilizacja strony – uniemożliwienie wejścia innym użytkownikom
  10. SQL injection – wpływanie na bazę danych
  11. Podłożenie treści po to aby wykraść dane użytkowników lub ich pieniądze
  12. Kradzież danych z bazy danych

W zasadzie, to już z każdą formą mieliśmy w firmie do czynienia, ale zdecydowanie najczęstszymi były nr 1, 2, 4, 5, 7.

 

Masz stronę na WordPress? Przygotuj się na ataki – Jak?

Nie jesteś anonimowy w sieci, tym bardziej Twoja strona, codziennie boty skanują zasoby internetu w poszukiwaniu nowych stron i znanych schematów które można wykorzystać w przeprowadzaniu ataków.

 

1. Niestandardowe schematy instalacji.

  • Nie używaj prostych do odgadnięcia haseł do WP i nie używaj tego samego hasła wszędzie – to chyba jakiś standard już dawno, ale dlaczego pomimo tego trafiają się ludzie którzy zapisują sobie hasło np. 12345678 🙁 ręce “opadywują”.
  • Instaluj bazę danych z prefixem innym niż wp_ -> może być cokolwiek np. miskolargol_ – stosowanie auto-instalatorów to nie zawsze dobre rozwiązanie ale prefix można zmienić bez problemu.
  • Po instalacji zmień ID swojego użytkownika – niech to nie będzie “1” – ataki domyślnie są przeprowadzane na użytkownika który ma w bazie domyślnie 1 – bo to najczęściej administrator
  • Zmień nazwę folderu wp-content na jąkąś dowolną – najlepiej robić to od razu a nie po zbudowanej stronie – bo będzie kiepsko ze stroną (obrazki, odnośniki do plików – WordPress lubi używać bezpośrednich odnośników)
  • Zmień adres logowania z wp-admin na jakieś niestandardowe – ale nie admin, czy administrator – boty odpytują różne możliwe adresy więc możesz użyć formy np. edytor+Twój rok urodzenia – wygląda to tak: https://ideare.pl/edytor1980
  • Pod żadnym pozorem nie używaj loginu “admin”
  • Przenieś prawdziwy plik wp-config.php w folder który nie jest publiczny – możesz nazwać plik wp-config.php jak chcesz, i przenieś go wyżej niż root domeny, a w pliku wp-config.php zostaw tylko include to do przeniesionego pliku – cała instrukcja jest tutaj: https://www.groovypost.com/howto/improve-wordpress-securitty-wp-config-php-location/

 

2. Zabezpieczenia – Wtyczki

Domyślam się, że możesz nie znać się na wpisywaniu niestandardowych zabezpieczeń do .htaccess dlatego dobrze jest korzystać z wtyczek, i tu pojawia się kolejny problem.

Z mojego punktu widzenia, nie ma dobrej wtyczki, która Cie zabezpieczy przed wszelkim złem tego świata, nie ma też sensu instalować ich kilka czy kilkanaście bo to i tak nie pomoże jak będzie jedna inna wtyczka z luką to strona polegnie.

Jakie wtyczki? jest ich wiele, a np. ja polecam Ithemes security, ktoś może być zadowolony np. z Wordfence, ale szczerze mówiąc, nie musi to być narzędzie które ma wiele funkcji, bo często okazuje się że są one zbędne lub nieskuteczne. O wtyczkach zabezpieczających z pewnością jeszcze poświęcę osobny wpis, bo jest tego trochę.

Ithemes jest w miarę lekki, a to jak wiemy w przypadku ociężałego WordPressa jest dość istotne.

 

3. Prewencja – przezorny zawsze ubezpieczony

  • Stosuj backup plików – fajnie jest mieć dużo pełnych kopii, w razie czego jest do czego wracać, ale czasem nie ma tak cukrowo, najgorzej, jak robimy to ręcznie – przestańmy, to nie ma sensu – lepiej automatyzować, korzystać z hostingów które dają więcej niż rekurencyjne 3 dni wstecz. Są nawet rozwiązania (np. rozszerzenie do Plesk Panel) które robią kopię plików i wysyłają ją na konto DropBox. W razie problemów możesz szybko przerzucić pliki z backupu i mieć sprawę załatwioną – gorzej jak wszystkie backupy są z wirusami… ups… Pozostaje opcja półautomatyczna lub ręczna – o tym w następnym wpisie.
  • Stosuj backup bazy danych – to nie zajmie nawet zbyt dużo miejsca, wtyczka Ithemes ma tą opcję wbudowaną ale są setki wtyczek które zrobią kopię bazy danych i wyślą na maila, po prostu lepiej mieć, niż nie mieć 🙂
  • Wykrywaj brute force – uwierz lub nie, ale bot zna Twój login i teraz sobie pyka żeby dopasować hasło 🙂 Limituj ilość błędnych logowań np. do 1-2, po tym banujemy na kilka godzin, bot nie przestanie i będzie się odbijać do 404 co dalej?
  • Wykrywaj 404 – no dobra, to trochę ryzykowne, ale jeśli nie masz na stronie żadnych plików które w narzędziach webmastera raportują o 404 to możesz zaryzykować monitorowanie strzałów na 404. Normalny człowiek jak zobaczy 404, to sobie kliknie gdzieś indziej albo wyjdzie. Bot będzie kilka, kilkanaście, kilkaset razy strzelał ślepakami i odbijał się, wyjdzie Ci to w logach, możesz go po kilku wykrytych 404 zbanować po IP np. na 24h albo dodać do czarnej listy
  • Wykrywaj zmiany w plikach (potrzebny wydajny serwer) – to dość ciężki skrypt, ALE przynajmniej powie co się zmienia w Twojej strukturze wp, jeśli wykryjesz coś, co miało miejsce, a wiesz że to nie byłeś Ty to możesz szybko wykryć nadpisany plik z złośliwym kodem

Jeśli wiesz, że do folderu uploads będą ładowane tylko pliki graficzne, może ustawić uprawnienia zapisu tylko konkretnych plików do tego folderu, jak to zrobić?

Do folderu uploads przez FTP lub ssh dodajesz plik o nazwie .htaccess, a w nim treść:

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

I zapisujesz 🙂 Tylko, musisz mieć na względzie to, że niektóre szablony zapisują swojego pliki CSS w folderze uploads, mogą tam być również tłumaczenia, czyli pliki .mo .po, ale również i wszystko co Twój klient lub Ty wrzucisz do biblioteki, czyli pliki PDF, doc, docx. Musisz wówczas dodać takie rozszerzenia

 

4. Im mniej wtyczek, tym lepiej

Wtyczki do statystyk, antywirusy, przyspieszanie działania wolnego WordPressa, Lightbox, buildery i kompozytory wizualne, seo, etc. itd. Wtyczki, cudowna rzecz dla ludzi którzy chcą rozszerzać możliwości swojej strony, ale to cudowne rozwiązanie jest też przekleństwem tej platformy blogowej.

Otóż, darmowe wtyczki może pobrać każdy, w dobrej lub złej wierze, wszak ludzie je Tworzą, podobnie jak WordPressa, i są tam błędy, błędy które popełni jeden programista a drugi to wychwyci i wykorzysta, choćby do jakiegoś kuku na stronie.

Dlatego, polecam, im mniej wtyczek, tym lepiej. Czasem lepiej coś swojego dopisać, zaprogramować niż pobierać kolejną wtyczkę która zmienia kolor czcionki na stronie.

Minimalizujcie ryzyko – minimalizujcie ilość wtyczek.

 

5. Aktualizuję więc jestem bezpieczny?

Aktualizuj, tak, to dobre podejście, nie zostawiaj WordPressa przywiązanego do swojego nowego Pana, który zapewne nie zrobi aktualizacji na czas, albo w ogóle. Ale z drugiej strony, wziąłeś już za to pieniądze, i co lepsze WYDAŁEŚ JE 🙂 I co teraz? szukasz kolejnych form zarabiania, a ten WordPressik niech sobie tam dycha.

Generalnie, developując na wp, ponosi się trochę ryzyko komfortu, jest czasem szybciej, i prościej ale to może się nieco mścić w późniejszym okresie czasu.

 

 – Proszę Pana, robił Pan nam stronę i ona nie działa, proszę naprawić. 

 – Ale to było 6 lat temu

 – Ale proszę Pana, co mnie to obchodzi, mamy jakiegoś wirusa, przekierowuje na strony porno prosżę to natychmiast naprawić! To Pan robił stronę i nikt w niej nic nie zmieniał

 

Mieliście coś podobnego? No właśnie, albo człowieka “olejesz” albo poniesiesz konsekwencje zbudowania strony na WP. Z drugiej strony, są strony które stoją latami jeszcze na wp w wersji 3.X.X i nic się nie dzieje, czasem zwyczajnie nie ma reguły, może słabych miejsc na stronie. Benefity z pomocy i uzdrowienia strony mogą być żadne, ale czasem i te lepsze i niż konsekwencje niezadowolonego klienta, coś kosztem czegoś…

A wy jak macie? Pomagacie, porzucacie czy może jak na WordPress to tylko w pakiecie z pomocą techniczną 😀

 

6. Płatne wtyczki są lepsze?

Przykład popularnych wtyczek jak np. Revolution Slider pokazuje że nie do końca, ale wtyczki płatne są zdecydowanie mniej hakowane, bynajmniej tak wynika z naszych obserwacji.

To nie znaczy teraz że wszystko kupisz i gra, bo jak wspomniałem niektóre wtyczki płatne wraz z ich rozwojem posiadają luki, i to jakoś specjalnie mnie nie dziwi. Nawet nie dziwi mnie to że instalacja Revolution Slider obecnie to ryzyko że wejdzie nam na stronie jakieś robactwo. No ale co by nie mówić, to baardzo często stosowana wtyczka na stronach (naszych też – nie jesteśmy tu wyjątkiem).

 

7. Hosting – Współdzielony / VPS / Dedyk / Cloud

Wow to chyba jeden z najistotniejszych elementów, odpowiedni hosting to połowa sukcesu. Mam tu na myśli hosting (firmę hostingową) który:

  • zabezpiecza od kilku do kilkunastu kopii plików stron i trzyma je do miesiąca czasum
  • jest szybki i zoptymalizowany pod WordPressa (oprócz innych parametrów istotne są dyski SSD lub NVMe które znacznie zwiększą ilość operacji na sekundę IOPS),
  • daje rozszerzone możliwości cache’owania np. dodatkowy mechanizm Memcached lub Redis – fajne, ale nie “musthave”, na pewno nie przydaje się zawsze,
  • daje możliwości generowania darmowego certyfikatu let’s encrypt
  • daje dostęp do konsoli ssh (nie wszystkie współdzielone hostingi to mają)
  • ale przede wszystkim, SUPPORT – jest pomocny w czasie kiedy tego potrzebujesz. Są firmy hostingowe gdzie po założeniu ticketu, musisz czekać nawet 48h – to najczęściej wieczność jeśli się coś dzieje.

Powiesz pfff, ja i moja firma mamy tylko VPS, albo dedykowane rozwiązania, no tak, ale o ile serwer nie stoi za szafą w przedpokoju tylko jest w DC to jest jakiś support. Wiadomo, że odpowiedzialność i możliwości rosną w miarę tego co mamy i jakie mamy parametry ów rozwiązania, ale jak jesteśmy firmą która ma kilkadziesiąt małych stron na serwerze to warto rozproszyć domeny po różnych serwerach, my korzystamy z:

  • Linuxpl.com – shared
  • Home.pl – shared
  • Nazwa.pl – shared & VPS
  • OVH – shared & VPS & dedicated
  • EXEA – Cloud
  • Atman – dedicated

Z niektórych jesteśmy bardziej lub mniej zadowoleni no ale to już chyba subiektywne odczucia, na opisywanie szerzej hostingów zarezerwujemy sobie kolejny wpis.

Dobrym rozwiązaniem jest skorzystanie z usługi CDN – Content Delivery Network takich jak np. Cloudflare, które to skrócą czas potrzebny do połączenie się ze stroną poprzez replikację strony na umieszczonych na całym świecie serwerach. Nawet jeśli jeden serwer lub grupa padnie, to są inne które odbiorą ruch. To rozwiązanie jest korzystne również ze względów jak ochrona DDOS, firewall, czy choćby kompresja plików.

 

Reasumując:

  1. Wybierz odpowiedni hosting – jest ich sporo – polecamy do sprawdzenia linuxpl.com <- nie płacą nam za to 🙂
  2. Stosuj nieszablonowe hasła
  3. Zabezpieczaj się wtyczką – polecamy ithemes security
  4. Zoptymalizuj WP powyższą wtyczką i pozmieniaj nazwy folderów
  5. Limituj nieprawidłowe logowania, banuj automatycznie login “admin”
  6. Przenieś prawdziwy plik wp-config.php w inne miejsce i nadaj prawa “Tylko do odczytu” (wiemy że czasem pliki mimo wszystko są nadpisywane, ale warto to zrobić)
  7. Wyłącz korzystanie z xml-rpc – trackbacki, linkbacki, ten interfejs jest głównie wykorzystywany do ataków hakerskich na WP.
  8. Ustaw automatyczny backup kilku wersji plików i baz danych np. 7-14 wersji co dwa dni lub codziennie(zależy ile masz miejsca na serwerze)
  9. Aktualizuj lub automatyzuj aktualizację
  10. Stosuj minimalizm w wtyczkach – im mniej tym lepiej.

 

Zawirusowani? Co robić, jak czyścić… To i wiele innych tipów w następnym wpisie.

Zapisz się do newslettera i nie przegap!