Modulo Magento 2 – Scanner di Sicurezza e Rilevamento di Codice Malevolo
- SKU
- M2-SECURITY-SCAN
Descrizione / Modulo Magento 2 – Scanner di Sicurezza e Rilevamento di Codice Malevolo
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 injection nei contenuti del database. È stato progettato per funzionare in modo leggero, senza agenti aggiuntivi e senza implementazioni complesse.
Funzionalità principali del modulo
- Scansione delle modifiche ai file - rileva file nuovi, modificati ed eliminati all'interno dell'applicazione Magento.
- Scansione euristica del malware - analizza file
php,phtml,js,html,svg,htaccesse altri vettori di payload. - Analisi dei token PHP - rileva catene
decode -> execute, callback dinamici, variable function calls e sospettiinclude/require. - 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 - amplia il report con valutazione del rischio e raccomandazioni operative.
- Allowlist avanzate - consentono di limitare i false positive a livello di domini, file, contenuti e regole specifiche.
- Report con configurazione pronta - il modulo suggerisce candidati per l'allowlist e genera un export JSON normalizzato pronto all'uso.
Cosa distingue questo modulo?
- Identificatori di regola stabili - le regole dei file e del database hanno un proprio
rule_id, quindi la configurazione dell'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 un percorso o una tabella specifici invece di disattivare l'intero modulo.
- Automazione completa - il modulo funziona tramite cron, ma ogni scansione può anche essere avviata manualmente via CLI.
Quali minacce aiuta a rilevare?
- codice PHP offuscato basato su
e-val,base-64_decode,gzin-flatee tecniche simili, - iniezioni malevole di JavaScript nei contenuti CMS,
- iframe esterni e reindirizzamenti sospetti,
- payload SVG e contenuti nascosti negli URI
data:, - link pericolosi che portano a malware, phishing o software indesiderato,
- modifiche non autorizzate ai file dell'applicazione.
Dove il modulo cerca le minacce?
Il modulo analizza le aree chiave del negozio in cui si verificano più spesso gli incidenti:
- 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 di 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_idcorrelato. - Il report è in grado di preparare suggerimenti pronti per l'allowlist e una configurazione JSON normalizzata.
Esempi di utilizzo
- rilevamento di codice malevolo aggiunto dopo una compromissione del negozio,
- monitoraggio di modifiche non autorizzate nei file del deployment,
- rilevamento di blocchi CMS infetti o contenuti compromessi nel database,
- valutazione se un URL sospetto debba essere consentito nell'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 a passare alla decisione operativa.
- Migliore controllo della qualità degli allarmi - allowlist e
rule_idaiutano a mantenere un'elevata efficacia senza un'ondata di falsi allarmi. - Adatto 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 include il pacchetto?
- modulo Magento 2 con job cron e comandi CLI,
- configurazione amministrativa del modulo,
- meccanismo di reportistica su database ed e-mail,
- regole di rilevamento avanzate e sistema di allowlist.
Documentazione e supporto
Per il modulo è disponibile documentazione di implementazione e configurazione, e la sua architettura supporta l'ulteriore ottimizzazione delle regole e dei processi di sicurezza nel negozio Magento 2.
Assicurati un rilevamento più tempestivo degli incidenti in Magento 2 con Kowal Security Scan.
More Information
| 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 l’integrazione con OpenAI per l’analisi dei file modificati e dei record sospetti nel database.
- I report e i messaggi e-mail includono ora una valutazione del rischio e le azioni consigliate nelle aree:
- Magento
- server
- firewall
- Aggiunta la configurazione OpenAI nel pannello Magento, tra cui:
- abilitazione/disabilitazione dell’analisi AI
- chiave API
- selezione del modello
- limite del contesto trasmesso all’analisi
Miglioramenti
- L’elenco dei modelli OpenAI viene ora recuperato 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 da 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 relativo 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 un’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 dannoso, 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 esportazione della configurazione JSON normalizzata.
Requisiti
- Magento 2,
- modulo
kowal/basedisponibile, - 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 l’indirizzo e-mail del cliente e il token di licenza. Sono disponibili anche nel pannello cliente dopo l’accesso 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 l’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_SecurityScanphp bin/magento setup:upgradephp bin/magento cache:flushIn ambiente di produzione, esegui i passaggi standard di deployment Magento, in linea con il tuo processo di rilascio.
Cron e pianificazione delle scansioni
Il modulo registra il 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 un cron Magento funzionante, le scansioni automatiche non verranno eseguite.
Esecuzione manuale delle scansioni
Per avviare manualmente le scansioni, usa:
php bin/magento kowal_securityscan:filecheckphp bin/magento kowal_securityscan:malwarecheckphp bin/magento kowal_securityscan:dbcheckÈ il metodo consigliato per eseguire un test dopo l’installazione e dopo le 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
- abilita il modulo,
- imposta l’indirizzo del destinatario dei report,
- imposta l’indirizzo del mittente dei report,
- assicurati che l’invio e-mail di Magento funzioni,
- assicurati che il cron Magento funzioni.
Analisi OpenAI
La sezione Analiza OpenAI consente di arricchire i report con una valutazione del rischio e raccomandazioni sulle azioni da intraprendere.
Campi disponibili:
Włącz analizę AI,OpenAI API Key,Model OpenAI,Maksymalny kontekst dla AI.
Come abilitare
- abilita
Włącz analizę AI, - compila
OpenAI API Key, - salva la configurazione,
- aggiorna il modulo di configurazione,
- seleziona il modello.
Comportamento predefinito
- modello predefinito:
gpt-4.1-mini, - limite di contesto predefinito:
12000, - i valori inferiori a
2000vengono aumentati a12000, - il limite massimo di contesto è
50000.
Se OpenAI è disabilitato o manca la chiave, il modulo continua a funzionare e utilizza 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 è ancora disponibile il confronto delle modifiche,
- il report informa della creazione della base di riferimento.
Le esecuzioni successive 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 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 vengono 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 degli spazi,
- analisi di più varianti dello stesso contenuto.
Configurazione avanzata: allowlist
Le allowlist servono a ridurre i falsi positivi senza disattivare l’intero modulo.
1. Allowlist dei 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 saranno trattati come sospetti,
- Safe Browsing non li controllerà.
2. Allowlist dei file
Campo: kowal_security/general/allowlisted_file_patterns
Formato:
- percorsi relativi,
- supporto per 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 dei pattern del database
Campo: kowal_security/general/allowlisted_db_patterns
Formato:
- frasi,
- frammenti HTML o JS,
- voci separate da una nuova riga o da virgole.
trusted-inline-widgetdata:image/svg+xml,Effetto: un record del database che contiene un frammento di questo tipo viene escluso dalla scansione DB. Anche questa impostazione ha un ambito ampio.
4. Allowlist delle regole dei 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 devono usare
rule_id.
Effetto: viene silenziata solo la regola indicata per il percorso specificato, mentre il resto della scansione per quel file continua a funzionare.
5. Allowlist delle regole del 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 di 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,Interpretazione:
zasieg=LOW- candidato più sicuro,zasieg=HIGH- silenziamento ampio, solo dopo una verifica rigorosa,pewnosc=MEDIUM/HIGH- candidato alla configurazione più prevedibile,pewnosc=LOW- richiede cautela.
Esportazione JSON
Il report contiene anche la sezione Znormalizowana konfiguracja allowlist (JSON). È un set pronto e deduplicato di valori 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 falsi positivi, 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 verifica 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 devono essere usati con parsimonia,- il formato preferito per le allowlist delle regole è
rule_id, non l’etichetta testuale completa.