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.
Autor Ilya Lopes, ESET