Moduł Magento 2 – Skaner Bezpieczeństwa i Wykrywania Złośliwego Kodu
- SKU
- M2-SECURITY-SCAN
Opis / Moduł Magento 2 – Skaner Bezpieczeństwa i Wykrywania Złośliwego Kodu
MAGENTO 2 · MONITOROWANIE · DETEKCJA · RAPORTY
Wykrywaj podejrzane zmiany i szybciej oceniaj incydenty.
Kowal Security Scan
Sprawdzaj pliki oraz wybrane treści bazy danych Magento. Łącz lokalne reguły detekcji z raportowaniem, opcjonalną analizą AI i oceną reputacji URL przez Google Safe Browsing.
Pliki i baza danych · Cron i CLI · Reguły i allowlisty
JAK TO DZIAŁA W PRAKTYCE
01 · Konfigurujesz skanowanie
Włączasz moduł, raporty i wybrane integracje.
02 · Skaner sprawdza sklep
Uruchamiasz skany ręcznie albo przez cron.
03 · Zespół ocenia raport
Weryfikuje wykrycia i podejmuje dalsze działania.
Co zyskuje Twój sklep?
Poznaj funkcje, zastosowanie i ustawienia modułu.
Poznaj moduł
Kowal Security Scan to rozbudowany moduł bezpieczeństwa dla Magento 2, który pomaga szybciej wykrywać podejrzane zmiany w plikach, złośliwy kod, niebezpieczne URL-e oraz wstrzyknięcia w treściach bazy danych. Został zaprojektowany tak, aby działać lekko, bez dodatkowych agentów i bez skomplikowanego wdrożenia.
Najważniejsze funkcje modułu
- Skan zmian w plikach - wykrywa nowe, zmodyfikowane i usunięte pliki w obrębie aplikacji Magento.
- Heurystyczny skan malware - analizuje pliki
php,phtml,js,html,svg,htaccessi inne nośniki payloadów. - Analiza tokenów PHP - wykrywa łańcuchy
decode -> execute, dynamiczne callbacki, variable function calls oraz podejrzaneinclude/require. - Skan bazy danych - sprawdza wybrane tabele Magento pod kątem złośliwego HTML, JavaScript, SVG,
data:URI i niebezpiecznych linków. - Integracja z Google Safe Browsing - ocenia reputację URL-i występujących w treściach sklepu.
- Opcjonalna analiza OpenAI - rozszerza raport o ocenę ryzyka i rekomendacje działań.
- Zaawansowane allowlisty - pozwalają ograniczać false positive na poziomie domen, plików, treści i konkretnych reguł.
- Raporty z gotową konfiguracją - moduł podpowiada kandydatów do allowlist oraz generuje znormalizowany eksport JSON gotowy do wykorzystania.
Co wyróżnia ten moduł?
- Stabilne identyfikatory reguł - reguły plików i bazy mają własne
rule_id, dzięki czemu konfiguracja allowlist nie zależy od pełnego opisu tekstowego. - Raporty wspierające obsługę incydentów - raport pokazuje nie tylko wykrycia, ale także poziom ryzyka, rekomendacje i gotowe wpisy do konfiguracji.
- Kontrola false positive bez wyłączania skanera - możesz wyciszyć pojedynczą regułę dla wskazanej ścieżki lub tabeli zamiast wyłączać cały moduł.
- Pełna automatyzacja - moduł działa w cronie, ale każdy skan można też uruchomić ręcznie przez CLI.
Jakie zagrożenia pomaga wykrywać?
- obfuskowany kod PHP oparty na
eval,base64_decode,gzinflatei podobnych technikach, - złośliwe osadzenia JavaScript w treściach CMS,
- zewnętrzne iframe i podejrzane przekierowania,
- payloady SVG i treści ukryte w
data:URI, - niebezpieczne linki prowadzące do malware, phishingu lub niechcianego oprogramowania,
- nieautoryzowane zmiany w plikach aplikacji.
Gdzie moduł szuka zagrożeń?
Moduł analizuje kluczowe obszary sklepu, w których najczęściej pojawiają się incydenty:
- pliki aplikacji Magento i modułów,
- bloki CMS,
- strony CMS,
core_config_data,- szablony e-maili Magento i newslettera,
- treści produktowe i recenzje klientów.
Raporty i reakcja operacyjna
- Wyniki są zapisywane w dedykowanej tabeli raportów modułu.
- Raport może być wysyłany e-mailem do operatora.
- Każde wykrycie może zawierać poziom ryzyka, wskazówki operacyjne i powiązane
rule_id. - Raport potrafi przygotować gotowe sugestie do allowlist oraz znormalizowaną konfigurację w JSON.
Przykładowe zastosowania
- wykrywanie złośliwego kodu dodanego po włamaniu do sklepu,
- monitorowanie nieautoryzowanych zmian w plikach wdrożenia,
- wykrywanie zainfekowanych bloków CMS lub treści w bazie danych,
- ocena, czy podejrzany URL powinien zostać dopuszczony do allowlist, czy usunięty z systemu.
Dlaczego warto?
- Szybkie wdrożenie - działa jako moduł Magento 2 bez dodatkowej infrastruktury.
- Praktyczne raportowanie - moduł nie kończy pracy na wykryciu, ale pomaga przejść do decyzji operacyjnej.
- Lepsza kontrola jakości alarmów - allowlisty i
rule_idułatwiają utrzymanie wysokiej skuteczności bez zalewu fałszywych alarmów. - Dobre dopasowanie do środowisk produkcyjnych - automatyczne skany, raportowanie e-mail i ręczne komendy CLI wspierają codzienną pracę zespołu technicznego.
Kompatybilność
- Magento Open Source 2.3.x - 2.4.x
- Adobe Commerce / Magento Commerce
Co zawiera pakiet?
- moduł Magento 2 z zadaniami cron i komendami CLI,
- konfigurację administracyjną modułu,
- mechanizm raportowania do bazy i e-maila,
- rozbudowane reguły detekcji oraz system allowlist.
Dokumentacja i wsparcie
Do modułu dostępna jest dokumentacja wdrożeniowa i konfiguracyjna, a jego architektura wspiera dalsze dostrajanie reguł i procesów bezpieczeństwa w sklepie Magento 2.
Zadbaj o wcześniejsze wykrywanie incydentów w Magento 2 z Kowal Security Scan.
Pierwszy skan i obszar monitorowania
Dotychczasowy opis wymienia Magento Open Source 2.3.x–2.4.x oraz Adobe Commerce / Magento Commerce. Zgodność konkretnej wersji Magento i PHP należy sprawdzić z dostarczaną wersją pakietu. Pierwsze uruchomienie filecheck tworzy bazowy snapshot. Dopiero kolejne skany porównują stan i raportują ADDED, MODIFIED oraz REMOVED. Obszary takie jak var, generated, vendor, pub/static i node_modules są pomijane w skanie zmian.
Database Scan obejmuje wybrane tabele: cms_block, cms_page, core_config_data, email_template, newsletter_template, review_detail i catalog_product_entity_text. Moduł nie jest gwarancją wykrycia wszystkich zagrożeń i nie usuwa automatycznie infekcji.
Harmonogram i konfiguracja
W Stores → Configuration → Kowal → Security Scan ustawiasz aktywność, odbiorcę i nadawcę raportów oraz retencję. Domyślny cron uruchamia skan zmian o 00:00, malware o 01:00, bazę o 02:00 i czyszczenie raportów o 02:30.
Automatyzacja wymaga działającego crona Magento i dostarczania e-maili. Ręczne komendy to kowal_securityscan:filecheck, kowal_securityscan:malwarecheck i kowal_securityscan:dbcheck.
Opcjonalne API i precyzyjne wyjątki
Bez OpenAI i Google Safe Browsing działają podstawowe skany lokalne. Aktywowane API wymagają własnych kluczy i dostępu do usług. Analiza AI przesyła podejrzane fragmenty do OpenAI; konfigurujesz model i maksymalny kontekst. Safe Browsing sprawdza wykryte URL oraz bazowy adres sklepu.
Wyciszanie pojedynczej reguły dla pliku lub tabeli jest węższe niż pomijanie całego pliku lub rekordu. Kandydatów allowlist z raportu i eksportu JSON zatwierdzaj po weryfikacji — raport wspiera decyzję operatora, nie zastępuje jej.
Instalacja przez Composer
Pakiet kowal/module-securityscan, moduł Kowal_SecurityScan. Po skonfigurowaniu dostępu do repozytorium Kowal zainstaluj pakiet, włącz moduł, zaktualizuj Magento i wyczyść cache. W produkcji uwzględnij kompilację i wdrożenie treści statycznych zgodnie z procesem sklepu.
Od konfiguracji do efektu
1. Konfigurujesz skanowanie
Włączasz moduł, raporty i wybrane integracje.
2. Skaner sprawdza sklep
Uruchamiasz skany ręcznie albo przez cron.
3. Zespół ocenia raport
Weryfikuje wykrycia i podejmuje dalsze działania.
Podejrzany skrypt w bloku CMS
Skan bazy wykrywa fragment JavaScript w treści CMS. Raport wskazuje rekord i regułę, a opcjonalna analiza AI pomaga ocenić ryzyko.
Operator sprawdza, czy to incydent, czy poprawna integracja. Zweryfikowany fałszywy alarm może wyciszyć precyzyjną regułą allowlist.
Włącz regularne monitorowanie Magento
Chcesz dopasować moduł do swojego sklepu? Zapytaj o wdrożenie Kowal Security Scan i omów konfigurację lub potrzebne rozszerzenia.
Więcej informacji
| Zgodność z szablonem | Luma / Blank, KOWAL |
|---|
Change Log
Wersja: 1.0.27
31.03.2026
Rozbudowaliśmy moduł Kowal_SecurityScan o nowe funkcje związane z analizą zagrożeń i administracją raportami.
Nowości
- Dodano integrację z OpenAI do analizy zmienionych plików oraz podejrzanych rekordów w bazie danych.
- Raporty i wiadomości e-mail zawierają teraz ocenę ryzyka oraz rekomendowane działania w obszarach:
- Magento
- serwer
- firewall
- Dodano konfigurację OpenAI w panelu Magento, w tym:
- włączanie/wyłączanie analizy AI
- klucz API
- wybór modelu
- limit kontekstu przekazywanego do analizy
Usprawnienia
- Lista modeli OpenAI jest teraz pobierana dynamicznie z API i prezentowana w konfiguracji jako dropdown.
- Rozszerzono treść wiadomości e-mail o identyfikację sklepu Magento:
- domenę sklepu
- adres URL sklepu
- Domena sklepu jest także dodawana do tematu wiadomości, co ułatwia obsługę wielu instancji.
Automatyzacja i utrzymanie
- Dodano nowy cron czyszczący stare wpisy z tabeli raportów.
- Czas retencji raportów jest konfigurowalny z poziomu system.xml jako liczba dni.
Poprawki techniczne
- Uporządkowano logikę analizy podejrzanych plików i rekordów.
- Poprawiono obsługę kontekstu danych przekazywanych do analizy AI.
- Usunięto problem z kompilacją DI związany z wcześniejszą implementacją klienta OpenAI.
Instrukcja Instalacji modułu
Przed rozpoczęciem
Kowal_SecurityScan
Przegląd
Moduł rozszerza Magento 2 o warstwę monitoringu bezpieczeństwa dla plików aplikacji, wybranych tabel bazy danych, podejrzanych URL-i oraz opcjonalnej analizy incydentów przez OpenAI.
Raporty są zapisywane w tabeli kowal_securityscan_report i mogą być wysyłane e-mailem.
Główne funkcje
- skan zmian w plikach Magento z porównaniem do snapshotu,
- heurystyczny skan plików
php,phtml,php5,inc,phar,js,html,htm,svg,htaccess, - analiza tokenów PHP przez
token_get_all(), - skan wybranych tabel bazy danych pod kątem złośliwego HTML, JavaScript, SVG,
data:URI i podejrzanych URL-i, - integracja z Google Safe Browsing API,
- opcjonalna analiza OpenAI dla wykryć,
- konfiguracyjne allowlisty domen, plików, wzorców treści i reguł,
- raporty z gotowymi sugestiami do allowlist oraz eksportem znormalizowanej konfiguracji JSON.
Wymagania
- Magento 2,
- dostępny moduł
kowal/base, - działający cron Magento,
- poprawnie skonfigurowana wysyłka e-mail,
- opcjonalnie: klucz OpenAI API oraz klucz Google Safe Browsing API.
Instalacja
1. Dodanie repozytorium pakietu
Dodaj repozytorium Composer Kowal:
Dane dostępowe do repozytorium Composer (adres e-mail klienta i token licencyjny) otrzymasz e-mailem po zakupie. Są również dostępne w panelu klienta po zalogowaniu na kowal.store. Zastąp TWOJ_EMAIL_KLIENTA adresem e-mail swojego konta, a TWOJ_TOKEN otrzymanym tokenem. Polecenia wykonaj w katalogu głównym Magento.
composer config repositories.kowal composer https://repo.kowal.store
Jeżeli repozytorium wymaga autoryzacji:
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"
2. Instalacja pakietu
composer require kowal/module-securityscan
3. Aktywacja modułu
Włącz moduł
php bin/magento module:enable Kowal_SecurityScanZaktualizuj Magento
php bin/magento setup:upgradeWyczyść pamięć podręczną
php bin/magento cache:flush
W środowisku produkcyjnym wykonaj standardowe kroki deploymentu Magento, zgodne z Twoim procesem wdrożeniowym.
Cron i harmonogram skanów
Moduł rejestruje własną grupę cron securityscan.
kowal_securityscan_filecheck- codziennie o00:00,kowal_securityscan_malwarecheck- codziennie o01:00,kowal_securityscan_dbcheck- codziennie o02:00,kowal_securityscan_cleanup_reports- codziennie o02:30.
Bez działającego crona Magento skany automatyczne nie będą wykonywane.
Ręczne uruchamianie skanów
Do ręcznego uruchamiania skanów użyj:
php bin/magento kowal_securityscan:filecheck
php bin/magento kowal_securityscan:malwarecheck
php bin/magento kowal_securityscan:dbcheck
To zalecany sposób testu po instalacji i po zmianach konfiguracji.
Konfiguracja
Ścieżka konfiguracji:
Stores -> Configuration -> kowal -> kowal_security
Ustawienia ogólne
Włącz modułAdres e-mail do raportówAdres e-mail nadawcyRetencja raportow w dniachGoogle Safe Browsing API KeyAllowlista domenAllowlista plikowAllowlista wzorcow bazyAllowlista reguł plikowAllowlista reguł bazy
Minimalna konfiguracja
- włącz moduł,
- ustaw adres odbiorcy raportów,
- ustaw adres nadawcy raportów,
- upewnij się, że działa wysyłka e-mail Magento,
- upewnij się, że działa cron Magento.
Analiza OpenAI
Sekcja Analiza OpenAI pozwala rozszerzyć raporty o ocenę ryzyka i rekomendacje działań.
Dostępne pola:
Włącz analizę AI,OpenAI API Key,Model OpenAI,Maksymalny kontekst dla AI.
Jak włączyć
- włącz
Włącz analizę AI, - uzupełnij
OpenAI API Key, - zapisz konfigurację,
- odśwież formularz konfiguracji,
- wybierz model.
Domyślne zachowanie
- domyślny model:
gpt-4.1-mini, - domyślny limit kontekstu:
12000, - wartości poniżej
2000są podnoszone do12000, - maksymalny limit kontekstu to
50000.
Jeżeli OpenAI jest wyłączone albo brakuje klucza, moduł nadal działa i stosuje heurystyki lokalne.
Google Safe Browsing
Jeżeli uzupełnisz Google Safe Browsing API Key, moduł będzie:
- sprawdzał URL-e wykryte w plikach i bazie,
- sprawdzał adres bazowy sklepu.
Brak klucza nie blokuje podstawowych skanów, tylko wyłącza ten etap.
Skan zmian w plikach
filecheck działa na podstawie snapshotu zapisywanego do:
var/security_scan_hashes.json
Przy pierwszym uruchomieniu:
- tworzony jest snapshot,
- nie ma jeszcze porównania zmian,
- raport informuje o utworzeniu bazy odniesienia.
Kolejne uruchomienia raportują zmiany typu ADDED, MODIFIED i REMOVED.
Pomijane są m.in.:
var/,generated/,vendor/,pub/static/,node_modules/.
Skan malware w plikach
malwarecheck skanuje pliki aplikacji na podstawie:
- regexowych reguł z
rule_id, - heurystyk tokenowych PHP,
- sprawdzeń URL-i przez Safe Browsing.
Przykładowe typy wykryć:
file.obfuscated_eval_chain,file.command_execution_from_request,file.encoded_payload_blob,file.token.decode_execute_chain,file.token.include_from_request,file.inline_svg_or_event_handler.
W raportach powody są prezentowane w formacie:
[file.encoded_payload_blob] Encoded payload blob detectedSkan bazy danych
dbcheck analizuje wybrane tabele Magento:
cms_block,cms_page,core_config_data,email_template,newsletter_template,review_detail,catalog_product_entity_text.
Przykładowe reguły:
db.inline_script_tag,db.html_event_handler,db.external_iframe,db.javascript_uri,db.data_uri_executable,db.embedded_svg_payload,db.javascript_dom_redirect.
Treść jest wcześniej normalizowana przez:
html_entity_decode,rawurldecode,- normalizację whitespace,
- analizę wielu wariantów tego samego contentu.
Zaawansowana konfiguracja: allowlisty
Allowlisty służą do ograniczania false positive bez wyłączania całego modułu.
1. Allowlista domen
Pole: kowal_security/general/allowlisted_domains
Format:
- jedna domena na linię, albo
- lista rozdzielona przecinkami.
cdn.example.com
static.example.org
Efekt:
- URL-e z tych domen nie będą traktowane jako podejrzane,
- Safe Browsing nie będzie ich sprawdzał.
2. Allowlista plików
Pole: kowal_security/general/allowlisted_file_patterns
Format:
- ścieżki względne,
- obsługa globów.
app/code/Vendor/Module/Test/*
pub/media/custom.js
Efekt: pliki dopasowane do wzorca są całkowicie pomijane przez skan malware. To ustawienie ma szeroki zasięg.
3. Allowlista wzorców bazy
Pole: kowal_security/general/allowlisted_db_patterns
Format:
- frazy,
- fragmenty HTML lub JS,
- wpisy rozdzielone nową linią albo przecinkami.
trusted-inline-widget
data:image/svg+xml,<svg
Efekt: rekord bazy zawierający taki fragment jest pomijany przez skan DB. To ustawienie również ma szeroki zasięg.
4. Allowlista reguł plików
Pole: kowal_security/general/allowlisted_file_rules
Preferowany format:
sciezka_lub_glob | rule_id
Przykład:
app/code/Vendor/Module/* | file.encoded_payload_blob
pub/media/custom.js | file.javascript_redirect_or_rewrite
Kompatybilność wsteczna:
- stare wpisy po pełnej etykiecie reguły nadal działają,
- nowe wpisy powinny używać
rule_id.
Efekt: wyciszana jest tylko wskazana reguła dla wskazanej ścieżki, a reszta skanu dla tego pliku nadal działa.
5. Allowlista reguł bazy
Pole: kowal_security/general/allowlisted_db_rules
Preferowany format:
tabela_lub_* | rule_id
Przykład:
cms_block | db.inline_script_tag
* | db.fetch_or_xhr_loader
Efekt: wyciszana jest tylko wskazana reguła, a pozostałe nadal działają dla tego rekordu lub tabeli.
Raporty
Raporty mogą zawierać:
- listę wykryć,
- ocenę ryzyka,
- wskaźniki i rekomendacje,
- kandydatów do allowlist po ręcznej weryfikacji,
- znormalizowaną konfigurację allowlist w JSON.
Sugestie allowlist w raportach
Sekcja raportu może zawierać wpisy typu:
- cms_block | db.inline_script_tag | pewnosc=MEDIUM | zasieg=LOW
- app/code/Vendor/Module/* | file.encoded_payload_blob | pewnosc=MEDIUM | zasieg=LOW
- data:image/svg+xml,<svg... | pewnosc=LOW | zasieg=HIGH
Interpretacja:
zasieg=LOW- bezpieczniejszy kandydat,zasieg=HIGH- szerokie wyciszenie, tylko po twardej weryfikacji,pewnosc=MEDIUM/HIGH- bardziej przewidywalny kandydat do konfiguracji,pewnosc=LOW- wymaga ostrożności.
Eksport JSON
Raport zawiera też sekcję Znormalizowana konfiguracja allowlist (JSON). To gotowy, zdeduplikowany zestaw wartości do przepisania do konfiguracji.
Zalecany sposób użycia
- uruchom ręcznie wszystkie trzy skany po instalacji,
- pierwszy
filecheckpotraktuj jako budowę snapshotu, - przeanalizuj raporty i potwierdź, które wykrycia są prawdziwe,
- dla false positive najpierw używaj
allowlisted_file_rulesiallowlisted_db_rules, - dopiero gdy to konieczne, używaj
allowlisted_domains,allowlisted_file_patternsiallowlisted_db_patterns, - po zmianie konfiguracji uruchom ponownie odpowiedni skan CLI i sprawdź wynik.
Uwagi operacyjne
filecheckprzy pierwszym uruchomieniu nie raportuje jeszcze zmian jako incydentu,- moduł działa bez OpenAI i bez Safe Browsing, ale z mniejszą głębią analizy,
allowlisted_file_patternsiallowlisted_db_patternsmają szeroki wpływ i powinny być używane oszczędnie,- preferowany format dla allowlist reguł to
rule_id, nie pełna etykieta tekstowa.