O que é um ataque de inclusão de arquivo?

Publicados: 2023-03-31

Qualquer ferramenta pode ser usada com boas ou más intenções, e a inclusão de arquivos não é diferente. A inclusão de arquivos é um método de programação que facilita a manutenção do código e a extensão das funções em um site. Um ataque de inclusão de arquivo abusa da maneira como o PHP usa a inclusão de arquivo como um método válido de união e execução de código de muitos arquivos separados para criar uma única página da web. Como o PHP é uma linguagem que o WordPress usa, o WordPress e outros aplicativos PHP são propensos a vulnerabilidades de inclusão de arquivos quando as medidas de segurança apropriadas são quebradas, incompletas ou ausentes.

Neste guia completo sobre ataques de inclusão de arquivos, exploraremos as maneiras pelas quais os hackers exploram a sanitização e validação inadequadas de entrada do usuário para injetar malware e enviar instruções incorretas para invadir sites WordPress.

Você aprenderá como os ataques de inclusão de arquivos do WordPress acontecem e o que você pode fazer para proteger seu site de ser vítima deles.

Ataque de inclusão de arquivo

O que é inclusão de arquivo?

A inclusão de arquivo é uma técnica de desenvolvimento para incluir muitos arquivos em um script ou página da Web para adicionar funcionalidade, reutilizar um modelo de design ou compartilhar um conteúdo em várias páginas.

As inclusões de arquivos são absolutamente necessárias. Os desenvolvedores geralmente os usam para os seguintes propósitos:

  • Incluindo arquivos de cabeçalho e rodapé comuns a todas as páginas de um site para garantir consistência no design e na função.
  • Incluindo scripts e bibliotecas para funcionalidade chave em um site ou aplicativo da web.
  • Incluindo arquivos de configuração contendo configurações para o aplicativo, como informações de conexão de banco de dados e chaves de API.
  • Incluindo conteúdo como imagens, vídeo, texto ou outro conteúdo em páginas da web.
  • Inclui funcionalidade para gerar conteúdo dinâmico com base na entrada do usuário passada como um parâmetro de URL. Por exemplo, um usuário pode enviar um formulário para gerar determinada saída.

Tipos de inclusão de arquivo

Usando a técnica de inclusão de arquivo, os desenvolvedores podem adicionar arquivos e scripts a uma página da Web de forma estática ou dinâmica.

Usando a inclusão de arquivo estático, um desenvolvedor pode reutilizar o mesmo texto ou código em várias páginas, referindo-se a um localizador uniforme de recursos (URL) ou a um caminho para um arquivo armazenado localmente, ou seja, no mesmo servidor. As inclusões de arquivos estáticos permitem que os temas usem o mesmo código de cabeçalho, rodapé ou menu de navegação em muitas páginas da web.

As inclusões dinâmicas de arquivos aceitam a entrada do usuário em tempo de execução. O usuário indica a saída desejada passando o caminho para um arquivo específico. Normalmente, a entrada do usuário será passada como um parâmetro em uma URL ou um envio de formulário. Por exemplo, um usuário pode selecionar “Inglês” em uma lista suspensa de seleção de idiomas, que o leva a uma versão em inglês da página em que está, alterando a URL como esta: /page.php?language=english . Se alguém substituir " english " pelo URL de um arquivo remoto, poderá injetar um shell da Web como um backdoor e/ou outro malware no site de destino, se não houver verificações para evitar isso.

Como a inclusão de arquivos é implementada no WordPress?

Todos os aplicativos da Web dinâmicos escritos em PHP — como o WordPress — podem usar a inclusão de arquivos com segurança. Em aplicativos escritos em PHP, os desenvolvedores executam a inclusão de arquivo usando as instruções include e require . Os desenvolvedores usam ambas as instruções para inserir o conteúdo de um script PHP em outro. Isso acontece antes que o código seja executado no servidor.

Se você observar alguns dos arquivos principais do WordPress, muitos deles se referem a outros scripts principais. Quando todos são carregados juntos, eles constroem a estrutura do seu site e geram as páginas da Web individuais solicitadas por um visitante. O index.php principal faz referência wp-blog-header.php , que carrega o ambiente WordPress e o modelo de tema — wp-load.php e template-loader.php , respectivamente.

O arquivo index.php do WordPress usa inclusão de arquivo.

Juntamente com o núcleo do WordPress, os plugins e temas também usam a inclusão de arquivos para executar as tarefas necessárias. No entanto, com dezenas de milhares de plugins do WordPress disponíveis, nem todos eles são tão bem testados quanto o núcleo do WordPress.

As inclusões de arquivos apresentam sérios riscos de segurança quando os desenvolvedores não os protegem adequadamente. Se o código que você está usando não valida e limpa a entrada do usuário, os hackers podem explorá-lo. Eles podem usá-lo para instalar malware e roubar informações confidenciais — possivelmente suas ou de seus clientes!

O que é um ataque de inclusão de arquivo?

Dois tipos de ataques de inclusão de arquivo são possíveis: inclusão de arquivo local (LFI) ou inclusão de arquivo remoto (RFI).

Os ataques de inclusão de arquivos fazem parte da classe mais ampla de ataques de injeção . Isso inclui injeções de SQL (SQLi), script entre sites (XSS) e ataques de inclusão de comando. Os hackers podem explorar vulnerabilidades de entrada para fazer outros tipos de ataques, como ataques de estouro de buffer.

Ataques de inclusão de arquivos locais e remotos

Sites e aplicativos da Web que dependem de inclusões dinâmicas de arquivos para habilitar determinados recursos podem ser expostos a ataques de inclusão de arquivos remotos e ataques de inclusão de arquivos locais.

Inclusões de arquivos locais (LFI)

Um ataque de inclusão de arquivo local pode injetar um arquivo localizado no mesmo servidor que o site ou aplicativo da web visado. Os ataques LFI geralmente podem obter acesso a arquivos normalmente restritos. Em um ataque LFI, o arquivo incluído já deve estar presente no servidor de aplicativos local que está sendo alvo. Em um ataque LFI, um malfeitor pode ler arquivos importantes, acessar informações mais confidenciais ou executar comandos arbitrários.

Os ataques de inclusão de arquivos locais também podem permitir que alguém acesse dados confidenciais fora do site de destino. Isso inclui arquivos de configuração do servidor, como /etc/passwd ou arquivos de configuração de outro site, como wp-config.php . É importante observar, no entanto, que os arquivos de destino precisam ser legíveis para usuários sem privilégios - por exemplo, o arquivo /etc/passwd em sistemas Linux é propriedade do root, mas com suas permissões de arquivo definidas como 644, todos os outros usuários do sistema pode visualizá-lo.

Para navegar pelo sistema de arquivos, os invasores empregam a travessia do diretório, uma técnica para acessar arquivos fora do diretório de trabalho atual, manipulando as sequências de travessia do caminho do diretório, como ../../../ .

Inclusões de arquivos remotos (RFI)

Os ataques de inclusão remota de arquivos têm como alvo sites e aplicativos que acessam arquivos hospedados em outro servidor. Ao explorar a inclusão remota de arquivos, um invasor pode usar códigos maliciosos hospedados em outro lugar. Deve existir uma vulnerabilidade no servidor de destino, mas o invasor a usará para executar código malicioso hospedado em outro lugar.

Nos ataques de inclusão remota de arquivos, os hackers aproveitam o comando “inclusão de arquivo dinâmico” em aplicativos da web. Os hackers podem explorar aplicativos da web que aceitam entrada do usuário, como URLs e valores de parâmetros, e passá-los para os mecanismos de “inclusão de arquivo” sem a devida sanitização. Nesse tipo de vulnerabilidade, os invasores podem explorar o aplicativo da Web para incluir arquivos remotos com scripts maliciosos.

Por que os ataques de inclusão de arquivos do WordPress ocorrem?

Os sites do WordPress representam 43% da Internet, portanto, são um grande alvo para os invasores. Nosso Relatório Anual de Vulnerabilidades do WordPress de 2022 mostra que mais de 90% de todas as vulnerabilidades do WordPress descobertas no ano passado estavam em plugins e temas. Normalmente, vimos pelo menos uma nova falha de segurança relatada semanalmente em 20 a 50 plugins.

Recentemente, pesquisadores de segurança descobriram uma vulnerabilidade de inclusão de arquivo no popular tema OceanWP. OceanWP tem mais de meio milhão de usuários ativos. (Relatamos isso em nosso relatório semanal de vulnerabilidade do WordPress.) Embora o OceanWP tenha corrigido rapidamente a vulnerabilidade, os hackers tiveram tempo de explorá-la enquanto milhões de sites WordPress ainda usavam o código desatualizado.

Receba o relatório semanal de vulnerabilidades do WordPress em sua caixa de entrada todas as quartas-feiras.
Inscreva-se agora

Como detectar um ataque de inclusão de arquivo do WordPress

Ao contrário dos ataques de negação de serviço que podem desacelerar significativamente seu site ou redirecionamentos maliciosos que afastam as pessoas de seu site para recursos fraudulentos, os ataques de inclusão de arquivos são difíceis de detectar. A razão para isso é simples. Os hackers usam a inclusão de arquivos como um ponto de entrada para carregar malware e realizar outros ataques. A inclusão do arquivo é um caminho tranquilo para os danos mais visíveis. Portanto, quando um hacker injeta um código malicioso em um site ou acessa informações confidenciais, há uma grande chance de você dificilmente perceber.

Isso nos leva a uma importante conclusão. A segurança do site deve começar tornando a superfície de ataque pequena e fortalecendo-a. Isso ajudará a impedir que os hackers explorem as vulnerabilidades de entrada originadas pelos ataques de injeção, como ataques de inclusão de arquivos, SQL e injeções de comandos e scripts entre sites (XSS).

Como se defender contra ataques de inclusão de arquivos do WordPress?

Com o crescente número de ataques cibernéticos direcionados ao WordPress, a segurança do site WordPress é mais importante do que nunca. A defesa contra ataques de inclusão de arquivos do WordPress requer uma abordagem multifacetada que limita a possibilidade de explorar vulnerabilidades de entrada e execução de código arbitrário. Você pode fazer isso se adotar uma combinação de medidas de segurança proativas e reativas.

Aqui estão as três principais recomendações de segurança do WordPress para proteger seu site contra ataques de inclusão de arquivos.

Mantenha todos os softwares atualizados

Manter todo o seu software atualizado – incluindo núcleo do WordPress, temas, plug-ins e extensões – é fundamental quando se trata de reduzir a superfície de ataque do seu site. À medida que novas vulnerabilidades surgem todos os dias, não dê aos hackers a chance de explorá-las. Instale patches de segurança e faça atualizações assim que estiverem disponíveis.

Adquira o hábito de fazer atualizações regulares você mesmo ou ative as atualizações automáticas para garantir que seu site nunca execute nenhum código vulnerável. O iThemes Security Pro pode cuidar do núcleo do WordPress, plugins e atualizações de temas para você.

O iThemes Security Pro verifica automaticamente novas versões do software que seu site está usando. Seu sistema de Gerenciamento de Versões garante que você tenha todos os patches e atualizações de segurança instalados assim que estiverem disponíveis. Além disso, o iThemes também irá alertá-lo se você estiver executando algum software desatualizado em sua infraestrutura de servidor. Por exemplo, se você estiver usando uma versão do PHP após sua data de fim de vida ou um servidor MySQL vulnerável, o iThemes Pro irá avisá-lo.

Se você tiver vários sites WordPress sob seu controle, o iThemes Sync Pro oferece uma única interface para gerenciar todos eles. O Sync também oferece monitoramento avançado de tempo de atividade e feedback de SEO.

Desativar a inclusão remota de arquivos no PHP

É possível que um site faça referência a arquivos remotos de uma URL externa se a opção allow_url_fopen estiver habilitada no ambiente PHP. Isso pode aumentar o risco de ataques de inclusão de arquivo remoto. Desativar allow_url_fopen efetivamente elimina a possibilidade de alguém executar um código malicioso carregado de um local remoto em seu site WordPress.

Você pode desativar allow_url_fopen na configuração global do PHP ou definindo allow_url_fopen como 0 em um arquivo .user.ini ou php.ini local criado para uma pasta da web individual. Você pode verificar se a opção está desativada em seu ambiente PHP criando uma página de informações PHP simples usando a função phpinfo() , conforme mostrado abaixo.

Você pode bloquear um ataque de inclusão de arquivo desativando allow_furl_open nas configurações do seu ambiente PHP.

Implemente cabeçalhos de segurança do WordPress

Cabeçalhos de resposta HTTP, como Content Security Policy (CSP) e Set-Cookie, podem adicionar uma camada de defesa contra a inclusão de arquivos e outros ataques de injeção ao seu site WordPress.

Os cabeçalhos de segurança do WordPress permitem reduzir ou bloquear os vetores pelos quais os ataques de inclusão remota de arquivos e scripts entre sites (XSS) podem ocorrer, criando uma lista de fontes confiáveis, scripts e outros conteúdos que podem ser carregados. Todas as outras fontes serão negadas. Além disso, os cabeçalhos de resposta HTTP podem ajudá-lo a adicionar proteção contra falsificação de solicitação entre sites (CSRF) e clickjacking.

Proteja seu site WordPress contra ataques de injeção com o iThemes Security Pro

Juntamente com SQL e injeções de comando, os ataques de inclusão de arquivos são os vetores de ataque mais comuns direcionados à segurança dos sites WordPress. Embora o WordPress demonstre um alto nível de segurança de aplicativos, sites altamente personalizados combinados com práticas de segurança insatisfatórias podem expor um site WordPress a ataques de injeção que exploram vulnerabilidades de entrada.

Todos os dias, novas vulnerabilidades são encontradas na crescente população de plugins e temas do WordPress. E embora eles geralmente sejam corrigidos rapidamente, a falta de atualizações oportunas e a dependência de software antigo podem tornar seu site WordPress um alvo fácil para hackers. Hoje, a segurança do site é mais crítica do que nunca. O número crescente de ataques cibernéticos significa que mesmo os proprietários de sites mais vigilantes podem ser vítimas de hackers se não tomarem medidas proativas para proteger seus sites.

O iThemes Security Pro é uma poderosa solução de segurança do WordPress que permite adotar as melhores práticas de segurança do WordPress para proteger seu site contra os ataques cibernéticos mais sofisticados. Com monitoramento avançado de integridade de arquivos, verificação de vulnerabilidades e mitigação automática de ataques, o iThemes Security Pro é uma excelente escolha se você estiver procurando por uma maneira eficaz e confiável de proteger seu site WordPress.