RiskyPy gera prompts calibrados para medir segurança e funcionalidade do código gerado por LLM
RiskyPy automatiza a criação de datasets de teste para avaliar, ao mesmo tempo, se o código gerado por um LLM funciona e se ele é seguro, calibrando a dificuldade dos prompts ao nível de capacidade do modelo avaliado. Nos testes com Qwen3-4B e Seed-Coder-8B, cobrindo 18 categorias do CWE Top 25, entre 57% e 72% dos códigos gerados funcionavam corretamente, mas apenas 5% a 10% ficaram livres de alertas de vulnerabilidade do Bandit.
Benchmarks que avaliam a segurança de código gerado por LLM costumam ser caros de construir e, pior, ficam desatualizados rapidamente em relação à capacidade real do modelo avaliado: um conjunto de prompts fácil demais para um modelo recente não revela nada sobre sua segurança, e um conjunto difícil demais para um modelo pequeno produz só código quebrado, inútil para medir vulnerabilidade.
O RiskyPy resolve isso com um pipeline automatizado que usa “canários” de funcionalidade e de vulnerabilidade para calibrar os prompts gerados ao nível de proficiência do modelo sendo testado, em vez de usar um conjunto fixo de tarefas. A instanciação descrita cobre Python, com 18 categorias de vulnerabilidade do CWE Top 25 de 2025, produzindo 101 prompts de teste.
O resultado mais informativo não é a taxa de funcionalidade (57% a 72% de código que efetivamente funciona), mas o contraste com a taxa de segurança: apenas 5% a 10% das gerações passaram sem nenhum alerta do Bandit, uma ferramenta de análise estática usada para detectar padrões de código inseguro em Python. Esse gap quantifica algo que times de engenharia já suspeitavam informalmente: modelos de geração de código tendem a produzir software que funciona, mas que carrega vulnerabilidades conhecidas com frequência alta.
Na prática, esse tipo de benchmark calibrável serve como termômetro contínuo: em vez de medir apenas uma vez se um modelo “passa” em segurança, ele pode acompanhar se modelos de codificação estão de fato melhorando em segurança ao longo do tempo e das versões, e não apenas melhorando em taxa de aprovação de testes funcionais — um lembrete de que revisão de segurança (automatizada ou humana) continua indispensável quando se usa geração de código por IA em produção.