WordPress: Vulnerabilidade Cross Site Scripting (XSS)

Foi recentemente descoberta uma nova vulnerabilidade no CMS WordPress. Múltiplos plugins do WordPress são vulneráveis a Cross Site Scripting (XSS), devido à má utilização das funções add_query_arg() e remove_query_arg(). Trata-se de funções populares utilizadas pelos programadores para modificar e adicionar query strings para URLs no interior do WordPress.


12403880

 

 

Do que se trata esta vulnerabilidade?

A Documentação Oficial do WordPress (Codex) para estas funções não é muito clara e enganou muitos programadores de plugins para utiliza-las de forma insegura. Os programadores assumiram que estas funções permitiam ao utilizador escapar a entrada de dados para elas, quando isso não acontece. Este detalhe simples causou que muitos dos plugins mais populares ficassem vulneráveis ao XSS.

xss-attacksCross-site scripting (XSS) trata-se de um tipo de vulnerabilidade do sistema de segurança, que se pode encontrar normalmente em aplicações web. Permite a ativação de ataques maliciosos ao injetar client-side script dentro das páginas web visualizadas por outros utilizadores. Os atacantes podem utilizar um script de exploração de vulnerabilidade cross-site para escapar aos controlos de acesso que utilizam a mesma política de origem.

Através de um ataque do tipo XSS, o atacante injeta códigos Javascript num campo de texto de uma página web já existente, e este Javascript é apresentado a outros visitantes, pelo facto de persistir na página.

Exemplo de ataque XSS: Imaginem que o atacante insere num fórum de um website alvo de ataque, um texto que contem código em Javascript. Este Javascript poderia, simular a página de login do website, capturar os dados de acesso e enviá-los para um repositório que os armazene. Quando o texto do fórum for apresentado a outros visitantes, um website atacado pelo XSS exibirá o referido código em Javascript digitado anteriormente nos browsers de todos os outros visitantes, provocando uma ponte para o ataque.

O invasor envia um script para o servidor: malicious.js… = SYN onde o servidor recebe o script e interpreta uma nova página inserindo o código como resposta da requisição ao atacante = SYN/ACK. Por fim, o atacante recebe a resposta em seu browser = ACK .

PTMFOG0000001531

 

Lista de plugins afetados:

Até ao momento foram descobertas vulnerabilidades XSS nos seguintes plugins do WordPress:

  • Jetpack
  • WordPress SEO
  • Google Analytics by Yoast
  • All In one SEO
  • Gravity Forms
  • Multiple Plugins from Easy Digital Downloads
  • UpdraftPlus
  • WPECommerce
  • WPTouch

Existem provavelmente mais alguns plugins adicionais alvos da vulnerabilidade XSS que não estão listados.

 

Quais foram as medidas implementadas?

Este problema foi identificado pela primeira vez por Joost, o fundador da empresa Yoast num dos seus plugins.

A Yoast em conjunto com a empresa Sucuri, investigaram o problema e descobriram que provavelmente o problema está presente em mais plugins do que pensavam inicialmente. Em conjunto com alguns amigos verificaram nos últimos dias o repositório da WordPress, numa tentativa de encontrar e alertar o maior número possível de programadores de plugins de forma a advertir e ajudá-los a corrigir o problema.

2146.image_thumb_1F1803BD

Embora esta vulnerabilidade tenha sido inicialmente descoberta na semana passada, derivado aos diferentes graus de gravidade e, mais importante, o elevado volume de plugins afetados, foi coordenado um lançamento de segurança conjunta com todos os programadores envolvidos e com a equipe de segurança do núcleo WordPress. Segundo a empresa Sucuri, foi um excelente trabalho de equipa, e uma experiência agradável de ver tantos programadores unidos e trabalhando juntos para o bem comum.

É possível avançar que felizmente todos os plugins foram corrigidos, e atualmente as atualizações deveram estar disponíveis para todos os utilizadores.

Se tiver ativo as atualizações automáticas, o seu website já deve estar corrigido, especialmente nos casos mais graves.

Anti-XSS-attack

O que fazer para evitar esta vulnerabilidade?

Se você utilizar um destes plugins no seu website WordPress, certifique-se que os atualiza agora! Dirija ao dashboard wp-admin e atualize todos os plugins desatualizados.

Caso tenha ativado as atualizações automáticas do WordPress, o seu website já deve estar corrigido, principalmente nos casos com maior gravidade.

A investigação pelas empresas de segurança online irá prosseguir com o objetivo de localizar mais plugins vulneráveis. Neste sentido, esteja atento aos updates das novas versões dos plugins assim que estiverem disponíveis.

A PTWS fornece o serviço WS Security One que permite a diminuição de incidentes em websites através de monitorização, report e scans automáticos, removendo a infeção com Malware, e da lista negra, e repondo a segurança do seu website.

O plano WS Security One da PTWS inclui a remoção de:

  • Cross Site Scripting (XSS)
  • Obfuscated Javascrip Injections
  • Hidden & Malicious iFrames
  • Embebbed Trojans
  • Phishing Attempts
  • Malicious Redirects
  • Backdoors (ex. C99, R57, Webshells)
  • Stupid, Pointless, Annoying Messages (SPAM)
  • Defacement
  • Anomalies
  • SQL Injection
  • IP Cloaking
  • Social Engineering Attempts
  • Drive-by-Downloads

 

Não consigo visualizar o pedido de update… o que fazer?

Se não conseguir visualizar o pedido de atualização, navegue para a página web wpadmin/updatecore.php no Dashboard → Atualizações. Irá limpar a cache para todas as atualizações e deverá mostrar as atualizações para os plugins.

Indo para esta página também irá certificar-se também que todas as atualizações automáticas são efetuadas alguns segundos mais tarde. Certifique-se de verificar a sua página de plugins após um minuto para ver se todos os plugins necessários ainda estão ativos.

 

A vulnerabilidade está contida?

A equipa analisou somente os principais 300/400 plugins, um número bastante distante da totalidade de plugins existentes no universo WordPress.

Neste sentido, existem provavelmente plugins com a vulnerabilidade XSS. Se é programador, verifique o seu código de forma a verificar a utilização das seguintes duas funções:

  • add_query_arg
  • remove_query_arg

Certifique-se de que está utilizando funções de escape antes de as utilizar. É recomendado a utilização das seguintes funções em conjunto com as funções referidas anteriormente:

  • esc_url()
  • esc_url_raw()

Principalmente, o programador não deve presumir que add_query_arg e remove_query_arg vai escapar a introdução de dados do utilizador. A equipa da WordPress fornece mais orientações sobre a sua forma de utilização. Pode consultar mais informações aqui.

Lembramos que todos os softwares originam bugs, e alguns desses bugs conduzem inevitavelmente a vulnerabilidades de segurança. Tal é a vida que vivemos.

Este facto aplica-se a plugins, temas, servidores web, CMS’s, e basicamente qualquer coisa que é escrita por pessoas e com base em código. Por mais que os programadores tentem minimizar e implementar princípios de codificação seguros, os erros iram inevitavelmente acontecer.

Para prevenir, e tal como acontece com a vulnerabilidade reportada neste artigo, é aconselhado a todos os webmasters a realização das atualizações do CMS e dos plugins assim que disponíveis e o mais rapidamente possível.

internet-crime-and-web-security

 

O que posso fazer para reduzir o risco global de ameaças?

Deixamos algumas dicas e truques para ajudar a reduzir o risco global de ameaças, ajudando a melhorar a sua postura de segurança individual:

  • Patch: Mantenha os plugins dos seus websites atualizados.
  • Restrição: Controle de acesso restritivo.

     

     

    • Restrinja o diretório wp-admin para apenas endereços IP listados na white list.
    • Atribua acesso de administrador para usuários que realmente necessitam
    • Não efetue login como admin a menos que esteja a efetuar realmente trabalho administrativo.
  • Estes são alguns exemplos de políticas restritivas de controlo de acesso que podem minimizar o impacto das vulnerabilidades em seu website.
  • Monitorar: Monitorize os logs do seu website. Eles podem dar pistas para o que está a acontecer no seu website.
  • Reduza o âmbito de aplicação: Utilize apenas plugins (ou temas) que o seu website realmente necessita para funcionar.
  • Detectar: A prevenção pode falhar, e por isso recomendamos o serviço WS Security One que permite a limpeza do Malware, Spam e Pishing, monitorização integrada do website, alerta via e-mail e twitter, scan manual do website, e remoção da blacklist. Pode consultar mais informações no website da PTWS

     

     

  • Defesa em Profundidade: Se você tem um Intrusion Prevention System (IPS) ou uma Web Application Firewall (WAF), estas ferramentas podem ajudar a bloquear as formas mais comuns de exploits de XSS.
  • Estes princípios são geralmente aplicados a maioria das redes seguras (ou em qualquer negócio que precisa ser compatível com PCI), mas muitos proprietários de website não pensam nestas medidas para o seu próprio website / ambiente.
Sobre o Autor
Author Image
Pode deixar um comentário, ou responder no seu blog.

Deixe a sua opinião