Como Configurar Filesystem Permissions no WordPress Após um Ataque de Plugin GPL Infectado

Recuperação Robusta de Permissões Após Infecção por Plugin GPL

Você instalou um plugin GPL e seu site foi invadido. O invasor modificou permissões de arquivos para criar backdoors. Agora, a limpeza não é suficiente: é preciso reconfigurar as filesystem permissions corretamente.

Por que as permissões padrão falham

Muitos tutoriais recomendam 755 para pastas e 644 para arquivos. Isso é frágil contra ataques que exploram plugins GPL. Após uma infecção, o invasor pode ter alterado permissões para 777 em arquivos críticos como wp-config.php ou .htaccess. Verifique com:

find /caminho-wordpress -type f -perm 777

Altere imediatamente:

find . -type d -exec chmod 755 {} \\; && find . -type f -exec chmod 644 {} \\;

Permissões mínimas para hardening pós-ataque

Para pastas: 755 (drwxr-xr-x). Para arquivos: 644 (-rw-r--r--). Exceções: wp-config.php deve ter 600 ou 640 se o grupo do servidor web precisar ler. Diretório wp-content/uploads pode usar 755, mas arquivos de upload 644. Nunca 777!

Privilégios de proprietário e grupo

O proprietário deve ser seu usuário FTP (ex: user), e o grupo do servidor web (ex: www-data). Use:

chown -R user:www-data /caminho-wordpress

Para o diretório wp-content, muitos hosts exigem que o servidor possa escrever em uploads. Isso é feito corretamente com permissão de grupo de escrita (775) apenas nessa pasta:

chmod 775 wp-content/uploads

E garanta que o bit setgid esteja ativo para herança de grupo:

chmod g+s wp-content/uploads

Proteção contra escaneamento de diretórios

Após restaurar permissões, impeça listagem de diretórios no Apache ou Nginx. Para Apache, em .htaccess ou wp-content/.htaccess:

Options -Indexes

No Nginx, adicione autoindex off; no bloco location.

Mude o método de instalação de plugins

Sempre use FTP ou SFTP para instalar plugins GPL manualmente, evitando o método direto do WordPress que exige write permissions na pasta wp-content. Desative a edição de arquivos pelo painel com:

define('DISALLOW_FILE_EDIT', true);

E bloqueie a instalação de plugins via upload direto com:

define('DISALLOW_FILE_MODS', true);

Isso não só protege, como força você a gerenciar plugins manualmente, reduzindo riscos.

Verificação final de segurança

Após reconfigurar, execute uma auditoria com Theme Check ou Exploit Scanner. Monitore arquivos alterados com:

find . -mtime -2 -type f

Lembre-se: permissões frouxas são o principal vetor de reinfecção em sites que usam plugins GPL sem verificação.

Rolar para cima