Módulo Magento 2 – Scanner de Segurança e Deteção de Código Malicioso
- Compatibilidade
- 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
Descrição / Módulo Magento 2 – Scanner de Segurança e Deteção de Código Malicioso
MAGENTO 2 · MONITORIZAÇÃO · DETEÇÃO · RELATÓRIOS
Detete alterações suspeitas e avalie incidentes mais rapidamente.
Kowal Security Scan
Verifique ficheiros e conteúdos selecionados da base de dados Magento. Combine regras locais de deteção com relatórios, análise AI opcional e avaliação da reputação de URL através do Google Safe Browsing.
Ficheiros e base de dados · Cron e CLI · Regras e allowlists
COMO FUNCIONA NA PRÁTICA
01 · Configura o scan
Ativa o módulo, os relatórios e as integrações selecionadas.
02 · O scanner verifica a loja
Executa scans manualmente ou através do cron.
03 · A equipa avalia o relatório
Valida as deteções e decide os passos seguintes.
O que ganha a sua loja?
Conheça as funcionalidades, a aplicação e as definições do módulo.
Conheça o módulo
Kowal Security Scan é um módulo de segurança avançado para Magento 2 que ajuda a detetar mais rapidamente alterações suspeitas em ficheiros, código malicioso, URLs perigosos e injeções em conteúdos da base de dados. Foi concebido para funcionar de forma leve, sem agentes adicionais e sem implementação complexa.
Principais funcionalidades do módulo
- Scan de alterações em ficheiros - deteta ficheiros novos, modificados e eliminados dentro da aplicação Magento.
- Scan heurístico de malware - analisa ficheiros
php,phtml,js,html,svg,htaccesse outros suportes de payloads. - Análise de tokens PHP - deteta cadeias
decode -> execute, callbacks dinâmicos, variable function calls einclude/requiresuspeitos. - Scan da base de dados - verifica tabelas Magento selecionadas quanto a HTML malicioso, JavaScript, SVG, URI
data:e links perigosos. - Integração com Google Safe Browsing - avalia a reputação dos URLs presentes nos conteúdos da loja.
- Análise OpenAI opcional - alarga o relatório com avaliação de risco e recomendações de ação.
- Allowlists avançadas - permitem limitar false positives ao nível de domínios, ficheiros, conteúdos e regras específicas.
- Relatórios com configuração pronta - o módulo sugere candidatos para allowlists e gera uma exportação JSON normalizada pronta a utilizar.
O que distingue este módulo?
- Identificadores de regras estáveis - as regras de ficheiros e da base de dados têm o seu próprio
rule_id, para que a configuração das allowlists não dependa da descrição textual completa. - Relatórios que apoiam a gestão de incidentes - o relatório mostra não só as deteções, mas também o nível de risco, recomendações e entradas prontas para a configuração.
- Controlo de false positives sem desativar o scanner - pode silenciar uma única regra para um caminho ou tabela indicado, em vez de desativar todo o módulo.
- Automatização completa - o módulo funciona no cron, mas cada scan também pode ser executado manualmente por CLI.
Que ameaças ajuda a detetar?
- código PHP ofuscado baseado em
eval,base64_decode,gzinflatee técnicas semelhantes, - incorporações JavaScript maliciosas em conteúdos CMS,
- iframes externos e redirecionamentos suspeitos,
- payloads SVG e conteúdos ocultos em URI
data:, - links perigosos que conduzem a malware, phishing ou software indesejado,
- alterações não autorizadas nos ficheiros da aplicação.
Onde é que o módulo procura ameaças?
O módulo analisa áreas-chave da loja onde os incidentes surgem com maior frequência:
- ficheiros da aplicação Magento e dos módulos,
- blocos CMS,
- páginas CMS,
core_config_data,- templates de e-mail Magento e de newsletter,
- conteúdos de produto e avaliações de clientes.
Relatórios e resposta operacional
- Os resultados são guardados numa tabela dedicada de relatórios do módulo.
- O relatório pode ser enviado por e-mail ao operador.
- Cada deteção pode incluir nível de risco, indicações operacionais e o
rule_idassociado. - O relatório consegue preparar sugestões prontas para allowlists e uma configuração normalizada em JSON.
Exemplos de utilização
- deteção de código malicioso adicionado após uma intrusão na loja,
- monitorização de alterações não autorizadas nos ficheiros da implementação,
- deteção de blocos CMS infetados ou conteúdos infetados na base de dados,
- avaliação de se um URL suspeito deve ser aceite na allowlist ou removido do sistema.
Porque vale a pena?
- Implementação rápida - funciona como módulo Magento 2, sem infraestrutura adicional.
- Relatórios práticos - o módulo não termina o trabalho na deteção, ajuda a avançar para uma decisão operacional.
- Melhor controlo da qualidade dos alertas - allowlists e
rule_idfacilitam a manutenção de elevada eficácia sem uma avalanche de falsos alertas. - Boa adaptação a ambientes de produção - scans automáticos, relatórios por e-mail e comandos CLI manuais apoiam o trabalho diário da equipa técnica.
Compatibilidade
- Magento Open Source 2.3.x - 2.4.x
- Adobe Commerce / Magento Commerce
O que inclui o pacote?
- módulo Magento 2 com tarefas cron e comandos CLI,
- configuração administrativa do módulo,
- mecanismo de reporting para a base de dados e e-mail,
- regras de deteção avançadas e sistema de allowlists.
Documentação e suporte
Está disponível documentação de implementação e configuração para o módulo, e a sua arquitetura suporta o ajuste posterior de regras e processos de segurança na loja Magento 2.
Cuide da deteção antecipada de incidentes no Magento 2 com Kowal Security Scan.
Primeiro scan e área de monitorização
A descrição atual menciona Magento Open Source 2.3.x–2.4.x e Adobe Commerce / Magento Commerce. A compatibilidade de uma versão específica de Magento e PHP deve ser verificada com a versão do pacote fornecida. A primeira execução do filecheck cria um snapshot base. Só os scans seguintes comparam o estado e reportam ADDED, MODIFIED e REMOVED. Áreas como var, generated, vendor, pub/static e node_modules são ignoradas no scan de alterações.
O Database Scan abrange tabelas selecionadas: cms_block, cms_page, core_config_data, email_template, newsletter_template, review_detail e catalog_product_entity_text. O módulo não é garantia de deteção de todas as ameaças e não remove infeções automaticamente.
Agendamento e configuração
Em Stores → Configuration → Kowal → Security Scan configura a atividade, o destinatário e o remetente dos relatórios, bem como a retenção. O cron predefinido executa o scan de alterações às 00:00, malware às 01:00, a base de dados às 02:00 e a limpeza dos relatórios às 02:30.
A automatização exige um cron Magento funcional e envio de e-mails. Os comandos manuais são kowal_securityscan:filecheck, kowal_securityscan:malwarecheck e kowal_securityscan:dbcheck.
API opcionais e exceções precisas
Sem OpenAI e Google Safe Browsing, os scans locais básicos funcionam. As API ativadas exigem chaves próprias e acesso aos serviços. A análise AI envia fragmentos suspeitos para a OpenAI; configura o modelo e o contexto máximo. O Safe Browsing verifica os URLs detetados e o endereço base da loja.
Silenciar uma regra individual para um ficheiro ou tabela é mais restrito do que ignorar todo o ficheiro ou registo. Aprove os candidatos de allowlist do relatório e da exportação JSON após validação — o relatório apoia a decisão do operador, não a substitui.
Instalação via Composer
Pacote kowal/module-securityscan, módulo Kowal_SecurityScan. Depois de configurar o acesso ao repositório Kowal, instale o pacote, ative o módulo, atualize o Magento e limpe a cache. Em produção, inclua a compilação e a implementação de conteúdos estáticos de acordo com o processo da loja.
Da configuração ao resultado
1. Configura o scan
Ativa o módulo, os relatórios e as integrações selecionadas.
2. O scanner verifica a loja
Executa scans manualmente ou através do cron.
3. A equipa avalia o relatório
Valida as deteções e decide os passos seguintes.
Script suspeito num bloco CMS
O scan da base de dados deteta um fragmento JavaScript no conteúdo CMS. O relatório indica o registo e a regra, e a análise AI opcional ajuda a avaliar o risco.
O operador verifica se se trata de um incidente ou de uma integração correta. Um falso alerta validado pode ser silenciado com uma regra precisa de allowlist.
Ative a monitorização regular do Magento
Quer adaptar o módulo à sua loja? Peça a implementação do Kowal Security Scan e fale connosco sobre a configuração ou extensões necessárias.
Mais informação
| Compatibilidade com o modelo | Luma / Blank, KOWAL |
|---|
Change Log
Versão: 1.0.27
31.03.2026
Expandimos o módulo Kowal_SecurityScan com novas funcionalidades relacionadas com a análise de ameaças e a administração de relatórios.
Novidades
- Adicionada integração com OpenAI para análise de ficheiros alterados e registos suspeitos na base de dados.
- Os relatórios e mensagens de e-mail incluem agora avaliação de risco e ações recomendadas nas áreas de:
- Magento
- servidor
- firewall
- Adicionada configuração OpenAI no painel Magento, incluindo:
- ativar/desativar análise AI
- chave API
- seleção do modelo
- limite de contexto enviado para análise
Melhorias
- A lista de modelos OpenAI é agora obtida dinamicamente da API e apresentada na configuração como dropdown.
- O conteúdo das mensagens de e-mail foi expandido com a identificação da loja Magento:
- domínio da loja
- URL da loja
- O domínio da loja também é adicionado ao assunto da mensagem, o que facilita a gestão de várias instâncias.
Automatização e manutenção
- Adicionado um novo cron que limpa entradas antigas da tabela de relatórios.
- O período de retenção dos relatórios é configurável a partir de system.xml como número de dias.
Correções técnicas
- A lógica de análise de ficheiros e registos suspeitos foi organizada.
- Melhorado o tratamento do contexto de dados transmitido para análise AI.
- Resolvido o problema de compilação DI relacionado com a implementação anterior do cliente OpenAI.
Manual de instalação do módulo
Manual do módulo Kowal_SecurityScan
Visão geral
O módulo expande o Magento 2 com uma camada de monitorização de segurança para ficheiros da aplicação, tabelas selecionadas da base de dados, URLs suspeitos e análise opcional de incidentes através da OpenAI.
Os relatórios são guardados na tabela kowal_securityscan_report e podem ser enviados por e-mail.
Principais funcionalidades
- scan de alterações em ficheiros Magento com comparação ao snapshot,
- scan heurístico de ficheiros
php,phtml,php5,inc,phar,js,html,htm,svg,htaccess, - análise de tokens PHP através de
token_get_all(), - scan de tabelas selecionadas da base de dados em busca de HTML malicioso, JavaScript, SVG, URI
data:e URLs suspeitos, - integração com Google Safe Browsing API,
- análise OpenAI opcional para deteções,
- allowlists configuráveis de domínios, ficheiros, padrões de conteúdo e regras,
- relatórios com sugestões prontas para allowlists e exportação de configuração JSON normalizada.
Requisitos
- Magento 2,
- módulo
kowal/basedisponível, - cron Magento funcional,
- envio de e-mail corretamente configurado,
- opcionalmente: chave OpenAI API e chave Google Safe Browsing API.
Instalação
1. Adicionar o repositório do pacote
Adicione o repositório Composer Kowal:
Receberá por e-mail os dados de acesso ao repositório Composer, ou seja, o endereço de e-mail do cliente e o token de licença, após a compra. Também estão disponíveis no painel de cliente após iniciar sessão em kowal.store. Substitua TWOJ_EMAIL_KLIENTA pelo endereço de e-mail da sua conta e TWOJ_TOKEN pelo token recebido. Execute os comandos no diretório raiz do Magento.
composer config repositories.kowal composer https://repo.kowal.storeSe o repositório exigir autorização:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'2. Instalação do pacote
composer require kowal/module-securityscan3. Ativação do módulo
php bin/magento module:enable Kowal_SecurityScan
php bin/magento setup:upgrade
php bin/magento cache:flushEm ambiente de produção, execute os passos padrão de deployment do Magento, de acordo com o seu processo de implementação.
Cron e agendamento de scans
O módulo regista o seu próprio grupo cron securityscan.
kowal_securityscan_filecheck- diariamente às00:00,kowal_securityscan_malwarecheck- diariamente às01:00,kowal_securityscan_dbcheck- diariamente às02:00,kowal_securityscan_cleanup_reports- diariamente às02:30.
Sem um cron Magento funcional, os scans automáticos não serão executados.
Execução manual de scans
Para executar scans manualmente, utilize:
php bin/magento kowal_securityscan:filecheck
php bin/magento kowal_securityscan:malwarecheck
php bin/magento kowal_securityscan:dbcheckEsta é a forma recomendada de teste após a instalação e depois de alterações de configuração.
Configuração
Caminho de configuração:
Stores -> Configuration -> kowal -> kowal_security
Definições gerais
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
Configuração mínima
- ative o módulo,
- defina o endereço do destinatário dos relatórios,
- defina o endereço do remetente dos relatórios,
- certifique-se de que o envio de e-mail do Magento funciona,
- certifique-se de que o cron Magento funciona.
Análise OpenAI
A secção Analiza OpenAI permite expandir os relatórios com avaliação de risco e recomendações de ação.
Campos disponíveis:
Włącz analizę AI,OpenAI API Key,Model OpenAI,Maksymalny kontekst dla AI.
Como ativar
- ative
Włącz analizę AI, - preencha
OpenAI API Key, - guarde a configuração,
- atualize o formulário de configuração,
- selecione o modelo.
Comportamento predefinido
- modelo predefinido:
gpt-4.1-mini, - limite de contexto predefinido:
12000, - valores abaixo de
2000são elevados para12000, - o limite máximo de contexto é
50000.
Se a OpenAI estiver desativada ou faltar a chave, o módulo continua a funcionar e aplica heurísticas locais.
Google Safe Browsing
Se preencher Google Safe Browsing API Key, o módulo irá:
- verificar URLs detetados nos ficheiros e na base de dados,
- verificar o endereço base da loja.
A ausência da chave não bloqueia os scans básicos, apenas desativa esta etapa.
Scan de alterações em ficheiros
filecheck funciona com base no snapshot guardado em:
var/security_scan_hashes.json
Na primeira execução:
- é criado um snapshot,
- ainda não existe comparação de alterações,
- o relatório informa sobre a criação da base de referência.
As execuções seguintes reportam alterações dos tipos ADDED, MODIFIED e REMOVED.
São ignorados, entre outros:
var/,generated/,vendor/,pub/static/,node_modules/.
Scan de malware em ficheiros
malwarecheck analisa os ficheiros da aplicação com base em:
- regras regex com
rule_id, - heurísticas de tokens PHP,
- verificações de URLs por Safe Browsing.
Exemplos de tipos de deteção:
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.
Nos relatórios, os motivos são apresentados no formato:
[file.encoded_payload_blob] Encoded payload blob detectedScan da base de dados
dbcheck analisa tabelas Magento selecionadas:
cms_block,cms_page,core_config_data,email_template,newsletter_template,review_detail,catalog_product_entity_text.
Exemplos de regras:
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.
O conteúdo é previamente normalizado através de:
html_entity_decode,rawurldecode,- normalização de whitespace,
- análise de várias variantes do mesmo conteúdo.
Configuração avançada: allowlists
As allowlists servem para limitar false positives sem desativar todo o módulo.
1. Allowlist de domínios
Campo: kowal_security/general/allowlisted_domains
Formato:
- um domínio por linha, ou
- lista separada por vírgulas.
cdn.example.comstatic.example.orgEfeito:
- URLs destes domínios não serão tratados como suspeitos,
- o Safe Browsing não os irá verificar.
2. Allowlist de ficheiros
Campo: kowal_security/general/allowlisted_file_patterns
Formato:
- caminhos relativos,
- suporte para globs.
app/code/Vendor/Module/Test/*pub/media/custom.jsEfeito: os ficheiros que correspondem ao padrão são totalmente ignorados pelo scan de malware. Esta definição tem um âmbito amplo.
3. Allowlist de padrões da base de dados
Campo: kowal_security/general/allowlisted_db_patterns
Formato:
- frases,
- fragmentos HTML ou JS,
- entradas separadas por uma nova linha ou por vírgulas.
trusted-inline-widgetdata:image/svg+xml,<svgEfeito: o registo da base de dados que contenha esse fragmento é ignorado pelo scan DB. Esta definição também tem um âmbito amplo.
4. Allowlist de regras de ficheiros
Campo: kowal_security/general/allowlisted_file_rules
Formato preferencial:
sciezka_lub_glob | rule_idExemplo:
app/code/Vendor/Module/* | file.encoded_payload_blobpub/media/custom.js | file.javascript_redirect_or_rewriteCompatibilidade retroativa:
- entradas antigas pela etiqueta completa da regra continuam a funcionar,
- as novas entradas devem utilizar
rule_id.
Efeito: apenas a regra indicada é silenciada para o caminho indicado, enquanto o restante scan desse ficheiro continua a funcionar.
5. Allowlist de regras da base de dados
Campo: kowal_security/general/allowlisted_db_rules
Formato preferencial:
tabela_lub_* | rule_idExemplo:
cms_block | db.inline_script_tag* | db.fetch_or_xhr_loaderEfeito: apenas a regra indicada é silenciada, e as restantes continuam a funcionar para esse registo ou tabela.
Relatórios
Os relatórios podem incluir:
- lista de deteções,
- avaliação de risco,
- indicadores e recomendações,
- candidatos para allowlists após validação manual,
- configuração normalizada de allowlists em JSON.
Sugestões de allowlist nos relatórios
A secção do relatório pode conter entradas do 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=HIGHInterpretação:
zasieg=LOW- candidato mais seguro,zasieg=HIGH- silenciamento amplo, apenas após validação rigorosa,pewnosc=MEDIUM/HIGH- candidato de configuração mais previsível,pewnosc=LOW- requer prudência.
Exportação JSON
O relatório também inclui a secção Znormalizowana konfiguracja allowlist (JSON). É um conjunto pronto e deduplicado de valores para copiar para a configuração.
Modo de utilização recomendado
- execute manualmente os três scans após a instalação,
- trate o primeiro
filecheckcomo a criação do snapshot, - analise os relatórios e confirme quais deteções são reais,
- para false positives, utilize primeiro
allowlisted_file_ruleseallowlisted_db_rules, - só quando for necessário, utilize
allowlisted_domains,allowlisted_file_patternseallowlisted_db_patterns, - após alterar a configuração, execute novamente o scan CLI adequado e verifique o resultado.
Notas operacionais
filecheckna primeira execução ainda não reporta alterações como incidente,- o módulo funciona sem OpenAI e sem Safe Browsing, mas com menor profundidade de análise,
allowlisted_file_patternseallowlisted_db_patternstêm impacto amplo e devem ser utilizados com moderação,- o formato preferencial para allowlists de regras é
rule_id, não a etiqueta textual completa.