Ficheiros Sensíveis Expostos: riscos e como proteger o seu site
Ficheiros de configuração, cópias de segurança, bases de dados e outros ficheiros sensíveis podem ficar acessíveis publicamente por erro de configuração. Neste artigo explicamos quais são os ficheiros mais críticos, porque representam um risco e como impedir a sua exposição.
O que são ficheiros sensíveis expostos
Um ficheiro sensível está exposto quando pode ser descarregado ou consultado diretamente através do navegador, apesar de conter informação que não deveria estar disponível publicamente.
Isto pode acontecer devido a erros de configuração do servidor, cópias de segurança deixadas dentro da diretoria pública do site, ficheiros temporários, instalações mal protegidas ou permissões inadequadas.
Um exemplo simples seria um ficheiro disponível através de um endereço como:
https://exemplo.pt/backup.sql
ou:
https://exemplo.pt/.env
Se estes ficheiros estiverem acessíveis, podem revelar credenciais, configurações internas, dados da base de dados ou outras informações úteis para um atacante.
Porque é perigoso
A exposição de ficheiros sensíveis pode fornecer informação suficiente para comprometer um site, uma aplicação ou outros serviços associados.
Dependendo do conteúdo do ficheiro, podem ser revelados:
- nomes de utilizador e passwords de bases de dados;
- chaves de API e tokens de acesso;
- credenciais de serviços externos;
- configurações internas da aplicação;
- cópias completas ou parciais de bases de dados;
- código-fonte ou ficheiros de configuração;
- informação sobre a estrutura interna do servidor.
Um único ficheiro exposto pode, por isso, transformar uma falha aparentemente simples num problema de segurança grave.
Que ficheiros podem representar um risco
Os ficheiros sensíveis variam consoante a aplicação e a tecnologia utilizada, mas existem alguns exemplos particularmente comuns.
Ficheiros .env
Os ficheiros .env são utilizados por muitas aplicações para guardar variáveis de ambiente, podendo incluir passwords, chaves de API, dados de acesso a bases de dados e outros segredos.
Um ficheiro deste tipo nunca deve estar acessível publicamente.
Ficheiros .git
A diretoria .git contém informação do sistema de controlo de versões Git e pode permitir recuperar partes significativas do código-fonte de uma aplicação.
Em alguns casos, pode também revelar histórico de alterações, nomes de ficheiros, configurações e dados que foram removidos de versões mais recentes.
Cópias de segurança
É comum encontrar ficheiros de backup deixados acidentalmente dentro da diretoria pública do site.
Exemplos:
backup.zipsite-backup.tar.gzdatabase.sqlwp-config.php.bakconfig.old
Um backup pode conter uma cópia completa do site, da base de dados ou de ficheiros de configuração e, por isso, deve ser armazenado fora da área pública do servidor.
Ficheiros de configuração
Ficheiros de configuração podem conter informação sobre a aplicação, serviços utilizados, credenciais e outras definições internas.
No WordPress, por exemplo, o ficheiro wp-config.php contém dados de ligação à base de dados e chaves de segurança.
O servidor normalmente processa este ficheiro sem mostrar o seu conteúdo. No entanto, cópias como wp-config.php.bak, wp-config.php.old ou wp-config.txt podem ser servidas diretamente como texto e tornar-se extremamente perigosas.
Ficheiros sensíveis no WordPress
Sites WordPress podem ficar particularmente expostos quando administradores, plugins ou processos de migração criam cópias temporárias dentro de public_html.
Entre os ficheiros que merecem atenção encontram-se:
wp-config.php.bakwp-config.php.oldwp-config.php~database.sqlbackup.ziperror_log- ficheiros de exportação ou migração deixados temporariamente no servidor.
Plugins de backup ou migração devem ser configurados para impedir que os ficheiros gerados possam ser descarregados diretamente sem autorização.
Boas práticas
- Não guardar backups dentro da diretoria pública do site.
- Bloquear o acesso a ficheiros e diretorias ocultas que não devam ser públicos.
- Remover ficheiros temporários, antigos ou de teste depois de concluída uma alteração.
- Evitar nomes de backup previsíveis como
backup.zipoudatabase.sql. - Rever regularmente a raiz pública do site para identificar ficheiros esquecidos.
- Guardar credenciais e segredos em locais protegidos e fora da área pública sempre que possível.
- Configurar o servidor para negar o acesso a ficheiros sensíveis mesmo que estes sejam criados acidentalmente.
- Manter plugins, aplicações e sistemas de backup atualizados.
Como corrigir
- Identifique qual o ficheiro que está acessível publicamente e confirme se contém informação sensível.
- Se o ficheiro não for necessário, remova-o imediatamente da diretoria pública.
- Se precisar de manter o ficheiro, mova-o para uma localização que não seja acessível diretamente através da Web.
- Configure o servidor para bloquear o acesso a extensões, ficheiros ou diretorias que contenham informação sensível.
- Se o ficheiro exposto continha passwords, tokens, chaves de API ou outros segredos, considere essas credenciais comprometidas e substitua-as.
- Analise os logs do servidor para perceber se o ficheiro foi acedido por terceiros.
- Depois da correção, confirme que o endereço anteriormente exposto devolve um erro de acesso ou não existe.
Bloquear ficheiros sensíveis no Apache e LiteSpeed
Em servidores compatíveis com regras .htaccess, pode ser possível adicionar proteções adicionais para determinados tipos de ficheiro.
Por exemplo, para bloquear alguns ficheiros normalmente sensíveis:
<FilesMatch "^(\.env|\.git|.*\.sql|.*\.bak|.*\.old)$">
Require all denied
</FilesMatch>
Esta regra é apenas um exemplo e deve ser adaptada à configuração do servidor e às necessidades do site. Não deve substituir a remoção de ficheiros que não deveriam estar na diretoria pública.
O que fazer se um ficheiro com passwords esteve exposto
Remover o ficheiro do acesso público é apenas o primeiro passo.
Se existiu a possibilidade de terceiros acederem a passwords, tokens, chaves privadas ou outras credenciais, deve assumir que esses dados podem ter sido copiados.
Nesse caso, deve alterar as credenciais afetadas, revogar tokens ou chaves quando aplicável e analisar os logs para procurar acessos suspeitos.
Também é aconselhável verificar se as mesmas credenciais são utilizadas noutros serviços e substituí-las sempre que exista reutilização.
Ficheiros expostos e listagem de diretórios não são a mesma coisa
A exposição de ficheiros sensíveis e a listagem de diretórios são problemas relacionados, mas diferentes.
Um ficheiro pode estar acessível mesmo que a listagem de diretórios esteja desativada, desde que alguém conheça ou consiga descobrir o endereço exato.
Por outro lado, uma listagem de diretórios ativa pode facilitar a descoberta de backups, ficheiros temporários e outros conteúdos que deveriam permanecer ocultos.
Um ficheiro sensível exposto pode revelar muito mais do que parece – desde credenciais de base de dados a cópias completas do site ou chaves de acesso a serviços externos.
Na WebDig Host, a infraestrutura e as configurações de alojamento são geridas com foco em boas práticas de segurança, reduzindo o risco de ficheiros sensíveis ficarem acessíveis publicamente.
Perguntas frequentes sobre ficheiros sensíveis expostos
O que é considerado um ficheiro sensível?
É qualquer ficheiro que contenha informação que não deveria estar acessível publicamente, como passwords, chaves de API, configurações internas, backups, bases de dados ou código-fonte.
Um ficheiro .env acessível é perigoso?
Sim. Um ficheiro .env pode conter passwords de bases de dados, tokens, chaves de API e outras credenciais. Se estiver acessível publicamente, deve ser bloqueado imediatamente e as credenciais expostas devem ser substituídas.
Posso guardar backups dentro de public_html?
Não é recomendado. Sempre que possível, os backups devem ficar fora da diretoria pública do site ou armazenados num sistema que impeça o acesso direto através da Web.
Se remover o ficheiro, o problema fica resolvido?
Nem sempre. Se o ficheiro continha credenciais ou outros segredos, deve considerar que estes podem ter sido obtidos por terceiros e proceder à sua substituição.
Desativar a listagem de diretórios impede a exposição de ficheiros?
Não completamente. Desativar a listagem dificulta a descoberta de ficheiros, mas um ficheiro continua acessível se alguém conhecer ou descobrir o seu endereço exato. O ideal é remover ou bloquear diretamente os ficheiros sensíveis.
O Secure Check consegue verificar ficheiros sensíveis?
O Secure Check testa automaticamente a exposição de vários ficheiros e caminhos frequentemente associados a informação sensível, ajudando a identificar configurações que devem ser revistas.
Verifique agora se existem ficheiros sensíveis expostos
Com o Secure Check, pode verificar gratuitamente se o seu site expõe ficheiros ou caminhos sensíveis e identificar problemas que podem colocar informação confidencial em risco, em poucos segundos.
