Por que copiar comandos da web diretamente para o terminal não é uma boa ideia
"Hack óbvio, porém surpreendente" usando JavaScript foi demonstrado por tecnólogo em uma Prova de ConceitoBy - Liliane Nakagawa, 4 janeiro 2022 às 21:05
Utilizar o ‘copy-paste’ para copiar comandos de uma página da web pode tornar tarefas de programadores, administradores de sistemas, pesquisadores de segurança e entusiastas da tecnologia mais fáceis e rápidas. Entretanto, a conveniência leva ao risco de ter o sistema comprometido.
Um backdoor no clipboard pode explicar o que o fundador da plataforma de treinamento de conscientização de segurança Wizer, Gabriel Friedlander, demonstrou e o que chamou de “hack óbvio, porém surpreendente e o qual fará você ter cuidado ao copiar e colar comandos de páginas da web”.
Friedlander adverte que uma página web pode substituir secretamente o conteúdo salvo no clipboard, ou seja, o conteúdo copiado é muito diferente do que se pretendia copiar.
Muitos podem sugerir que copiar comandos da web e colá-los diretamente no terminal pode ser um erro de novato, porém até profissionais experientes cometem o deslize. Pior, sem devida diligência, o desenvolvedor pode perceber o erro só depois que colar o texto, o que pode ser tarde demais.
No blog, o tecnólogo publicou uma simples Prova de Conceito (PoC), pedindo aos leitores que que copiem um simples comando que a maioria dos administradores de sistemas e desenvolvedores estariam familiarizados:
Em seguida, cole o conteúdo em uma caixa de texto ou bloco de notas:
Provavelmente tenha notado alguma surpresa no código colado acima: um comando completamente diferente foi salvo no clipboard. Para piorar, repare que ele tem um novo caractere de linha (ou retorno) no fim. Isso significa que o exemplo seria executado assim que colado no terminal Linux.
O comando “sudo apt update” tão familiar e inócuo, usado para obter dados informações sobre softwares instados no sistema, cumpre um papel apenas aparente.
Magia no código JavaScript (mas não só)
Isso acontece porque há um código JavaScript escondido na configuração da página HTML do PoC. Assim que o texto “sudo apt update” contido em um elemento HTML é copiado, o trecho do código é executado.
O que acontece depois é um ‘event listenener‘ de JavaScript, que captura o evento da cópia e substitui os dados da área de transferência pelo código de teste malicioso de Friedlander:
“É por isso que você NUNCA deve copiar comandos de colar diretamente em seu terminal”, adverte Friedlander. “Você pensa que está copiando uma coisa, mas ela é substituída por outra, como código malicioso. Basta uma única linha de código injetada no código que você copiou para criar um backdoor para seu aplicativo. Este ataque é muito simples, mas também muito prejudicial”.
Um exemplo alternativo à demonstração feita por Friedlander foi construído por um usuário do Reddit. Desta vez, sem requerer JavaScript.
Um texto invisível feito em HTML e CSS é salvo na área de transferência quando se copia as partes visíveis do texto. “O problema não é apenas que o site pode mudar o conteúdo do seu clipboard usando Javascript. Ele também pode só esconder comandos no HTML que são invisíveis ao olho humano, mas que serão copiados pelo computador”, explica SwallowYourDreams.
De acordo com a postagem dele, “a maneira de mitigar isso é óbvia: nunca execute apenas os comandos de outras pessoas postados em algum website. Se você tiver que copiar, copie sempre para um editor de texto simples e compare com o site se “o que você vê é realmente o que você tem”.
Via BleepingComputer
Comentários