Estudo com 100 desenvolvedores mostra que confiança em sugestões de código de IA nem sempre vira verificação
Pesquisadores conduziram um estudo observacional com 100 participantes para entender como desenvolvedores avaliam a segurança de código sugerido por IA antes de aceitá-lo, isolando justamente a etapa de revisão que costuma ser tratada como garantida. O trabalho, aceito para o IEEE Security and Privacy 2027, expõe que boa parte da segurança do código final depende de pistas superficiais e de quanto o desenvolvedor confia na ferramenta, não de uma análise sistemática de vulnerabilidades.
O ponto de partida do estudo é uma lacuna conhecida: já existem vários trabalhos mostrando que assistentes de codificação com IA produzem código inseguro com frequência, mas quase nada mede o que acontece na etapa seguinte, quando um humano decide se aceita, edita ou rejeita aquela sugestão. Essa etapa de avaliação é o único ponto do fluxo onde um desenvolvedor humano ainda pode interceptar uma vulnerabilidade antes que ela entre no repositório — seja usando autocomplete, chat ou um agente que edita código de forma mais autônoma.
Metodologicamente, os 100 participantes resolveram quatro tarefas em C envolvendo listas ligadas, uma estrutura de dados clássica para erros de memória e ponteiros. Para cada tarefa, o participante podia navegar entre cinco sugestões geradas por IA, com variações controladas de segurança e de funcionalidade, escolher uma delas e editá-la antes de enviar a versão final. Depois, os participantes responderam a um questionário sobre como tomaram a decisão e sobre a percepção que têm da segurança de código gerado por IA; 23 deles também passaram por entrevistas mais aprofundadas, o que dá ao estudo uma camada qualitativa sobre o "porquê" das escolhas, além do "o quê".
O título do próprio trabalho — "(Don't) Trust, but (Don't) Verify" — já sinaliza o achado central: nem confiança cega nem verificação ativa descrevem bem o comportamento observado. Desenvolvedores tendem a usar sinais superficiais (a sugestão "parece" mais limpa, mais curta, mais familiar) como proxy para segurança, em vez de analisar de fato o fluxo de dados ou casos de borda que costumam esconder vulnerabilidades de memória em C.
O valor prático disso para times de engenharia é direto: revisão de código feita por humano, hoje apresentada como a rede de segurança padrão para uso de IA generativa em produção, não está automaticamente cumprindo esse papel. Isso reforça a necessidade de complementar assistentes de código com ferramentas de análise estática/SAST focadas nos mesmos padrões de vulnerabilidade que os modelos tendem a reproduzir, e não assumir que uma pessoa olhando a sugestão antes de aceitar já é controle suficiente.