Raport z audytu bezpieczeństwa WordPress: dowody do zachowania
Jak przygotować raport z audytu bezpieczeństwa WordPress: sześć rejestrów do prowadzenia, dobre dowody, pytania dostawców i ubezpieczyciela oraz szablon.
Także po: English Deutsch Français Español Italiano Português Türkçe
Gdy klient, audytor lub ubezpieczyciel prosi o wykazanie, że Państwa witryna WordPress jest zabezpieczona, odpowiedź „wszystko na bieżąco aktualizujemy" nie wystarczy. Oni oczekują zapisów. Raport z audytu bezpieczeństwa WordPress zbiera te zapisy w jednym dokumencie, który ktoś inny może przeczytać i zweryfikować. W artykule wyjaśniamy, co przechowywać, jak wygląda przydatny wpis i jak utrzymywać dokumentację w aktualności, nie robiąc z tego drugiego etatu.
Dlaczego raport z audytu bezpieczeństwa WordPress ma znaczenie: pokazać, a nie zapewniać
Na gruncie RODO administrator musi umieć wykazać zgodność z przepisami. Samo stosowanie zasad nie wystarcza (art. 5 ust. 2). Art. 32 ust. 1 lit. d wymaga ponadto procesu regularnego testowania, mierzenia i oceniania skuteczności środków bezpieczeństwa. Jeśli taki proces rzeczywiście działa, zostawia po sobie ślad w dokumentach.
Dotyczy to także osób pracujących przy witrynie. Dostawcy hostingu i agencje z dostępem administracyjnym są zazwyczaj podmiotami przetwarzającymi w rozumieniu art. 28. Ich klienci będą więc oczekiwać od nich takich samych dowodów. Jakie powinny być same środki, wyjaśniamy w poradniku o art. 32 RODO w kontekście WordPressa.
Dokumentacja ma swoje granice. Może stanowić dowód, że środki wdrożono, ale sama nie dowodzi, że nadal są skuteczne. Nie zabezpiecza witryny, a same dokumenty nie spełniają obowiązków wynikających z RODO. Nieaktualna dokumentacja bywa gorsza niż jej brak. Polityka kopii zapasowych opisująca wtyczkę, którą usunięto rok temu, mówi audytorowi jedno: zapisów nikt nie pilnuje.
Sześć rejestrów, na które patrzą audytorzy i klienci
1. Inwentarz. Zawiera wersję rdzenia, każdą wtyczkę i motyw wraz z wersją, dostawcę hostingu, wersję PHP oraz używane usługi podmiotów trzecich. Odnotowuje też, jakich danych osobowych dotyczy każdy z tych elementów. Przydatny wpis brzmi np.: „Wtyczka formularza kontaktowego, zapisuje zgłoszenia w bazie danych (imię i nazwisko, e-mail, treść), zgłoszenia usuwane po 90 dniach zgodnie z naszą polityką". Inwentarz aktualizujemy przy każdej zmianie, a co kwartał porównujemy go ze stanem faktycznym.
2. Dziennik aktualizacji. Każdy wiersz zawiera datę, komponent, starą i nową wersję, osobę wykonującą aktualizację oraz informację, czy przebiegła automatycznie. Wpisy dodajemy przy każdej zmianie. Aktualizacje automatyczne też się liczą, ale ktoś powinien potem sprawdzić, czy witryna nadal działa.
3. Raporty ze skanowania. Datowane raporty i zapisy dotyczące działań następczych przechowujemy zgodnie z udokumentowaną polityką retencji, zamiast nadpisywać poprzedni raport. Przy każdym ustaleniu odnotowujemy, jak zostało rozwiązane: naprawione, zaakceptowane z uzasadnieniem albo fałszywy alarm. Raport z dziesięcioma ustaleniami i bez żadnych działań następczych dowodzi tylko tego, że skanowanie się odbyło. Nie pokazuje, że wyciągnięto z niego wnioski.
4. Kopie zapasowe i testy odtwarzania. Zapisujemy harmonogram, miejsce przechowywania kopii, okres ich przechowywania oraz datę i wynik ostatniego testowego odtworzenia. Pomyślnie zakończone zadanie tworzenia kopii nie dowodzi, że odtwarzanie zadziała. Jako praktyczny punkt wyjścia testujmy odtwarzanie co kwartał oraz po większych zmianach; częstotliwość warto dopasować do własnych ryzyk i potrzeb w zakresie odtwarzania. Odtworzone dane osobowe chrońmy w odizolowanym środowisku testowym.
5. Lista dostępów. Notujemy, kto ma jaką rolę, czy dla każdego konta włączono uwierzytelnianie dwuskładnikowe, kiedy ostatnio przeglądano uprawnienia oraz kiedy usunięto dostęp byłym pracownikom lub agencjom. Listę aktualizujemy przy każdej zmianie, a uprawnienia przeglądamy co miesiąc.
6. Rejestr incydentów. Wpisujemy każdy incydent bezpieczeństwa, także naruszenia ochrony danych osobowych, których postanowiono nie zgłaszać. Art. 33 ust. 5 wymaga dokumentowania wszystkich naruszeń: okoliczności, skutków i podjętych działań. Samo zgłaszanie omawiamy w poradniku o 72 godzinach na zgłoszenie naruszenia.
Jak wyglądają dobre dowody (a co się nie liczy)
Dobre zapisy mają cztery cechy:
- Każdy wpis jest opatrzony datą.
- Każdy wpis wskazuje osobę, która go sporządziła.
- Wszystkie wpisy leżą w jednym, spójnym miejscu.
- Powstają w ramach rutyny, a nie są odtwarzane na tydzień przed audytem.
Audytor zwykle potrafi poznać, że dziennik spisano w jedno popołudnie.
Porównajmy dwie wersje tego samego faktu. Słaba: „Regularnie aktualizujemy wtyczki". Mocniejszy wzór: „[data], [wtyczka], [stara wersja] na [nowa wersja], aktualizacja automatyczna, [wykonany test], sprawdził [imię i nazwisko]". Każdy symbol zastępczy należy zastąpić rzeczywistymi danymi. Drugi zapis można zweryfikować i widać po nim nawyk.
Eksporty są lepsze niż zrzuty ekranu. Plik CSV z wersjami wtyczek lub raport skanowania w PDF zachowuje dane i datę. Przycięty zrzut pulpitu niewiele dowodzi i nie da się go przeszukiwać. Zrzutów używajmy tylko dla ustawień, które nie mają eksportu, a datę umieszczajmy w nazwie pliku.
Zapisy przechowujmy poza serwerem WordPress. Jeśli witryna zostanie przejęta, atakujący nie powinien móc zmienić Państwa dowodów, a przy sprzątaniu po incydencie nadal będą Państwu potrzebne. Praktycznym rozwiązaniem może być udostępniony dysk z kontrolą dostępu; warto ograniczyć prawo edycji, włączyć historię wersji i zabezpieczyć go danymi logowania innymi niż do witryny WordPress.
Zachowajmy proporcje. W małej firmie arkusz kalkulacyjny z osobną kartą na każdy rejestr oraz datowany folder z plikami PDF to w zupełności dobry zestaw dowodów. Nikt nie oczekuje platformy do zarządzania nadzorem dla witryny liczącej dziesięć podstron.
Odpowiedzi na kwestionariusze dostawców od klientów objętych NIS2
Agencje, freelancerzy i dostawcy wtyczek dostają kwestionariusze bezpieczeństwa, nawet jeśli NIS2 nie dotyczy ich bezpośrednio. Wynika to z art. 21 ust. 2 lit. d dyrektywy NIS2. Dyrektywa wymaga środków bezpieczeństwa łańcucha dostaw, dlatego klienci mogą żądać dowodów od swoich dostawców. Obowiązujące wymogi wynikają z krajowych przepisów wdrażających, więc należy sprawdzić krajowe przepisy o NIS2 w swoim państwie. To, czy zakresem objęty jest klient albo Państwo, to osobne zagadnienie, które omawiamy w artykule NIS2 a Państwa witryna WordPress.
Pytania różnią się w zależności od klienta i umowy, dlatego trzeba przeczytać konkretny kwestionariusz. Tematy zwykle odpowiadają środkom z art. 21 ust. 2, a każdy z nich wiąże się z rejestrem, który już Państwo prowadzą:
| Obszar pytań | Państwa dowód |
|---|---|
| Obsługa incydentów | Rejestr incydentów |
| Kopie zapasowe, ciągłość działania | Rejestr kopii i testów odtwarzania |
| Obsługa podatności | Dziennik aktualizacji, raporty ze skanowania |
| Kontrola dostępu, MFA | Lista dostępów |
| Szyfrowanie | Inwentarz (TLS, hosting) |
| Zarządzanie aktywami | Inwentarz |
Odpowiadajmy tylko na to, co można udowodnić. Jeśli formularz przewiduje odpowiedź tak/nie, dodajmy krótką notatkę lub zaoferujmy dokument, np.: „Tak, co miesiąc. Trzy ostatnie raporty ze skanowania dostępne na żądanie". Jeśli coś jest wdrożone tylko częściowo, napiszmy o tym wprost. Zawyżona odpowiedź w umowie z dostawcą sama w sobie jest ryzykiem.
Pytania ubezpieczyciela cybernetycznego: te same dowody, ale trzeba przeczytać właściwy formularz
Ubezpieczyciele zadają własne pytania, a ich sformułowania się różnią. Państwa odpowiedzi mogą mieć znaczenie później, przy zgłoszeniu szkody. Odpowiadajmy rzetelnie, przechowujmy datowaną kopię dokładnie tego, co zostało przesłane, i weryfikujmy odpowiedzi, gdy zmienia się konfiguracja. Przykładem takich zmian jest nowy dostawca hostingu albo rezygnacja z wymogu 2FA.
Typowe tematy, takie jak kopie zapasowe, uwierzytelnianie wieloskładnikowe i instalowanie poprawek, odpowiadają tym samym sześciu rejestrom. Czego wymaga konkretna polisa i jak odpowiedzi wpływają na zakres ochrony, wynika z treści polisy i warto o to zapytać brokera.
Jak utrzymywać dokumentację w aktualności bez dodatkowej pracy
Poniższy harmonogram to praktyczny punkt wyjścia, a nie minimum ustawowe. Należy dostosować go do własnych ryzyk, tempa zmian i wymogów umownych:
| Kiedy | Co aktualizować |
|---|---|
| Przy każdej zmianie | Dziennik aktualizacji, lista dostępów |
| Co miesiąc | Raporty ze skanowania, przegląd dostępów |
| Co kwartał | Test odtwarzania, kontrola inwentarza |
| Co rok | Pełny przegląd, zatwierdzenie przez kierownictwo |
Roczny przegląd powinna zatwierdzić osoba z odpowiednimi uprawnieniami. W przypadku podmiotów objętych krajowymi przepisami o NIS2 art. 20 wymaga, aby organy zarządzające zatwierdzały środki zarządzania ryzykiem w cyberbezpieczeństwie, nadzorowały ich stosowanie i odbywały szkolenia. Sam coroczny podpis nie świadczy o bieżącym nadzorze; warto przechowywać zapisy decyzji, przeglądów i działań następczych.
Eksporty warto zautomatyzować. Dzięki WP-CLI miesięczne zadanie cron na serwerze albo skrypt uruchamiany z własnego komputera może tworzyć datowane pliki:
wp core version > core-$(date +%F).txt
wp plugin list --format=csv > plugins-$(date +%F).csv
wp theme list --format=csv > themes-$(date +%F).csv
wp user list --role=administrator --format=csv > admins-$(date +%F).csv
Polecenia uruchamiajmy z katalogu poza głównym katalogiem serwera WWW (web root), wskazując WP-CLI witrynę parametrem --path=/path/to/wordpress, aby eksporty nigdy nie były publicznie dostępne. Następnie kopiujmy je do miejsca przechowywania dowodów. Eksport administratorów zawiera adresy e-mail, więc należy traktować go jak dane osobowe.
Raporty ze skanowania trafiają do tego samego folderu. Wtyczka Security Audit & Compliance z secaudit.eu eksportuje raport i plik CSV z ustaleniami przypisanymi do art. 32 RODO, art. 21 NIS2 i OWASP Top 10:2025, które można od razu złożyć w folderze z dowodami. Taki raport pokazuje, że kontrola się odbyła i co wykazała, nic więcej. Środki stojące za poszczególnymi rejestrami opisujemy w naszej liście kontrolnej bezpieczeństwa WordPress.
Szablon: struktura raportu z audytu bezpieczeństwa WordPress
Wystarczy skopiować tę strukturę i uzupełnić ją danymi z sześciu rejestrów:
- Zakres i data: której witryny (witryn) dotyczy raport, za jaki okres, kto go sporządził.
- Witryna i osoby odpowiedzialne: właściciel, kontakt techniczny, podmioty przetwarzające (hosting, agencja) i status umów powierzenia przetwarzania danych (art. 28).
- Podsumowanie inwentarza: rdzeń, PHP, liczba wtyczek i motywów, usługi podmiotów trzecich, przetwarzane dane osobowe.
- Wdrożone środki, przypisane do art. 32 ust. 1 lit. a–d: szyfrowanie; poufność, integralność i dostępność; zdolność do odtworzenia danych; regularne testowanie.
- Stan aktualizacji i podatności: nieaktualne komponenty, znane podatności, planowane poprawki.
- Wyniki skanowania i działania naprawcze: data każdego skanowania, ustalenia, sposób rozwiązania.
- Kopie zapasowe i testy odtwarzania: harmonogram, miejsce przechowywania, retencja, data i wynik ostatniego testu.
- Przegląd dostępów: konta według ról, zakres 2FA, usunięte konta, data przeglądu.
- Zarejestrowane incydenty i naruszenia (art. 33 ust. 5), także te niezgłoszone.
- Otwarte ryzyka i planowane działania, każde z osobą odpowiedzialną i terminem.
- Zatwierdzenie: imię i nazwisko, rola, data.
W tym miesiącu warto zacząć od dwóch rzeczy: eksportu inwentarza i jednego testowego odtworzenia na witrynie stagingowej. Razem obejmują kilka obszarów z tabeli kwestionariuszy powyżej. Aby dodać do folderu datowane raporty ze skanowania, wtyczka audytowa z secaudit.eu uruchamia kontrole na Państwa witrynie i eksportuje wyniki → secaudit.eu.
Niniejszy artykuł ma charakter informacyjny i nie stanowi porady prawnej.
FAQ
Jak długo przechowywać zapisy dotyczące bezpieczeństwa?
RODO nie wyznacza jednego okresu przechowywania takich zapisów. Należy trzymać je tak długo, jak są potrzebne do wykazania zgodności, i sprawdzić, czy konkretne okresy nie wynikają z przepisów sektorowych lub umów. Okresy retencji warto ustalać według rodzaju rejestru i celu; danych osobowych nie należy przechowywać bezterminowo tylko dlatego, że dana konfiguracja nadal działa. Dane osobowe zawarte w zapisach, np. adresy e-mail administratorów, nie powinny być przechowywane dłużej, niż to konieczne.
Czy czysty raport z audytu oznacza, że spełniamy wymogi RODO?
Nie. Raport pokazuje, że określone kontrole techniczne zakończyły się wynikiem pozytywnym w określonym dniu. RODO obejmuje też podstawy prawne przetwarzania, zgody, umowy z podmiotami przetwarzającymi, prawa osób, których dane dotyczą, i wiele więcej. Nawet po stronie bezpieczeństwa czysty skan nic nie mówi o tym, jak zespół postępuje z hasłami czy phishingiem.
Czy nasza agencja może prowadzić dokumentację za nas?
Tak, a agencje często mają najlepsze dane. Odpowiedzialność nadal ponosi jednak administrator. Obowiązki dokumentacyjne warto wpisać do umowy na podstawie art. 28, określając, co jest rejestrowane, jak często i w jaki sposób zyskują Państwo dostęp. Własną kopię należy zachować, aby dowody nie odeszły razem z agencją.
Sprawdź swoją stronę
Security Audit & Compliance to wtyczka WordPress od secaudit.eu: wyszukuje złośliwe oprogramowanie, ukryty spam, zmienione pliki rdzenia i podatny kod oraz przypisuje wyniki do art. 32 RODO, art. 21 NIS2 i OWASP Top 10.
Zobacz, co sprawdza wtyczka