Inteligência de dados generativa

Falha crítica de ferrugem representa ameaça de exploração em casos de uso específicos do Windows

Data:

O Rust Project lançou uma atualização para sua biblioteca padrão, depois que um pesquisador de vulnerabilidade descobriu que uma função específica usada para executar arquivos em lote em sistemas Windows poderia ser explorada usando uma falha de injeção.

O conjunto de funções comuns incluídas na linguagem de programação Rust, conhecida como biblioteca padrão, oferece a capacidade – entre seus muitos outros recursos – de executar arquivos em lote do Windows por meio da API de comando. A função, porém, não processou as entradas da API com rigor suficiente para eliminar a possibilidade de injeção de código na execução, segundo um comunicado do Grupo de Trabalho de Resposta de Segurança contra Ferrugem publicado em 9 de abril.

Embora Rust seja bem conhecido por seus recursos de segurança de memória, o incidente ressalta que a linguagem de programação não é à prova de erros lógicos, diz Yair Mizrahi, pesquisador sênior de vulnerabilidades da empresa de segurança de aplicativos JFrog.

“No geral, a segurança da memória do Rust é uma vantagem notável, mas os desenvolvedores também devem prestar muita atenção ao potencial de bugs lógicos para garantir a segurança geral e a confiabilidade de seus aplicativos baseados em Rust”, diz ele. “Para resolver esses problemas lógicos, Rust incentiva um processo rigoroso de testes e revisão de código, bem como o uso de ferramentas de análise estática para identificar e mitigar bugs lógicos.”

Rust ganhou a reputação de ser uma linguagem de programação muito segura, porque não deixa os aplicativos abertos à classe de falhas muitas vezes graves, conhecida como vulnerabilidades de segurança de memória. O Google atribuiu uma queda no código inseguro de memória à mudança para linguagens seguras para memória, como Rust e Kotlin, enquanto a Microsoft descobriu que até 2018, quando mudou para uma linguagem segura para memória, tais vulnerabilidades regularmente foi responsável por 70% de todos os problemas de segurança.

O Windows apresenta uma série de problemas

O problema mais recente não é uma vulnerabilidade de segurança de memória, mas um problema com a lógica usada para processar entradas não confiáveis. Parte da biblioteca padrão do Rust permite que o desenvolvedor chame uma função para enviar um arquivo em lote para a máquina Windows para processamento. Há razões para enviar código ao host como um arquivo em lote, diz Joel Marcey, diretor de tecnologia da Rust Foundation, que dá suporte aos mantenedores da linguagem de programação e ao ecossistema Rust.

“Arquivos em lote são executados em sistemas por vários motivos, e Rust fornece uma API que permite executá-los com bastante facilidade”, diz ele. “Portanto, embora este não seja necessariamente o caso de uso mais comum para Rust, a API, antes da implementação do patch corrigido, permitia que atores mal-intencionados teoricamente assumissem o controle do seu sistema executando comandos arbitrários, e esta é definitivamente uma vulnerabilidade crítica.”

Normalmente, um desenvolvedor pode encaminhar uma carga de trabalho para o host do Windows para ser executada como um processo em lote por meio da interface de programação de aplicativos (API) de comando, parte da biblioteca padrão. Normalmente, Rust garante a segurança de qualquer chamada para a API de Comando, mas neste caso, o Projeto Rust não conseguiu encontrar uma maneira de impedir a execução de todos os argumentos, principalmente porque o Windows não adere a nenhum tipo de padrão, e que o A API poderia permitir que um invasor enviasse código que seria então executado.

“Infelizmente, foi relatado que nossa lógica de escape não era completa o suficiente e era possível transmitir argumentos maliciosos que resultariam na execução arbitrária do shell”, de acordo com o Rust Security Response WG.

Projeto Rust se mostra responsivo

Embora lidar com qualquer vulnerabilidade possa ser uma dor de cabeça, o Rust Project mostrou que o grupo resolve os problemas rapidamente, dizem os especialistas. A vulnerabilidade da biblioteca padrão, CVE-2024-24576, é, em última análise, um problema de processamento em lote do Windows e afeta outras linguagens de programação, se elas não analisarem adequadamente os argumentos enviados ao processo em lote do Windows. O Rust Project parece ser o primeiro a ser lançado com uma correção para passar argumentos para o processo CMD.exe do Windows, diz Mizrahi do JFrog.

Os grupos não conseguiram eliminar completamente o problema, mas a API de comando não retornará um erro quando qualquer aumento passado para a função puder ser inseguro, disse o Rust Project. 

Mizrahi, da JFrog, incentiva Rust a ampliar seu uso de testes estáticos de segurança de aplicativos e expandir o uso de testes dinâmicos e de difusão.

“No geral, Rust está no caminho certo ao enfatizar a segurança da memória e encorajar práticas de testes rigorosas”, diz ele. “Combinar esses esforços com avanços contínuos em análise estática e difusão pode ajudar a comunidade Rust e a indústria de software em geral a fazer avanços significativos na solução de bugs lógicos e falhas de validação de entrada nos próximos anos.”

local_img

Inteligência mais recente

local_img