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ść
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.