Parafia św. Andrzeja Boboli — od zhakowanej strony do autorskiego SinapisCMS

Strona parafii w Łomży została zaatakowana i zdefacowana — a jej odwiedzający byli narażeni na podsunięcie złośliwego oprogramowania. Zatrzymałem atak bez utraty treści, ustaliłem jego przyczynę i postawiłem serwis na czystej instalacji. Potem poszedłem krok dalej: zaprojektowałem i napisałem własny system zarządzania treścią — SinapisCMS — na którym od września 2026 r. działa strona parafii.

  • Reakcja na incydent
  • Informatyka śledcza
  • Autorski CMS · SinapisCMS
  • Astro
  • PWA
  • Prywatność bez ciasteczek
  • Dostępność
Klient Parafia pw. św. Andrzeja Boboli, Łomża
Moja rola Całość samodzielnie: incydent, migracja, projekt i kod systemu
Przebieg Joomla 3 po włamaniu → Joomla 6 → autorski SinapisCMS

Sytuacja

Parafia zgłosiła się w trybie kryzysowym. Jej strona — działająca na przestarzałej wersji systemu i zestawie rozszerzeń innych producentów — została zdefacowana: podmieniono warstwę wizualną, wgrano pliki intruza, a do bazy wstrzyknięto szkodliwy kod. Co gorsza, nie był to problem wyłącznie kosmetyczny — odwiedzającym podsuwano fałszywą „weryfikację”, której celem było zainfekowanie ich urządzeń. Incydent niezależnie potwierdził też CERT Polska (CSIRT NASK).

Zadanie

Dwa cele, w tej kolejności: zatrzymać atak bez utraty wieloletniego dorobku treści, a potem oddać parafii serwis, którego nie da się złamać tą samą drogą. Wszystko z możliwością cofnięcia każdego kroku — przy stronie, która musi po prostu działać.

Reakcja na incydent — informatyka śledcza

  • Najpierw dowody i kopie. Zanim cokolwiek zmieniłem, wykonałem pełny backup serwera, bazy i kodu oraz zabezpieczyłem materiał do analizy.
  • Ustalenie przyczyny. Na podstawie analizy logów wskazałem dokładnie, którędy wszedł atakujący — były to dwie publicznie znane, krytyczne podatności w nieaktualnych rozszerzeniach innych producentów. Niezależne zgłoszenie CERT wskazało ten sam typ przyczyny i potwierdziło część tych ustaleń.
  • Usunięcie i zamknięcie. Skasowałem wszystkie pliki intruza, wyczyściłem wstrzyknięcia w bazie, zamknąłem oba wektory ataku, przywróciłem oryginalny wygląd i unieważniłem wszystkie sesje (także potencjalnie przejęte).
  • Kluczowe ustalenie: treść przetrwała. Setki artykułów, strony, galerie i kategorie pozostały nienaruszone — atakujący podmienił wygląd i dorzucił pliki, ale nie zniszczył danych. Nie znalazłem też ukrytego, wykonywalnego backdoora.

Świadoma decyzja: odbudowa na czysto

Łatanie i aktualizowanie skompromitowanej instalacji zamiast stawiania nowej byłoby ryzykowne. Wybrałem ścieżkę bezpieczniejszą — i zbieżną z rekomendacją CERT: świeża, aktualna instalacja systemu (Joomla 6) z migracją całej treści, na zupełnie nowym, lekkim szablonie. Nowy serwis od pierwszego dnia nie zawierał rozszerzeń, przez które przyszło włamanie.

Etap 1: stabilny serwis na Joomli 6

Pierwsza wersja nowego serwisu zamknęła kryzys i dała parafii bezpieczną stronę:

  • własny, lekki szablon z trybem jasnym i ciemnym, dostępnością WCAG 2.1 AA i podejściem mobile-first;
  • nowy emblemat i branding parafii, odtworzona sekcja sakramentów oraz baner zgód (RODO);
  • bezpieczne przeniesienie nowego serwisu na adres główny, ze starą wersją zachowaną jako awaryjny powrót;
  • uporządkowanie kont do niezbędnego minimum i wymuszone uwierzytelnianie dwuskładnikowe (2FA);
  • usunięcie z publicznego katalogu serwera starych, podatnych instalacji, które powiększały powierzchnię ataku.

Migracja na Joomlę 6 przeniosła wszystkie artykuły, a zalecenia CERT zrealizowałem w całości.

Etap 2: autorski SinapisCMS

Czysta Joomla 6 wciąż opierała się na tym samym modelu co strona sprzed włamania: rozbudowany system ogólnego przeznaczenia, w którym każde rozszerzenie to dodatkowa powierzchnia ataku i kolejna aktualizacja do pilnowania — a włamanie przyszło właśnie przez rozszerzenia. Dlatego zbudowałem SinapisCMS — system zarządzania treścią zaprojektowany od podstaw pod życie parafii.

Od września 2026 r. andrzejbobola.pl działa w całości na SinapisCMS — o nowej odsłonie strony parafia poinformowała wiernych w ogłoszeniach duszpasterskich. Astro renderuje publiczną część serwisu na serwerze, a treści parafia redaguje sama w panelu systemu.

Liturgia wbudowana w system

  • kolor akcentu strony zmienia się wraz z okresem liturgicznym — system obsługuje wszystkie siedem barw, z osobnymi odcieniami dla trybu ciemnego;
  • kalendarz parafialny, w którym każdy dzień ma kolor szat liturgicznych, oraz „kartka dnia” z bieżącym okresem na stronie głównej;
  • licznik dni do odpustu patronalnego i strona odpustów z warunkami i najbliższymi terminami.

Moduły skrojone pod parafię

  • wirtualna kancelaria — chrzest i Pierwsza Komunia opisane krok po kroku oraz formularz wstępnego zgłoszenia (chrzest, ślub, pogrzeb, intencja mszalna);
  • skrzynka modlitewna z anonimowymi prośbami publikowanymi po zatwierdzeniu przez redakcję oraz wirtualna kaplica „Wieczernik” z licznikiem osób modlących się w danej chwili;
  • kronika parafii z osią czasu i historią duszpasterzy, podstrony grup i wspólnot oraz galerie z responsywnymi zdjęciami WebP;
  • archiwum aktualności (ponad 70 wpisów) — z czystymi adresami, wyszukiwarką, mapą strony i danymi strukturalnymi wpisów;
  • newsletter e-mail z wyborem kategorii i częstotliwości, powiadomienia web push i kanał RSS;
  • aplikacja PWA — stronę można zainstalować na telefonie, a bez połączenia z siecią wyświetla się strona offline.

Prywatność i bezpieczeństwo

  • zwykła wizyta nie ustawia żadnego ciasteczka, a strona nie ładuje zewnętrznej analityki, skryptów śledzących ani fontów z obcych serwerów — odsłony liczy własny moduł systemu;
  • filmy z YouTube (w trybie rozszerzonej prywatności) i Vimeo oraz mapa OpenStreetMap ładują się dopiero po kliknięciu, a przy mapie strona uprzedza, że serwer OpenStreetMap pozna adres IP odwiedzającego;
  • polityka bezpieczeństwa treści (CSP): pliki skryptów wyłącznie z domeny parafii, formularze i połączenia wykonywane przez skrypty tylko do tej samej domeny, blokada wtyczek i zakaz osadzania strony w obcych ramkach;
  • pliki wgrywane przez redakcję serwer oddaje w izolacji (dyrektywa CSP „sandbox”), więc nawet spreparowany plik — np. złośliwy SVG — nie uruchomi skryptu w kontekście strony;
  • po Joomli nie został żaden publiczny ślad — dawne ścieżki panelu i szablonów zwracają 404.

Dostępność i wydajność

  • link „Przejdź do treści”, landmarki, widoczny fokus, menu obsługiwane klawiaturą, uwzględnianie systemowych ustawień ograniczenia ruchu i trybu wysokiego kontrastu;
  • wbudowane powiększanie tekstu w trzech stopniach (do 175%) oraz tryb jasny i ciemny bez migotania przy wczytywaniu;
  • kontrast tekstu: 17,95:1 w trybie jasnym i 16,90:1 w ciemnym (WCAG AA wymaga 4,5:1);
  • treść renderowana na serwerze, czytelna także bez JavaScriptu — strona główna (HTML, CSS i JS) to ok. 63 kB po kompresji, nie licząc obrazów i fontów.

Efekt

Parafia przeszła drogę od zainfekowanej strony do nowoczesnego systemu zbudowanego pod jej potrzeby. Najpierw zatrzymałem atak i zamknąłem jego wektory — bez utraty treści i z pełną realizacją zaleceń CERT. Potem zastąpiłem system ogólnego przeznaczenia autorskim SinapisCMS. Nie ma w nim rozszerzeń w rodzaju tych, przez które przyszło włamanie. Są za to funkcje zaprojektowane pod życie parafii, a prywatność odwiedzających jest wbudowana w architekturę.

Co ten projekt pokazuje

  • pełny zakres — od reakcji na incydent i informatyki śledczej po projekt, kod i wdrożenie SinapisCMS;
  • spokój i dyscyplinę w kryzysie: najpierw kopie i dowody, każda zmiana odwracalna, wszystko udokumentowane;
  • umiejętność zaprojektowania i zbudowania produktu — SinapisCMS zbudowałem sam, od architektury po wdrożenie;
  • bezpieczeństwo, prywatność i dostępność dowożone razem, a nie jedno kosztem pozostałych;
  • wyczucie w pracy z instytucją o charakterze społecznym;
  • trwałą relację — z wdrożenia awaryjnego wyrósł docelowy system, na którym działa strona parafii.