Magento 2 Modul – Sicherheitsscanner und Erkennung von Schadcode
- Kompatibilität
- 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.7, 2.3.6, 2.3.5, 2.3.4
Beschreibung / Magento 2 Modul – Sicherheitsscanner und Erkennung von Schadcode
MAGENTO 2 · ÜBERWACHUNG · ERKENNUNG · BERICHTE
Erkennen Sie verdächtige Änderungen und bewerten Sie Vorfälle schneller.
Kowal Security Scan
Prüfen Sie Dateien und ausgewählte Inhalte der Magento-Datenbank. Kombinieren Sie lokale Erkennungsregeln mit Berichten, optionaler AI-Analyse und der Bewertung der URL-Reputation durch Google Safe Browsing.
Dateien und Datenbank · Cron und CLI · Regeln und Allowlists
SO FUNKTIONIERT ES IN DER PRAXIS
01 · Sie konfigurieren die Scans
Sie aktivieren das Modul, die Berichte und ausgewählte Integrationen.
02 · Der Scanner prüft den Shop
Sie starten Scans manuell oder über Cron.
03 · Das Team bewertet den Bericht
Es überprüft die Erkennungen und leitet weitere Maßnahmen ein.
Welche Vorteile bietet das Ihrem Shop?
Entdecken Sie die Funktionen, Einsatzmöglichkeiten und Einstellungen des Moduls.
Lernen Sie das Modul kennen
Kowal Security Scan ist ein umfassendes Sicherheitsmodul für Magento 2, das dabei hilft, verdächtige Dateiänderungen, Schadcode, gefährliche URLs und Einschleusungen in Datenbankinhalten schneller zu erkennen. Es wurde für einen ressourcenschonenden Betrieb ohne zusätzliche Agenten und ohne aufwendige Implementierung entwickelt.
Die wichtigsten Modulfunktionen
- Scan auf Dateiänderungen – erkennt neue, geänderte und gelöschte Dateien innerhalb der Magento-Anwendung.
- Heuristischer Malware-Scan – analysiert Dateien vom Typ
php,phtml,js,html,svg,htaccessund andere Träger von Payloads. - PHP-Tokenanalyse – erkennt
decode -> execute-Ketten, dynamische Callbacks, variable Funktionsaufrufe und verdächtigeinclude/requireverwendet. - Datenbankscan – prüft ausgewählte Magento-Tabellen auf schädliches HTML, JavaScript, SVG,
data:-URIs und gefährliche Links. - Integration mit Google Safe Browsing – bewertet die Reputation von URLs in den Shop-Inhalten.
- Optionale OpenAI-Analyse – ergänzt den Bericht um eine Risikobewertung und Handlungsempfehlungen.
- Erweiterte Allowlists – ermöglichen es, Fehlalarme auf der Ebene von Domains, Dateien, Inhalten und einzelnen Regeln zu reduzieren.
- Berichte mit fertiger Konfiguration – das Modul schlägt Allowlist-Kandidaten vor und erstellt einen normalisierten JSON-Export zur direkten Verwendung.
Was zeichnet dieses Modul aus?
- Stabile Regelkennungen – Datei- und Datenbankregeln verfügen über eigene
rule_id-Kennungen, sodass die Allowlist-Konfiguration nicht von der vollständigen Textbeschreibung abhängt. - Berichte zur Unterstützung der Vorfallbearbeitung – der Bericht zeigt nicht nur Erkennungen, sondern auch Risikostufe, Empfehlungen und fertige Konfigurationseinträge.
- Kontrolle von Fehlalarmen ohne Deaktivierung des Scanners – Sie können eine einzelne Regel für einen bestimmten Pfad oder eine Tabelle stummschalten, anstatt das gesamte Modul zu deaktivieren.
- Vollständige Automatisierung – das Modul wird über Cron ausgeführt, jeder Scan kann jedoch auch manuell über CLI gestartet werden.
Welche Bedrohungen kann das Modul erkennen?
- verschleierten PHP-Code auf Basis von
eval,base64_decode,gzinflateund ähnlichen Techniken, - schädliche JavaScript-Einbettungen in CMS-Inhalten,
- externe iframes und verdächtige Weiterleitungen,
- SVG-Payloads und in
data:-URIs verborgene Inhalte, - gefährliche Links zu Malware, Phishing oder unerwünschter Software,
- nicht autorisierte Änderungen an Anwendungsdateien.
Wo sucht das Modul nach Bedrohungen?
Das Modul analysiert zentrale Shop-Bereiche, in denen Vorfälle besonders häufig auftreten:
- Dateien der Magento-Anwendung und der Module,
- CMS-Blöcke,
- CMS-Seiten,
core_config_data,- Magento-E-Mail- und Newsletter-Templates,
- Produktinhalte und Kundenbewertungen.
Berichte und operative Reaktion
- Die Ergebnisse werden in einer eigenen Berichtstabelle des Moduls gespeichert.
- Der Bericht kann per E-Mail an den zuständigen Mitarbeiter gesendet werden.
- Jede Erkennung kann eine Risikostufe, operative Hinweise und die zugehörige
rule_idverwendet. - Der Bericht kann fertige Allowlist-Vorschläge und eine normalisierte Konfiguration im JSON-Format erstellen.
Anwendungsbeispiele
- Erkennung von Schadcode, der nach einem Angriff auf den Shop hinzugefügt wurde,
- Überwachung nicht autorisierter Änderungen an Deployment-Dateien,
- Erkennung infizierter CMS-Blöcke oder Datenbankinhalte,
- Bewertung, ob eine verdächtige URL in die Allowlist aufgenommen oder aus dem System entfernt werden sollte.
Warum lohnt es sich?
- Schnelle Implementierung – funktioniert als Magento 2 Modul ohne zusätzliche Infrastruktur.
- Praxisorientierte Berichte – das Modul beendet seine Arbeit nicht mit der Erkennung, sondern unterstützt Sie bei operativen Entscheidungen.
- Bessere Kontrolle der Alarmqualität – Allowlists und
rule_id-Kennungen erleichtern die Aufrechterhaltung einer hohen Wirksamkeit ohne eine Flut von Fehlalarmen. - Gut für Produktionsumgebungen geeignet – automatische Scans, E-Mail-Berichte und manuelle CLI-Befehle unterstützen die tägliche Arbeit des technischen Teams.
Kompatibilität
- Magento Open Source 2.3.x - 2.4.x
- Adobe Commerce / Magento Commerce
Was enthält das Paket?
- Magento 2 Modul mit Cron-Jobs und CLI-Befehlen,
- Administrationskonfiguration des Moduls,
- Mechanismus für Datenbank- und E-Mail-Berichte,
- umfangreiche Erkennungsregeln und ein Allowlist-System.
Dokumentation und Support
Für das Modul steht eine Implementierungs- und Konfigurationsdokumentation zur Verfügung. Seine Architektur unterstützt die weitere Feinabstimmung von Regeln und Sicherheitsprozessen im Magento 2 Shop.
Sorgen Sie mit Kowal Security Scan für eine frühzeitige Erkennung von Vorfällen in Magento 2.
Erster Scan und Überwachungsbereich
Die bisherige Beschreibung nennt Magento Open Source 2.3.x–2.4.x sowie Adobe Commerce / Magento Commerce. Die Kompatibilität der jeweiligen Magento- und PHP-Version muss mit der bereitgestellten Paketversion geprüft werden. Beim ersten Start von filecheck wird ein Basis-Snapshot erstellt. Erst die nachfolgenden Scans vergleichen den Zustand und melden ADDED, MODIFIED und REMOVED. Bereiche wie var, generated, vendor, pub/static und node_modules werden beim Änderungsscan übersprungen.
Database Scan umfasst ausgewählte Tabellen: cms_block, cms_page, core_config_data, email_template, newsletter_template, review_detail und catalog_product_entity_text. Das Modul garantiert nicht die Erkennung aller Bedrohungen und entfernt Infektionen nicht automatisch.
Zeitplan und Konfiguration
Unter Stores → Configuration → Kowal → Security Scan konfigurieren Sie die Aktivierung, Empfänger und Absender der Berichte sowie die Aufbewahrungsdauer. Der standardmäßige Cron startet den Änderungsscan um 00:00 Uhr, den Malware-Scan um 01:00 Uhr, den Datenbankscan um 02:00 Uhr und die Bereinigung der Berichte um 02:30 Uhr.
Die Automatisierung setzt einen funktionierenden Magento-Cron und eine funktionierende E-Mail-Zustellung voraus. Die manuellen Befehle lauten kowal_securityscan:filecheck, kowal_securityscan:malwarecheck und kowal_securityscan:dbcheckverwendet.
Optionale APIs und präzise Ausnahmen
Die grundlegenden lokalen Scans funktionieren ohne OpenAI und Google Safe Browsing. Aktivierte APIs erfordern eigene Schlüssel und Zugriff auf die Dienste. Die AI-Analyse übermittelt verdächtige Fragmente an OpenAI. Sie konfigurieren das Modell und den maximalen Kontext. Safe Browsing prüft erkannte URLs und die Basisadresse des Shops.
Das Stummschalten einer einzelnen Regel für eine Datei oder Tabelle ist spezifischer als das Überspringen einer vollständigen Datei oder eines Datensatzes. Bestätigen Sie Allowlist-Kandidaten aus dem Bericht und dem JSON-Export erst nach einer Überprüfung – der Bericht unterstützt die Entscheidung des zuständigen Mitarbeiters, ersetzt sie jedoch nicht.
Installation über Composer
Paket kowal/module-securityscan, Modul Kowal_SecurityScan. Nachdem Sie den Zugriff auf das Kowal-Repository konfiguriert haben, installieren Sie das Paket, aktivieren das Modul, aktualisieren Magento und leeren den Cache. Berücksichtigen Sie in der Produktionsumgebung die Kompilierung und Bereitstellung statischer Inhalte gemäß dem Bereitstellungsprozess des Shops.
Von der Konfiguration zum Ergebnis
1. Sie konfigurieren die Scans
Sie aktivieren das Modul, die Berichte und ausgewählte Integrationen.
2. Der Scanner prüft den Shop
Sie starten Scans manuell oder über Cron.
3. Das Team bewertet den Bericht
Es überprüft die Erkennungen und leitet weitere Maßnahmen ein.
Verdächtiges Skript in einem CMS-Block
Der Datenbankscan erkennt ein JavaScript-Fragment in einem CMS-Inhalt. Der Bericht nennt den Datensatz und die Regel, während die optionale AI-Analyse bei der Risikobewertung hilft.
Der zuständige Mitarbeiter prüft, ob es sich um einen Vorfall oder eine korrekte Integration handelt. Ein bestätigter Fehlalarm kann mit einer präzisen Allowlist-Regel stummgeschaltet werden.
Aktivieren Sie die regelmäßige Magento-Überwachung
Möchten Sie das Modul an Ihren Shop anpassen? Fragen Sie nach der Implementierung von Kowal Security Scan und besprechen Sie die Konfiguration oder benötigte Erweiterungen.
Weitere Informationen
| Übereinstimmung mit der Vorlage | Luma / Leer, KOWAL |
|---|
Change Log
Version: 1.0.27
31.03.2026
Wir haben das Modul Kowal_SecurityScan um neue Funktionen für die Bedrohungsanalyse und die Verwaltung von Berichten erweitert.
Neue Funktionen
- Eine OpenAI-Integration zur Analyse geänderter Dateien und verdächtiger Datenbankdatensätze wurde hinzugefügt.
- Berichte und E-Mails enthalten jetzt eine Risikobewertung und empfohlene Maßnahmen für folgende Bereiche:
- Magento
- Server
- Firewall
- Die OpenAI-Konfiguration wurde zum Magento-Adminbereich hinzugefügt, einschließlich:
- Aktivierung und Deaktivierung der AI-Analyse
- API-Schlüssel
- Modellauswahl
- Limit des an die Analyse übermittelten Kontexts
Verbesserungen
- Die Liste der OpenAI-Modelle wird jetzt dynamisch über die API abgerufen und in der Konfiguration als Dropdown-Liste angezeigt.
- Die E-Mail-Inhalte wurden um die Identifikation des Magento-Shops erweitert:
- Shop-Domain
- Shop-URL
- Die Shop-Domain wird auch zur Betreffzeile hinzugefügt, was die Verwaltung mehrerer Instanzen erleichtert.
Automatisierung und Wartung
- Ein neuer Cron-Job zum Löschen alter Einträge aus der Berichtstabelle wurde hinzugefügt.
- Die Aufbewahrungsdauer der Berichte kann in system.xml als Anzahl von Tagen konfiguriert werden.
Technische Korrekturen
- Die Logik zur Analyse verdächtiger Dateien und Datensätze wurde neu strukturiert.
- Die Verarbeitung des an die AI-Analyse übermittelten Datenkontexts wurde verbessert.
- Ein Problem bei der DI-Kompilierung im Zusammenhang mit der vorherigen Implementierung des OpenAI-Clients wurde behoben.
Installationsanleitung für das Modul
Anleitung für das Modul Kowal_SecurityScan
Überblick
Das Modul erweitert Magento 2 um eine Sicherheitsüberwachungsebene für Anwendungsdateien, ausgewählte Datenbanktabellen, verdächtige URLs und die optionale Analyse von Vorfällen durch OpenAI.
Berichte werden in der Tabelle kowal_securityscan_report gespeichert und können per E-Mail versendet werden.
Hauptfunktionen
- Scan auf Änderungen an Magento-Dateien mit Vergleich zu einem Snapshot,
- heuristischer Scan von Dateien des Typs
php,phtml,php5,inc,phar,js,html,htm,svg,htaccess, - Analyse von PHP-Tokens über
token_get_all(), - Scan ausgewählter Datenbanktabellen auf schädliches HTML, JavaScript, SVG,
data:-URIs und verdächtige URLs, - Integration mit der Google Safe Browsing API,
- optionale OpenAI-Analyse für Erkennungen,
- konfigurierbare Allowlists für Domains, Dateien, Inhaltsmuster und Regeln,
- Berichte mit fertigen Allowlist-Vorschlägen und Export einer normalisierten JSON-Konfiguration.
Anforderungen
- Magento 2,
- verfügbares Modul
kowal/base, - funktionierender Magento-Cron,
- korrekt konfigurierte E-Mail-Zustellung,
- optional: OpenAI API-Schlüssel und Google Safe Browsing API-Schlüssel.
Installation
1. Paket-Repository hinzufügen
Fügen Sie das Kowal Composer-Repository hinzu:
Die Zugangsdaten für das Composer-Repository, also die E-Mail-Adresse des Kunden und der Lizenz-Token, erhalten Sie nach dem Kauf per E-Mail. Sie sind nach der Anmeldung unter kowal.storeauch im Kundenkonto verfügbar. Ersetzen Sie TWOJ_EMAIL_KLIENTA durch die E-Mail-Adresse Ihres Kontos und TWOJ_TOKEN durch den erhaltenen Token. Führen Sie die Befehle im Magento-Stammverzeichnis aus.
composer config repositories.kowal composer https://repo.kowal.store
Falls das Repository eine Authentifizierung erfordert:
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"
2. Paket installieren
composer require kowal/module-securityscan
3. Modul aktivieren
php bin/magento module:enable Kowal_SecurityScan
php bin/magento setup:upgrade
php bin/magento cache:flush
Führen Sie in der Produktionsumgebung die standardmäßigen Magento-Deployment-Schritte entsprechend Ihrem Implementierungsprozess aus.
Cron und Scan-Zeitplan
Das Modul registriert eine eigene Cron-Gruppe securityscanverwendet.
kowal_securityscan_filecheck– täglich um00:00,kowal_securityscan_malwarecheck– täglich um01:00,kowal_securityscan_dbcheck– täglich um02:00,kowal_securityscan_cleanup_reports– täglich um02:30verwendet.
Ohne einen funktionierenden Magento-Cron werden keine automatischen Scans ausgeführt.
Scans manuell starten
Verwenden Sie zum manuellen Starten der Scans:
php bin/magento kowal_securityscan:filecheck
php bin/magento kowal_securityscan:malwarecheck
php bin/magento kowal_securityscan:dbcheck
Dies ist die empfohlene Testmethode nach der Installation und nach Konfigurationsänderungen.
Konfiguration
Konfigurationspfad:
Stores -> Configuration -> kowal -> kowal_security
Allgemeine Einstellungen
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
Minimalkonfiguration
- Aktivieren Sie das Modul,
- legen Sie die Empfängeradresse für Berichte fest,
- legen Sie die Absenderadresse für Berichte fest,
- stellen Sie sicher, dass der Magento-E-Mail-Versand funktioniert,
- stellen Sie sicher, dass der Magento-Cron funktioniert.
OpenAI-Analyse
Im Abschnitt Analiza OpenAI können Sie die Berichte um eine Risikobewertung und Handlungsempfehlungen erweitern.
Verfügbare Felder:
Włącz analizę AI,OpenAI API Key,Model OpenAI,Maksymalny kontekst dla AIverwendet.
Aktivierung
- Aktivieren Sie
Włącz analizę AI, - tragen Sie den
OpenAI API Key, - speichern Sie die Konfiguration,
- aktualisieren Sie das Konfigurationsformular,
- wählen Sie ein Modell aus.
Standardverhalten
- Standardmodell:
gpt-4.1-mini, - Standard-Kontextlimit:
12000, - Werte unter
2000werden auf12000, - das maximale Kontextlimit beträgt
50000verwendet.
Wenn OpenAI deaktiviert ist oder der Schlüssel fehlt, funktioniert das Modul weiterhin und verwendet lokale Heuristiken.
Google Safe Browsing
Wenn Sie den Google Safe Browsing API Keyeintragen, wird das Modul:
- in Dateien und der Datenbank erkannte URLs prüfen,
- die Basisadresse des Shops prüfen.
Ein fehlender Schlüssel blockiert die grundlegenden Scans nicht, sondern deaktiviert lediglich diesen Schritt.
Scan auf Dateiänderungen
filecheck arbeitet auf Basis eines Snapshots, der unter folgendem Pfad gespeichert wird:
var/security_scan_hashes.json
Beim ersten Start:
- wird ein Snapshot erstellt,
- findet noch kein Änderungsvergleich statt,
- informiert der Bericht über die Erstellung der Referenzbasis.
Nachfolgende Ausführungen melden Änderungen vom Typ ADDED, MODIFIED und REMOVEDverwendet.
Übersprungen werden unter anderem:
var/,generated/,vendor/,pub/static/,node_modules/verwendet.
Malware-Scan in Dateien
malwarecheck scannt Anwendungsdateien auf Basis von:
- Regex-Regeln mit
rule_id, - PHP-Tokenheuristiken,
- URL-Prüfungen über Safe Browsing.
Beispiele für Erkennungstypen:
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_handlerverwendet.
In Berichten werden die Gründe in folgendem Format dargestellt:
[file.encoded_payload_blob] Encoded payload blob detected
Datenbankscan
dbcheck analysiert ausgewählte Magento-Tabellen:
cms_block,cms_page,core_config_data,email_template,newsletter_template,review_detail,catalog_product_entity_textverwendet.
Beispiele für Regeln:
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_redirectverwendet.
Der Inhalt wird zuvor normalisiert durch:
html_entity_decode,rawurldecode,- Normalisierung von Whitespace,
- Analyse mehrerer Varianten desselben Inhalts.
Erweiterte Konfiguration: Allowlists
Allowlists dienen dazu, Fehlalarme zu reduzieren, ohne das gesamte Modul zu deaktivieren.
1. Domain-Allowlist
Feld: kowal_security/general/allowlisted_domains
Format:
- eine Domain pro Zeile oder
- eine durch Kommas getrennte Liste.
cdn.example.com
static.example.org
Auswirkung:
- URLs aus diesen Domains werden nicht als verdächtig behandelt,
- Safe Browsing prüft sie nicht.
2. Datei-Allowlist
Feld: kowal_security/general/allowlisted_file_patterns
Format:
- relative Pfade,
- Unterstützung von Globs.
app/code/Vendor/Module/Test/*
pub/media/custom.js
Auswirkung: Dateien, die dem Muster entsprechen, werden vom Malware-Scan vollständig übersprungen. Diese Einstellung hat einen breiten Geltungsbereich.
3. Allowlist für Datenbankmuster
Feld: kowal_security/general/allowlisted_db_patterns
Format:
- Phrasen,
- HTML- oder JS-Fragmente,
- durch neue Zeilen oder Kommas getrennte Einträge.
trusted-inline-widget
data:image/svg+xml,<svg
Auswirkung: Ein Datenbankdatensatz, der ein solches Fragment enthält, wird vom Datenbankscan übersprungen. Auch diese Einstellung hat einen breiten Geltungsbereich.
4. Allowlist für Dateiregeln
Feld: kowal_security/general/allowlisted_file_rules
Bevorzugtes Format:
sciezka_lub_glob | rule_id
Beispiel:
app/code/Vendor/Module/* | file.encoded_payload_blob
pub/media/custom.js | file.javascript_redirect_or_rewrite
Abwärtskompatibilität:
- alte Einträge mit der vollständigen Regelbezeichnung funktionieren weiterhin,
- neue Einträge sollten
rule_idverwendet.
Auswirkung: Nur die angegebene Regel wird für den angegebenen Pfad stummgeschaltet. Der restliche Scan für diese Datei wird weiterhin ausgeführt.
5. Allowlist für Datenbankregeln
Feld: kowal_security/general/allowlisted_db_rules
Bevorzugtes Format:
tabela_lub_* | rule_id
Beispiel:
cms_block | db.inline_script_tag
* | db.fetch_or_xhr_loader
Auswirkung: Nur die angegebene Regel wird stummgeschaltet. Die übrigen Regeln bleiben für diesen Datensatz oder diese Tabelle aktiv.
Berichte
Berichte können Folgendes enthalten:
- Liste der Erkennungen,
- Risikobewertung,
- Indikatoren und Empfehlungen,
- Allowlist-Kandidaten nach manueller Überprüfung,
- normalisierte Allowlist-Konfiguration im JSON-Format.
Allowlist-Vorschläge in Berichten
Der Berichtsabschnitt kann Einträge des folgenden Typs enthalten:
- 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
Interpretation:
zasieg=LOW– sichererer Kandidat,zasieg=HIGH– weitreichende Stummschaltung, nur nach gründlicher Überprüfung,pewnosc=MEDIUM/HIGH– besser vorhersehbarer Konfigurationskandidat,pewnosc=LOW– erfordert Vorsicht.
JSON-Export
Der Bericht enthält außerdem den Abschnitt Znormalizowana konfiguracja allowlist (JSON). Dabei handelt es sich um einen fertigen, deduplizierten Wertesatz zur Übernahme in die Konfiguration.
Empfohlene Vorgehensweise
- Starten Sie nach der Installation alle drei Scans manuell,
- betrachten Sie den ersten
filecheckals Erstellung des Snapshots, - analysieren Sie die Berichte und bestätigen Sie, welche Erkennungen tatsächlich zutreffen,
- verwenden Sie bei Fehlalarmen zunächst
allowlisted_file_rulesundallowlisted_db_rules, - verwenden Sie
allowlisted_domains,allowlisted_file_patternsundallowlisted_db_patterns, - starten Sie nach einer Konfigurationsänderung den entsprechenden CLI-Scan erneut und prüfen Sie das Ergebnis.
Betriebliche Hinweise
filecheckmeldet beim ersten Start noch keine Änderungen als Vorfall,- das Modul funktioniert ohne OpenAI und Safe Browsing, allerdings mit geringerer Analysetiefe,
allowlisted_file_patternsundallowlisted_db_patternshaben weitreichende Auswirkungen und sollten sparsam verwendet werden,- das bevorzugte Format für Regel-Allowlists ist
rule_idund nicht die vollständige Textbezeichnung.