O que é Directory Traversal?

Publicados: 2023-05-09

Ao enganar um servidor da Web para expor informações restritas, os invasores podem obter uma ferramenta poderosa para comprometer um sistema e causar danos significativos. Passagem de diretório é um método comum usado para conseguir isso. Uma tentativa de navegar fora das áreas do sistema de arquivos reservadas para um determinado site pode levar ao roubo de dados e à execução arbitrária de códigos.

Normalmente, os servidores da Web restringem o acesso ao sistema de arquivos confinando os arquivos de um site dentro de seu diretório raiz, também conhecido como pasta raiz do documento. No entanto, os cibercriminosos podem contornar esses controles de segurança e explorar permissões de arquivo inseguras. Dessa forma, eles podem obter acesso não autorizado a informações críticas armazenadas em outro lugar no servidor da vítima.

Vulnerabilidades de inclusão de arquivos, regularmente identificadas em plugins e temas, tornam os sites do WordPress um alvo de alta prioridade para ataques envolvendo passagem de diretório. E embora a implementação de práticas de codificação segura seja uma tarefa para desenvolvedores de plug-ins e temas, a implementação de boas práticas de segurança é responsabilidade dos proprietários de sites.

Neste guia para travessia de diretório, exploraremos esse método comum que os hackers empregam para invadir o diretório raiz do site e acessar dados restritos. Você aprenderá como o path traversal permite que os invasores explorem com êxito as vulnerabilidades de inclusão de arquivo local (LFI) para infligir danos e como proteger seu site WordPress contra esses tipos de ataques, implementando práticas de segurança robustas.

Primeiro, vamos examinar mais de perto os conceitos de operações seguras do servidor. Mais especificamente, como os diferentes tipos de dados são separados no ambiente do servidor e qual o lugar que os dados do site ocupam nesse ecossistema.

travessia de diretório

Como o particionamento de dados ajuda a proteger as operações do servidor

Sites e aplicativos da web dependem de servidores para armazenar seus dados. Esses dados são então processados ​​por servidores da web e de banco de dados e outros aplicativos específicos antes de serem entregues aos navegadores dos visitantes pela internet como páginas da web solicitadas. Componentes subjacentes de hardware e software trabalham juntos para criar uma infraestrutura robusta que potencializa essa funcionalidade.

No entanto, essa arquitetura cliente-servidor também requer uma abordagem cuidadosa para a segurança do servidor. Os serviços críticos e outros componentes do sistema operacional do servidor devem ser totalmente separados dos arquivos do usuário e dos dados do site. Essa separação de dados no sistema de arquivos é comumente conhecida como particionamento de dados.

O particionamento de dados ajuda a proteger os aspectos mais vulneráveis ​​das operações do servidor, segregando diferentes tipos de dados em partições separadas. A implementação do particionamento do sistema de arquivos e outros mecanismos de segurança ajuda a proteger os servidores contra acesso não autorizado a informações confidenciais e comprometimentos no nível do sistema. Além disso, o particionamento de dados permite o gerenciamento eficiente de recursos e melhora o desempenho do servidor, separando os dados modificados com frequência de arquivos predominantemente somente leitura e isolando o sistema e os dados do usuário.

Controle de acesso ao servidor da Web: confinando os dados do site com raízes de documentos

Para isolar os dados do site dos dados do sistema, os servidores da Web utilizam o conceito de raízes de documentos. Isso envolve restringir os arquivos do site a um diretório designado no sistema de arquivos, conhecido como diretório raiz de um site. Ao definir a raiz do documento, o servidor da Web pode direcionar e responder corretamente às solicitações recebidas para o conteúdo desse site. Esse diretório raiz é o ponto de partida para lidar com solicitações da Web para esse site.

Esse confinamento ajuda a impedir o acesso não autorizado a dados críticos do servidor, como informações do sistema operacional e arquivos de configuração principais, armazenados fora do diretório raiz designado. Isso significa que qualquer script ou outro conteúdo e funcionalidade relacionados a um determinado site só podem acessar e modificar dados dentro do diretório raiz e seus subdiretórios, o que protege o restante do servidor em caso de violação de segurança.

Além das raízes de documentos, os servidores da Web usam outros mecanismos de controle de acesso para restringir ainda mais o acesso aos dados do site. Um dos mecanismos mais notáveis ​​são as permissões de arquivo. As permissões de arquivo ajudam a impor o princípio do privilégio mínimo, o que significa que os usuários ou processos do sistema recebem apenas o nível mínimo de acesso necessário para executar as funções pretendidas.

Apesar da segurança robusta dessa abordagem, os hackers podem empregar várias técnicas maliciosas para contorná-la. Um desses métodos é a passagem de diretório. Os ataques de passagem de diretório exploram os pontos fracos do código do site e a implementação de permissões seguras para induzir o servidor da Web a revelar informações restritas que, de outra forma, seriam inacessíveis no navegador.

O que é Directory Traversal?

A passagem de diretório, também conhecida como passagem de caminho, é uma técnica maliciosa destinada a conceder acesso a arquivos e diretórios restritos fora da raiz do documento do site ou aplicativo da web de destino. A travessia de caminho permite que o invasor navegue pelo sistema de arquivos do servidor até o diretório raiz e outras pastas restritas por meio do navegador – o tipo de comportamento que não deveria ser possível em circunstâncias normais.

A travessia de diretório é realizada manipulando as variáveis ​​que fazem referência a arquivos com o uso de caracteres especiais, conhecidos como sequências de travessia de caminho. Sequências como ponto-ponto-barra '../' são interpretadas pelo servidor web, forçando-o a mover um diretório para cima na hierarquia do sistema de arquivos, afastando-se da raiz do documento do site.

Se um site estiver armazenado em /home/user/public_html, fornecer uma sequência de passagem de diretório de '../../../etc' permitirá que o invasor navegue até o diretório /etc, que armazena a configuração crítica do sistema no Linux servidores.

Se a listagem de diretórios estiver desabilitada na configuração do servidor web, o cibercriminoso não poderá visualizar o conteúdo do diretório solicitado. Isso pode aumentar parcialmente a segurança do sistema e limitar o dano potencial infligido por ataques de passagem de diretório, pois o invasor terá que especificar o arquivo exato que deseja exibir no navegador. Mas, como na maioria das vezes, os hackers sabem exatamente quais informações estão procurando, desabilitar a listagem de diretórios não os impedirá de acessá-los.

O arquivo /etc/passwd é um dos alvos comuns dos ataques de passagem de diretório. Em servidores Linux, o arquivo /etc/passwd contém a lista de usuários criados no servidor. Isso pode dar aos hackers um bom ponto de partida para ataques de força bruta nas credenciais dos usuários. Como /etc/passwd tem permissões de arquivo de 644, o que significa que pode ser lido por todos os usuários do sistema, incluindo o usuário com o qual o servidor web é executado. Dessa forma, o servidor web pode renderizar o conteúdo do arquivo por meio do navegador.

Como funciona o Directory Traversal?

Como uma técnica maliciosa, a passagem de diretório raramente é usada como o único meio de obter acesso a informações confidenciais nos servidores das vítimas. Primeiro, os invasores precisam encontrar uma maneira de explorar uma vulnerabilidade no site de destino para encontrar uma maneira de exibir as informações solicitadas no navegador. Só então a passagem de diretório é usada para navegar pelo sistema de arquivos do servidor da vítima para alcançar diretórios restritos.

As vulnerabilidades de inclusão de arquivo são o que permite o uso de travessia de diretório. A vulnerabilidade de travessia de diretório ocorre quando um site não limpa adequadamente a entrada do usuário, como caminhos de arquivo fornecidos usando a inclusão dinâmica de arquivo. Uma combinação de vulnerabilidades de inclusão de arquivo local (LFI) e travessia de diretório permite que os hackers acessem dados fora da raiz do documento do site de destino, revelando informações confidenciais do servidor.

Um exemplo de travessia de diretório

Para obter uma melhor compreensão de como as vulnerabilidades de inclusão de arquivo local e travessia de diretório podem ser exploradas, vamos dar uma olhada no exemplo a seguir. Este exemplo é uma representação simplificada de como a travessia de diretório é usada por meio de uma falha de inclusão de arquivo.

Um desenvolvedor da web adiciona uma página da web content.php que será usada para permitir que o site carregue diferentes páginas ou componentes dinamicamente com base na solicitação do usuário. Por exemplo, se um visitante do site deseja visualizar a página “Fale conosco”, sua solicitação pode ser exibida na barra de endereços do navegador como “https://website.com/content.php?page=contact_us“.

A página content.php usaria a técnica de inclusão de arquivo local para referenciar o arquivo que corresponde ao parâmetro “contact_us”, que poderia conter o código PHP e HTML para a página “Fale Conosco” solicitada. Neste exemplo, a página da web content.php atua como um controlador, que carrega o arquivo apropriado que gera o conteúdo dinamicamente com base na entrada do usuário.

No entanto, se a entrada do usuário não for devidamente validada ou sanitizada, as vulnerabilidades de inclusão de arquivo e travessia de diretório podem ser exploradas por invasores para incluir arquivos arbitrários, que seriam então exibidos no navegador.

Por exemplo, um hacker pode passar “../../../../../var/log/apache2/access.log” como o valor do parâmetro de consulta da página – uma série de sequências de passagem de diretório seguidas por o endereço do log de acesso principal do servidor web Apache no sistema de arquivos. Dessa forma, o invasor pode visualizar o conteúdo do arquivo de log, que contém informações confidenciais, como endereços IP, strings de agente do usuário e URLs solicitados pelos visitantes do site.

Como as permissões de arquivo podem facilitar ou atenuar a travessia de diretórios

As permissões de arquivo desempenham um papel importante na garantia da segurança do servidor e do site. Ao limitar o acesso ao arquivo apenas a usuários e grupos específicos do sistema, as permissões podem ajudar a facilitar ou atenuar a travessia de diretórios.

Em um ataque de inclusão de arquivo usando travessia de diretório, o conteúdo do arquivo solicitado pelo invasor só seria exibido no navegador se suas permissões de arquivo permitissem que o sistema usando o servidor da Web o lesse. Enquanto alguns arquivos restritos, como /etc/password, têm permissões de 644, o que os torna legíveis para todos os usuários do sistema, outros arquivos permanecem acessíveis apenas para o usuário root.

O arquivo /etc/shadow, que contém senhas criptografadas para todos os usuários em um servidor Linux, tem permissões de arquivo de 640, o que o torna inacessível para qualquer usuário que não seja o root. Isso impossibilita que hackers acessem o arquivo por meio do navegador por meio de travessia de diretório.

Como detectar vulnerabilidades de travessia de diretório em seu site WordPress?

O núcleo do WordPress mantém um alto nível de segurança e está totalmente protegido contra vulnerabilidades de inclusão de arquivos e travessia de diretórios. No entanto, as altas opções de personalização que a plataforma oferece aumentam a possibilidade de essas vulnerabilidades estarem presentes em um site WordPress. Mesmo os plugins e temas WordPress mais respeitáveis ​​podem conter falhas de segurança que são descobertas regularmente.

Os relatórios semanais de vulnerabilidade do WordPress do iThemes ajudam você a identificar e corrigir rapidamente vulnerabilidades recém-divulgadas em plugins e temas do WordPress, incluindo passagem de diretório. Basta verificar os relatórios de vulnerabilidade para ver se algum ponto fraco de segurança foi encontrado recentemente nos plug-ins que você usa em seu site WordPress, bem como em seu tema ativo, e veja se um patch foi lançado.

O iThemes Security Pro pode automatizar o processo de verificação de vulnerabilidades em seu site WordPress e corrigir rapidamente as falhas identificadas em seu nome. O iThemes Security Pro realizará varredura avançada de vulnerabilidades duas vezes por dia, enviará um e-mail se alguma vulnerabilidade for detectada e instalará automaticamente uma atualização se uma correção de segurança estiver disponível.

Como se defender contra o Directory Traversal?

A exploração de vulnerabilidades encontradas em plug-ins e temas é um dos maiores vetores de ataque que os hackers usam para obter acesso não autorizado, roubar dados confidenciais e fazer upload de malware, incluindo backdoor shells, para sites WordPress. E embora seguir as práticas de codificação segura caia no escopo das responsabilidades dos desenvolvedores de plugins e temas, os proprietários de sites WordPress são responsáveis ​​por implementar medidas de proteção localmente. Somente uma abordagem multifacetada para a segurança do WordPress pode ajudar a reduzir o risco de ser vítima de ataques cibernéticos modernos e sofisticados.

Mantenha todos os softwares atualizados

Manter o núcleo do WordPress, os plug-ins ativos e o tema escolhido atualizados para a versão mais recente disponível é o primeiro passo para eliminar a travessia de diretórios e outras vulnerabilidades graves no nível do aplicativo. À medida que novas falhas de segurança são identificadas no software do seu site WordPress, é de extrema importância instalar patches de segurança assim que estiverem disponíveis. Antes que a vulnerabilidade descoberta seja abordada pelo plug-in ou desenvolvedor do tema, o software afetado pode ser desativado para reduzir a superfície de ataque.

Acompanhar as atualizações de plugins e temas pode ser uma tarefa desafiadora, mas com o iThemes Security Pro, os proprietários de sites podem ter acesso a uma solução abrangente que simplifica o processo e ajuda a garantir que os sites permaneçam atualizados e protegidos contra vulnerabilidades de segurança. O recurso Gerenciamento de versão oferece atualizações automáticas de software para proteger seu site WordPress.

Configurar permissões seguras de arquivo

As permissões seguras de arquivo do WordPress fornecem uma camada adicional de defesa contra ataques destinados a obter acesso a informações confidenciais do site e do servidor. E embora você raramente precise alterar as permissões de arquivo de arquivos críticos de configuração do sistema e outros dados restritos do servidor, a responsabilidade de configurar permissões seguras para arquivos do site geralmente recai sobre o proprietário do site.

Manter as informações críticas do WordPress, como o arquivo wp-config.php, pode ajudar a prevenir com eficácia o comprometimento entre contas por meio de links simbólicos de ataques de inclusão de arquivo que exploram vulnerabilidades de travessia de diretório. As verificações de permissões de arquivo no iThemes Security Pro ajudam os proprietários de sites a garantir que esse mecanismo crítico de segurança seja implementado corretamente em seus sites WordPress.

Implemente um firewall de aplicativo da Web

Os firewalls funcionam filtrando solicitações da web maliciosas que correspondem a padrões conhecidos ou exibem padrões anômalos antes de serem passadas para o servidor da web. Como uma primeira linha de defesa robusta contra uma vasta gama de ataques cibernéticos conduzidos por bots, como negação de serviço (Dos) e negação de serviço distribuída (DDoS) e ataques de injeção de dados, como scripts entre sites (XSS) e SQL injeções (SQLi).

A implementação de um firewall de aplicativo da web (WAF) ou uma combinação de uma solução de prevenção contra invasões baseada em host e em nuvem pode reduzir significativamente a possibilidade de uma tentativa de invasão bem-sucedida. Atuando como uma segunda camada de defesa contra vulnerabilidades de inclusão de arquivos e travessia de diretórios, os firewalls de aplicativos da Web garantem que os hackers possam explorar quaisquer falhas de segurança encontradas em versões não corrigidas de plugins e temas.

Com o IThemes Security Pro, a proteção contra força bruta e as soluções integradas de gerenciamento de bots ajudam a impedir que bots ruins e filtrem solicitações maliciosas da Web para impedir que cheguem ao seu site. Com uma adição de autenticação multifator alimentada por senhas com logins biométricos, este pacote de segurança abrangente oferece uma abordagem multifacetada para defender seu site contra vários tipos de ameaças à segurança.

Proteja seu site WordPress com o iThemes Security Pro

As vulnerabilidades de inclusão de arquivos e travessia de diretório representam uma ameaça significativa à segurança do site, pois são frequentemente exploradas por hackers que buscam obter acesso não autorizado a dados confidenciais ou executar códigos maliciosos no servidor da vítima. Usando sequências de travessia de diretório e fornecendo a um site vulnerável o caminho para determinados dados, um invasor pode induzir o servidor da Web a expor informações restritas do servidor e do site.

Apesar de ser amplamente estudado e reconhecido, a passagem de diretório continua sendo uma grande preocupação para sites WordPress que dependem de software desatualizado e carecem de medidas de segurança adequadas. A execução de atualizações oportunas do núcleo, do tema e do plug-in do WordPress, a configuração de permissões seguras de arquivos e a implementação de um firewall de aplicativo da Web podem reduzir significativamente o risco de seu site ser suscetível a ataques de inclusão de arquivos, aproveitando a travessia de diretórios.

O iThemes Security Pro pode ajudá-lo a defender seu site WordPress contra uma vasta gama de ameaças cibernéticas, oferecendo uma abordagem abrangente e multifacetada para a segurança do site. Com verificação avançada de vulnerabilidades, atualizações automáticas de software e poderosas soluções de gerenciamento de bot integradas, o iThemes Security Pro atua como seu consultor de segurança pessoal, mantendo seu site WordPress seguro e protegido o tempo todo.