Nova técnica de ‘Trojan de fonte’ permite que hackers ocultem vulnerabilidades em códigos-fonte

Uma nova classe de vulnerabilidades pode ser aproveitada por agentes de ameaças para injetar malware visualmente enganoso de uma forma que seja semanticamente permissível, mas altere a lógica definida pelo código-fonte, efetivamente abrindo a porta para mais riscos primários e da cadeia de suprimentos.

Chamada de “ataques de fonte de cavalo de Tróia“, a técnica “explora sutilezas nos padrões de codificação de texto, como Unicode, para produzir código-fonte cujos tokens são codificados logicamente em uma ordem diferente daquela em que são exibidos, levando a vulnerabilidades que não podem ser percebidas diretamente por revisores de código humano “, disseram os pesquisadores da Universidade de Cambridge, Nicholas Boucher e Ross Anderson, em um artigo recém-publicado.

As vulnerabilidades – rastreadas como CVE-2021-42574 e CVE-2021-42694 – afetam compiladores de todas as linguagens de programação populares, como C, C ++, C #, JavaScript, Java, Rust, Go e Python.

Compiladores são programas que traduzem código-fonte legível de alto nível em suas representações de nível inferior, como linguagem assembly, código de objeto ou código de máquina que pode então ser executado pelo sistema operacional.

Em sua essência, o problema diz respeito ao algoritmo bidirecional (ou Bidi ) do Unicode, que permite suporte para idiomas da esquerda para a direita (por exemplo, inglês) e da direita para a esquerda (por exemplo, árabe ou hebraico), e também apresenta o que é chamado de bidirecional substitui para permitir a escrita de palavras da esquerda para a direita dentro de uma frase da direita para a esquerda, ou vice-versa, tornando possível incorporar texto com uma direção de leitura diferente dentro de grandes blocos de texto.

Embora se espere que a saída de um compilador implemente corretamente o código-fonte fornecido a ele, as discrepâncias criadas pela inserção de caracteres de substituição Bidi Unicode em comentários e strings podem permitir um cenário que produz um código-fonte sintaticamente válido no qual a ordem de exibição dos caracteres apresenta uma lógica divergente da lógica real.

Em outras palavras, o ataque funciona visando a codificação de arquivos de código-fonte para criar vulnerabilidades direcionadas, em vez de introduzir deliberadamente bugs lógicos, de modo a reordenar visualmente tokens no código-fonte que, embora renderizados de uma maneira perfeitamente aceitável, enganam o compilador para o processamento o código de uma maneira diferente e mudando drasticamente o fluxo do programa – por exemplo, fazendo um comentário parecer como se fosse um código.

“Na verdade, colocamos o programa A no programa B”, presumiram os pesquisadores. “Se a mudança na lógica for sutil o suficiente para passar despercebida nos testes subsequentes, um adversário pode introduzir vulnerabilidades direcionadas sem ser detectado.”

Essas codificações adversárias podem ter um sério impacto na cadeia de suprimentos, alertam os pesquisadores, quando vulnerabilidades invisíveis de software injetadas em software de código-fonte aberto abrem caminho, afetando potencialmente todos os usuários do software. Pior ainda, os ataques de fonte de Trojan podem se tornar mais graves se um invasor usar homóglifos para redefinir funções pré-existentes em um pacote upstream e invocá-las de um programa de vítima.

Substituindo letras latinas por caracteres semelhantes de outros conjuntos de família Unicode (por exemplo, alterando “H” para cirílico “Н”), um agente de ameaça pode criar uma função homoglifo que parece semelhante à função original, mas na verdade contém código malicioso que poderia então ser adicionado a um projeto de código aberto sem atrair muito escrutínio. Um ataque desse tipo pode ser desastroso quando aplicado contra uma função comum que está disponível por meio de uma dependência ou biblioteca importada, observou o jornal.

“O fato de que a vulnerabilidade da fonte de Trojan afeta quase todas as linguagens de computador torna-o uma rara oportunidade para uma comparação de respostas entre plataformas e fornecedores ecologicamente válidos em todo o sistema”, observaram os pesquisadores. “Como poderosos ataques à cadeia de suprimentos podem ser lançados facilmente usando essas técnicas, é essencial que as organizações que participam de uma cadeia de suprimentos de software implementem defesas.”

Fonte: https://thehackernews.com/