Modulo Magento 2 – Scanner di sicurezza e rilevamento di codice malevolo
- Compatibilità
- 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
Descrizione / Modulo Magento 2 – Scanner di sicurezza e rilevamento di codice malevolo
MAGENTO 2 · MONITORAGGIO · RILEVAMENTO · REPORT
Rileva modifiche sospette e valuta gli incidenti più rapidamente.
Kowal Security Scan
Controlla i file e contenuti selezionati del database Magento. Combina regole di rilevamento locali con reportistica, analisi AI opzionale e valutazione della reputazione degli URL tramite Google Safe Browsing.
File e database · Cron e CLI · Regole e allowlist
COME FUNZIONA IN PRATICA
01 · Configuri la scansione
Attivi il modulo, i report e le integrazioni selezionate.
02 · Lo scanner controlla il negozio
Avvii le scansioni manualmente oppure tramite cron.
03 · Il team valuta il report
Verifica i rilevamenti e intraprende ulteriori azioni.
Cosa ottiene il tuo negozio?
Scopri funzioni, utilizzo e impostazioni del modulo.
Scopri il modulo
Kowal Security Scan è un modulo di sicurezza avanzato per Magento 2 che aiuta a rilevare più rapidamente modifiche sospette nei file, codice malevolo, URL pericolosi e iniezioni nei contenuti del database. È stato progettato per funzionare in modo leggero, senza agent aggiuntivi e senza un’implementazione complessa.
Funzioni principali del modulo
- Scansione delle modifiche nei file - rileva file nuovi, modificati e rimossi all’interno dell’applicazione Magento.
- Scansione malware euristica - analizza file
php,phtml,js,html,svg,htaccesse altri vettori di payload. - Analisi dei token PHP - rileva catene
decode -> execute, callback dinamiche, variable function calls einclude/requiresospetti. - Scansione del database - controlla tabelle Magento selezionate alla ricerca di HTML malevolo, JavaScript, SVG, URI
data:e link pericolosi. - Integrazione con Google Safe Browsing - valuta la reputazione degli URL presenti nei contenuti del negozio.
- Analisi OpenAI opzionale - arricchisce il report con valutazione del rischio e raccomandazioni operative.
- Allowlist avanzate - consentono di ridurre i false positive a livello di domini, file, contenuti e singole regole.
- Report con configurazione pronta - il modulo suggerisce candidati per le allowlist e genera un export JSON normalizzato pronto all’uso.
Cosa distingue questo modulo?
- Identificatori di regola stabili - le regole per file e database hanno un proprio
rule_id, quindi la configurazione delle allowlist non dipende dalla descrizione testuale completa. - Report a supporto della gestione degli incidenti - il report mostra non solo i rilevamenti, ma anche il livello di rischio, le raccomandazioni e le voci pronte per la configurazione.
- Controllo dei false positive senza disattivare lo scanner - puoi silenziare una singola regola per il percorso o la tabella indicati invece di disattivare l’intero modulo.
- Automazione completa - il modulo funziona tramite cron, ma ogni scansione può essere avviata anche manualmente tramite CLI.
Quali minacce aiuta a rilevare?
- codice PHP offuscato basato su
eval,base64_decode,gzinflatee tecniche simili, - inclusioni JavaScript malevole nei contenuti CMS,
- iframe esterni e redirect sospetti,
- payload SVG e contenuti nascosti in URI
data:, - link pericolosi verso malware, phishing o software indesiderato,
- modifiche non autorizzate nei file dell’applicazione.
Dove il modulo cerca le minacce?
Il modulo analizza le aree chiave del negozio in cui gli incidenti si verificano più spesso:
- file dell’applicazione Magento e dei moduli,
- blocchi CMS,
- pagine CMS,
core_config_data,- template e-mail Magento e newsletter,
- contenuti prodotto e recensioni dei clienti.
Report e risposta operativa
- I risultati vengono salvati in una tabella report dedicata del modulo.
- Il report può essere inviato via e-mail all’operatore.
- Ogni rilevamento può includere livello di rischio, indicazioni operative e
rule_idassociato. - Il report può preparare suggerimenti pronti per le allowlist e una configurazione normalizzata in JSON.
Esempi di utilizzo
- rilevamento di codice malevolo aggiunto dopo una violazione del negozio,
- monitoraggio di modifiche non autorizzate nei file di deployment,
- rilevamento di blocchi CMS infetti o contenuti compromessi nel database,
- valutazione se un URL sospetto debba essere aggiunto all’allowlist o rimosso dal sistema.
Perché conviene?
- Implementazione rapida - funziona come modulo Magento 2 senza infrastruttura aggiuntiva.
- Reportistica pratica - il modulo non si ferma al rilevamento, ma aiuta ad arrivare a una decisione operativa.
- Migliore controllo della qualità degli alert - allowlist e
rule_idfacilitano il mantenimento di un’elevata efficacia senza un eccesso di falsi allarmi. - Buon adattamento agli ambienti di produzione - scansioni automatiche, report via e-mail e comandi CLI manuali supportano il lavoro quotidiano del team tecnico.
Compatibilità
- Magento Open Source 2.3.x - 2.4.x
- Adobe Commerce / Magento Commerce
Cosa contiene il pacchetto?
- modulo Magento 2 con task cron e comandi CLI,
- configurazione amministrativa del modulo,
- meccanismo di reportistica verso database ed e-mail,
- regole di rilevamento avanzate e sistema di allowlist.
Documentazione e supporto
Per il modulo è disponibile documentazione di implementazione e configurazione, mentre la sua architettura supporta l’ulteriore messa a punto di regole e processi di sicurezza nel negozio Magento 2.
Aiuta a rilevare prima gli incidenti in Magento 2 con Kowal Security Scan.
Prima scansione e area di monitoraggio
La descrizione attuale indica Magento Open Source 2.3.x–2.4.x e Adobe Commerce / Magento Commerce. La compatibilità di una specifica versione di Magento e PHP deve essere verificata con la versione del pacchetto fornita. Il primo avvio di filecheck crea uno snapshot di base. Solo le scansioni successive confrontano lo stato e segnalano ADDED, MODIFIED e REMOVED. Aree come var, generated, vendor, pub/static e node_modules sono escluse dalla scansione delle modifiche.
Database Scan comprende le tabelle selezionate: cms_block, cms_page, core_config_data, email_template, newsletter_template, review_detail e catalog_product_entity_text. Il modulo non garantisce il rilevamento di tutte le minacce e non rimuove automaticamente le infezioni.
Pianificazione e configurazione
In Stores → Configuration → Kowal → Security Scan imposti attivazione, destinatario e mittente dei report e retention. Il cron predefinito avvia la scansione delle modifiche alle 00:00, malware alle 01:00, database alle 02:00 e pulizia dei report alle 02:30.
L’automazione richiede il cron Magento funzionante e la consegna delle e-mail. I comandi manuali sono kowal_securityscan:filecheck, kowal_securityscan:malwarecheck e kowal_securityscan:dbcheck.
API opzionali ed eccezioni precise
Senza OpenAI e Google Safe Browsing funzionano le scansioni locali di base. Le API attivate richiedono le proprie chiavi e l’accesso ai servizi. L’analisi AI invia frammenti sospetti a OpenAI; configuri il modello e il contesto massimo. Safe Browsing controlla gli URL rilevati e l’indirizzo base del negozio.
Silenziare una singola regola per un file o una tabella è più restrittivo rispetto a escludere l’intero file o record. Approva i candidati allowlist dal report e dall’export JSON dopo la verifica — il report supporta la decisione dell’operatore, non la sostituisce.
Installazione tramite Composer
Pacchetto kowal/module-securityscan, modulo Kowal_SecurityScan. Dopo aver configurato l’accesso al repository Kowal, installa il pacchetto, abilita il modulo, aggiorna Magento e svuota la cache. In produzione considera la compilazione e il deployment dei contenuti statici secondo il processo del negozio.
Dalla configurazione al risultato
1. Configuri la scansione
Attivi il modulo, i report e le integrazioni selezionate.
2. Lo scanner controlla il negozio
Avvii le scansioni manualmente oppure tramite cron.
3. Il team valuta il report
Verifica i rilevamenti e intraprende ulteriori azioni.
Script sospetto in un blocco CMS
La scansione del database rileva un frammento JavaScript nel contenuto CMS. Il report indica record e regola, mentre l’analisi AI opzionale aiuta a valutare il rischio.
L’operatore verifica se si tratta di un incidente o di un’integrazione corretta. Un falso allarme verificato può essere silenziato con una regola allowlist precisa.
Attiva il monitoraggio regolare di Magento
Vuoi adattare il modulo al tuo negozio? Richiedi l’implementazione di Kowal Security Scan e discuti la configurazione o le estensioni necessarie.
Maggiori Informazioni
| Conformità al modello | Luma / Vuoto, Fabbro |
|---|
Change Log
Versione: 1.0.27
31.03.2026
Abbiamo ampliato il modulo Kowal_SecurityScan con nuove funzioni relative all’analisi delle minacce e all’amministrazione dei report.
Novità
- Aggiunta integrazione con OpenAI per l’analisi dei file modificati e dei record sospetti nel database.
- I report e i messaggi e-mail ora includono una valutazione del rischio e le azioni raccomandate nelle aree:
- Magento
- server
- firewall
- Aggiunta configurazione OpenAI nel pannello Magento, inclusi:
- attivazione/disattivazione dell’analisi AI
- chiave API
- selezione del modello
- limite del contesto inviato per l’analisi
Miglioramenti
- L’elenco dei modelli OpenAI viene ora scaricato dinamicamente dall’API e presentato nella configurazione come dropdown.
- Il contenuto delle e-mail è stato esteso con l’identificazione del negozio Magento:
- dominio del negozio
- URL del negozio
- Il dominio del negozio viene aggiunto anche all’oggetto del messaggio, facilitando la gestione di più istanze.
Automazione e manutenzione
- Aggiunto un nuovo cron che pulisce le vecchie voci dalla tabella dei report.
- Il tempo di retention dei report è configurabile dal livello system.xml come numero di giorni.
Correzioni tecniche
- Riorganizzata la logica di analisi dei file e dei record sospetti.
- Migliorata la gestione del contesto dei dati trasmessi all’analisi AI.
- Rimosso il problema di compilazione DI legato alla precedente implementazione del client OpenAI.
Istruzioni per l'installazione del modulo
Istruzioni del modulo Kowal_SecurityScan
Panoramica
Il modulo estende Magento 2 con un livello di monitoraggio della sicurezza per i file dell’applicazione, tabelle selezionate del database, URL sospetti e analisi opzionale degli incidenti tramite OpenAI.
I report vengono salvati nella tabella kowal_securityscan_report e possono essere inviati via e-mail.
Funzioni principali
- scansione delle modifiche nei file Magento con confronto rispetto allo snapshot,
- scansione euristica dei file
php,phtml,php5,inc,phar,js,html,htm,svg,htaccess, - analisi dei token PHP tramite
token_get_all(), - scansione di tabelle selezionate del database alla ricerca di HTML malevolo, JavaScript, SVG, URI
data:e URL sospetti, - integrazione con Google Safe Browsing API,
- analisi OpenAI opzionale per i rilevamenti,
- allowlist configurabili per domini, file, pattern di contenuto e regole,
- report con suggerimenti pronti per le allowlist ed export della configurazione JSON normalizzata.
Requisiti
- Magento 2,
- modulo disponibile
kowal/base, - cron Magento funzionante,
- invio e-mail configurato correttamente,
- opzionalmente: chiave OpenAI API e chiave Google Safe Browsing API.
Installazione
1. Aggiunta del repository del pacchetto
Aggiungi il repository Composer Kowal:
Riceverai via e-mail dopo l’acquisto i dati di accesso al repository Composer, ovvero indirizzo e-mail del cliente e token di licenza. Sono disponibili anche nel pannello cliente dopo il login su kowal.store. Sostituisci TWOJ_EMAIL_KLIENTA con l’indirizzo e-mail del tuo account e TWOJ_TOKEN con il token ricevuto. Esegui i comandi nella directory principale di Magento.
composer config repositories.kowal composer https://repo.kowal.storeSe il repository richiede autorizzazione:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'2. Installazione del pacchetto
composer require kowal/module-securityscan3. Attivazione del modulo
php bin/magento module:enable Kowal_SecurityScan
php bin/magento setup:upgrade
php bin/magento cache:flushIn ambiente di produzione esegui i passaggi standard di deployment Magento, in conformità al tuo processo di rilascio.
Cron e pianificazione delle scansioni
Il modulo registra un proprio gruppo cron securityscan.
kowal_securityscan_filecheck- ogni giorno alle00:00,kowal_securityscan_malwarecheck- ogni giorno alle01:00,kowal_securityscan_dbcheck- ogni giorno alle02:00,kowal_securityscan_cleanup_reports- ogni giorno alle02:30.
Senza il cron Magento funzionante, le scansioni automatiche non verranno eseguite.
Avvio manuale delle scansioni
Per avviare manualmente le scansioni usa:
php bin/magento kowal_securityscan:filecheck
php bin/magento kowal_securityscan:malwarecheck
php bin/magento kowal_securityscan:dbcheckÈ il metodo consigliato per il test dopo l’installazione e dopo modifiche alla configurazione.
Configurazione
Percorso di configurazione:
Stores -> Configuration -> kowal -> kowal_security
Impostazioni generali
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
Configurazione minima
- attiva il modulo,
- imposta l’indirizzo del destinatario dei report,
- imposta l’indirizzo del mittente dei report,
- assicurati che l’invio e-mail Magento funzioni,
- assicurati che il cron Magento funzioni.
Analisi OpenAI
La sezione Analiza OpenAI consente di arricchire i report con valutazione del rischio e raccomandazioni operative.
Campi disponibili:
Włącz analizę AI,OpenAI API Key,Model OpenAI,Maksymalny kontekst dla AI.
Come attivare
- attiva
Włącz analizę AI, - compila
OpenAI API Key, - salva la configurazione,
- aggiorna il form di configurazione,
- seleziona il modello.
Comportamento predefinito
- modello predefinito:
gpt-4.1-mini, - limite di contesto predefinito:
12000, - valori inferiori a
2000vengono aumentati a12000, - il limite massimo di contesto è
50000.
Se OpenAI è disattivato o manca la chiave, il modulo continua a funzionare e applica euristiche locali.
Google Safe Browsing
Se compili Google Safe Browsing API Key, il modulo:
- controllerà gli URL rilevati nei file e nel database,
- controllerà l’indirizzo base del negozio.
L’assenza della chiave non blocca le scansioni di base, ma disattiva solo questa fase.
Scansione delle modifiche nei file
filecheck funziona sulla base dello snapshot salvato in:
var/security_scan_hashes.json
Al primo avvio:
- viene creato uno snapshot,
- non esiste ancora un confronto delle modifiche,
- il report informa della creazione della base di riferimento.
Gli avvii successivi segnalano modifiche di tipo ADDED, MODIFIED e REMOVED.
Vengono esclusi, tra gli altri:
var/,generated/,vendor/,pub/static/,node_modules/.
Scansione malware nei file
malwarecheck esegue la scansione dei file dell’applicazione sulla base di:
- regole regex con
rule_id, - euristiche dei token PHP,
- controlli degli URL tramite Safe Browsing.
Esempi di tipi di rilevamento:
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.
Nei report, i motivi sono presentati nel formato:
[file.encoded_payload_blob] Encoded payload blob detectedScansione del database
dbcheck analizza tabelle Magento selezionate:
cms_block,cms_page,core_config_data,email_template,newsletter_template,review_detail,catalog_product_entity_text.
Esempi di regole:
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.
Il contenuto viene prima normalizzato tramite:
html_entity_decode,rawurldecode,- normalizzazione whitespace,
- analisi di più varianti dello stesso content.
Configurazione avanzata: allowlist
Le allowlist servono a ridurre i false positive senza disattivare l’intero modulo.
1. Allowlist domini
Campo: kowal_security/general/allowlisted_domains
Formato:
- un dominio per riga, oppure
- elenco separato da virgole.
cdn.example.comstatic.example.orgEffetto:
- gli URL di questi domini non verranno trattati come sospetti,
- Safe Browsing non li controllerà.
2. Allowlist file
Campo: kowal_security/general/allowlisted_file_patterns
Formato:
- percorsi relativi,
- supporto dei glob.
app/code/Vendor/Module/Test/*pub/media/custom.jsEffetto: i file corrispondenti al pattern vengono completamente esclusi dalla scansione malware. Questa impostazione ha un ambito ampio.
3. Allowlist pattern database
Campo: kowal_security/general/allowlisted_db_patterns
Formato:
- frasi,
- frammenti HTML o JS,
- voci separate da nuova riga oppure da virgole.
trusted-inline-widgetdata:image/svg+xml,<svgEffetto: un record del database che contiene tale frammento viene escluso dalla scansione DB. Anche questa impostazione ha un ambito ampio.
4. Allowlist regole file
Campo: kowal_security/general/allowlisted_file_rules
Formato preferito:
sciezka_lub_glob | rule_idEsempio:
app/code/Vendor/Module/* | file.encoded_payload_blobpub/media/custom.js | file.javascript_redirect_or_rewriteCompatibilità retroattiva:
- le vecchie voci basate sull’etichetta completa della regola continuano a funzionare,
- le nuove voci dovrebbero usare
rule_id.
Effetto: viene silenziata solo la regola indicata per il percorso indicato, mentre il resto della scansione per quel file continua a funzionare.
5. Allowlist regole database
Campo: kowal_security/general/allowlisted_db_rules
Formato preferito:
tabela_lub_* | rule_idEsempio:
cms_block | db.inline_script_tag* | db.fetch_or_xhr_loaderEffetto: viene silenziata solo la regola indicata, mentre le altre continuano a funzionare per quel record o quella tabella.
Report
I report possono contenere:
- elenco dei rilevamenti,
- valutazione del rischio,
- indicatori e raccomandazioni,
- candidati per le allowlist dopo verifica manuale,
- configurazione allowlist normalizzata in JSON.
Suggerimenti allowlist nei report
La sezione del report può contenere voci del tipo:
- 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=HIGHInterpretazione:
zasieg=LOW- candidato più sicuro,zasieg=HIGH- silenziamento ampio, solo dopo verifica rigorosa,pewnosc=MEDIUM/HIGH- candidato più prevedibile per la configurazione,pewnosc=LOW- richiede cautela.
Export JSON
Il report contiene anche la sezione Znormalizowana konfiguracja allowlist (JSON). È un set di valori pronto e deduplicato da riportare nella configurazione.
Modalità d’uso consigliata
- avvia manualmente tutte e tre le scansioni dopo l’installazione,
- considera il primo
filecheckcome creazione dello snapshot, - analizza i report e conferma quali rilevamenti sono reali,
- per i false positive usa prima
allowlisted_file_ruleseallowlisted_db_rules, - solo quando necessario, usa
allowlisted_domains,allowlisted_file_patternseallowlisted_db_patterns, - dopo una modifica della configurazione, avvia nuovamente la scansione CLI appropriata e controlla il risultato.
Note operative
filecheckal primo avvio non segnala ancora le modifiche come incidente,- il modulo funziona senza OpenAI e senza Safe Browsing, ma con una profondità di analisi inferiore,
allowlisted_file_patternseallowlisted_db_patternshanno un impatto ampio e dovrebbero essere usati con parsimonia,- il formato preferito per le allowlist delle regole è
rule_id, non l’etichetta testuale completa.