Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Zhakowana strona: rozpoznawanie, naprawa i zapobieganie

Moduł 7: Bezpieczeństwo · Czas czytania: 10 minut

Cel lekcji: Po tej lekcji będą Państwo potrafili rozpoznać włamanie, naprawić je w odpowiedniej kolejności i zapobiec jego ponownemu wystąpieniu.

Kluczowe pojęcia: sygnały włamania, dokumentowanie, izolacja, wymiana wszystkich haseł i kluczy (salts), znalezienie wejścia, logi, czysta kopia zapasowa, czysta reinstalacja, sumy kontrolne, nieznani administratorzy, PHP w katalogu uploads, mu-plugins, Search Console, zgłoszenie naruszenia danych

Czym jest włamanie

Strona jest zhakowana, jeśli ktoś bez pozwolenia przejął kontrolę nad (częścią) Państwa strony: może zmieniać pliki lub bazę danych albo uruchamiać kod. Często pozostaje w systemie dzięki tylnej furtce (backdoor): ukrytemu plikowi lub fragmentowi kodu, dzięki któremu może wrócić później, nawet jeśli zamkną Państwo pierwotną lukę.

To ostatnie jest sednem tej lekcji: samo usunięcie widocznych szkód nie wystarczy. Dopóki tylna furtka istnieje lub luka, przez którą nastąpiło włamanie, jest otwarta, sytuacja powtórzy się. Często w ciągu kilku dni.

Rozpoznawanie

Sygnały (niektóre widać od razu, innych trzeba szukać):

  • Google zgłasza przy Państwa stronie komunikat „Ta witryna może być zhakowana” lub Search Console zgłasza problem z bezpieczeństwem.
  • W wynikach wyszukiwania (site:example.com) pojawiają się strony, których Państwo nie znają, często w innym języku lub dotyczące leków, hazardu albo fałszywych sklepów.
  • Odwiedzający są przekierowywani, często tylko wtedy, gdy trafiają na stronę z Google lub z telefonu. Państwo tego nie widzą, ponieważ są zalogowani lub wchodzą przez zakładkę. Proszę przetestować to w oknie prywatnym, wchodząc przez wynik wyszukiwania.
  • W sekcji Użytkownicy widnieje administrator, którego Państwo nie znają.
  • W katalogu wp-content/uploads znajdują się pliki PHP albo w katalogu głównym lub w wp-content/mu-plugins są pliki o dziwnych nazwach.
  • Dostawca hostingu lub skaner złośliwego oprogramowania zgłasza zainfekowane pliki; Państwa poczta jest odrzucana albo konto wysyła spam.
  • Strona nagle działa wolno albo kończy się dostępna przestrzeń dyskowa.

Plan działania krok po kroku

1. Zachować spokój i udokumentować

Proszę nie usuwać od razu wszystkiego. Proszę zanotować, co Państwo widzą i od kiedy, zrobić zrzuty ekranu oraz sporządzić kopię obecnego stanu (plików i bazy danych, lub dodatkową kopię zapasową za pośrednictwem dostawcy hostingu). Ta kopia będzie potrzebna do znalezienia wejścia oraz jako dowód. Proszę nie umieszczać jej w katalogu strony internetowej.

2. Zatrzymać szkody dla odwiedzających

Proszę tymczasowo wyłączyć stronę lub ukryć ją za stroną konserwacji, zwłaszcza jeśli odwiedzający są przekierowywani do złośliwego oprogramowania lub phishingu. W DirectAdmin można zawiesić domenę; w innych panelach może pomóc hasło na całą stronę lub tymczasowy plik index.html z komunikatem.

3. Wymienić wszystkie hasła i klucze

Proszę założyć, że włamywacz zna każde hasło, które można było znaleźć na stronie lub za jej pośrednictwem. Proszę wymienić je, najlepiej z innego (czystego) komputera:

  • hasło do panelu hostingowego oraz wszystkich kont FTP i SFTP (proszę usunąć konta, z których Państwo nie korzystają);
  • hasło użytkownika bazy danych i zaktualizować je w wp-config.php;
  • hasła wszystkich administratorów WordPress oraz usunąć konta, których Państwo nie rozpoznają;
  • klucze i salty w wp-config.php (lekcja 1.3). Dzięki temu wygasają wszystkie ciasteczka logowania, także te włamywacza;
  • hasła aplikacji (lekcja 3.3) oraz klucze API połączeń;
  • hasła do poczty e-mail, jeśli przez skrzynkę pocztową wysyłano spam.

Następnie proszę włączyć uwierzytelnianie dwuskładnikowe wszędzie (lekcja 7.3).

4. Znaleźć wejście

Bez znajomości sposobu wejścia nie można mieć pewności, że luka jest zamknięta. Najczęstsze przyczyny (lekcja 7.1) i miejsca, gdzie szukać:

  • Nieaktualna wtyczka lub motyw: które elementy były nieaktualne? Proszę sprawdzić nazwy w bazie danych podatności (lekcja 5.3).
  • Wyciek hasła: proszę sprawdzić historię logowania w panelu hostingowym i w FTP.
  • Logi serwera WWW: proszę poszukać w okolicach momentu, gdy pojawiły się pierwsze dziwne pliki, żądań POST do nieznanych plików lub plików wtyczek, często z tego samego adresu IP.
  • Pliki według daty: proszę posortować w Menedżerze Plików lub przez SFTP według daty modyfikacji. Pliki zmienione w tym samym momencie, zwłaszcza poza aktualizacją, zasługują na uwagę.

5. Czyszczenie

Dwa sposoby, często stosowane razem:

A. Przywrócenie czystej kopii zapasowej sprzed włamania (lekcja 8.2). Proszę wybrać kopię zapasową na pewno sprzed pierwszych sygnałów, ponieważ włamywacze czasem czekają tygodniami. Proszę przywrócić ją w całości, tak aby zniknęły również dodane pliki. Następnie proszę natychmiast wszystko zaktualizować (inaczej luka pojawi się ponownie). Wada: wszystko, co powstało po dacie kopii zapasowej (wpisy, zamówienia), zostanie utracone.

B. Czysta odbudowa z zachowaniem istniejącej treści:

  1. Proszę zastąpić sam WordPress świeżą kopią z wordpress.org (wp-admin, wp-includes oraz pojedyncze pliki; nie wp-content i wp-config.php). Za pomocą WP-CLI można najpierw sprawdzić, co zostało zmienione:
wp core verify-checksums
wp plugin verify-checksums --all

Polecenia te porównują Państwa pliki z wersjami oficjalnymi i zgłaszają każdy zmieniony lub dodatkowy plik (drugie polecenie dotyczy tylko wtyczek z katalogu wtyczek wordpress.org).

  1. Proszę usunąć wszystkie wtyczki i motywy oraz zainstalować je ponownie ze źródła, w najnowszej wersji. To, czego Państwo nie potrzebują, nie powinno wracać.
  2. Proszę sprawdzić wp-content/uploads pod kątem plików PHP i innych plików niebędących plikami multimedialnymi oraz wp-content/mu-plugins.
  3. Proszę sprawdzić plik .htaccess pod kątem dziwnych reguł przekierowań oraz wp-config.php pod kątem nieznanych wpisów.
  4. Proszę sprawdzić bazę danych: nieznanych administratorów, opcje siteurl, home i active_plugins w wp_options, oraz przeszukać wpisy pod kątem wstawionych skryptów (znacznik <script z dziwnymi adresami).
  5. Proszę sprawdzić zaplanowane zadania: zadania cron w panelu hostingowym oraz WP-Cron (za pomocą wtyczki lub polecenia wp cron event list).

Skaner złośliwego oprogramowania (od dostawcy hostingu lub w formie wtyczki) pomaga w wyszukiwaniu, ale nie należy mu bezgranicznie ufać: to, czego nie znajdzie, nadal może tam być.

6. Zamknięcie luki i kontrola

  • Proszę zaktualizować wszystko, wzmocnić zabezpieczenia (lekcja 7.4) i ponownie włączyć stronę.
  • Czy Państwa strona jest oznaczona przez Google jako niebezpieczna? Proszę poprosić w Search Console, w sekcji Problemy z bezpieczeństwem, o ponowną ocenę, ale dopiero gdy wszystko jest już czyste.
  • Proszę obserwować kolejne tygodnie: nowe pliki, nowych administratorów, powiadomienia skanera. Jeśli problem powróci, oznacza to, że wejście lub tylna furtka nie zostały jeszcze znalezione.

Dane osobowe: zgłoszenie naruszenia danych

Jeśli włamywacze mieli dostęp do danych osobowych (danych klientów sklepu internetowego, zgłoszeń z formularzy, list członków, użytkowników strony), mamy wówczas do czynienia z naruszeniem ochrony danych osobowych w rozumieniu RODO. Takie naruszenie należy zgłosić w ciągu 72 godzin od jego wykrycia do właściwego organu nadzorczego ds. ochrony danych osobowych, chyba że jest mało prawdopodobne, by stanowiło ryzyko dla osób, których dane dotyczą (art. 33 RODO). Jeśli ryzyko jest wysokie, należy również bezpośrednio poinformować te osoby (art. 34). W każdym przypadku proszę udokumentować, co się wydarzyło i jakie działania Państwo podjęli, nawet jeśli nie dokonują Państwo zgłoszenia. W razie wątpliwości proszę zapoznać się z wytycznymi organu nadzorczego właściwego dla Państwa kraju (lekcja 9.3).

Proszenie o pomoc

Czyszczenie strony po włamaniu wymaga czasu i doświadczenia. Jeśli nie mają Państwo pewności, czy wszystko zostało naprawione, proszę poprosić o pomoc: swojego twórcę strony, wyspecjalizowaną firmę lub dostawcę hostingu (niektórzy dostawcy, w tym WebOké, oferują taką usługę, zwykle odpłatnie). Proszę przekazać im kopię z kroku 1, informacje o tym, co Państwo zaobserwowali i kiedy, oraz co już zostało zrobione.

Podsumowanie

  • Włamanie często pozostawia tylną furtkę; samo usunięcie widocznych szkód nie wystarczy.
  • Kolejność działań: udokumentowanie, ochrona odwiedzających, wymiana wszystkich haseł i saltów, znalezienie wejścia, czyszczenie, zamknięcie luki i kontrola.
  • Czyszczenie można przeprowadzić za pomocą czystej kopii zapasowej sprzed włamania lub przez świeżą instalację WordPressa, wtyczek i motywów oraz sprawdzenie katalogu uploads, mu-plugins, pliku .htaccess i bazy danych.
  • Polecenie wp core verify-checksums pokazuje, które pliki WordPressa zostały zmienione.
  • Jeśli doszło do naruszenia danych osobowych, proszę zgłosić je w ciągu 72 godzin do właściwego organu nadzorczego, chyba że ryzyko jest mało prawdopodobne.

Quiz

1. Przywracają Państwo kopię zapasową sprzed wczoraj i strona jest znowu czysta. Dlaczego problem może powrócić w ciągu kilku dni?



2. Dlaczego po włamaniu wymienia się również klucze i salty w wp-config.php?



3. Co robi polecenie wp core verify-checksums?



4. W wyniku włamania do Państwa sklepu internetowego, intruzi uzyskali dostęp do danych zamówień klientów. Co mówi RODO?



5. Odwiedzający zgłaszają, że z Google trafiają na fałszywy sklep, ale gdy Państwo otwierają stronę, wszystko wygląda normalnie. Jakie jest prawdopodobne wyjaśnienie?



Zadanie

Zadanie D7.5: Plan awaryjny na wypadek włamania. Proszę wypełnić plan awaryjny dla własnej strony, aby nie trzeba było go wymyślać w chwili zagrożenia: gdzie znajdują się Państwa kopie zapasowe i jak daleko sięgają wstecz, kto ma jakie hasła i jak wymienić je wszystkie (lista), gdzie znaleźć logi hostingu, do kogo zadzwonić po pomoc oraz jakie dane osobowe znajdują się na Państwa stronie (na potrzeby oceny, czy należy zgłosić naruszenie danych). Następnie proszę wykonać ćwiczenie: jakie pięć kroków podejmują Państwo w pierwszej godzinie po otrzymaniu komunikatu „Ta witryna może być zhakowana”, w jakiej kolejności i dlaczego właśnie w takiej kolejności?

Zadanie D7.5: Plan awaryjny na wypadek włamania

To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.


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.

Więcej informacji

Poniższe artykuły opisują te kroki w panelach WebOké; w innych panelach działają one w podobny sposób.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…