File Sentinel

File Sentinel: instrukcja obsługi

Kompletna dokumentacja Twojego monitora integralności plików na własnym serwerze: instalacja, skanowanie folderów, podgląd zmian, antywirus, porównanie z fabrycznymi wydaniami i wiedza, co robić po włamaniu.

File Sentinel

Pierwsze kroki

Czym jest File Sentinel?

File Sentinel pilnuje plików Twoich stron internetowych. Zapamiętuje, jak wygląda każdy plik, i przy każdym skanie pokazuje, co zostało dodane, zmienione lub usunięte, więc podrzucony backdoor albo wstrzyknięta linijka kodu nie pozostaną niezauważone.

To aplikacja instalowana u Ciebie: działa na Twoim hostingu, trzyma dane we własnej bazie MySQL i niczego nam nie wysyła. Nie jest związana z żadnym CMS-em, więc sprawdzi się przy WordPressie, Joomli, Drupalu, sklepach, ręcznie pisanym PHP i każdej innej stronie złożonej z plików. Nie potrzeba dostępu root ani wiersza poleceń.

Co możesz dzięki niej zrobić

  • Wykrywać zmiany. Skanuj wybrane foldery ręcznie lub automatycznie i oglądaj dodane, zmodyfikowane i usunięte pliki oraz zmiany uprawnień, razem z historią, różnicami i przywróceniem wcześniejszej wersji jednym kliknięciem.
  • Wychwytywać złośliwy kod. Wbudowane i własne wzorce webshelli sprawdzają nowe i zmienione pliki PHP, a opcjonalny antywirus (ClamAV na Twoim serwerze lub w Dockerze albo sprawdzanie skrótów w VirusTotal / MetaDefender) bada same pliki.
  • Porównywać z wersją fabryczną. Sprawdź witrynę WordPress, Joomla lub Drupal, wtyczkę albo motyw z oficjalnymi sumami kontrolnymi wybranej wersji albo z własną, zatwierdzoną kopią.
  • Trzymać wiarygodny punkt odniesienia poza serwerem. Pobieraj snapshoty i otrzymuj raporty e-mail ze skrótem, którego atakujący na serwerze nie może przepisać.
  • Reagować. Przenieś podejrzany plik do kwarantanny jednym kliknięciem, przywróć go, jeśli to był fałszywy alarm, a gdy zagrożenie jest prawdziwe, skorzystaj z przewodnika „Po włamaniu”.
  • Być na bieżąco. Raporty e-mail i alerty antywirusowe z rozsądnymi limitami oraz pulpit, który jednym zdaniem mówi, czy wszystko jest w porządku.
Pulpit odpowiada najpierw na jedno pytanie: czy wszystko jest w porządku?
Pulpit odpowiada najpierw na jedno pytanie: czy wszystko jest w porządku?
Zhakowany serwer nie poręczy sam za siebie. File Sentinel działa na serwerze, który obserwuje. Wobec zautomatyzowanych i niedbałych ataków to wystarcza, ale atakujący, który kontroluje serwer, może też zmanipulować File Sentinel i sprawić, że powie „czysto”. Po włamaniu sprawdź kopię plików na osobnej, bezpiecznej maszynie. Przewodnik Po włamaniu w panelu wyjaśnia, jak to zrobić.

Jak to działa

Działają razem dwie warstwy: wykrywanie zmian (zawsze włączone) i antywirus (opcjonalny, silnik wybierasz sam).

  1. 1
    Skanowane foldery. Wskazujesz File Sentinel folder, na przykład cały katalog WordPressa. Każdy taki folder to „skanowany folder”.
  2. 2
    Pierwszy skan = punkt odniesienia. Pierwszy skan zapisuje każdy plik wraz z sumą kontrolną SHA-256 i uprawnieniami. To stan bazowy: aplikacja zakłada, że w tym momencie pliki są w porządku.
  3. 3
    Kolejne skany = różnice. Każdy następny skan porównuje dysk z poprzednim stanem i zapisuje zdarzenia: dodany, zmodyfikowany, usunięty i zmiana uprawnień.
  4. 4
    Istotność. Każde zdarzenie ma swoją istotność. Nowe i zmodyfikowane pliki PHP są dodatkowo sprawdzane wbudowanymi heurystykami i sygnaturami webshelli: dopasowanie czyni zdarzenie krytycznym lub ostrzeżeniem; zwykłe zmiany mają poziom informacja.
  5. 5
    Ty decydujesz. Zmianę, którą wprowadziłeś sam, oznaczasz jako uzasadnioną, a nowy stan staje się punktem odniesienia. Wszystko podejrzane możesz porównać z oficjalnym wydaniem, sprawdzić antywirusem albo odizolować w kwarantannie.
Stan bazowy jest tyle wart, ile moment, w którym go zapisano. Jeśli witryna była już zainfekowana przy pierwszym skanie, infekcja staje się „normalna”. Dlatego File Sentinel porównuje też z oficjalnymi wydaniami i sprawdza zawartość samodzielnie, niezależnie od jakiegokolwiek stanu bazowego.

Dwa sposoby wykrycia problemu

MetodaCo Ci mówiCzy wymaga punktu odniesienia?
Skan zmianCoś różni się od ostatniego znanego stanuTak, własny poprzedni skan
Heurystyki i sygnatury webshelliTen plik zawiera kod typowy dla malwareNie
AntywirusTen plik to znane złośliwe oprogramowanieNie
Oficjalne sumy kontrolneTego pliku nie ma w oficjalnym wydaniu albo różni się od niegoTak, oficjalne wydanie (lub Twój własny zestaw)
Porównanie ze snapshotemSerwer nie zgadza się już ze stanem zapisanym wcześniejTak, snapshot przechowywany poza serwerem

Wymagania systemowe

WymaganieSzczegóły
PHP8.2 lub nowszy
Wymagane rozszerzenia PHPpdo_mysql, openssl, mbstring, sodium
Opcjonalnezip (pobieranie wydań CMS do oficjalnych sum kontrolnych), curl (szybsze pobieranie)
Baza danychMySQL 5.7+ lub MariaDB 10.3+
Serwer WWWApache (reguły dostępu są dostarczane jako .htaccess) lub Nginx z równoważnymi regułami (patrz Utrzymanie)
Przeglądarka do paneluDowolna aktualna Chrome, Edge, Firefox lub Safari
Dla opcjonalnego antywirusaDemon ClamAV clamd dostępny przez sieć albo klucz API do VirusTotal / MetaDefender Cloud
Dla raportów e-mailKonto SMTP lub hosting skonfigurowany do wysyłania przez PHP mail()
Strona System wylicza każde wymaganie, pokazuje, czego brakuje, a co jest tylko poniżej zalecenia, więc nowy hosting możesz sprawdzić, zanim na nim polegasz.

Instalacja

Instalacja zajmuje kilka minut i działa na zwykłym hostingu współdzielonym. Na serwerze nie potrzeba Composera ani wiersza poleceń.

  1. 1
    Wgraj pakiet. Albo wgraj file-sentinel-v{VERSION}.zip menedżerem plików hostingu i użyj jego funkcji „Wypakuj”, albo, jeśli masz tylko FTP, wgraj file-sentinel.zip razem z install-bootstrap.php i raz otwórz install-bootstrap.php w przeglądarce.
  2. 2
    Utwórz pustą bazę MySQL i użytkownika z pełnymi prawami do niej w panelu hostingu. Zanotuj host (często localhost), nazwę, użytkownika i hasło.
  3. 3
    Otwórz instalator, https://your-site/file-sentinel/install/. Najpierw sprawdza on wymagania.
  4. 4
    Wypełnij formularz. Dane bazy, prefiks tabel (domyślny fsn_ jest w porządku) oraz Twoje konto administratora: nazwa, e-mail i hasło o długości co najmniej 12 znaków.
  5. 5
    Zakończ. Instalator tworzy tabele, zapisuje config/config.php oraz plik blokady config/installed.lock i przekierowuje Cię na stronę logowania.
  6. 6
    Skonfiguruj logowanie dwuskładnikowe. Przy pierwszym logowaniu zobaczysz kod QR i klucz do ręcznego wpisania; dodaj je do aplikacji uwierzytelniającej i wpisz sześciocyfrowy kod.
**Zrób kopię zapasową config/config.php.** Zawiera klucz szyfrujący zapisane sekrety (hasło SMTP, klucze API). Mając kopię bazy, ale bez tego pliku, nie odczytasz już tych wartości. Trzymaj kopię poza katalogiem głównym serwera WWW.
Umieść File Sentinel w folderze, który sam nie jest jednym ze skanowanych folderów, albo dodaj dla niego reguły ignorowania, inaczej własny log i pliki tymczasowe narzędzia pojawią się jako zmiany.

Aktualizacja

Wgraj nowe pliki na stare i zachowaj config/ oraz storage/. Zmiany w bazie danych są stosowane automatycznie przy pierwszym logowaniu po aktualizacji. Potem otwórz System: raportuje on także stan własnych plików aplikacji.

Pierwsze logowanie i pulpit

Zaloguj się e-mailem i hasłem z instalacji oraz kodem z aplikacji uwierzytelniającej. Panel działa także na telefonie.

Menu po lewej jest pogrupowane według zadań:

GrupaPozycje
GłównePulpit
MonitoringSkanowane foldery, Skany, Cron, Sieć instalacji
WeryfikacjaSnapshoty, Oficjalne sumy kontrolne, Sygnatury webshelli
ReakcjaKwarantanna, Po włamaniu
AdministracjaUstawienia, System, Dziennik zdarzeń, Licencja, Pytania i odpowiedzi, O aplikacji

Pulpit

  • Pasek stanu u góry: zielony „wszystko wygląda dobrze”, żółty „wymaga uwagi” albo czerwony, gdy są ustalenia krytyczne, wykrycia antywirusa lub własne pliki aplikacji nie zgadzają się z wersją dostarczoną. Pokazuje, kiedy odbył się ostatni skan, i ma przyciski prowadzące do następnego kroku.
  • Cztery kafelki: aktywne skanowane foldery, monitorowane pliki, ostatni ukończony skan, nierozwiązane alerty.
  • Zdarzenia wymagające uwagi: lista zmian, których jeszcze nie oznaczyłeś jako uzasadnione, po pięć na stronę, z przyciskiem „Oznacz jako uzasadnione”.
  • Wykres aktywności: zdarzenia z ostatnich 14 dni według istotności.
  • Przegląd skanowanych folderów: stan, pliki, ostatni skan i nierozwiązane alerty dla każdego folderu.
  • Pasek stanu systemu na dole: integralność aplikacji, cron, webcron i raporty e-mail w jednym rzucie oka.
Licznik sesji w nagłówku pokazuje, ile czasu zostało do wylogowania z powodu braku aktywności. Każda aktywność go odnawia.

Instrukcja obsługi

Skanowane foldery i skanowanie

Skanowany folder to folder, na który File Sentinel zwraca uwagę. Dodaj po jednym dla każdej strony albo dla każdej części strony, którą chcesz śledzić osobno.

  1. 1
    Otwórz Skanowane foldery i kliknij Dodaj folder.
  2. 2
    Wpisz nazwę i ścieżkę bezwzględną folderu albo użyj Przeglądaj…, aby przeklikać się przez foldery serwera.
  3. 3
    Otwórz nowy folder i kliknij Skanuj teraz. Pasek postępu pokazuje przetworzone pliki; duże foldery są skanowane małymi krokami, więc żadne żądanie nie trwa długo.
Strona folderu: skanuj teraz, antywirus, kalendarz zmian, historia i reguły ignorowania.
Strona folderu: skanuj teraz, antywirus, kalendarz zmian, historia i reguły ignorowania.

Reguły ignorowania

Niektóre pliki zmieniają się cały czas i nic to nie znaczy: cache, logi, wgrane pliki. Dodaj reguły ignorowania (wzorce glob dopasowywane do ścieżki wewnątrz folderu), na przykład cache/*, logs/* lub *.log. Strona folderu oferuje popularne wzorce jako przyciski szybkiego dodawania. Globalne reguły ignorowania na stronie Skanowane foldery obowiązują dla każdego folderu.

Nie ignoruj folderów, które lubią wykorzystywać atakujący, takich jak uploads/ w WordPressie, chyba że chronisz je w inny sposób (na przykład antywirusem). Zignorowany plik nie jest obserwowany w ogóle.

Skanuj wszystkie

Przycisk Skanuj wszystkie na stronie Skanowane foldery skanuje po kolei każdy aktywny folder, pokazując linię postępu. Używa tych samych kroków co przycisk pojedynczego folderu.

Jak czytać stronę folderu

  • Kalendarz zmian: dni ze zmianami, z przełączaniem między dniem, tygodniem, miesiącem, trzema miesiącami i rokiem.
  • Historia: każdy skan z liczbą dodanych, zmodyfikowanych i usuniętych plików oraz zmian uprawnień.
  • Historia skanów odświeża się sama, gdy zakończy się skan uruchomiony przez Ciebie.

Przeglądanie i rozstrzyganie zmian

Zakończony skan wylicza, co się wydarzyło. Twoim zadaniem jest odróżnić własne zmiany od wszystkiego, co podejrzane.

Otwórz Skany, wybierz skan, a potem plik, aby zobaczyć jego zdarzenia. Dla każdego pliku możesz:

  • zobaczyć różnice między wersjami (pliki tekstowe są zapisywane razem z treścią, duże tylko jako suma kontrolna);
  • przywrócić wcześniejszą wersję, co zapisuje tę treść z powrotem na dysk;
  • przenieść go do kwarantanny, jeśli wygląda na złośliwy;
  • zobaczyć, co jest na dysku teraz, w porównaniu z ostatnim skanem.

Na pulpicie Oznacz jako uzasadnione usuwa zdarzenie z listy „wymagające uwagi” i czyni nową treść punktem odniesienia. Używaj tego przy aktualizacjach i edycjach, które zrobiłeś sam. Jeśli zaktualizowałeś WordPressa lub wtyczkę i widzisz setki zmian, zamiast oznaczać je pojedynczo porównaj z oficjalnym wydaniem (patrz „Porównanie z wersją fabryczną”).

Co oznaczają poziomy istotności

IstotnośćZnaczenie
KrytyczneDopasowano krytyczną sygnaturę webshella albo ClamAV znalazł wirusa (gdy sprawdzanie podczas skanów jest włączone)
OstrzeżeniePodejrzane konstrukcje, takie jak eval(, base64_decode( lub system( w PHP, sygnatura o poziomie ostrzeżenia, usunięty plik albo zmienione uprawnienia
InformacjaZwykłe dodanie lub modyfikacja
Heurystyki sprawdzają tylko pliki tekstowe do pewnego limitu rozmiaru. Pliki binarne i bardzo duże są śledzone wyłącznie przez sumę kontrolną.

Automatyczne skany (cron)

Skany, które zależą od tego, czy o nich pamiętasz, w końcu przestają się odbywać. Skonfiguruj automatyczne skany raz.

Otwórz Cron. Znajdziesz tam gotowe polecenie do crontaba, na przykład co 15 minut lub raz dziennie, zależnie od tego, co pasuje do strony. Dodaj je w panelu hostingu w sekcji „Zadania cron”.

Jeśli hosting nie daje dostępu do crontaba, użyj zamiast tego adresu webcron: wklej go do zewnętrznej usługi, która otwiera adres URL według harmonogramu (na przykład cron-job.org). Niektóre panele obcinają wszystko po znaku ?; dla nich strona oferuje drugi adres z tokenem w nazwie pliku.

Strona Cron i pulpit pokazują, kiedy cron ostatnio działał, więc cicho zepsuty cron łatwo zauważyć. Wygeneruj nowy token natychmiast unieważnia stare polecenie i adres, więc potem zaktualizuj swój crontab.

Każdy skan z crona uruchamia też logikę raportów e-mail oraz, jeśli to włączyłeś, skan antywirusowy (patrz niżej), więc jeden wpis crona obejmuje wszystko.

Antywirus

Wykrywanie zmian mówi Ci, że coś jest inne. Antywirus mówi, że plik to znane złośliwe oprogramowanie. Silnik wybierasz sam; wbudowane heurystyki i sygnatury webshelli działają zawsze dodatkowo.

Ustawienia, karta Antywirus: wybierz silnik, wpisz jego dane i użyj „Zapisz i przetestuj”.
Ustawienia, karta Antywirus: wybierz silnik, wpisz jego dane i użyj „Zapisz i przetestuj”.

Wybierz silnik

SilnikKosztCo opuszcza serwerCo wykrywa
Heurystyki i sygnaturyWbudowaneNicTypowe konstrukcje webshelli w plikach PHP; to nie jest pełny antywirus
ClamAVBezpłatny, demona uruchamiasz samPliki trafiają tylko do Twojego demonaZnane złośliwe oprogramowanie z bazy ClamAV
VirusTotalPlan bezpłatny z limitami (tylko niekomercyjnie); są plany płatneTylko SHA-256 plikuPliki, które usługa już zna
MetaDefender CloudPlan bezpłatny z limitami; są plany płatneTylko SHA-256 plikuPliki, które usługa już zna
Sprawdzanie skrótu nie wie nic o nowym lub celowanym malware. Taki plik jest zgłaszany jako nieznany, co nie jest tym samym co czysty. Do prawdziwego skanowania w poszukiwaniu malware użyj ClamAV.

Konfiguracja ClamAV

Hosting współdzielony zwykle nie pozwala uruchomić ClamAV, ale aplikacja nie potrzebuje go lokalnie: łączy się z demonem clamd przez sieć, więc demon może działać na VPS-ie, osobnym serwerze lub w Dockerze.

  1. 1
    Na maszynie z Dockerem uruchom: docker run -d --name clamav -p 3310:3310 clamav/clamav:stable. Pierwsze uruchomienie pobiera bazę sygnatur i trwa kilka minut.
  2. 2
    Otwórz Ustawienia, kartę Antywirus, wybierz ClamAV i wpisz adres maszyny oraz port 3310. Ścieżka zaczynająca się od / oznacza gniazdo uniksowe.
  3. 3
    Kliknij Zapisz i przetestuj. Test sprawdza połączenie i to, czy ClamAV naprawdę wykrywa nieszkodliwy standardowy plik testowy EICAR (wysyłany z pamięci, więc żaden antywirus na Twoim komputerze nie protestuje). Po sukcesie zobaczysz wersję ClamAV.
clamd nie ma uwierzytelniania. Nie wystawiaj portu 3310 do internetu: ogranicz go zaporą do adresu tej aplikacji albo połącz się przez VPN lub tunel.

Konfiguracja VirusTotal lub MetaDefender

Wklej swój klucz API i kliknij Zapisz i przetestuj. Klucz jest przechowywany w postaci zaszyfrowanej i nigdy więcej nie jest pokazywany. Skrót jest uznawany za złośliwy dopiero wtedy, gdy oznaczą go co najmniej dwa silniki, aby uniknąć fałszywych alarmów.

Uruchamianie skanu antywirusowego

  1. 1
    Otwórz skanowany folder. W bloku Skanowanie antywirusowe wybierz zakres: Skrypty i pliki wykonywalne (PHP, JS, HTML i podobne; szybciej) albo Wszystkie pliki.
  2. 2
    Kliknij Skanuj antywirusowo. Pasek postępu pokazuje sprawdzone pliki i znalezione zagrożenia.
  3. 3
    Otwórz wynik: każde wykrycie pokazuje plik i nazwę wykrycia, z przyciskiem Kwarantanna.

Przerwany lub nieudany skan można po prostu uruchomić ponownie: pliki już sprawdzone i czyste są pomijane dzięki pamięci podręcznej wyników.

Opcjonalna automatyzacja

  • Sprawdzaj ClamAV także nowe i zmienione pliki podczas zwykłych skanów: wykryty wirus oznacza zdarzenie jako krytyczne.
  • Uruchamiaj skan antywirusowy po każdym skanie z crona (ClamAV): pełny skan każdego aktywnego folderu po każdym uruchomieniu crona. Wydłuża to czas pracy crona.
  • Wykrycie wysyła alert antywirusowy e-mailem, gdy raporty e-mail są włączone, a pulpit zmienia się na czerwony aż do nowego, czystego skanu tego folderu.
Jeśli nie można połączyć się z ClamAV albo usługa online odrzuci zapytanie (limit zapytań, zły klucz), skan zatrzymuje się z czytelnym komunikatem. Pliki nigdy nie są zgłaszane jako czyste tylko dlatego, że nie dało się ich sprawdzić.

Sygnatury webshelli

Sygnatury to wzorce typowego złośliwego kodu, wyszukiwane w nowych i zmodyfikowanych plikach PHP przy każdym skanie. Działają bez żadnej konfiguracji.

Otwórz Sygnatury webshelli.

  • Sygnatury Wbudowane to wyselekcjonowana lista publicznie udokumentowanych wskaźników. Możesz je tylko włączać i wyłączać (przełącznik zapisuje się od razu); jeśli któraś daje fałszywe alarmy na Twojej stronie, wyłącz ją.
  • Sygnatury Własne są Twoje. Użyj Dodaj własny wzorzec: nazwa, typ dopasowania (Tekst lub Regex), poziom zagrożenia (Krytyczny lub Ostrzegawczy) i wzorzec. Tekst jest dopasowywany bez względu na wielkość liter; regex to wyrażenie PCRE bez ogranicznika. Użyj Edytuj, aby później coś zmienić, i Usuń, aby usunąć.
Wąski wzorzec dla czegoś specyficznego dla Twojego incydentu, na przykład nazwa funkcji użytej przez atakującego, to szybki sposób na znalezienie tego samego pliku na Twoich innych stronach.
Sygnatury to niewielka, wyselekcjonowana lista, a nie baza malware. Do znanego malware na dużą skalę użyj antywirusa.

Porównanie z wersją fabryczną

Najpewniejszy sposób, żeby sprawdzić, czy CMS został naruszony, to porównać go z oryginalnym wydaniem. Nie potrzeba własnego stanu bazowego, więc działa to nawet wtedy, gdy pierwszy skan wykonano na już zainfekowanej stronie.

Oficjalne sumy kontrolne: zestawy wbudowane, pobrane i wgrane przez Ciebie.
Oficjalne sumy kontrolne: zestawy wbudowane, pobrane i wgrane przez Ciebie.
  1. 1
    Otwórz Oficjalne sumy kontrolne.
  2. 2
    Zdobądź zestaw referencyjny: zaimportuj wbudowany (działa offline) albo pobierz konkretną wersję z oficjalnego źródła: WordPress (wersja i język, na przykład pl_PL), Joomla, Drupal, wtyczki i motywy WordPress.
  3. 3
    W Dostępne zestawy kliknij Porównaj przy zestawie.
  4. 4
    Wybierz folder do sprawdzenia. Jeśli CMS leży w podfolderze tego folderu, wpisz go w Podfolder aplikacji (opcjonalnie).
  5. 5
    Przeczytaj raport i przenieś wszystko, co podejrzane, do kwarantanny prosto z niego.

Jak czytać wynik

WynikZnaczenie
ZmodyfikowanyPlik istnieje, ale jego treść różni się od wydania. Sprawdź, czy to Twoja zmiana.
BrakującyPliku z wydania nie ma na dysku (został usunięty albo aktualizacja się nie powiodła).
DodatkowyPlik, którego wydanie nie zawiera. W folderach rdzenia to częsty ślad webshella; w folderach z treścią (na przykład uploads) może być zupełnie normalny.
W rdzeniu WordPressa wp-content nie wchodzi w skład oficjalnych sum kontrolnych, więc dodatkowe pliki są domyślnie zgłaszane tylko w folderach rdzenia (wp-admin, wp-includes). Wtyczki i motywy sprawdzaj ich własnymi zestawami.

Wtyczki, motywy i zmodyfikowane strony

  • Wtyczki i motywy z wordpress.org są pobierane według nazwy (slug) i wersji.
  • Komercyjne wtyczki i motywy nie mają publicznych sum kontrolnych: wgraj oryginalny ZIP w sekcji Wgraj własny zestaw i ustaw Prefiks ścieżki, na przykład wp-content/plugins/my-plugin/.
  • Zmodyfikowany WordPress: utwórz własny zestaw z czystej, zatwierdzonej kopii (ZIP lub jeden z Twoich snapshotów). Porównania pokażą wtedy wszystko, co różni się od Twojej wersji.
Wgraj własny zestaw: upuść plik, formularz dostosuje się do jego rodzaju.
Wgraj własny zestaw: upuść plik, formularz dostosuje się do jego rodzaju.

Formularz wgrywania przyjmuje trzy rodzaje plików i pokazuje tylko pasujące pola: ZIP wydania (sumy kontrolne są liczone na miejscu; opcjonalnie pomiń jedyny folder najwyższego poziomu i dodaj prefiks ścieżki), snapshot (.gz lub .json) oraz listę sum kontrolnych w formacie sha256sum.

Snapshoty

Snapshot to plik z listą wszystkich plików ze skanu wraz z ich sumami kontrolnymi i uprawnieniami. Trzymany z dala od serwera jest punktem odniesienia, którego nikt na serwerze nie może przepisać.

Dlaczego to ważne

Atakujący, który kontroluje serwer, może zmienić plik, a także przepisać to, co baza danych o nim mówi, więc zwykły skan widzi „brak zmian”. Snapshot pobrany wcześniej i przechowywany gdzie indziej nadal mówi prawdę.

Snapshoty: pobierz z dowolnego skanu, sprawdź serwer względem pliku.
Snapshoty: pobierz z dowolnego skanu, sprawdź serwer względem pliku.
  1. 1
    Otwórz Snapshoty i kliknij Pobierz snapshot przy skanie (albo na stronie skanu). Trzymaj plik poza serwerem.
  2. 2
    Później, aby sprawdzić serwer, wybierz folder i wgraj plik w sekcji Sprawdź dysk względem wgranego snapshota.
  3. 3
    Opcjonalnie wpisz skrót (64-znakowy odcisk snapshota, dołączany także do raportów e-mail). Aplikacja potwierdzi wtedy, że plik nie został zmieniony ani uszkodzony. Skrót to kontrola integralności, a nie podpis cyfrowy: chroni plik tak długo, jak długo pochodzi z zaufanego miejsca.

Snapshoty starszych skanów są odtwarzane z historii zdarzeń, więc możesz wyeksportować stan z dowolnego minionego skanu.

Kwarantanna

Kwarantanna przenosi podejrzany plik w zablokowane miejsce zamiast go usuwać. Serwer WWW nie uruchomi go ani nie udostępni, a jeśli to był fałszywy alarm, możesz go przywrócić.

  • Przenieś plik do kwarantanny ze skanu, historii pliku, wyniku porównania lub wyniku skanu antywirusowego przyciskiem Kwarantanna.
  • Otwórz Kwarantanna, aby zobaczyć odizolowane pliki. Przywróć odkłada plik na dawne miejsce, Usuń kasuje kopię na stałe.
Wybieraj kwarantannę zamiast usuwania. Zachowujesz dowód do analizy, a omyłkowo odizolowany plik jest o jedno kliknięcie od powrotu.
Pliki w kwarantannie są przechowywane w storage/quarantine/, które ma własne reguły dostępu odrzucające wszystkie żądania z sieci.

Raporty i alerty e-mail

Raporty pozwalają dowiedzieć się o problemach bez otwierania panelu i zawierają skrót snapshota, czyli punkt odniesienia leżący poza serwerem.

Ustawienia, E-mail i raporty: poczta wychodząca, potem kiedy i co wysyłać.
Ustawienia, E-mail i raporty: poczta wychodząca, potem kiedy i co wysyłać.
  1. 1
    W Ustawieniach, na karcie E-mail i raporty, skonfiguruj pocztę wychodzącą: SMTP (zalecane) lub PHP mail(), nadawcę i login SMTP. Użyj Zapisz i wyślij e-mail testowy.
  2. 2
    Ustaw E-mail do powiadomień na karcie Ogólne.
  3. 3
    Wybierz Co wysyłać: nic, podsumowanie ze skrótem snapshota albo podsumowanie plus plik snapshota w załączniku (gdy jest dostatecznie mały).
  4. 4
    Wybierz Kiedy wysyłać raport.
Kiedy wysyłaćZachowanie
Tylko gdy są ustalenia, z ograniczeniem częstotliwościUstawienie domyślne. Ustalenia o co najmniej wybranej wadze są wysyłane, nie częściej niż jeden e-mail na interwał (minimum 5 minut, domyślnie 60). Ustalenia z przerwy trafiają do następnego raportu. Ustalenia krytyczne mogą wyjść wcześniej, ale nie częściej niż co 5 minut.
Dodatkowo po każdym skanie ręcznymSkan uruchomiony przez Ciebie zawsze wysyła raport, nawet gdy nic nie znaleziono. Skany z crona pozostają ograniczone.
Po każdym skanie, także z cronaKażdy ukończony skan wysyła raport. Przy cronie co minutę oznacza to e-mail co minutę: wybieraj to tylko przy rzadkim cronie.

Więcej opcji

  • Codzienny e-mail „wszystko czyste”, gdy nic się nie zmieniło. Zalecane: raport, który przestaje przychodzić, sam jest alarmem.
  • Minimalna istotność zgłaszanych ustaleń oraz limit rozmiaru załącznika (0 = nigdy nie dołączaj).
  • Alerty antywirusowe są osobne: wykrycie wysyła własny e-mail (najwyżej jeden na 5 minut), niezależnie od interwału raportów, o ile raporty nie są ustawione na „Nic”.
  • Jeśli wysyłka się nie powiedzie, aplikacja robi przerwę na kilka minut zamiast bombardować Twój serwer poczty, a ostatni błąd pokazuje na stronie ustawień.

Po włamaniu

Gdy strona została przejęta, kolejność kroków liczy się bardziej niż pośpiech. Celem jest ustalenie, co się stało, bez uruchamiania czegokolwiek, co zostawił atakujący.

W panelu jest cała strona Po włamaniu. W skrócie:

  1. 1
    Izoluj, nie czyść. Wyłącz stronę lub włącz tryb konserwacji. Nie usuwaj jeszcze plików: to niszczy ślady i punkt wejścia. Zrób pełną kopię plików i zrzut bazy danych w obecnym stanie.
  2. 2
    Traktuj pliki jak martwe dane. Pobierz archiwum przez panel hostingu, SFTP lub kopię zapasową hostingu, a nie skryptem na przejętej stronie. Plik .php jest niebezpieczny tylko wtedy, gdy serwer go wykonuje.
  3. 3
    Przenieś je w bezpieczne miejsce: na osobny komputer lub serwer, który nie obsługuje Twoich stron i nie jest z nimi połączony. Nigdy nie otwieraj ich w przeglądarce z przejętej strony.
  4. 4
    Sprawdź na świeżym File Sentinel na tej maszynie: porównaj z oficjalnymi sumami kontrolnymi, wgraj swój wcześniejszy snapshot, uruchom antywirus. Wynik tam jest wiarygodny, bo nic na tej maszynie nie zostało ruszone.
  5. 5
    Dopiero potem sprzątaj: przywróć z pewnej kopii zapasowej, zaktualizuj wszystko, zmień wszystkie hasła i klucze (baza danych, FTP, konta administratorów, klucze API) i zamknij znaleziony punkt wejścia.
Nie ufaj wynikowi „czysto” z samego przejętego serwera, w tym temu, który pokazuje tam to narzędzie.
Strona „Po włamaniu” w panelu.
Strona „Po włamaniu” w panelu.

Konta, ustawienia i dziennik zdarzeń

Panel jest chroniony silnym hasłem, logowaniem dwuskładnikowym i zapisem tego, co się w nim dzieje.

  • Logowanie dwuskładnikowe (aplikacja uwierzytelniająca) jest wymagane dla konta administratora.
  • Profil (ikona użytkownika w nagłówku): język interfejsu i zmiana hasła. Hasła muszą mieć co najmniej 12 znaków.
  • Czas wygaśnięcia sesji i rozmiar partii skanowania są na karcie Ogólne w Ustawieniach. Wygląd panelu (kolor akcentu, jasny lub ciemny, wielkość czcionki, kontrast) ustawia się z ikony koła zębatego w nagłówku i zapisuje osobno dla każdego administratora.
  • Dziennik zdarzeń wylicza logowania, zmiany ustawień, skany, działania na kwarantannie, skany antywirusowe i powiadomienia, z czasem i szczegółami.
  • Wszystkie formularze są chronione przed fałszowaniem żądań między witrynami (CSRF). Jeśli formularz pokazuje „Sesja wygasła”, użyj przycisku, aby wrócić i zalogować się ponownie.
Używaj długiego, losowego hasła-frazy i trzymaj aplikację uwierzytelniającą na telefonie, który nie jest komputerem, z którego administrujesz.

System, samoochrona i licencja

File Sentinel pilnuje też samego siebie. Narzędzie, które strzeże plików, nie może być po cichu zmienione.

  • System porównuje konfigurację serwera z tym, czego potrzebuje aplikacja, i zaleca ustawienia, wraz ze szczegółami PHP i bazy danych.
  • Samoochrona: własne pliki PHP aplikacji są sprawdzane względem podpisanego manifestu dostarczanego razem z nią. Jeśli się różnią, pasek stanu na pulpicie zmienia się na czerwony, a strona Integralność aplikacji wylicza pliki. Po zgodnej z zasadami aktualizacji manifest jest częścią nowego pakietu, więc ostrzeżenie znika.
  • Licencja pokazuje plan i pozwala wpisać klucz licencyjny lub kod zakupu.
  • Sieć instalacji łączy kilka instalacji: instalacja podrzędna może zgłaszać wyniki skanów do nadrzędnej, co pasuje agencjom opiekującym się wieloma stronami.
Samoochrona wykrywa przypadkowe uszkodzenia i zautomatyzowane manipulacje. Nie ochroni przed atakującym, który przepisze File Sentinel razem z jego kontrolą podpisu. Dlatego istnieją snapshoty poza serwerem i skróty w e-mailach.

Funkcje w skrócie

Wykrywanie zmian

Dodane, zmodyfikowane i usunięte pliki oraz zmiany uprawnień, z historią, różnicami i przywracaniem.

Antywirus

ClamAV na Twoim serwerze lub w Dockerze albo sprawdzanie skrótów w VirusTotal i MetaDefender, z alertami.

Sygnatury webshelli

Wbudowane i własne wzorce typowego złośliwego kodu, z edycją i bezpiecznym przełącznikiem dla każdego.

Oficjalne sumy kontrolne

Porównaj WordPress, Joomlę, Drupala, wtyczki i motywy z wersją fabryczną albo z własnym zestawem.

Snapshoty

Pobierz stan swoich plików i sprawdź serwer względem niego, także dla minionych skanów.

Kwarantanna

Odizoluj podejrzany plik bez usuwania, przywróć go jednym kliknięciem.

Raporty e-mail

Raport ze skrótem snapshota, z limitami, by cron co minutę Cię nie zalał, albo po każdym skanie, jeśli tak wolisz.

Automatyczne skany

Cron lub webcron, przycisk Skanuj wszystkie i opcjonalny skan antywirusowy po każdym uruchomieniu.

Przewodnik Po włamaniu

Bezpieczna procedura badania przejętej strony bez uruchamiania jej kodu.

Samoochrona

Aplikacja sprawdza własne pliki względem podpisanego manifestu.

Dwa języki

Angielski i polski, wybierane osobno dla każdego administratora.

Bezpieczne logowanie

Uwierzytelnianie dwuskładnikowe, ochrona CSRF, zaszyfrowane sekrety i dziennik zdarzeń.

Dla zaawansowanych

Przegląd zabezpieczeń

Co File Sentinel robi, by chronić samego siebie, i, równie ważne, czego nie potrafi.

Co jest wbudowane

  • Logowanie dwuskładnikowe, hasła o długości co najmniej 12 znaków, limit czasu nieaktywności.
  • Ochrona CSRF w każdym formularzu i zapytania przygotowane dla każdego zapytania do bazy. Wyjście jest escapowane.
  • Zaszyfrowane sekrety: hasło SMTP i klucze API są szyfrowane kluczem z config/config.php.
  • Celowo brak edytora plików. Edytor na stronie pozwoliłby każdemu, kto przejmie panel, uruchomić dowolny kod. File Sentinel pokazuje różnice oraz przywraca lub izoluje pliki, ale nie zapisuje kodu na serwerze.
  • Foldery kwarantanny i storage są chronione przed dostępem z sieci; wgrywane pliki są walidowane; pobierane wydania CMS są pobierane wyłącznie przez HTTPS z publicznych adresów.
  • Kontrola samoochrony własnych plików aplikacji.

Czego nie potrafi

  • Nie może poręczyć za serwer kontrolowany przez atakującego. Używaj snapshotów, skrótów w e-mailach i oficjalnych sum kontrolnych jako punktów odniesienia leżących gdzie indziej, a po włamaniu sprawdzaj na osobnej maszynie.
  • Skan zmian widzi to, co zmieniło się od ostatniego skanu. Jeśli strona była już zainfekowana przy pierwszym skanie, użyj oficjalnych sum kontrolnych i antywirusa.
  • Antywirus oparty na sprawdzaniu skrótów nie zna nowego malware. Do prawdziwego skanu użyj ClamAV.
  • Demon clamd nie ma uwierzytelniania: trzymaj jego port z dala od internetu.

Utrzymanie

Potrzeba niewiele, ale te nawyki sprawiają, że instalacji można ufać.

Kopie zapasowe

  • Baza danych (wszystkie tabele z Twoim prefiksem) oraz **config/config.php**. Bez tego pliku zaszyfrowanych wartości nie da się odczytać.
  • Trzymaj snapshot i raport e-mail ze znanego, dobrego stanu gdzieś poza serwerem.

Chroń pliki

Apache odczytuje dostarczone pliki .htaccess. Na Nginx dodaj równoważne reguły odmawiające dostępu z sieci do config/, storage/, database/, app/, language/ i _devs/. Po instalacji usuń folder install/.

Zajęte miejsce na dysku

Wersje plików są przechowywane w bazie danych. Jeśli rozmiar zaczyna być problemem, wybierz w ustawieniach Ogólnych Widok różnic zamiast Tylko pełna treść i dodaj reguły ignorowania dla folderów, które zmieniają się bez przerwy. Usuwaj stare pliki z kwarantanny, których już nie potrzebujesz.

Aktualizacja

Wgraj nowe pliki na stare, zachowaj config/ i storage/, zaloguj się, a potem sprawdź System i pulpit.

Pomoc i rozwiązywanie problemów

Częste problemy i rozwiązania

Skan pokazuje „jeszcze nie skanowano” albo brak zmian

Uruchom Skanuj teraz raz: pierwszy skan tylko zapisuje stan bazowy. Zmiany pojawiają się od drugiego skanu. Folder bez zmian pokazuje „Wszystko w porządku”.

Po aktualizacji prawie każdy plik jest pokazany jako zmieniony

To oczekiwane po aktualizacji CMS-a. Zamiast oznaczać zdarzenia pojedynczo, porównaj z oficjalnym wydaniem nowej wersji.

Plik wciąż pojawia się jako zmodyfikowany

Coś go ciągle przepisuje (cache, log, sesja). Dodaj dla niego regułę ignorowania.

„Sesja wygasła” po wysłaniu formularza

Sesja wygasła albo strona była otwarta zbyt długo. Użyj przycisku na tej stronie, aby wrócić do logowania, i spróbuj ponownie.

Test e-mail nie przechodzi

Sprawdź host SMTP, port i szyfrowanie (STARTTLS 587 lub SSL 465), login oraz adres nadawcy. Strona pokazuje błąd zwrócony przez serwer. Przy PHP mail() hosting musi być skonfigurowany do wysyłania poczty.

Nie dostaję raportów e-mail

Sprawdź, czy raporty nie są ustawione na „Nic”, czy poczta wychodząca jest skonfigurowana, czy adres do powiadomień jest poprawny i czy próg istotności nie jest wyżej, niż oczekujesz. W trybie domyślnym raport ma ograniczoną częstotliwość: ustalenia z przerwy trafiają do następnego e-maila. Do testów użyj „Dodatkowo po każdym skanie ręcznym”.

„Nie można połączyć się z ClamAV”

Sprawdź host i port na karcie Antywirus oraz to, czy demon działa (docker ps). Z serwera aplikacji port musi być osiągalny i niezablokowany przez zaporę. Użyj Zapisz i przetestuj, aby zobaczyć dokładny błąd.

ClamAV nie widzi pliku

Pliki powyżej limitu rozmiaru są pomijane (domyślnie 25 MB) i liczone jako pominięte, a nie jako czyste. Zwiększ limit na karcie Antywirus, do wartości, na jaką pozwala Twój clamd.

Usługa online mówi „nieznany” dla większości plików

To normalne dla Twojego własnego kodu, motywów na zamówienie i wszystkiego, czego usługa nigdy nie widziała. „Nieznany” nie znaczy czysty. Do prawdziwego skanowania użyj ClamAV.

Usługa online odrzuca zapytania

Plany bezpłatne mają limity zapytań. Skan zatrzymuje się z komunikatem; uruchom go ponownie później, pliki już sprawdzone są pomijane.

Pulpit pokazuje czerwone ostrzeżenie o integralności

Własne pliki aplikacji nie zgadzają się z wersją dostarczoną. Po aktualizacji albo edycji pliku jest to oczekiwane, dopóki manifest się nie zgodzi; w przeciwnym razie potraktuj to poważnie i postępuj według przewodnika Po włamaniu.

Najczęściej zadawane pytania

Czy potrzebuję ClamAV, żeby używać File Sentinel?

Nie. Wykrywanie zmian, sygnatury webshelli, oficjalne sumy kontrolne, snapshoty i raporty e-mail działają bez niego. ClamAV dodaje prawdziwy skan antywirusowy.

Czy File Sentinel wysyła moje pliki gdziekolwiek?

Nie. W przypadku ClamAV pliki trafiają tylko do Twojego własnego demona. W przypadku VirusTotal lub MetaDefender wysyłany jest tylko skrót SHA-256, nigdy plik. Nam nie jest wysyłane nic.

Czy działa ze stronami, które nie są na WordPressie?

Tak. Skan zmian, antywirus i snapshoty działają dla dowolnych plików. Oficjalne sumy kontrolne są dostępne dla WordPressa, Joomli, Drupala oraz ich wtyczek i motywów, albo możesz utworzyć własny zestaw.

Czy mogę obserwować kilka stron?

Tak, dodaj jeden skanowany folder na stronę. Dla wielu stron w różnych instalacjach funkcja Sieć instalacji pozwala im zgłaszać się do instalacji nadrzędnej.

Czy cron co minutę zaleje moją skrzynkę?

Domyślnie nie: raporty mają ograniczoną częstotliwość. Limit znosi dopiero opcjonalne ustawienie „Po każdym skanie, także z crona”.

Czy mogę edytować pliki w panelu?

Nie, celowo: edytor plików pozwoliłby każdemu, kto przejmie panel, uruchomić kod na Twoim serwerze. Możesz przywracać wcześniejsze wersje i przenosić pliki do kwarantanny.

Czy może wyczyścić za mnie infekcję?

Znajduje i izoluje. Prawdziwe czyszczenie to przywrócenie ze sprawdzonego źródła i zamknięcie punktu wejścia; przewodnik Po włamaniu opisuje bezpieczną kolejność.

Jakie języki obsługuje?

Angielski i polski, osobno dla każdego administratora.

Kontakt

Pytania, sugestie albo coś działa inaczej niż tu opisano? Napisz do autora.