Ataque a jQuery e o JavaScript como “faca de dois gumes”

Ataque a jQuery e o JavaScript como “faca de dois gumes”

Quase sempre que ouvimos falar de ataques e/ou vulnerabilidades web, o termo “JavaScript” é mencionado. Nesse post, vamos explicar o que é e por que essa linguagem de programação é útil e ao mesmo tempo perigosa, levando em consideração um recente ataque a biblioteca jQuery que explorou essa linguagem. Páginas web estáticas e dinâmicas Os

Quase sempre que ouvimos falar de ataques e/ou vulnerabilidades web, o termo “JavaScript” é mencionado. Nesse post, vamos explicar o que é e por que essa linguagem de programação é útil e ao mesmo tempo perigosa, levando em consideração um recente ataque a biblioteca jQuery que explorou essa linguagem. Páginas web estáticas e dinâmicas Os

javascript_arma-623x432

Quase sempre que ouvimos falar de ataques e/ou vulnerabilidades web, o termo “JavaScript” é mencionado. Nesse post, vamos explicar o que é e por que essa linguagem de programação é útil e ao mesmo tempo perigosa, levando em consideração um recente ataque a biblioteca jQuery que explorou essa linguagem.

Páginas web estáticas e dinâmicas

Os sites que visitamos podem ser estáticos ou dinâmicos. Os sites estáticos são mais simples e econômicos, já que normalmente são utilizados para descrever conteúdo que visualizamos na maioria dos sites, como “Quem somos” ou “Sobre”. Em outras palavras, não permitem efeitos ou a presença de aplicativos.

Por outro lado, os sites dinâmicos (web 2.0) são mais complexos, já que permitem a interação do usuário com a página. O administrador da página pode ver, em tempo real, os resultados de pesquisas feitas nesse site, utilizar um console que permite fazer mudanças e monitorar interações de usuários com o site e até interagir com os visitantes do site de várias outras maneiras.

JavaScript, ferramenta útil para o usuário – e também para o cibercriminoso

JavaScript é uma linguagem de programação que foi desenvolvida justamente para fazer com que páginas estáticas tenham “comportamento dinâmico”. Essa linguagem permite a execução de códigos de forma direta e automática, graças à sua interação com o browser utilizado para visitar a página. Dessa forma, a estrutura da página sofre alterações, mesmo programada em HTML (o que a classificaria como “estática”).

Embora essa forma de executar códigos possa ser mais atraente para o site e para o usuário por questões de velocidade, custos e a possibilidade de pular passos que muitas vezes são “chatos” – como ter que permitir ou negar a execução do ActiveX. O problema é que, para um atacante, o JavaScript é ideal para fazer exatamente o que acabamos de citar como algo bom: evadir medidas de segurança com o pretexto de estar fazendo algo positivo.

Outra vantagem que os cibercriminosos tem com a utilização do JavaScript é que seus códigos podem explorar muitos vetores ao mesmo tempo, dependendo do browser utilizado e sua interação com a página web. Em outras palavras, não é necessário propagar o código a vários sites; estando presente em um site que recebe muitas visitas, o atacante pode atacar muitas vítimas e roubar nomes de usuários e senhas, informação financeira, etc.

Recentemente foi descoberto um novo ataque que utilizava JavaScript para redirecionar usuários de uma conhecida biblioteca – de JavaScripts!! Vejamos o que aconteceu.

O ataque a jQuery

jQuery é uma das bibliotecas cross-browser de JavaScript mais conhecidas, programadores utilizam sua Interface de Programação para desenvolver scripts para diversos browsers de forma simplificada. Normalmente é usada por desenvolvedores de sites web para dinamizar suas páginas HTML, já que muitos templates (planilhas) estão disponíveis para essa função.

O site RiskIQ reportou um ataque que redirecionava os visitantes de jQuery a um exploit kit conhecido como RIG. Esse exploit é utilizado por atacantes para fazer com que sites legítimos infectem usuários com malware sem que eles percebam.

Jquery admitiu que houve um ataque no dia 18 de setembro, e que o site esteve fora do ar para a busca e eliminação de ameaças. Porém o site também afirma que, até o momento, não houveram notícias de malware distribuído através de seu site. Um detalhe relevante e importante é que jQuery não utiliza o protocolo HTTPS, e portanto a informação trabalhada pelo site não é criptografada.

Tendo em conta que 30% de todos os sites web utilizam essa interface open-source, incluindo 70% dos 10.000 sites mais visitados no mundo, é possível entender a magnitude do ataque e a obrigação de mencioná-lo. Por outro lado, esse exemplo também serve para entender como os criminosos se aproveitam da popularidade dos JavaScripts para infectar as vítimas.

Os casos de ataques a softwares open-source como esse e outros que tiveram destaque, como o Heartbleed, a vulnerabilidade no protocolo OpenSSL que expôs mais de 60% de todos os sites ativos na Internet naquela época, ilustram a necessidade de priorizar a segurança antes de publicar essas ferramentas.

Na realidade digital atual, compartilhar informação e distribuir ferramentas a terceiros, mesmo de forma gratuita, é algo que deveria ser feito responsavelmente, utilizando as tecnologias existentes para evitar infecções massivas, porém facilmente evitáveis.

 

Imagem: ©scott feldstein/Flickr

Autor Ilya Lopes, ESET

Discussão