Situação atual: PHP2Shell. Duas vulnerabilidades críticas do PHP (CVSS 9,2) permitem executar código malicioso sem autenticação. Patches disponíveis desde 21/10/2026.O que fazer agora →

Scanners de malware para sites: o que encontram e o que não encontram

O scanner não comunica nada, logo está tudo bem? Não necessariamente. Que tipos de scanners de sites existem, o que cada um vê e o que não consegue ver por princípio.

Atualizado em 5 min de leituraDeteção e perícia forense

Em resumo: Um scanner de malware para sites encontra sobretudo padrões conhecidos em ficheiros ou na página entregue. Código novo e ofuscado, portas dos fundos na base de dados, contas alheias, tarefas agendadas e chaves SSH permanecem muitas vezes invisíveis. «Nada encontrado» não significa, por isso, «limpo». Uma verificação só se torna fiável pela combinação de scanner, comparação com o original, verificação da base de dados e do sistema e monitorização do comportamento.

A calma enganadora após o visto verde

Depois do PHP2Shell, muitos operadores fizeram o que parece óbvio: correr um scanner. Um serviço online verifica a página inicial, um plugin de segurança percorre o diretório web, o resultado é verde. Parece assim respondida a pergunta sobre se aconteceu alguma coisa antes do patch.

O problema está no princípio. A maioria dos scanners compara conteúdos com padrões de software malicioso conhecido. Para as vulnerabilidades CVE-2026-109618 e CVE-2026-109619 não existem, porém, indicadores de comprometimento publicados e confirmados; a deteção baseia-se na análise de comportamento. Um scanner não pode procurar vestígios que ninguém conhece. No melhor dos casos, encontra software malicioso geral que foi carregado depois de uma intrusão, desde que siga padrões conhecidos.

Isto não torna os scanners inúteis. Significa apenas que o seu resultado tem de ser bem interpretado. Os sinais que contam para além dos scanners estão descritos em Será que já fui comprometido?.

Scanners de malware para sites: três tipos

Tipo O que vê O que não vê
Scanner externo (serviço online) páginas entregues, scripts incluídos, redirecionamentos, listas de bloqueio ficheiros, base de dados, contas, tudo o que só é entregue sob condições
Scanner no CMS (plugin ou extensão) ficheiros no diretório web, em parte conteúdos da base de dados, comparação com ficheiros principais nível do sistema, tarefas agendadas, SSH; corre num sistema possivelmente comprometido
Scanner no servidor (baseado em assinaturas) todos os ficheiros legíveis, também fora do diretório web padrões desconhecidos e ofuscados, base de dados, contas, comportamento

Os scanners externos são úteis para reconhecer consequências visíveis, como redirecionamentos ou entradas em listas de bloqueio. Mas muitos ataques só entregam os seus conteúdos de spam ou de redirecionamento a determinados visitantes, por exemplo motores de busca ou dispositivos móveis. O scanner vê então uma página limpa.

Os scanners no CMS têm mais visibilidade, mas um problema de fundo: correm no mesmo sistema que devem verificar. Código com direitos suficientes pode influenciar os seus resultados, ocultar ficheiros ou desativar o scanner. Os scanners de servidor trabalham fora da aplicação, mas continuam dependentes de padrões.

O que os scanners deixam passar por princípio

Independentemente do tipo, há áreas que um scanner de ficheiros ou de páginas dificilmente consegue cobrir:

  1. Código novo ou ofuscado de forma individual: qualquer variante que tenha um aspeto diferente dos padrões conhecidos passa despercebida.
  2. A base de dados: scripts em conteúdos, definições alteradas, triggers e contas alheias. Mais informação em Verificar na base de dados a presença de código introduzido.
  3. Acessos: contas de administrador adicionais, chaves SSH, utilizadores da base de dados, contas no painel de alojamento.
  4. Serviços do sistema e tarefas agendadas: mecanismos que voltam a carregar código malicioso de forma regular.
  5. Alterações discretas em ficheiros legítimos: uma única linha adicional num ficheiro principal, com aspeto inofensivo.
  6. Dados que saíram: nenhum scanner mostra se foram copiadas credenciais ou dados de clientes.

O que cria certeza em vez disso

A combinação de tipos de verificação que funcionam de maneira diferente traz mais segurança:

  • Comparação com o original: encontra qualquer alteração em ficheiros conhecidos, independentemente de padrões. O procedimento está descrito em Comparar os ficheiros principais do CMS com o original.
  • Pesquisa dirigida de anomalias: ficheiros PHP em pastas de uploads, ficheiros alterados recentemente, código ofuscado, ficheiros executáveis em pastas temporárias.
  • Verificação de contas e serviços do sistema: comparar utilizadores, chaves, tarefas agendadas e serviços com o estado esperado conhecido.
  • Análise de registos: pedidos a ficheiros desconhecidos, acumulações de erros, inícios de sessão invulgares.
  • Monitorização do comportamento: processos do servidor web que iniciam uma shell, ligações de saída inesperadas, novos ficheiros em pastas sensíveis.

A última categoria é a mais importante quando não existem vestígios conhecidos. Não pergunta com que aspeto tem o código malicioso, mas o que faz. Um processo do servidor web que de repente inicia uma shell destaca-se, por muito ofuscado que esteja o código que o desencadeou.

Dica

Faça correr um scanner de servidor a partir de um sistema limpo, sobre uma cópia só de leitura, em vez de o fazer no próprio servidor suspeito. Assim, o código introduzido não pode influenciar o resultado.

Como utilizar os scanners com critério

Os scanners têm o seu lugar, como uma ferramenta entre várias. Um scanner externo serve como controlo regular das consequências visíveis, por exemplo semanalmente. Um scanner no CMS comunica, no dia a dia, software malicioso conhecido e ficheiros principais alterados. Um scanner de servidor complementa a procura de padrões conhecidos em todo o sistema de ficheiros.

Decisivo é o modo como se lida com o resultado. Uma ocorrência é uma tarefa de verificação clara e justifica uma investigação completa, porque raramente está afetado apenas um ficheiro. Um resultado vazio é, em contrapartida, apenas uma afirmação sobre os padrões verificados. Registe na documentação que scanner correu quando e com que versão, e não escreva «sistema limpo», mas «nenhum padrão conhecido encontrado».

Para a gestão, isto significa: um visto verde não substitui uma verificação feita por alguém que analise em conjunto ficheiros, base de dados, contas e comportamento. Após um incidente com possível execução de código, como é concebível com o PHP2Shell, essa verificação deve realizar-se.

Se, pelo contrário, um scanner comunicar uma ocorrência, é preciso agir depressa, mas de forma ordenada. Não elimine de imediato o ficheiro comunicado através da função do scanner. Preserve primeiro o ficheiro e os registos, para que se possa esclarecer como chegou ao servidor. Como decorre uma limpeza completa é descrito no serviço Mandar remover malware e webshells.

Como ajuda concretamente a PHP SOS?

  • Combinamos scanners com comparação face ao original, pesquisa dirigida e análise de contas, serviços e registos.
  • Verificamos os sistemas suspeitos através de cópias preservadas, para que os resultados não sejam influenciados pelo sistema comprometido.
  • Classificamos cada resultado com honestidade como comprovado, provável ou desconhecido.
  • Com a monitorização de segurança para servidores web, vigiamos de forma permanente o comportamento dos seus servidores, e não apenas padrões conhecidos.

Perguntas frequentes

O meu site está limpo se o scanner de malware não encontrar nada?

Não necessariamente. Os scanners encontram sobretudo padrões conhecidos. Código novo ou bem ofuscado, portas dos fundos na base de dados, contas alheias, tarefas agendadas e chaves SSH ficam muitas vezes por descobrir. Um resultado vazio é uma peça, não uma absolvição.

Qual é a diferença entre um scanner externo e um scanner de plugin?

Um scanner externo acede ao site a partir de fora e só vê o que é entregue. Um scanner de plugin corre dentro do CMS e pode ler ficheiros, mas corre no mesmo sistema, que pode estar comprometido. Ambos têm pontos cegos próprios.

Existem assinaturas de scanner para o PHP2Shell?

Para o PHP2Shell não existem indicadores de comprometimento publicados e confirmados. Por isso, os scanners não podem procurar de forma dirigida vestígios seguros do PHP2Shell. A deteção baseia-se na análise de comportamento e na procura de sinais gerais de comprometimento.

Qual é o melhor scanner?

A pergunta é enganadora. Mais importante do que um produto determinado é a combinação de diferentes tipos de verificação: comparação com o original, pesquisa em ficheiros e na base de dados, verificação de contas e serviços do sistema e monitorização do comportamento.

Fontes

Contacto imediato

Cada hora conta. Escreva-nos agora.

Descreva brevemente o sistema, a versão do PHP e o que observou. Entramos em contacto consigo, esclarecemos a situação e trabalhamos remotamente até o incidente estar concluído e documentado.

Ajuda imediata