Jak dochodzi do włamań na strony internetowe
Moduł 7: Bezpieczeństwo · Czas czytania: 8 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili w realistyczny sposób wyjaśnić, jak najczęściej dochodzi do włamań na strony WordPress, dlaczego małe strony również są celem i czego włamywacze chcą od nich uzyskać.
Kluczowe pojęcia: podatność, luka we wtyczce lub motywie, automatyczne skanowanie, credential stuffing, brute force, oprogramowanie nulled, zainfekowany komputer, skutki (spam, przekierowanie, phishing, złośliwe oprogramowanie), powierzchnia ataku
"Moja strona jest za mała, żeby była interesująca"
To najczęściej spotykane błędne przekonanie. Niemal żaden atak na WordPressa nie jest wymierzony w konkretną, wybraną stronę. Włamywacze korzystają z programów, które automatycznie przeszukują tysiące stron na godzinę i szukają jednej rzeczy: znanej luki bezpieczeństwa. Jeśli program ją znajdzie, włamuje się, niezależnie od tego, czy strona należy do międzynarodowej korporacji, czy do lokalnego klubu piłkarskiego.
Włamywaczom nie chodzi o Państwa stronę, lecz o to, co ta strona potrafi:
- Spam i nadużycia w wyszukiwarkach: tysiące ukrytych stron lub linków dotyczących leków, hazardu czy fałszywych sklepów, które żerują na dobrej reputacji Państwa domeny w Google.
- Przekierowanie: odwiedzający (często tylko ci z Google lub korzystający z telefonu) są przekierowywani na fałszywą stronę lub stronę oszustów. Państwo niczego nie widzą, ponieważ wchodzą na stronę przez zakładkę.
- Phishing: podrobiona strona logowania banku lub firmy kurierskiej, ukryta w katalogu uploads, z adresem Państwa domeny w linku.
- Rozpowszechnianie złośliwego oprogramowania wśród odwiedzających.
- Wysyłanie poczty: Państwa serwer wysyła spam, a potem Państwa własna poczta przestaje docierać do adresatów.
- Moc obliczeniowa: Państwa pakiet hostingowy jest wykorzystywany do ataków na inne strony lub do kopania kryptowalut.
- Dane: w przypadku sklepu internetowego lub strony dla członków, dane Państwa klientów.
Droga 1: luka we wtyczce lub motywie
To zdecydowanie najważniejsza droga. Według rocznego raportu firmy Patchstack, która śledzi podatności WordPressa, w 2024 roku znaleziono 7.966 nowych podatności w ekosystemie WordPressa. 96% znajdowało się we wtyczkach, 4% w motywach, a w samym WordPressie tylko siedem. Większości luk nie da się łatwo wykorzystać, ale część tak, i te są masowo skanowane w ciągu godzin lub dni od ich ujawnienia.
Schemat jest niemal zawsze taki sam:
- Znajdowana jest luka w wersji 3.2 popularnej wtyczki.
- Twórca wydaje wersję 3.2.1 z poprawką. Luka staje się publiczna.
- W krótkim czasie programy skanują internet w poszukiwaniu stron z wersją 3.2 lub starszą.
- Kto jeszcze nie zaktualizował, zostaje zaatakowany.
Zagrożenie nie tkwi więc w tajnej luce, o której nikt nie wie, lecz w znanej luce, dla której istnieje już aktualizacja, ale nie została zainstalowana. Dlatego aktualizacje (lekcja 7.2) są najważniejszym środkiem zaradczym, a to, czego Państwo nie używają, należy usunąć (lekcja 5.4): każda wtyczka, która tam jest, nawet dezaktywowana, zwiększa Państwa powierzchnię ataku.
Szczególnym przypadkiem są porzucone wtyczki: twórca przestał nad nimi pracować, nie pojawiają się już poprawki. Oraz oprogramowanie nulled (lekcja 5.3): skradziona kopia płatnej wtyczki, często z wbudowanym tylnym wejściem.
Droga 2: hasła
Drugą ważną drogą jest zalogowanie się przy użyciu prawidłowego hasła:
- Credential stuffing: w wyniku wycieku danych z innej usługi ujawnione zostały miliony kombinacji adresu e-mail i hasła. Programy próbują tych kombinacji na różnych stronach, w tym na stronach logowania WordPressa. Jeśli używają Państwo tego samego hasła co w tej wyciekłej usłudze, włamywacze dostaną się na stronę.
- Brute force: program po prostu próbuje bardzo dużej liczby haseł, często z popularnymi nazwami użytkownika, takimi jak
admin. Przy długim, unikalnym haśle nie ma to szans powodzenia, ale obciąża moc obliczeniową Państwa serwera. - Phishing: fałszywy e-mail "Państwa WordPress wymaga aktualizacji, proszę się tu zalogować" z linkiem do podrobionej strony logowania.
Lekcja 7.3 dotyczy obrony: menedżera haseł, uwierzytelniania dwuskładnikowego oraz ograniczania liczby prób logowania.
Droga 3: wszystko wokół WordPressa
Nie każdy atak zaczyna się w WordPressie:
- Zainfekowany komputer Państwa lub Państwa twórcy strony, z programem kradnącym hasła, na przykład hasła zapisane w programie FTP.
- Zwykłe FTP bez szyfrowania, w publicznej sieci.
- Inna strona w tym samym pakiecie: zapomniana stara instalacja testowa, stara instalacja Joomla w podkatalogu. Wszystkie strony w jednym pakiecie zazwyczaj dzielą tego samego użytkownika na serwerze. Jeśli stara strona zostanie zhakowana, włamywacz może dostać się również do Państwa WordPressa.
- Wyciekłe hasło do bazy danych, na przykład przez kopię pliku wp-config.php w katalogu strony (lekcja 1.3).
- Formularze bez zabezpieczeń, które są wykorzystywane do wysyłania spamu.
U dobrego dostawcy hostingu Państwa pakiet jest odizolowany od pakietów innych klientów na tym samym serwerze (na przykład na serwerach DirectAdmin z CloudLinux za pomocą CageFS). To, co dzieje się w obrębie Państwa własnego pakietu, pozostaje jednak Państwa sprawą.
Co Państwo zauważą (a czego nie)
Udanego włamania początkowo się nie zauważa. Włamywacze chcą jak najdłużej korzystać z Państwa strony. Sygnały ostrzegawcze (omówione szerzej w lekcji 7.5):
- Google zgłasza "Ta strona może być zhakowana" lub widzą Państwo w wynikach wyszukiwania dziwne strony z Państwa domeny (proszę wyszukać
site:example.com); - odwiedzający zgłaszają, że trafiają gdzie indziej;
- pojawiają się administratorzy lub pliki, których Państwo nie znają;
- dostawca hostingu lub skaner złośliwego oprogramowania zgłasza coś niepokojącego;
- poczta nagle przestaje docierać do adresatów, albo pakiet jest pełny lub działa wolno.
Obrona warstwowa
Żaden pojedynczy środek zaradczy nie jest szczelny. Bezpieczeństwo to zestaw warstw, dzięki czemu błąd w jednej warstwie nie otwiera od razu wszystkiego:
- Aktualizacje (lekcja 7.2): zamykają znane luki. Zdecydowanie najważniejszy środek.
- Jak najmniej elementów (lekcja 5.3 i 5.4): mniej do aktualizowania, mniej luk.
- Zabezpieczenie logowania (lekcja 7.3): długie, unikalne hasła, uwierzytelnianie dwuskładnikowe, minimalne uprawnienia (lekcja 3.3).
- Utwardzanie zabezpieczeń (lekcja 7.4): uprawnienia, ustawienia i nagłówki, które ograniczają szkody.
- Kopie zapasowe (lekcja 8.1): jeśli mimo wszystko coś pójdzie nie tak, mogą Państwo wrócić do poprzedniego stanu.
- Wiedza, co robić, gdy coś pójdzie nie tak (lekcja 7.5).
Podsumowanie
- Niemal wszystkie włamania są zautomatyzowane i nieukierunkowane; małe strony są tak samo celem jak duże.
- Włamywaczom chodzi o to, co Państwa strona potrafi: spam, przekierowania, phishing, pocztę, moc obliczeniową, dane.
- Największą drogą jest znana luka we wtyczce lub motywie, dla której istniała już aktualizacja (w 2024 roku 96% nowych podatności znajdowało się we wtyczkach).
- Drugą drogą są hasła: ponownie używane, odgadnięte lub wyłudzone.
- Również zainfekowany komputer, zwykłe FTP lub zapomniana stara strona w tym samym pakiecie mogą być drogą ataku. Proszę bronić się warstwowo.
Quiz
Zadanie
Zadanie D7.1: Własna lista ryzyk. Proszę sporządzić listę wszystkiego w Państwa pakiecie hostingowym, co może być drogą ataku: każdej instalacji WordPressa (również testowych i starych stron), każdej wtyczki i każdego motywu (również nieaktywnych), każdego konta z uprawnieniami administratora (WordPress, FTP, panel hostingowy) oraz komputerów, z których odbywa się logowanie. Przy każdym elemencie proszę zapisać: kiedy ostatnio aktualizowano, czy jest jeszcze potrzebny (tak/nie) oraz kto jest za niego odpowiedzialny. Proszę zaznaczyć, które trzy rzeczy uporządkują lub zaktualizują Państwo w tym tygodniu, i zanotować, dlaczego akurat te.
Zadanie D7.1: Własna lista ryzyk
To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.
Proszę wymienić co najmniej jeden element spoza samego WordPressa (panel hostingowy, konto FTP, własny komputer) i wybrać działania, które zamykają furtkę: usunięcie tego, czego się nie używa, aktualizacja, zmiana haseł, włączenie uwierzytelniania dwuskładnikowego (2FA).
Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.
Dalsza lektura
Poniższe artykuły opisują kroki w panelach WebOké; w innych panelach działają one w podobny sposób.
- Pomocy! Moja strona została zhakowana. Jak to naprawić lub temu zapobiec?
- Instrukcja DirectAdmin 18.2: Moja strona została zhakowana: plan działania
- State of WordPress Security in 2025 (Patchstack, po angielsku): https://patchstack.com/whitepaper/state-of-wordpress-security-in-2025/
- Bezpieczeństwo WordPressa (developer.wordpress.org, po angielsku): https://developer.wordpress.org/advanced-administration/security/hardening/
