Backup exposto e arquivos não referenciados e como encontrá-los

Publicados: 2021-08-24

Manter seu WordPress seguro envolve um processo contínuo de teste, fortalecimento, monitoramento e melhoria. Há várias coisas que os administradores do WordPress podem cuidar para ajudá-los a garantir que seus sites sejam seguros. Desde garantir que as senhas atendam a critérios específicos até fortalecer o PHP, esses processos podem ajudar muito a garantir que você execute um navio limpo e firme. Uma coisa que tende a passar despercebida é o backup exposto e os arquivos não referenciados. Esses arquivos podem representar um risco de segurança que pode ser facilmente gerenciado seguindo as práticas recomendadas.

O WordPress usa diretórios para organizar as informações. Todas as páginas e mídias residem nessa estrutura. Em uma instalação típica, essa estrutura seria algo como var/www/html/wordpress/wp-content.

Servidores da Web, incluindo servidores que hospedam sites WordPress, normalmente são configurados para atender aos clientes todos os arquivos que residem em um diretório específico. Existem algumas exceções, como arquivos PHP; no entanto, a menos que um administrador tenha bloqueado explicitamente o acesso, as chances são de que, se um cliente solicitar, o servidor da Web obedeça.

De um modo geral, isso é uma coisa boa, e é o que você quer que aconteça, pois é assim que os arquivos pertinentes às suas páginas da Web, como arquivos CSS, arquivos JS e imagens, são exibidos ao visitante. No entanto, esse comportamento também significa que você pode estar servindo involuntariamente arquivos que nunca pretendia que o público visse, como arquivos de backup e não referenciados.

O que são arquivos de backup e não referenciados?

Como o nome sugere, arquivos de backup e não referenciados são backups reais que podem ser backups de arquivos específicos, normalmente criados ao editar arquivos como arquivos de configuração ou até mesmo backups completos. Entender o que são esses arquivos de backup e como eles são gerados é o primeiro passo que precisamos dar para resolver o problema.

Existem muitas razões pelas quais você pode precisar editar arquivos do WordPress. Editar os arquivos do seu site WordPress, no entanto, sem fazer um backup primeiro exige um pouco de coragem - um ponto e vírgula ausente pode derrubar seu site!

Obviamente, como esses erros são fáceis de cometer, não é aconselhável editar arquivos diretamente em servidores web de produção. As práticas recomendadas nos dizem para testar primeiro todas as alterações em um servidor de teste ou de teste. Somente após testes completos e bem-sucedidos, as alterações podem ser movidas para o servidor ativo/de produção.

Na vida real, no entanto, as melhores práticas nem sempre são seguidas. Isso pode ser especialmente verdadeiro quando se trata de uma pequena mudança. O processo de baixar o arquivo, fazer as alterações, testar e reenviar pode levar muito mais tempo do que editar o arquivo no servidor ativo. Todos nós já estivemos lá.

Editar no servidor ativo pode ser muito fácil. Com um cliente SSH e Vi (ou Vim se preferir a versão melhorada), você pode fazer maravilhas. Depois de se conectar ao servidor e acessar o diretório, é provável que você primeiro faça um backup do arquivo (ex. wp-config.php.bak), edite o ao vivo, verifique se tudo está em ordem, e é tudo bonitão. No entanto, esse arquivo de backup deixado na pasta (apenas no caso, você sabe) pode acabar sendo a fonte de muitas dores. As chances são de que praticamente qualquer pessoa possa baixá-lo e com ele toda a configuração, em texto simples, nada menos.

Além disso, muitos administradores do WordPress podem não estar cientes de que editar arquivos usando um editor de arquivos como o Vim pode criar automaticamente arquivos de backup, recuperação e bloqueio. O Vim cria esses arquivos para permitir que você recupere seu trabalho se o Vim travar ou encerrar inesperadamente. Embora esse seja inquestionavelmente um recurso valioso, isso também significa que você pode acabar inadvertidamente com arquivos de backup que nunca teve a intenção de criar espalhados pelo seu site, esperando que alguém acesse.

Da mesma forma, backups de diretórios inteiros deixados em uma pasta pública podem ser igualmente prejudiciais. Embora fazer backups do seu site WordPress seja fundamental, isso precisa ser feito com segurança, sem introduzir novos riscos de segurança. Falaremos sobre isso com mais detalhes mais adiante neste artigo.

Exemplos comuns de arquivos de backup incluem versões antigas renomeadas de arquivos de configuração modificados, arquivos PHP ou outro código-fonte e backups automáticos ou manuais na forma de arquivos compactados (como arquivos .zip, .gz ou .tar.gz).

Por outro lado, arquivos não referenciados são arquivos extraviados que, devido a uma configuração ou decisão de design, acabam em algum lugar onde não pertencem.

Quais são os riscos?

Arquivos de backup e não referenciados acidentalmente deixados acessíveis podem vazar informações confidenciais. Dependendo do arquivo, os dados confidenciais podem incluir parâmetros de configuração ou código-fonte que ajudam os usuários mal-intencionados a entender melhor como seu site funciona, facilitando a criação de um ataque contra seu site. Em alguns casos, as senhas que podem dar aos invasores controle sobre toda a instalação do WordPress também podem vazar.

Existem várias maneiras pelas quais alguém pode encontrar arquivos restantes em seu servidor web. Enquanto alguns dos métodos exigem algum conhecimento técnico, outros são tão simples quanto uma pesquisa no Google, o que aumenta o risco de exposição. Se você não tiver certeza se tem arquivos restantes em seu servidor, continue lendo para saber como pesquisá-los e encontrá-los antes que alguém o faça.

Como encontrar arquivos de backup e arquivos não referenciados em seu site WordPress

Existem alguns métodos diferentes que alguém pode usar para encontrar arquivos de backup e não referenciados. Como proprietário do servidor, você tem vantagem, pois pode fazer isso mais diretamente. Esta seção irá explorar essas diferentes ferramentas, começando com as ferramentas que você pode usar para caçar e remover esses arquivos. Em seguida, veremos como um gato curioso pode encontrar arquivos de backup e não referenciados em seu servidor.

Ao procurar arquivos de backup que você pode ter deixado para trás em seu servidor web, você pode adotar uma (ou mais) de três abordagens. A maneira mais fácil é instalar um plug-in que monitore as alterações dos arquivos. Alternativamente, você pode tentar procurar por arquivos de backup deixados no sistema de arquivos usando ferramentas de linha de comando como find ou tentar procurar por arquivos de backup usando uma técnica chamada fuzzing .

Plugin de monitoramento de integridade de arquivos

Uma solução de monitoramento de integridade de arquivos para WordPress pode facilmente ajudar a monitorar alterações de arquivos em seu servidor web e alertá-lo se detectar que algo foi adicionado, removido ou alterado.

Isso pode ser feito com o plugin Website File Changes Monitor. O plug-in pega uma impressão digital de seus diretórios e a compara com as impressões digitais subsequentes. Em essência, ele funciona com os mesmos princípios de uma soma de verificação, tornando-o altamente seguro e confiável.

Um monitor de integridade de arquivos pode ser especialmente eficaz se você não estiver a par de todos os diretórios usados ​​pelo WordPress. Uma outra vantagem significativa deste plugin é que o monitoramento é automatizado, então você não precisa se lembrar de verificar os arquivos – o plugin faz isso automaticamente.

Achar

Vamos agora ver como podemos encontrar arquivos de backup usando o comando find. O comando a seguir procurará várias extensões de arquivo comumente usadas ao criar arquivos de backup.

find /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -name '*.jar' -o -name '*.log' -o -name '*.swp' -o -name '*~' -o -name '*.old' -o - name '*.~bk' -o -name '*.orig' -o -name '*.tmp' -o -name '*.exe' -o -name '*.0' -o -name '*. 1' -o -name '*.2' -o -name '*.3' -o -name '*.gz' -o -name '*.bz2' -o -name '*.7z' -o - name '*.s7z' -o -name '*.lz' -o -name '*.z' -o -name '*.lzma' -o -name '*.lzo' -o -name '*.apk ' -o -name '*.cab' -o -name '*.rar' -o -name '*.war' -o -name '*.ear' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.z' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.tar.lzma' - o -name '*.tlz' -o -name '*.zipx' -o -name '*.iso' -o -name '*.src' -o -name '*.dev' -o -name '* .a' -o -name '*.ar' -o -name '*.cbz' -o -name '*.cpio' -o -name '*.shar' -o -name '*.lbr' -o -name '*.mar' -o -name '*.f' -o -name '*.rz' -o -name '*.sfark' -o -name '*.xz' -o -name '*. ace' -o -name '*.afa' -o -name '*.alz' -o -name '*.arc' -o -nam e '*.arj' -o -name '*.ba' -o -name '*.bh' -o -name '*.cfs' -o -name '*.cpt' -o -name '*.dar ' -o -name '*.dd' -o -name '*.dgc' -o -name '*.dmg' -o -name '*.gca' -o -name '*.ha' -o -name '*.hki' -o -name '*.ice' -o -name '*.inc' -o -name '*.j' -o -name '*.kgb' -o -name '*.lhz' -o -name '*.lha' -o -name '*.lzk' -o -name '*.pak' -o -name '*.partimg.' -o -name '*.paq6' -o -name '*.paq7' -o -name '*.paq8' -o -name '*.pea' -o -name '*.pim' -o -name '*.pit' -o -name '*.qda' -o -name '*.rk' -o -name '*.sda' -o -name '*.sea' -o -name '*.sen' -o -name '*.sfx' -o -name ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -name '*s.xz' -o -name '*.tar.7z' -o -name '*. tar.xz' -o -name '*.uc' -o -name '*.uc0' -o -name '*.uc2' -o -name '*.ucn' -o -name '*.ur2' - o -name '*.ue2' -o -name '*.uca' -o -name '*.uha' -o -name '*.wim' -o -name '*.xar' -o -name '* .xp3' -o -name '*.yz1' -o -name '*.zoo' -o -name '*.zpaq' -o -name '*.zz' -o -name '*.include' -o -name '*_1' -o -name '*_2' -o -name '*_x' -o -name '*bak' -o -name '*_bak' -o -name '*old' -o -name '*_old' -o -name '*_a' -o -name '*_b' -o -name '*_c' -o -name '*_d' -o -name '*_e' -o -name '*_f' -o -name '*inc' -o -name '*_inc' -o -name '*_backup' -o -name '* – Copiar' -o -name '* – Copiar (2)' -o -name '* – Copiar (3)' -o -name '*backup' -o -name '*-backup' -o -name '*-bak' -o -name '*-old' -o -name '*-1' -o -name '*-2' -o -name '* – Copiar – Copiar' -o -name '*( cópia)' -o -name '*(outra cópia)' -o -name '*(segunda cópia)' -o -name '*(terceira cópia)' -o -name '*(quarta cópia)' -o - name '*(2ª cópia)' -o -name '*(3ª cópia)' -o -name '*(4ª cópia)' -o -name '* (cópia)' -o -name '* (outra cópia) ' -o -name '* (segunda cópia)' -o -name '* (terceira cópia)' -o -name '* (quarta cópia)' -o -name '* (2ª cópia)' -o -name ' * (3ª cópia)' -o -name '* (4ª cópia)' -o -name 'Cópia de *' -o -name 'Copiar (2) de *' -o -name 'Copiar (3) de *' -o -name 'Cópia da cópia de *' -o -name 'backup*' -o -name 'backup_*' -o -name 'backup-*' -o -name 'bak*' -o -name 'bak_ *' -o -name 'bak-*' -o -name'antigo*' -o -name 'antigo_*' -o -name 'antigo-*' -o -name '1*' -o -name '1_*' -o -name '1-*' -o -name '2*' -o -name '2_*' -o -name '2-*' \)

Fuzzing

O método a seguir usa uma ferramenta baseada em linha de comando chamada ffuf com uma lista de palavras (uma lista de nomes de arquivos e caminhos de arquivos coletados em texto simples) que se concentra em arquivos do WordPress. O ffuf pode ser configurado para fazer solicitações usando uma lista separada por vírgulas de extensões de arquivos de backup comuns (este exemplo usa apenas uma lista reduzida que inclui apenas .bak e .backup, mas, na realidade, provavelmente seria muito mais longa).

ffuf -u http://example.com/FUZZ -w wordlist.txt -e '.bak,.backup'

Pesquisas do mecanismo de pesquisa

Os mecanismos de pesquisa são muito, muito bons em encontrar e catalogar informações em servidores da web. Alguém pode fazer isso usando operadores avançados que podem, por exemplo, detalhar uma consulta para localizar tipos de arquivo específicos em um determinado servidor.

Esse tipo de pesquisa também é conhecido como Google Dorking e pode usar uma combinação de filtros avançados e inferência. Inferência é como alguém sem conhecimento do que reside em um servidor usa informações gerais para inferir que tipo de arquivos e estruturas podem residir em um servidor e, em seguida, pesquisa essas coisas específicas.

Scanners de segurança

Existem diferentes tipos de scanners que podem verificar os diretórios de um site. O primeiro tipo de scanner é chamado de rastreador de sites, que é a mesma tecnologia subjacente que os mecanismos de pesquisa usam para ler sites. Esses tipos de scanners, no entanto, não são exclusivos dos mecanismos de pesquisa e podem ser baixados gratuitamente.

É ilegal verificar um site de destino na maioria dos países, mesmo que suas intenções sejam boas. Você só pode e deve usar um scanner em sites de sua propriedade. Se você estiver escaneando um site de terceiros, certifique-se de ter seu consentimento. Mesmo assim, alguém com intenções maliciosas pode usar um scanner de segurança para saber mais sobre seu site e entender que tipo de arquivos estão nele.

Outro tipo de scanner é um scanner de teste de penetração, que pode verificar vulnerabilidades em um site, incluindo arquivos restantes.

Arquivos de backup ou não referenciados encontrados? Aqui está o que fazer

Armazenar arquivos de backup em um site nunca é uma boa ideia. Infelizmente, não é incomum que proprietários e administradores de sites WordPress configurem cron jobs (tarefas agendadas) para fazer backups de banco de dados, apenas para armazenar esses backups no mesmo servidor. Embora você certamente deva fazer backup do seu site, você deve tomar cuidado para que os arquivos de backup não sejam armazenados em nenhum lugar do sistema do qual você fez backup.

Ter uma estratégia de backup do WordPress bem pensada que siga as melhores práticas é crucial não apenas do ponto de vista da segurança, mas também do ponto de vista da continuidade dos negócios. Afinal, backups não valem muito se você não puder usá-los para restaurar dados.

Como evitar a enumeração do arquivo de backup

Como vimos ao longo deste artigo, manter arquivos de backup em seu site WordPress pode ser bastante arriscado. Como tal, você deve sempre usar um ambiente de teste ou teste para realizar suas alterações antes de enviá-las para o servidor ativo/de produção. A maioria das contas gerenciadas de hospedagem do WordPress vem com um ambiente de teste pronto para uso. Você também pode usar software como o Local, que permite ativar instâncias do WordPress no seu PC.

No entanto, se você optar por manter os arquivos de backup em seu servidor web, o ideal é mantê-los fora do diretório para o qual você configurou seu servidor web.

Além disso, configure suas permissões de arquivos do WordPress para proibir o acesso ao usuário do servidor da Web - isso garante que, mesmo no caso de uma configuração incorreta, o servidor da Web não terá permissão para fornecer o arquivo a um cliente que o solicite. Como medida adicional, é uma boa ideia criptografar qualquer backup de banco de dados e certificar-se de que a chave de criptografia não esteja acessível pelo usuário do servidor web.