2021/11/02

Bug do Unicode permite infectar código-fonte de programas

Um bug relacionado com o processamento de texto Unicode permite injectar código malicioso no código fonte de programas, enganando humanos e compiladores.

Nos computadores não há nada "simples", e até o simples acto de escrever texto pode esconder surpresas, como agora foi demonstrado por esta Trojan Source bug que afecta o código-fonte de programas antes de serem compilados ou executados, e abrangendo linguagens como C++, C#, Go, JavaScript, Java, Rust, Python e outras.

Embora tenhamos a felicidade de por cá apenas termos que considerar umas dezenas de letras e números, as coisas complicam-se quando se consideram todas as centenas de línguas e muitos mais milhares de caracteres, símbolos, estilos de escrita (vertical, direita para esquerda, etc.) e até os emoji. O Unicode contém mais de 143 mil caracteres e símbolos, e desta vez é a sua complexidade que pode ser abusada para injectar código malicioso em programas.

O Unicode contém códigos de controlo para misturar textos com diferentes ordens de apresentação (esquerda-direita e direita-esquerda), e esses códigos podem ser activados mesmo quando inseridos em comentários do código fonte de programas. Isso faz com que um programa possa parecer inofensivo quando examinado por um humano - que vê o texto como fazendo parte de um comentário que pensa poder ser ignorado - mas que depois é compilado como código executável pelo compilador da linguagem, com funcionalidades potencialmnente maliciosas. Curiosamente, há uma década atrás, algo idêntico já era utilizado para disfarçar nomes de ficheiros maliciosos.

Esta falha de segurança não afectará directamente os utilizadores finais, mas pode complicar a vida a todos os developers que costumam usar blocos de código importados da internet, e que poderão trazer presentes indesejados escondidos usando esta técnica.

Sem comentários:

Enviar um comentário (problemas a comentar?)