W tym artykule

Autor: Urszula Ćwiklińska
Ten artykuł jest drugim z serii artykułów na temat stron internetowych. Tym razem poruszam temat bezpieczeństwa.

Są takie dni, kiedy potencjalny klient prosi mnie o podesłanie linków do ostatnich realizacji. Tak było i tym razem.

Chciałam pokazać stronę, którą skończyłyśmy jakiś czas temu, ale jeszcze nie dodałam jej jeszcze do firmowego portfolio. Wchodzę na stronę… a tam zonk.

Zamiast witryny z sympatyczną twarzą właściciela, widzę film, który na pewno nie powinien się tam znaleźć, i automatyczne przekierowanie na zupełnie nieznany mi adres.

Szybkie logowanie do WordPressa, trochę dłuższa analiza i… na pierwszy rzut oka wszystko wyglądało normalnie. W kodzie strony głównej nie znalazłam żadnych podejrzanych linków ani śladów po wspomnianym filmie. Nie było również żadnych błędów ani komunikatów, które mogłyby wskazywać na problem. Gdyby nie przekierowanie widoczne przed zalogowaniem, uznałabym, że wszystko działa prawidłowo.

Niepozorna wtyczka, poważny problem

W takich sytuacjach nie ma miejsca na pośpiech ani improwizację. Zawsze trzymam się tej samej checklisty. W tym przypadku zaczęłam od wykonania kopii zapasowej strony, a następnie po kolei sprawdzałam zainstalowane wtyczki, użytkowników, pliki motywu i dostępne logi.

Na liście zainstalowanych wtyczek znalazłam WPCode – wtyczkę, której na pewno nie instalowałam. To właśnie ona od razu zwróciła moją uwagę.

Po wejściu w ustawienia zobaczyłam dwa snippety – fragmenty kodu wykonywane w nagłówku i stopce strony przy każdym jej wyświetleniu. Żeby upewnić się, co dokładnie robią, przeanalizowałam je przy pomocy jednego z modeli językowych. Analiza potwierdziła moje przypuszczenia. Pierwszy snippet pobierał z internetu złośliwy skrypt JavaScript i przekierowywał użytkowników na nieznane witryny. Drugi był jeszcze groźniejszy – umożliwiał uruchamianie dowolnego kodu PHP bezpośrednio na serwerze, a następnie usuwał po sobie ślady.

Innymi słowy – ktoś nie tylko wyprowadzał ruch ze strony, ale również zostawił sobie otwartą furtkę, żeby w każdej chwili móc wrócić.

To jednak nie był koniec niespodzianek. Na liście użytkowników znalazłam nowe konto, którego nikt nie zakładał.

Najgorsze w tym wszystkim jest to, że gdyby nie moja chęć pochwalenia się realizacją, zarówno ja, jak i właściciel strony mogliśmy jeszcze długo niczego nie zauważyć. W trybie administratora wszystko działało całkowicie normalnie – strona funkcjonowała bez zarzutu, nie było żadnych komunikatów o błędach ani innych sygnałów, że coś jest nie tak. I właśnie dlatego takie sytuacje są niebezpieczne. Większość współczesnych ataków nie polega na zniszczeniu witryny. Często ich celem jest po prostu uzyskanie cichego dostępu, który będzie wykorzystywany w tle przez długi czas.

Nie udało mi się ustalić, w jaki sposób włamywacz uzyskał dostęp do strony. Mogła to być podatna wtyczka, słabe hasło albo inne zaniedbanie. W praktyce często nie da się tego jednoznacznie ustalić, dlatego po takim incydencie warto założyć, że trzeba sprawdzić wszystko.

Tryb ratunkowy – moja akcja krok po kroku

Co zrobić, gdy odkryjesz taki atak? Pierwsza zasada – nie panikuj. Druga – działaj według planu. Chaos jest Twoim największym wrogiem.

Moja akcja ratunkowa wyglądała tak:

  • Usunęłam wtyczkę WPCode wraz ze wszystkimi złośliwymi snippetami.
  • Usunęłam nieautoryzowane konto użytkownika utworzone prawdopodobnie przez włamywacza.
  • Zmieniłam hasła do wszystkich kont WordPressa, bazy danych oraz FTP.
  • Sprawdziłam pliki functions.php, wp-config.php i .htaccess.
  • Zaktualizowałam WordPressa, motywy oraz wszystkie zainstalowane wtyczki.
  • Zainstalowałam i skonfigurowałam wtyczkę, która powiadamia o nowych logowaniach do panelu administracyjnego.
  • Sprawdziłam, czy domena nie została oznaczona przez Google jako niebezpieczna.

Po wykonaniu wszystkich tych działań strona znów śmigała jak trzeba. To jednak nie oznacza, że temat bezpieczeństwa można uznać za zamknięty.

Kto poluje na Twojego WordPressa?

Nie myśl, że Twoja strona jest mała i taki atak Cię nie dotyczy. Najczęściej nie robi tego człowiek, tylko boty, które przez całą dobę skanują internet w poszukiwaniu podatności. Dla nich nie ma znaczenia, czy prowadzisz sklep z ebookami, stronę kancelarii czy niewielki blog. One po prostu szukają słabych punktów – nieaktualnych motywów, wtyczek, słabych haseł.

A skoro mowa o hasłach… Taka anegdotka ode mnie apropos haseł i nazw użytkowników. Ostatnio na Messengerze odezwała się do mnie dziewczyna, która chciała poprawić widoczność swojej strony. Bez głębszego wnikania dała mi po prostu dostęp do swojej witryny. Nie byłoby w tym nic dziwnego, gdyby nie to, że w trakcie rozmowy wyszło na jaw, że wcześniej dawała ten sam login i hasło kilku innym osobom i po zakończeniu ich pracy ani razu go nie zmieniła. Mało tego, login i hasło były typowo słownikowe, coś w stylu „admin” i „haslo123”. To tak, jakby zostawić otwarte drzwi do domu, powiesić na nich klucz, a później dziwić się, dlaczego ktoś się rozgościł.

Dzisiaj samo mocne hasło to jednak często za mało. Jeśli tylko masz taką możliwość, włącz uwierzytelnianie wieloskładnikowe (MFA). Dzięki temu nawet jeśli ktoś pozna Twój login i hasło, nie zaloguje się do panelu WordPressa bez dodatkowego kodu z aplikacji uwierzytelniającej. To jedno z najprostszych zabezpieczeń, które potrafi skutecznie utrudnić życie włamywaczom.

Z wtyczkami jest bardzo podobnie. Podczas pracy z klientami regularnie trafiam na wtyczki, które miały być zainstalowane tylko „na chwilę”, do testów albo dla jednej drobnej funkcji. Zostają jednak na stronie miesiącami, a czasem nawet latami. Nikt już z nich nie korzysta, nikt ich nie aktualizuje i… właśnie wtedy stają się łatwym celem dla botów szukających podatności.

Twoje 5 minut dla bezpieczeństwa (checklista)

Stworzenie i publikacja strony internetowej to dopiero początek. Równie ważne jest to, co dzieje się z nią później. Dlatego zachęcam – zaloguj się do swojego WordPressa i poświęćcie pięć minut na sprawdzenie kilku podstawowych kwestii:

  1. Czy WordPress, motyw i wtyczki są aktualne?
  2. Czy na liście użytkowników nie pojawiło się konto, którego nie znacie?
  3. Czy nie ma wtyczek, których sami nie instalowaliście?
  4. Czy korzystacie tylko z tych wtyczek, które są naprawdę potrzebne?
  5. Kiedy ostatnio była wykonywana kopia zapasowa?
  6. (I bonusowo) – kiedy ostatnio zmienialiście hasło i czy na pewno nie brzmi ono „haslo123”?

Nie piszę tego po to, żeby kogokolwiek przestraszyć. Piszę o tym dlatego, że zamiast chwalić się realizacją, spędziłam kilka godzin na analizie złośliwego kodu i ratowaniu witryny. Mam nadzieję, że dzięki tej historii chociaż kilka osób sprawdzi swoją stronę, zanim zrobi to ktoś niepowołany. W sieci zasada ograniczonego zaufania to podstawa.

A jeżeli nie wiesz, jak zabrać się do sprawdzenia działania witryny, poproś kogoś, kto zajmuje się tym na co dzień. Zapraszam do kontaktu :)

Trzymaj się ciepło i… leć sprawdzić swoją stronę!

Zaplecze wizualne, UMS Fusion, Urszula Ćwiklińska, Ana Kaciun

Kim jesteśmy?

Cześć, jesteśmy Ana i Ula. Tworzymy zespół samowystarczalny: razem kreujemy content, tworzymy strony www i zapewniamy klientom wsparcie techniczne. Ogarniamy branding. Pasjonuje nas sztuczna inteligencja i jej zastosowanie w pracy i w życiu. Chcesz współpracować z nami? Umówmy się na bezpłatną konsultację.

Zaplecze wizualne, UMS Fusion, Urszula Ćwiklińska, Ana Kaciun

Kim jesteśmy?

Cześć, jesteśmy Ana i Ula. Tworzymy zespół samowystarczalny: razem kreujemy content, tworzymy strony www i zapewniamy klientom wsparcie techniczne. Ogarniamy branding. Pasjonuje nas sztuczna inteligencja i jej zastosowanie w pracy i w życiu. Chcesz współpracować z nami? Umówmy się na bezpłatną konsultację.