Cientistas da Universidade de Cambridge, Ross Anderson e Nicholas Boucher, publicaram informações sobre o conceito de ataque Trojan Source (CVE-2021-42574), que pode ser usado para injetar código malicioso em aplicativos legítimos por meio de campos de comentários. A exploração PoC já está disponível em GitHub.
O ataque é baseado no uso de caracteres de controle bidirecionais em comentários do código-fonte. Tais personagens, conhecido como BiDi (“bidirecional”), são caracteres de controle Unicode usados em uma sequência de texto para sinalizar a transição de LTR (da esquerda para direita) para RTL (direita para esquerda) modo e vice-versa.
Na prática, esses caracteres são usados exclusivamente para aplicativos de software e são invisíveis para os humanos, uma vez que são usados apenas para incorporar texto com uma direção de leitura diferente em grandes blocos de texto (por exemplo, para inserir linhas em árabe ou hebraico).
Os pesquisadores descobriram que a maioria dos compiladores e editores de código não possuem protocolos para lidar com símbolos BiDi ou sinalizar sua presença nos comentários de origem..
De acordo com os especialistas, os invasores podem inserir caracteres de controle BiDi em comentários que as pessoas não podem ver, e após a compilação, eles moverão o texto do campo de comentários para o código executável ou moverão o código nos comentários, expondo assim os aplicativos a ataques e ignorando as verificações de segurança.
Além dos compiladores, vários editores de código e serviços de hospedagem, conforme listado na tabela abaixo, também são relatados como afetados.
Além disso, de acordo com os especialistas, compiladores de código-fonte são vulneráveis a outro problema (CVE-2021-42694) relacionado a homóglifos. Durante tais ataques, letras latinas clássicas são substituídas por caracteres semelhantes de outros alfabetos.
Os pesquisadores escrevem que o segundo ataque pode ser usado para criar duas funções diferentes que parecem iguais ao olho humano, mas na verdade são diferentes.. Anderson e Boucher afirmam que desta forma, um invasor pode adicionar secretamente código malicioso a um projeto.
Os pesquisadores resumem que compiladores e editores devem detectar caracteres de controle bidirecionais e homóglifos e comunicá-los às pessoas.. Até aqui, no entanto, apenas os desenvolvedores por trás do compilador Rust oficial lançaram a atualização.
Deixe-me lembrá-lo que eu também escrevi isso Especialista hackeado 70% de redes Wi-Fi em Tel Aviv para pesquisa.