Luka w stronie firmy: co robić w pierwszych 24 godzinach

Luka w stronie firmy? Plan na 24 godziny: czy Cię dotyczy, kopia, aktualizacja, hasła i logi, zgłoszenie do UODO w 72 godziny i lista do wydruku.

Ilustracja: laptop z otwartą kłódką na ekranie, obok zegar, tarcza i podkładka z listą kontrolną
Ilustracja wygenerowana przez AI

Przychodzi mail od hostingu, ostrzeżenie CERT Polska albo wiadomość od wykonawcy: w oprogramowaniu Twojej strony jest luka i trzeba ją załatać. Luka to błąd w kodzie, przez który ktoś obcy może przejąć stronę, dopisać do niej własny kod albo dostać się do danych klientów. Gdy informacja jest publiczna, znają ją także przestępcy, a podatnych stron szukają automatami. Odkładanie sprawy na przyszły tydzień jest więc ryzykowne.

Poniżej masz plan na pierwszą dobę w kolejności, która chroni przed typowymi błędami: sprawdzenie, kopia, poprawka, hasła i ślady, a na końcu ocena wycieku danych i zgłoszenia. Większość kroków zrobisz bez programisty, a przy reszcie podpowiadam, co zlecić hostingowi albo wykonawcy. Piszę o stanie na 7 listopada 2026 r. Fragmenty o RODO i ustawie o KSC to ogólna informacja, a nie porada prawna.

Godziny w nagłówkach są orientacyjne. Jeśli od początku podejrzewasz, że ktoś dostał się do danych klientów, przeczytaj od razu część o UODO, bo termin 72 godzin liczy się od stwierdzenia naruszenia.

Godziny 0–2: sprawdź, czy luka dotyczy Twojej strony

Zanim cokolwiek zmienisz, ustal trzy rzeczy: jakiego oprogramowania dotyczy luka, w jakich wersjach i od której wersji jest poprawka. Bierz je z komunikatu producenta (np. php.net, nodejs.org, strona wtyczki w katalogu WordPress.org) albo z bazy uznanej firmy, przy wtyczkach na przykład Wordfence lub Patchstack. Artykuły w mediach często upraszczają numery wersji.

Potem porównaj to ze swoją stroną:

  • WordPress: w kokpicie wejdź w Narzędzia → Stan witryny → Informacje. Znajdziesz tam wersję WordPressa, PHP, motywu i wtyczek. Wersje wtyczek widać też na liście w menu Wtyczki.
  • Hosting współdzielony: wersję PHP pokazuje panel hostingu, zwykle w ustawieniach domeny albo PHP.
  • Strona pisana na zamówienie, na przykład w Next.js albo Node.js: zapytaj wykonawcę. Gotową wiadomość znajdziesz niżej.

Jak ustalić, na czym działa strona, gdy nikt w firmie tego nie wie, opisuję w poradzie o sprawdzaniu wersji PHP, CMS i wtyczek.

Sprawdź też, czy luka jest atakowana w praktyce. Amerykańska agencja CISA prowadzi katalog KEV, czyli listę luk, które wykorzystano w prawdziwych atakach. Jeśli numer CVE z komunikatu tam jest, przyspiesz wszystkie kolejne kroki. Dodatkowo w serwisie moje.cert.pl, prowadzonym przez CERT Polska, możesz zlecić bezpłatne skanowanie swojej domeny. To nie zastąpi sprawdzenia wersji, ale bywa dobrą drugą parą oczu.

Godzina 2: kopia zapasowa przed zmianami

Aktualizacja w pośpiechu potrafi wyłączyć sklep albo formularz. Dlatego przed każdą zmianą zrób kopię plików i bazy danych i pobierz ją poza serwer. Kopia trzymana tylko w panelu hostingu może zniknąć razem ze stroną.

Opisz kopię datą i godziną, na przykład PRZED-LATKA-2026-11-07-10-00. Jeśli podejrzewasz, że ktoś już wszedł na stronę, ta kopia jest też dowodem: nie przywracaj jej później jako „czystej” wersji. Dlaczego jedna kopia to za mało i jak sprawdzić przywracanie, opisuję w poradzie o kopii zapasowej strony i zasadzie 3-2-1.

Godziny 2–6: aktualizacja albo obejście

Najpewniejsza droga to aktualizacja do wersji z poprawką podanej przez producenta. W WordPressie zacznij od wtyczki albo motywu, którego dotyczy luka, a potem zrób pozostałe aktualizacje. Po każdej zmianie sprawdź stronę główną, formularz kontaktowy, a w sklepie cały proces zamówienia.

Gdy poprawki jeszcze nie ma albo nie możesz jej od razu wgrać, zastosuj obejście, czyli tymczasową ochronę opisaną w komunikacie producenta. Może to być wyłączenie wtyczki, wyłączenie jednej funkcji w konfiguracji albo reguła zapory aplikacji (WAF) u hostingu. Obejście daje czas, ale nie zamyka sprawy, więc od razu wpisz do kalendarza termin pełnej aktualizacji.

Wersje z poprawką czasem się zmieniają: producent wydaje kolejną łatkę, gdy pierwsza okazała się niepełna. Przed aktualizacją sprawdź komunikat na stronie producenta jeszcze raz, a nie tylko w notatce sprzed dwóch dni.

Jeśli strona działa na starej wersji PHP albo Node.js, która nie dostaje już poprawek bezpieczeństwa, łatki dla niej może w ogóle nie być. Wtedy aktualizacja oznacza przejście na nowszą wersję. To większa zmiana, którą warto zlecić osobie technicznej, ale nie odkładaj jej.

Godziny 6–12: konta, hasła, logi i nowe pliki

Aktualizacja zamyka drzwi, ale nie mówi, czy ktoś wszedł przed Tobą. Dlatego sprawdź ślady.

Konta administratorów. W WordPressie otwórz Użytkownicy i wybierz rolę Administrator. Każde konto, którego nikt w firmie nie rozpoznaje, to sygnał alarmowy: zapisz login, e-mail i datę utworzenia, a dopiero potem je usuń. Przejrzyj też użytkowników panelu hostingu i Google Search Console.

Hasła. Zmień hasła do panelu strony, hostingu, FTP/SFTP i bazy danych, a także klucze API (np. do płatności albo wysyłki maili), jeśli były zapisane na serwerze. Rób to z komputera, co do którego nie masz wątpliwości, i włącz logowanie dwuetapowe wszędzie, gdzie się da.

Logi. Poproś hosting o logi dostępu i błędów od dnia ujawnienia luki, zanim zostaną nadpisane. Szukaj powtarzających się zapytań do adresów, których dotyczy luka, i logowań do panelu z nieznanych adresów IP.

Nowe i zmienione pliki. W menedżerze plików posortuj pliki po dacie modyfikacji. Podejrzane są zmiany, których nikt nie robił, oraz pliki PHP w katalogach na obrazki (w WordPressie wp-content/uploads).

Jeśli znajdziesz ślady włamania, przejdź do planu z porady Zhakowany WordPress: co robić w pierwszej godzinie. Większość kroków pasuje też do stron na innym oprogramowaniu.

Wyciek danych: UODO, klienci i CERT Polska

Ta część dotyczy sytuacji, gdy ktoś mógł mieć dostęp do danych klientów: zamówień, kont albo wiadomości z formularza. Sama luka, której nikt nie wykorzystał, nie jest jeszcze naruszeniem ochrony danych.

UODO w 72 godziny (art. 33 RODO)

Zgodnie z art. 33 RODO administrator danych zgłasza naruszenie do Prezesa UODO bez zbędnej zwłoki, w miarę możliwości nie później niż w ciągu 72 godzin od jego stwierdzenia. Zgłoszenie nie jest potrzebne, gdy jest mało prawdopodobne, by naruszenie powodowało ryzyko dla praw lub wolności osób. Do zgłoszenia wysłanego po 72 godzinach trzeba dołączyć wyjaśnienie przyczyn opóźnienia.

Zgłoszenie złożysz online przez formularz na biznes.gov.pl, z podpisem profilem zaufanym albo podpisem kwalifikowanym. Gdy termin się kończy, a nie znasz jeszcze wszystkich szczegółów, wyślij zgłoszenie wstępne i uzupełnij je później. Wzór formularza jest na stronie UODO, a w sprawach ogólnych pomaga infolinia urzędu: 606 950 000, w dni robocze od 10 do 14.

Art. 33 ust. 5 RODO wymaga udokumentowania każdego naruszenia, także takiego, którego nie zgłaszasz do UODO: co się stało, jakie są skutki i co zrobiono. Notatki prowadzone według tego planu są dobrym początkiem. Ocenę ryzyka w konkretnej sprawie skonsultuj z prawnikiem albo inspektorem ochrony danych.

Powiadomienie klientów (art. 34 RODO)

Gdy naruszenie może powodować wysokie ryzyko dla klientów, na przykład wyciekły hasła do ich kont, art. 34 RODO wymaga zawiadomienia samych osób, także bez zbędnej zwłoki. Pisz jasnym, prostym językiem: co się stało, jakie mogą być skutki, co już zrobiono i do kogo pisać z pytaniami. Wzór poniżej dopasuj do faktów i wpisz tylko to, co wiesz na pewno:

Dzień dobry, [data] wykryliśmy nieuprawniony dostęp do naszej strony internetowej. Mogły zostać ujawnione imię, nazwisko, adres e-mail i numer telefonu podane przy zamówieniu. Zamknęliśmy lukę, zmieniliśmy hasła i zgłosiliśmy sprawę do UODO. Prosimy o ostrożność wobec wiadomości, które powołują się na Państwa zamówienie i proszą o dopłatę albo dane logowania: nie wysyłamy takich próśb. Pytania prosimy kierować na adres [e-mail].

CERT Polska

Incydent możesz zgłosić do CERT Polska przez formularz incydent.cert.pl. Zespół działa w NASK i obsługuje zgłoszenia także od firm, które nie podlegają ustawie o KSC. To nie zastępuje zgłoszenia do UODO: to dwie różne instytucje i dwa różne cele.

NIS2 i ustawa o KSC

Jeśli Twoja firma jest podmiotem kluczowym albo ważnym w rozumieniu ustawy o krajowym systemie cyberbezpieczeństwa znowelizowanej w 2026 r. (Dz.U. 2026 poz. 252), obowiązują ją osobne terminy zgłaszania incydentów poważnych do właściwego zespołu CSIRT, w tym wczesne ostrzeżenie najpóźniej w ciągu 24 godzin od wykrycia. Większość małych firm tej ustawie nie podlega. Jak to sprawdzić, opisuję w poradzie Kogo dotyczy NIS2?

Co zlecić hostingowi i wykonawcy

Hosting i wykonawca często mają to, czego Ty nie masz: logi serwera, dostęp techniczny i kopie z ostatnich dni. Kto za co odpowiada, zależy od rodzaju hostingu i umowy, o czym piszę w poradzie o tym, kto odpowiada za aktualizację strony. W pierwszej dobie poproś o konkretne rzeczy, najlepiej mailem, żeby został ślad:

Dzień dobry, w związku z luką [nazwa i numer CVE] proszę o: 1) informację, czy strona [adres] używa podatnej wersji i kiedy zostanie zaktualizowana; 2) kopię plików i bazy sprzed aktualizacji; 3) logi dostępu i błędów od [data ujawnienia luki]; 4) informację, czy widać ślady wykorzystania luki. Proszę o odpowiedź dziś do godziny [godzina].

Jeśli hosting albo wykonawca przetwarza dane Twoich klientów w Twoim imieniu, art. 33 ust. 2 RODO zobowiązuje go do zawiadomienia Cię o naruszeniu bez zbędnej zwłoki. Decyzja o zgłoszeniu do UODO należy jednak do Ciebie jako administratora, więc nie czekaj biernie na ich ocenę.

Lista kontrolna na 24 godziny do wydruku

Wydrukuj ją i trzymaj razem z danymi do hostingu. Przy każdym punkcie zapisz godzinę i osobę, która go wykonała.

  1. Mam komunikat producenta: nazwa oprogramowania, podatne wersje, wersja z poprawką, numer CVE.
  2. Wiem, jakiej wersji używa moja strona i czy luka jest w katalogu KEV.
  3. Kopia plików i bazy jest pobrana poza serwer i opisana datą.
  4. Poprawka jest wgrana albo obejście włączone, a termin pełnej aktualizacji jest w kalendarzu.
  5. Strona, formularz i zamówienia działają po zmianach.
  6. Lista administratorów sprawdzona, nieznane konta zapisane i usunięte.
  7. Hasła i klucze API zmienione, logowanie dwuetapowe włączone.
  8. Logi i nowe pliki przejrzane albo zlecone hostingowi.
  9. Ocena, czy mogły wyciec dane osobowe. Jeśli tak: zgłoszenie do UODO w 72 godziny i decyzja o powiadomieniu klientów.
  10. Notatka z przebiegu zdarzenia zapisana.
  11. Decyzja o zgłoszeniu do CERT Polska.

Podsumowanie

Kolejność ma znaczenie: najpierw ustal, czy luka Cię dotyczy, potem kopia, poprawka, hasła i ślady, a na końcu ocena wycieku i zgłoszenia. Zapisuj wszystko na bieżąco, bo te notatki przydadzą się i urzędowi, i wykonawcy.

Jeśli wolisz, żeby ktoś pilnował tego za Ciebie, wybierz opiekę techniczną. W pakiecie Czuwanie (od 149 zł netto miesięcznie) monitoruję stronę co 5 minut, co tydzień robię kopię poza serwerem, a pilne aktualizacje bezpieczeństwa wgrywam w 2 dni. Standard (od 349 zł netto miesięcznie) to codzienne kopie i reakcja w 1 dzień roboczy, a Pro (od 749 zł netto miesięcznie) to reakcja w 4 godziny, przy awarii także w weekend. Po incydencie warto zamówić audyt bezpieczeństwa z raportem i poprawkami, od 990 zł netto. Gdy luka dotyczy Twojej strony już teraz, napisz do mnie: odpowiadam w 24 godziny.

Najczęstsze pytania

Usługi związane z tematem

Masz podobny projekt?

Opisz, czego potrzebujesz, a w 24 godziny odeślę wycenę. Nowi klienci dostają 20% rabatu na pierwsze zlecenie.

Wyceń projektUmów rozmowę (20 min)

Czytaj dalej