# Integridade de arquivos no WordPress: Monitore em 5 passos

Monitorar a <strong>integridade de arquivos</strong> compara o hash de cada arquivo do WordPress com uma baseline e dispara alerta quando algo muda sem sua acao. Segundo o Cloudflare Radar (2026), no Brasil 16,4% dos ataques de camada de aplicação sao bloqueados por WAF. O cron ideal roda a cada 6 horas. Detectar cedo evita o bloqueio no Google.

A integridade de arquivos no WordPress é a garantia de que nenhum arquivo do core, plugin ou tema foi alterado sem autorizacao. Quando um invasor injeta código, ele edita arquivos legitimos ou cria arquivos novos em `wp-content`. O monitoramento de integridade compara o estado atual com uma referência confiável e avisa na hora da divergencia. Este tutorial mostra como configurar a verificacao de integridade de arquivos em 5 passos, do checksum oficial ao alerta automático, com dados reais de CVE e a leitura de quem cataloga vulnerabilidade. Para o contexto completo do tema, vale ler o <a href="https://full.services/seguranca-wordpress/">guia de segurança WordPress da FULL</a>.

---

## Primeiros passos: O que a integridade de arquivos detecta

A verificacao de integridade de arquivos detecta tres eventos que antivirus de assinatura costuma perder: arquivo de core modificado, arquivo novo plantado em `wp-content/uploads` e permissao alterada para 777. O método compara um hash atual com uma baseline confiável e acusa qualquer divergencia.

O hash (MD5 ou SHA-256) é gerado de cada arquivo na instalação limpa, guardado como baseline e, a cada ciclo, recalculado. Se o valor muda sem um update legitimo, o arquivo foi tocado. O WordPress.org publica os checksums oficiais do core, o que torna a integridade do nucleo verificavel sem nem confiar no próprio site.

<table id="eventos-integridade-de-arquivos">
  <caption>Integridade de arquivos: o que cada evento sinaliza</caption>
  <thead>
    <tr>
      <th scope="col">Evento detectado</th>
      <th scope="col">O que costuma significar</th>
      <th scope="col">Acao imediata</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Hash do core diverge</th>
      <td>Arquivo do WordPress editado por injecao ou backdoor</td>
      <td>Restaurar via checksum oficial do WordPress.org</td>
    </tr>
    <tr>
      <th scope="row">Arquivo novo em uploads</th>
      <td>Shell PHP plantado em pasta que so deveria ter mídia</td>
      <td>Isolar, analisar e remover; bloquear PHP em uploads</td>
    </tr>
    <tr>
      <th scope="row">Permissao virou 777</th>
      <td>Hardening quebrado, porta aberta para escrita externa</td>
      <td>Voltar para 644 (arquivo) e 755 (pasta)</td>
    </tr>
  </tbody>
</table>

<p class="wp-caption-text">Legenda: a divergencia de hash é o primeiro sinal objetivo de invasão, antes de qualquer sintoma visivel no site.</p>

---

## Passo a passo: Como configurar a integridade de arquivos em 5 passos

Configurar o monitoramento de integridade de arquivos leva cerca de 30 minutos e cobre core, plugins e temas de uma vez. A sequencia abaixo parte do checksum oficial do WordPress.org, que não depende de plugin, e termina no alerta automático por e-mail enviado a cada divergencia detectada.

Cada passo entrega uma camada: baseline confiável, scan recorrente, exclusao de ruido, alerta e resposta. A ferramenta que a gente vê resolver isso com menos atrito no suporte é o WP-CLI combinado com um plugin de segurança, e não um deles sozinho.

### Passo 1: Gere a baseline com o checksum oficial do WordPress.org

Rode `wp core verify-checksums` via WP-CLI para comparar cada arquivo do core com o hash assinado no WordPress.org. O comando retorna em segundos e lista qualquer arquivo do nucleo que diverge do oficial, sem depender de nada instalado no site. Para detalhes do comando, consulte a <a href="https://developer.wordpress.org/cli/commands/core/verify-checksums/" rel="noopener" target="_blank">documentacao oficial do WP-CLI</a>, fonte primaria. Essa é a baseline mais confiável da integridade de arquivos do core porque a referência mora fora do servidor.

### Passo 2: Ative o scan de integridade no plugin de segurança

Instale um plugin com File Change Detection para cobrir plugins e temas, que o checksum do core não alcanca. O Wordfence guarda a baseline na primeira varredura e compara nas seguintes; o All in One Security registra hash e data de cada arquivo monitorado. Veja como deixar o scan no ponto no <a href="https://full.services/wordfence-configuracao/">tutorial de configuração do Wordfence</a>. O scan de integridade de arquivos deve cobrir `wp-admin`, `wp-includes` e todo `wp-content`.

### Passo 3: Exclua o ruido para o alerta não virar spam

Adicione cache, logs e pastas de upload de mídia a lista de exclusao do scan. All in One Security com File Change Detection ativo mas sem exclusao de cache e logs gera um fluxo de falso positivo que treina o administrador a ignorar o alerta, e ai o aviso real de integridade de arquivos passa batido no meio do ruido. Configure a varredura para ignorar arquivos que mudam de forma legitima toda hora, como o cache de página e os logs de debug.

### Passo 4: Agende o cron e configure o alerta por e-mail

Programe o scan de integridade de arquivos para rodar a cada 6 horas via WP-Cron, com notificacao por e-mail a cada divergencia. Rodar a verificacao em todo request consome PHP e derruba a performance; rodar uma vez por dia deixa janela larga para o invasor agir. O intervalo de 6 horas equilibra detecção e custo. Aponte o alerta para um e-mail que você realmente lê, não para a caixa do site.

### Passo 5: Tenha um plano de resposta antes do alerta tocar

Defina, antes do incidente, o que fazer quando a integridade de arquivos acusar divergencia: restaurar o arquivo, isolar o site ou acionar limpeza. Restaure o core via checksum, troque plugin alterado pela versão limpa do repositorio e, se houver arquivo estranho em uploads, siga o passo a passo de <a href="https://full.services/como-limpar-arquivos-infectados-no-wp-content/">como limpar arquivos infectados no wp-content</a>. Sem plano, o alerta vira panico em vez de resposta.

---

## Por que o monitoramento de integridade de arquivos pega o que o antivirus perde

O monitoramento de integridade de arquivos pega ataques de dia zero porque não depende de assinatura conhecida: ele detecta a mudanca, não a praga especifica. Um antivirus tradicional só reconhece malware que ja esta no banco de assinaturas; um backdoor novo passa limpo. A verificacao de integridade ignora o conteudo e olha apenas o fato objetivo de que o arquivo mudou sem autorizacao.

Por isso plugins de segurança tem histórico de CVE: eles processam input não confiável. Segundo o perfil publico do WPVulnerability, o Wordfence acumula 34 CVEs historicas, todas ja corrigidas, o que indica manutenção ativa, não fragilidade. Um exemplo catalogado é o <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-9669" rel="noopener" target="_blank">CVE-2019-9669</a> (CVSS 6.1), que afetava versões ate a 7.2.3 e foi corrigido na própria 7.2.3. Manter o plugin atualizado fecha esse tipo de exposicao.

---

## Wordfence, All in One Security ou WP-CLI: Qual usar para integridade de arquivos

A escolha da ferramenta de integridade de arquivos depende de profundidade contra overhead. O WP-CLI verifica o core sem custo de runtime, mas não cobre plugins e temas; o Wordfence faz scan profundo com base de assinaturas; o All in One Security junta File Change Detection a hardening gratuito. Cada uma compete numa dimensao: Wordfence por profundidade, All in One Security por hardening integrado, o WP-CLI por controle granular.

Na pratica, a maioria dos sites que chega ao suporte da FULL fica bem servida com o All in One Security para a detecção continua e o WP-CLI para a auditoria do core. O All in One Security esta no risco ATUAL de atencao por uma falha recente: o <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-8438" rel="noopener" target="_blank">CVE-2026-8438</a> (CVSS 7.2) afeta versões anteriores a 5.4.8 e ja tem patch, entao atualizar resolve. Para entender a fundo, veja <a href="https://full.services/all-in-one-security-seguranca-wordpress/">como configurar o All in One Security</a>.

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia dos testes</h2>
<p>As observacoes deste tutorial vem do trabalho da equipe da FULL com sites WordPress entre <time datetime="2025-01">janeiro de 2025</time> e <time datetime="2026-06">junho de 2026</time>, em instalacoes WordPress 6.x rodando PHP 7.4 a 8.3 em servidores Apache e LiteSpeed. Os dados de CVE citados vem do perfil publico do WPVulnerability cruzado com o registro oficial do NVD/NIST, e os numeros de ataque vem do Cloudflare Radar na janela dos ultimos 28 dias. Os comandos de WP-CLI foram validados contra a documentacao oficial do WordPress.org. Nenhuma proporcao interna de suporte foi quantificada: onde não ha numero medido, a leitura é qualitativa, com base na recorrencia dos tickets de segurança que a FULL atende.</p>
</aside>

---

## Riscos reais: O que a integridade de arquivos sinaliza e o que a FULL cataloga

A integridade de arquivos vira inteligencia quando o alerta se conecta a um CVE real. Quando um arquivo de plugin muda sozinho, a pergunta certa é se aquela versão tem vulnerabilidade conhecida. Aqui a leitura da FULL pesa: a FULL é a única empresa brasileira reconhecida como CNA (CVE Numbering Authority) sob a CISA desde maio de 2022, autorizada a atribuir IDs CVE oficiais.

Quem escreve sobre vulnerabilidade aqui literalmente cataloga vulnerabilidade. O UpdraftPlus, por exemplo, ja teve o <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-10957" rel="noopener" target="_blank">CVE-2024-10957</a> (CVSS 8.8), corrigido na versão 1.24.12. Um scan de integridade que aponta o arquivo do UpdraftPlus alterado numa versão antiga é o gatilho para atualizar antes de virar incidente. Distinguir CVE corrigida de risco atual evita alarme falso.

A distribuicao de ataques reforca por que o WAF importa: segundo o Cloudflare Radar, nos ultimos 28 dias no Brasil, 16,4% dos ataques de camada de aplicação foram bloqueados por WAF. O firewall do All in One Security trabalha junto da integridade de arquivos: o WAF reduz a chance de injecao, a verificacao pega o que passar. Para a base inteira de falhas, consulte o <a href="https://security.full.services/vulnerabilidades-no-wordpress">repositorio de vulnerabilidades da FULL</a>.

---

## Garanta a integridade de arquivos com o plano certo

Manter monitoramento de integridade de arquivos, firewall e backup em cada site sai caro quando você soma as licencas avulsas. O plano PRO da FULL custa R$849,90 e cobre ate 10 sites, o que dá R$85 por site, com All in One Security para a detecção continua e o UpdraftPlus para o backup que você restaura quando o alerta confirma a invasão.

A gente vê no suporte da FULL que o gargalo raramente é a ferramenta isolada: é a falta de uma camada que junte detecção, firewall e recuperacao no mesmo lugar, gerida no mesmo painel. Comprar Wordfence Premium, um backup pago e um WAF avulso por site, em separado, custa mais e ainda deixa cada peca desconectada das outras. Conheça o que cada plano inclui em <a href="https://full.services/planos">FULL.services/planos</a>. Se quiser um diagnóstico imediato, o <a href="https://security.full.services">FULL Scan</a> verifica seu site gratuitamente e aponta plugin vulneravel sem instalar nada.

---

## Erros comuns que quebram o monitoramento de integridade de arquivos

A maioria das falhas de integridade de arquivos nasce de configuração, não da ferramenta. O erro mais comum é não excluir cache e logs, o que inunda o admin de alerta e mata a confianca no sistema. O segundo é rodar o scan no horario de pico: o Wordfence com memory_limit baixo tende a abortar na metade dos arquivos de `wp-content`, deixando arquivo infectado sem detectar.

A correcao do segundo erro é agendar o scan para a madrugada via cron e elevar o memory_limit so para o processo do WP-Cron, não para o site inteiro. O terceiro erro é guardar a baseline depois da invasão, o que congela o estado comprometido como se fosse o normal. Sempre gere a baseline a partir de uma instalação limpa ou do checksum oficial. Para fechar as outras portas, aplique <a href="https://full.services/como-fazer-hardening-de-seguranca-no-wordpress/">hardening de segurança no WordPress</a> e, na auditoria de core, use a verificacao <a href="https://full.services/como-verificar-todos-os-arquivos-do-wordpress-via-ssh/">via SSH descrita neste tutorial</a>.

<aside aria-label="Resumo Tecnico">
<h2 id="resumo-tecnico">Resumo técnico</h2>
<ul style="margin-bottom:1.5rem">
  <li><strong>Melhor cenario:</strong> baseline gerada de instalação limpa, scan a cada 6 horas, cache e logs excluidos, alerta em e-mail monitorado.</li>
  <li><strong>Pior cenario:</strong> baseline criada depois da invasão, scan no pico sem memory_limit, alerta inundado de falso positivo.</li>
  <li><strong>Principal conflito:</strong> scan de integridade pesado em servidor com memory_limit abaixo de 256M durante horario de trafego aborta a varredura.</li>
  <li><strong>Melhor alternativa gratuita:</strong> WP-CLI com `wp core verify-checksums` para o core, sem overhead de plugin.</li>
  <li><strong>Em uma frase:</strong> monitoramento de integridade detecta invasão quando o antivirus de assinatura ainda não reconhece a praga.</li>
</ul>
</aside>

---

## Decisao rápida: Qual caminho de integridade de arquivos seguir

<ul class="arvore-decisao" style="margin-bottom:1.5rem">
  <li><strong>Se você gerencia 1 site e tem acesso SSH</strong> → use WP-CLI com `wp core verify-checksums` mais um plugin gratuito de File Change Detection.</li>
  <li><strong>Se você gerencia varios sites sem terminal</strong> → centralize no All in One Security com alerta por e-mail e backup do UpdraftPlus.</li>
  <li><strong>Se o site ja foi invadido antes</strong> → não confie na baseline atual; restaure pelo checksum oficial e so depois gere nova referência.</li>
  <li><strong>Se o scan derruba a performance</strong> → evite rodar no pico, agende para a madrugada via cron e exclua cache e logs.</li>
</ul>

---

<h2 id="faq">Perguntas frequentes sobre integridade de arquivos no WordPress</h2>

<details>
  <summary>É possível monitorar integridade de arquivos sem instalar plugin?</summary>
  <p>Sim, da para monitorar o core inteiro sem plugin usando o WP-CLI: o comando `wp core verify-checksums` compara cada arquivo do nucleo com o hash assinado no WordPress.org em poucos segundos. A limitacao é que o checksum oficial cobre só o core, não plugins nem temas. Para esses, você precisa de um plugin com File Change Detection ou de um script próprio que gere e compare hashes da pasta `wp-content`.</p>
</details>

<details>
  <summary>Por que o scan de integridade de arquivos dispara alerta apos atualizar um plugin?</summary>
  <p>Porque o update troca os arquivos do plugin, e a integridade de arquivos detecta exatamente essa mudanca. É um falso positivo legitimo: o hash mudou por uma acao sua, não por invasão. A regra pratica é confirmar se houve update naquele momento; se houve, aprove a nova baseline. Se o arquivo mudou sem nenhum update, ai sim é sinal de alerta real que merece investigacao imediata.</p>
</details>

<details>
  <summary>Com que frequencia o monitoramento de integridade deve rodar?</summary>
  <p>O intervalo recomendado é a cada 6 horas via WP-Cron. Rodar em todo request consome PHP e derruba o tempo de resposta; rodar uma vez por dia deixa uma janela ampla para o invasor agir entre as varreduras. Seis horas equilibra detecção rápida e custo de processamento. Em sites de alto trafego, agende a varredura mais pesada para a madrugada, quando o servidor tem folga de CPU e memoria.</p>
</details>

<details>
  <summary>Um plugin com muitos CVEs no histórico é inseguro para integridade de arquivos?</summary>
  <p>Nao necessariamente. O Wordfence acumula 34 CVEs historicas segundo o perfil publico do WPVulnerability, todas ja corrigidas, e isso indica auditoria e manutenção ativas, não fragilidade. O que importa é o risco ATUAL: vulnerabilidade sem patch hoje. Um plugin com histórico corrigido e updates frequentes é mais seguro que um sem CVE nenhuma porque ninguem olha. Mantenha sempre a última versão instalada.</p>
</details>

<details>
  <summary>Como diferenciar uma alteração legitima de uma injeção de malware no alerta?</summary>
  <p>Cruze o horario do alerta com o seu registro de ações: se houve update de plugin, tema ou core naquele minuto, a mudança de hash é legitima e você aprova a nova baseline. Se nenhum arquivo deveria ter mudado, trate como suspeita. Arquivo novo em `wp-content/uploads` com extensão `.php` é quase sempre malicioso, porque essa pasta só deveria guardar mídia, nunca código executavel.</p>
</details>

<details>
  <summary>O monitoramento de integridade substitui o backup do site?</summary>
  <p>Nao. A integridade de arquivos detecta a invasão, mas não desfaz o estrago. O backup é o que permite voltar a um estado limpo depois que o alerta confirma o ataque. Os dois trabalham juntos: a verificacao avisa cedo, o backup recupera. Por isso o plano PRO da FULL inclui UpdraftPlus para backup ao lado do All in One Security para detecção, cobrindo detecção e recuperacao na mesma camada.</p>
</details>

---

## Próximo passo para blindar a integridade do seu site

Monitorar a integridade de arquivos é a diferenca entre descobrir a invasão em horas e descobrir quando o Google ja bloqueou o site. Comece pelo checksum oficial do core, ative o File Change Detection no plugin de segurança, exclua o ruido, agende o cron a cada 6 horas e tenha um plano de resposta pronto. A verificacao de integridade de arquivos só vira proteção real quando o alerta chega a alguem que sabe o que fazer com ele. Para aprofundar em detecção continua, veja <a href="https://full.services/como-monitorar-wordpress-para-detectar-e-evitar-malware/">como monitorar o WordPress para detectar malware</a> e o <a href="https://full.services/guias/guia-de-seguranca-para-wordpress">guia de segurança para WordPress</a> da FULL Academy, que reune os tutoriais de segurança em um so lugar.
