Blog 24/7

monitorowanie integralności plików

TAB. 1Hasłopo polsku
Po angielskufile integrity monitoring
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formykontrola integralności plików · monitorowanie zmian w plikach · wykrywanie zmodyfikowanych plików
KategoriaStrony WWW, WordPress i hosting

Monitorowanie integralności plików (ang. file integrity monitoring, FIM) to porównywanie bieżącego stanu plików z zapisanym wzorcem w celu wykrycia plików zmienionych, dodanych albo usuniętych. Integralność w terminologii NIST oznacza ochronę przed niewłaściwą modyfikacją lub zniszczeniem informacji, łącznie z zapewnieniem jej autentyczności [1]. Na stronie internetowej wzorcem są zwykle sumy kontrolne oficjalnego wydania oprogramowania albo stan zapisany tuż po czystej instalacji. Monitorowanie nie zapobiega włamaniu. Pozwala je zauważyć i ustalić, co napastnik zostawił na serwerze.

Jak działa

Mechanizm ma dwie fazy. Najpierw powstaje linia bazowa: dla każdego pliku zapisuje się wynik funkcji skrótu (hashowania) oraz atrybuty, takie jak rozmiar, właściciel i uprawnienia. Dokumentacja Wazuh opisuje to jako skan bazowy, który przechowuje sumę kryptograficzną i inne atrybuty monitorowanych plików [7]. Przy kolejnym sprawdzeniu moduł porównuje sumę i atrybuty z linią bazową i zgłasza alert, gdy wykryje niezgodność [7]. Sekurak, opisując hostowe systemy wykrywania włamań, zwraca uwagę, że sprawdzają one nie tylko widoczne dane, ale również wartości skrótu plików [8]. Dzięki temu zmiana jednego bajtu w pliku PHP zmienia skrót i zostaje wykryta, nawet jeśli data modyfikacji pozostała ta sama.

Przebieg pracy narzędzia pokazuje schemat poniżej.

RYS. 1Monitorowanie integralności plików

Monitorowanie integralności jest jedną z funkcji hostowego systemu wykrywania włamań, czyli IDS działającego na samym serwerze. Sekurak wymienia jako klasyczne narzędzia tego typu Tripwire, AIDE i Afick [8].

Odmiany

Narzędzia różnią się tym, skąd biorą wzorzec i jak często sprawdzają pliki. Wazuh obsługuje zarówno skany według harmonogramu, jak i monitorowanie w czasie rzeczywistym [7].

PodejścieWzorzecPrzykład
porównanie z wydaniem producentasumy kontrolne z WordPress.orgwp core verify-checksums [2]
własna linia bazowaskróty zapisane na serwerzeTripwire, AIDE, Afick [8]
nasłuch zmian w czasie rzeczywistymzdarzenia systemu plikówWazuh [7], inotify [5]
kontrola wersjirepozytorium koduGit, diff [5]

Porównanie z wydaniem producenta nie wymaga własnej linii bazowej, ale obejmuje tylko pliki, które producent publikuje. Własna linia bazowa obejmuje wszystko, także kod pisany na zamówienie, lecz jest tak wiarygodna, jak stan serwera w chwili jej utworzenia.

W WordPressie

WP-CLI udostępnia polecenie wp core verify-checksums. Według dokumentacji pobiera ono sumy MD5 dla bieżącej wersji z WordPress.org i porównuje je z zainstalowanymi plikami [2]. Gdy plik się różni, polecenie wypisuje ostrzeżenie „File doesn't verify against checksum” i kończy się błędem [2]. Kod źródłowy polecenia pokazuje, że katalog wp-content jest pomijany, a pliki spoza wydania, których w nim nie ma, są zgłaszane komunikatem „File should not exist”; wyjątkami są między innymi .htaccess i wp-config.php [4].

Wtyczki sprawdza wp plugin verify-checksums. Z opcją --all weryfikuje wszystkie zainstalowane wtyczki, a z --strict zgłasza także drobne zmiany, na przykład w pliku readme.txt [3]. Polecenie działa tylko dla wtyczek dostępnych w oficjalnym repozytorium WordPress.org [3].

wp core verify-checksums
wp plugin verify-checksums --all

Poza zasięgiem tych poleceń zostają więc motywy, wtyczki komercyjne, mu-plugins, katalog przesłanych plików i sam wp-config.php. Dla nich potrzebna jest własna linia bazowa. Szczególną uwagę warto zwrócić na katalog uploads. CERT Polska wskazuje, że podejrzane są pliki PHP zawierające funkcje takie jak system(), exec() czy shell_exec(), zwłaszcza w katalogach /images lub /uploads [6]. Tak zwykle wygląda webshell albo tylna furtka (backdoor).

Zmiany w plikach może też wprowadzać sam panel. Stała DISALLOW_FILE_EDIT w wp-config.php działa jak odebranie wszystkim użytkownikom uprawnień edit_themes, edit_plugins i edit_files [5], czyli wyłącza edytor plików motywów i wtyczek. Każda zmiana kodu przechodzi wtedy przez wdrożenie albo aktualizację rdzenia, co ułatwia odróżnienie zmian planowanych od podejrzanych.

Znaczenie

Podręcznik utwardzania WordPressa zauważa, że atak zawsze zostawia ślady: w logach albo w systemie plików, w postaci nowych lub zmienionych plików [5]. Monitorowanie integralności wychwytuje tę drugą grupę śladów. Wśród wymienianych w podręczniku celów są: wykrycie zmienionych i dodanych plików, zapis zmian, możliwość cofnięcia pojedynczych modyfikacji i automatyczne powiadomienia [5]. Wykryty plik jest wskaźnikiem kompromitacji (IoC), który można potem szukać na innych serwerach.

Dokumentacja Wazuh wskazuje też stronę formalną: monitorowanie krytycznych plików to według niej istotny wymóg takich regulacji jak PCI DSS, HIPAA i RODO [7].

Dobre praktyki

  • Linię bazową tworzyć po czystej instalacji i odnawiać po każdej planowanej aktualizacji. Wzorzec zrobiony na zainfekowanym serwerze utrwala infekcję.
  • Uruchamiać narzędzie z uprawnieniami administratora systemu, aby napastnik nie mógł go wyłączyć, i stosować ścisłe uprawnienia plików [5].
  • Ograniczać szum: podręcznik WordPressa radzi monitorować tylko pliki wykonywalne i wstrzymywać monitorowanie na czas prac serwisowych [5]. Nadmiar zgłoszeń prowadzi do zmęczenia alertami (alert fatigue), a każdy fałszywy alarm (false positive) osłabia zaufanie do narzędzia.
  • Łączyć monitorowanie z logami serwera i skanerem złośliwego oprogramowania (malware scanner): skaner szuka znanych wzorców, monitorowanie wskazuje każdą zmianę.
  • Przechowywać kopię zapasową (backup) plików i bazy poza serwerem hostującym stronę, tak aby atakujący nie miał do niej dostępu [6].

Po wykryciu zmiany

Wykrycie nieoczekiwanej zmiany rozpoczyna reagowanie na incydent. CERT Polska zaleca, aby po ustaleniu ram czasowych incydentu na podstawie logów zidentyfikować pliki nowo utworzone lub zmodyfikowane w tym okresie [6]. Zastrzega przy tym, że atakujący mogą sfałszować daty modyfikacji, więc sprawdzenie znaczników czasu nie zwalnia z analizy pozostałych plików [6]. Właśnie tu przewagę mają skróty: porównanie treści nie zależy od dat. Według CERT Polska weryfikację zmian ułatwia porównanie plików z oficjalnym repozytorium systemu CMS [6]. Dalsze kroki to izolacja serwera, zabezpieczenie logów, analiza artefaktów i odbudowa z czystej kopii albo od podstaw [6]; opisuje je hasło czyszczenie przejętej strony.

TAB. 2

Przypisy

8
  1. [1] Integrity — Glossary · NIST Computer Security Resource Center
  2. [2] wp core verify-checksums — WP-CLI Commands · WordPress.org
  3. [3] wp plugin verify-checksums — WP-CLI Commands · WordPress.org
  4. [4] Checksum_Core_Command.php (wp-cli/checksum-command) · WP-CLI
  5. [5] Hardening WordPress — Advanced Administration Handbook · WordPress.org
  6. [6] Przejęta strona internetowa — ścieżka postępowania · CERT Polska
  7. [7] File integrity monitoring — Wazuh documentation · Wazuh
  8. [8] Hostowe systemy wykrywania intruzów (HIDS) · Sekurak
TAB. 3

Hasła w tym artykule

16
TAB. 4

Linkują tutaj

69

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com