Recentemente, o Google anunciou que sua ferramenta de teste de fuzzing baseada em inteligência artificial, OSS-Fuzz, descobriu vulnerabilidades em 26 repositórios de código aberto, incluindo uma vulnerabilidade de média gravidade na biblioteca de criptografia OpenSSL.
A equipe de segurança de código aberto do Google disse em um post de blog compartilhado: "A descoberta dessas vulnerabilidades marca um novo marco na detecção automatizada de vulnerabilidades: cada vulnerabilidade foi encontrada por meio de alvos de teste de fuzzing gerados e aprimorados por IA."
Observação da fonte da imagem: Imagem gerada por IA, fornecedora de serviços de licenciamento de imagens Midjourney
A vulnerabilidade OpenSSL descoberta, numerada como CVE-2024-9143 (pontuação CVSS de 4.3), é uma falha de gravação de memória fora dos limites, que pode causar a falha do aplicativo ou a execução de código remoto. O problema foi corrigido em várias versões do OpenSSL, incluindo 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb e 1.0.2zl. O Google apontou que essa vulnerabilidade pode ter existido no repositório de código por quase 20 anos, e os alvos de teste de fuzzing tradicionais escritos por humanos não conseguiram detectar o problema.
O Google também mencionou que, com os alvos de teste de fuzzing gerados por IA, a cobertura de código de 272 projetos C/C++ foi melhorada, adicionando mais de 370.000 linhas de novo código. O Google explicou que muitos erros são ignorados porque a cobertura de código não é equivalente à ausência de vulnerabilidades funcionais. A cobertura de código por si só não consegue medir todos os caminhos e estados de código possíveis, pois diferentes sinalizadores e configurações podem acionar comportamentos diferentes, expondo diferentes vulnerabilidades.
Essa descoberta de vulnerabilidades auxiliada por IA também se beneficia do excelente desempenho dos modelos de linguagem grandes (LLMs) na simulação dos fluxos de trabalho de teste de fuzzing de desenvolvedores, aumentando ainda mais o nível de automação. Além disso, o Google revelou no início deste mês que sua estrutura baseada em LLM, Big Sleep, ajudou a detectar uma vulnerabilidade zero-day no mecanismo de banco de dados de código aberto SQLite.
Para melhorar a segurança de seus próprios repositórios de código, o Google está promovendo a migração de código para linguagens de memória segura, como Rust, e está corrigindo vulnerabilidades de segurança de memória espacial em projetos C++ existentes. Isso inclui a migração para buffers seguros e a ativação do libc++ endurecido, eliminando uma classe importante de vulnerabilidades de segurança espacial por meio da adição de verificações de limites às estruturas de dados C++ padrão. O Google afirmou que a perda de desempenho causada pela implementação dessas melhorias é mínima, em média apenas 0,30%.
O Google enfatizou ainda que o libc++ endurecido, recentemente adicionado por contribuidores de código aberto, introduziu uma série de verificações de segurança projetadas para capturar vulnerabilidades como acessos fora dos limites em ambientes de produção. Embora a linguagem C++ não possa alcançar a segurança de memória completa, essas melhorias sem dúvida reduzem o risco, tornando o software mais confiável e seguro.
Destaques:
🌟 A ferramenta OSS-Fuzz do Google descobriu vulnerabilidades em 26 projetos de código aberto, incluindo uma vulnerabilidade OpenSSL existente há quase 20 anos.
🔍 Os alvos de teste de fuzzing gerados por IA melhoraram a cobertura de código de 272 projetos C/C++, adicionando mais de 370.000 linhas de novo código.
🔒 O Google está migrando código para linguagens de memória segura e melhorando a segurança de projetos C++ por meio de medidas como o libc++ endurecido.