O Google concluiu um projeto piloto usando Gemini para reescrever bibliotecas C amplamente implantadas em Rust – e o experimento valeu a pena de uma forma que ninguém planejou. Pouco depois de a empresa migrar seus sistemas de produção para uma reescrita segura de memória e gerada por IA da biblioteca de processamento GIF giflib, uma nova vulnerabilidade de gravação de heap fora dos limites foi divulgada no código C original, designada CVE-2026-26740. Os sistemas do Google já estavam imunes.
A empresa neutralizou efetivamente uma vulnerabilidade de dia zero por meio da arquitetura, em vez de patches. Como a equipe de engenharia de segurança do Google explicou em uma postagem no blog Bug Hunters, a equipe não tinha conhecimento da divulgação pendente durante a reescrita – a proteção era um efeito colateral estrutural da eliminação de código inseguro para a memória. Para saber mais sobre como a IA está remodelando a pesquisa e engenharia de IA, siga o AI Buzz Wire.
Por que a segurança da memória é importante agora
As vulnerabilidades de segurança de memória representam cerca de 70% das vulnerabilidades nas bases de código C e C++, de acordo com a própria pesquisa do Google. Bibliotecas de terceiros são um ponto particularmente fraco porque analisam rotineiramente dados não confiáveis. Ao mesmo tempo, o intervalo entre a descoberta de vulnerabilidades e a transformação em armas continua a diminuir – os atacantes, cada vez mais assistidos pela própria IA, movem-se mais rapidamente do que os ciclos de patches tradicionais.
O Google há muito defende uma estratégia de “codificação segura” que prioriza linguagens seguras para memória, como Rust. O problema não resolvido é a vasta base instalada de dependências C e C++ que não podem simplesmente ser excluídas. O piloto fez uma pergunta direta: um LLM pode converter rapidamente essas dependências para Rust sem quebrar nada?
O alvo: giflib
O Google escolheu o giflib, uma biblioteca de processamento de imagens GIF amplamente utilizada, originalmente desenvolvida por Eric S. Raymond. A biblioteca ofereceu um perfil de complexidade ideal para uma primeira tentativa: aproximadamente 3.000 linhas de código, sem SIMD ou otimizações de montagem e uma base de código estável. Criticamente, o giflib geralmente processa dados não confiáveis em ambientes sem área restrita – exatamente o tipo de superfície de ataque com que as equipes de segurança mais se preocupam.
O objetivo era ambicioso: produzir um substituto imediato, seguro para memória e compatível com ABI, que pudesse ser implantado em toda a infraestrutura de produção do Google sem interrupção dos serviços dependentes. A tradução inicial da lógica da biblioteca foi realizada rapidamente com a ajuda do LLM, mas a equipe sinalizou dois requisitos que se mostraram decisivos: gerenciamento cuidadoso do limite FFI – ciclo de vida do ponteiro e semântica de propriedade do Rust na interface com chamadores C existentes – e o que o Google chama de “o componente social da segurança”, a confiança humana necessária para implantar reescritas geradas por IA em serviços críticos.
O Desafio de Validação
Para ganhar a confiança da produção, a implementação do Rust passou por testes exaustivos:
- Testes de regressão em grande escala: validados em um conjunto de dados de mais de 30 milhões de GIFs do mundo real, confirmando resultados idênticos aos da implementação original
- Fuzzzing diferencial: Um fuzzer original versus Rust funcionou continuamente por mais de seis dias e mais de 200 milhões de iterações sem encontrar nenhum desvio lógico
- Revisão de IA adversária: prompts especializados de LLM foram usados para procurar diferenças comportamentais sutis entre as duas bases de código que os testes tradicionais podem perder
O pipeline provou seu valor antes da implantação. Ele identificou um caso extremo no decodificador LZW e – mais notavelmente – descobriu uma vulnerabilidade de gravação fora dos limites pré-existente que foi introduzida por um patch legado interno do Google para a fonte C original, que a equipe corrigiu na reescrita do Rust.
O desempenho não foi prejudicado
Uma objeção comum às linguagens seguras para memória é o custo da verificação dos limites do tempo de execução. O monitoramento do Google em seus serviços globais de processamento de imagens mostrou que a implementação do Rust era neutra em termos de desempenho em comparação com o C original – um resultado que a empresa diz ter observado repetidamente nas migrações do Rust.
Houve um bônus inesperado. Como a biblioteca Rust é segura para a memória por construção, o Google conseguiu desativar o sandboxing com uso intensivo de recursos que alguns serviços de produção precisavam anteriormente para isolar a biblioteca C. Essa simplificação arquitetônica produziu uma redução significativa na latência final para tarefas de decodificação de imagens.
Código aberto – com advertências honestas
O Google publicou a reescrita do Rust em github.com/google/giflib-rs e está contribuindo com suas descobertas para a comunidade. A empresa também credita esforços complementares liderados por humanos, como a reescrita manual do zlib em Rust pela Trifecta Tech Foundation, com ganhos substanciais de desempenho, como parte de um ecossistema mais amplo de soluções.
As advertências são dignas de nota. As reescritas exigem grandes quantidades de dados do mundo real ou conjuntos de testes fortes existentes para validar a equivalência comportamental, e desviar-se de um projeto upstream alterando as linguagens incorre em um custo real de manutenção — especialmente para dependências em desenvolvimento ativo. A tradução assistida por IA, em outras palavras, acelera, mas não substitui o julgamento da engenharia.
O panorama geral
O piloto é uma das demonstrações mais claras de que os LLMs podem fornecer melhorias estruturais de segurança em escala, e não apenas sugestões de código. Ao combinar a velocidade da tradução orientada por LLM com testes diferenciais e revisão de limites de segurança por especialistas humanos, argumenta o Google, classes inteiras de vulnerabilidades podem ser retiradas da infraestrutura de produção – antes que alguém saiba qual CVE específico está por vir.
Fonte: blog Google Bug Hunters, "Escalando a segurança da memória: reescritas assistidas por IA de dependências de C/C++ para ferrugem".
---
Fique à frente da IAReceba as últimas notícias, análises e avanços sobre IA — tudo em um só lugar.
Leia mais notícias sobre IA →