NOTÍCIAS

[ANONYMOUS][grids]

Biblioteca jQuery JavaScript impactada por protótipo falha de poluição

Biblioteca jQuery JavaScript  impactada por protótipo de falha de poluição

Três anos após seu último grande bug de segurança, a biblioteca jQuery JavaScript - usada em 74% de todos os sites da internet - recebeu outro patch de segurança nesta semana.
Esta atualização de segurança aborda uma vulnerabilidade rara - chamada de protótipo de poluição - que os pesquisadores de segurança estão começando a entender e descobrir em mais e mais bibliotecas JavaScript.

O QUE É PROTÓTIPO DE POLUIÇÃO?

Como o nome sugere, a poluição do protótipo refere-se à capacidade do invasor de modificar o protótipo de um objeto JavaScript.
Os objetos JavaScript são como variáveis, mas em vez de armazenar um valor ( var car = "Fiat" ), eles podem conter vários valores com base em uma estrutura predefinida ( var car = {type: "Fiat", model: "500", color: "branco"} ).
Os protótipos definem a estrutura padrão e os valores padrão de um objeto JavaScript, para que os aplicativos não travem quando nenhum valor for definido.
Um invasor que consegue alterar um protótipo de objeto JavaScript pode afetar severamente a forma como os dados são processados ​​pelo restante do aplicativo e abrir a porta para ataques mais perigosos, como falhas de aplicativo (negação de vulnerabilidades) ou seqüestros de aplicativos (falhas na execução de código). ).

POLUIÇÃO DE PROTÓTIPO, UMA AMEAÇA CRESCENTE PARA JAVASCRIPT

Ataques de protótipo de poluição não são novos e foram documentados pela primeira vez há anos. No entanto, eles só agora estão sendo completamente catalogados porque o JavaScript, como linguagem, evoluiu de manipular interações básicas da interface com o usuário para trabalhar com quantidades impressionantes de dados confidenciais como uma linguagem de programação do lado do servidor - graças ao projeto Node.js.

Assim, qualquer protótipo de ataque de poluição agora pode ter sérias conseqüências em um mundo web-dev onde quase tudo gira em torno de JavaScript de uma forma ou de outra, em aplicativos desktop, móveis, de navegador ou no lado do servidor.
No ano passado - e especialmente após a apresentação do Olivier Arteau no NorthSec 2018sobre protótipos de ataques de poluição - os pesquisadores de segurança começaram a examinar mais de perto as bibliotecas JavaScript que estavam usando e procurando por possíveis protótipos de bugs de poluição.
Esses esforços resultaram na descoberta de vários ataques de poluição protótipo em mais e mais bibliotecas JavaScript, como Mongoose , lodash.merge , node.extend , deep-extend e HAPI - algumas delas extremamente populares para aplicativos do lado do servidor JavaScript .

POLUIÇÃO DE PROTÓTIPO EM JQUERY

Essa conversa constante sobre protótipos de ataques de poluição também chamou a atenção da Snyk, uma empresa que fornece tecnologia de escaneamento de código-fonte, e cujos pesquisadores estavam interessados ​​em documentar esse novo vetor de ataque; Liran Tal, pesquisador de segurança da Snyk, disse em uma entrevista no início desta semana.
Sua análise de protótipos de ataques de poluição resultou na descoberta de uma falha semelhante que afeta o jQuery, uma biblioteca JavaScript tão onipresente e arraigada no trabalho de desenvolvimento da Web que é usada em 97% de todos os sites que usam pelo menos uma biblioteca JavaScript.
Dizer que o jQuery é popular entre os desenvolvedores de JavaScript é o equivalente a dizer que "a água está molhada", o que significa que qualquer protótipo de falha de poluição descoberto nessa biblioteca automaticamente abre as portas para ataques a centenas de milhões de sites.
Em um relatório publicado na semana passada, Tal e a equipe do Snyk descreveram e divulgaram o código de prova de conceito para um protótipo de ataque à poluição (CVE-2019-11358) que afeta o jQuery. Para mostrar como essa vulnerabilidade é perigosa, eles mostraram como um protótipo de falha de poluição pode permitir que invasores atribuam a si mesmos direitos de administrador em um aplicativo da Web que use o código jQuery para seu frontend.

NÃO É FÁCIL EXPLORAR

Mas a boa notícia é que os ataques de poluição de protótipo não são exploráveis ​​em massa, já que cada código de exploração deve ser ajustado para cada alvo, individualmente. As falhas de protótipo de poluição exigem que os invasores tenham um conhecimento profundo de como cada site funciona com seus protótipos de objetos e como esses protótipos são fatorados no grande esquema das coisas.
Além disso, alguns sites não usam o jQuery para operações de levantamento de peso, mas apenas para animar alguns menus e mostrar alguns pop-ups, aqui e ali.
"Encontrar versões da vulnerabilidade do jQuery para este exploit não é uma tarefa difícil, mas seria mais difícil automatizar uma exploração real de código personalizado que faz uso da API vulnerável do jQuery em relação ao protótipo de poluição", disse Tal.
Além disso, aplicativos e sites que dependem de código-fonte fechado também são salvaguardados contra alguns ataques, disse Tal.
"A exploração do código-fonte fechado do lado do servidor, que não é fácil de acessar para investigação, exige uma boa pesquisa para descobrir como poluir um escopo de objeto global afetaria um aplicativo, se a poluição do protótipo é aplicável em todos os casos, "o pesquisador disse.
No entanto, nos casos em que o jQuery é usado para operações mais complexas, como construir front-ends completos ou interagir com sistemas do lado do servidor, os ataques de protótipo de poluição podem permitir que hackers entrem em sistemas considerados seguros - um bug ideal para ataques direcionados a alto valor websites.

UMA ENORME SUPERFÍCIE DE ATAQUE

Tal, que trabalhou com a equipe do Node.js para relatar o bug para a equipe do jQuery, recomenda que os desenvolvedores da Web atualizem seus projetos para a última versão do jQuery, v3.4.0 .
Hoje, a maioria dos sites ainda usa as ramificações 1.xe 2.x da biblioteca jQuery, o que significa que a grande maioria dos aplicativos e sites baseados em jQuery ainda está aberta a ataques.

jQuery versões

Levando em conta que há alguma quebra de sintaxe entre as três versões principais e que os desenvolvedores da Web preferem jogar ácido em sua face do que reescrever seus frontends, a maioria dos sites deve continuar a usar versões mais antigas no futuro previsível.
Felizmente, o patch foi enviado para versões anteriores.

MAIS PROTÓTIPOS DE ATAQUES DE POLUIÇÃO POR VIR

Enquanto isso, o trabalho para encontrar e documentar mais protótipos de ataques de poluição continua em Snyk.
A empresa disse que já está ciente de mais de 20 protótipos de ataques de poluição, "abrangendo navegadores e ecossistemas do Node.js", e espera ver mais.