O Google revelou que sua ferramenta de fuzzing impulsionada por IA, OSS-Fuzz, foi usada para ajudar a identificar 26 vulnerabilidades em vários repositórios de código aberto, incluindo uma falha de gravidade média na biblioteca criptográfica OpenSSL.
"Essas vulnerabilidades específicas representam um marco para a descoberta automatizada de vulnerabilidades: cada uma foi encontrada com IA, usando alvos de fuzz gerados e aprimorados por IA", disse a equipe de segurança de código aberto do Google em um post no blog compartilhado com o The Hacker News.
A vulnerabilidade do OpenSSL em questão é a
CVE-2024-9143
(pontuação CVSS: 4.3), um bug de escrita de memória fora dos limites que pode resultar em um crash de aplicação ou execução remota de código.
A questão foi abordada nas versões do OpenSSL 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb e 1.0.2zl.
O Google, que adicionou a capacidade de aproveitar modelos de linguagem grandes (LLMs) para melhorar a cobertura de fuzzing no OSS-Fuzz em agosto de 2023, disse que a vulnerabilidade provavelmente esteve presente no código-base por duas décadas e que "não teria sido descoberta com os alvos de fuzz existentes escritos por humanos".
Além disso, o gigante da tecnologia observou que o uso da IA para gerar alvos de fuzz melhorou a cobertura de código em 272 projetos C/C++, adicionando mais de 370.000 linhas de novo código.
"Uma razão para que tais bugs pudessem permanecer não descobertos por tanto tempo é que a cobertura de linhas não é uma garantia de que uma função está livre de bugs", disse o Google.
Cobertura de código como métrica não é capaz de medir todos os caminhos e estados de código possíveis – diferentes sinalizações e configurações podem disparar comportamentos diferentes, desenterrando bugs diferentes. Essas descobertas de vulnerabilidades assistidas por IA também são possíveis pelo fato de que os LLMs estão se mostrando hábeis em emular o fluxo de trabalho de fuzzing de um desenvolvedor, permitindo assim mais automação.
O desenvolvimento vem à medida que a empresa revelou no início deste mês que sua estrutura baseada em LLM chamada Big Sleep facilitou a detecção de uma vulnerabilidade zero-day no motor de banco de dados de código aberto SQLite.
Em conjunto, o Google está trabalhando para transicionar seus próprios códigos-fonte para linguagens seguras em termos de memória, como Rust, ao mesmo tempo que implementa mecanismos para abordar vulnerabilidades de segurança de memória espacial – que ocorrem quando é possível para um trecho de código acessar memória fora de seus limites pretendidos – em projetos C++ existentes, incluindo o Chrome.
Isso inclui a migração para Safe Buffers e a ativação de libc++ reforçada, esta última adiciona checagem de limites a estruturas de dados padrão C++ para eliminar uma classe significativa de bugs de segurança espacial.
Foi ainda observado que o overhead incorrido como resultado da incorporação da mudança é mínimo (ou seja, um impacto médio no desempenho de 0.30%).
"O libc++ reforçado, recentemente adicionado por contribuidores de código aberto, introduz um conjunto de verificações de segurança projetadas para capturar vulnerabilidades como acessos fora dos limites em produção", disse o Google.
Embora C++ não se torne totalmente seguro em relação à memória, essas melhorias reduzem o risco [...], levando a software mais confiável e seguro.
Publicidade
Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...