Pesquisa sobre o impacto de assistentes de IA como GitHub Copilot na segurança de código

Uma equipe de pesquisadores da Universidade de Stanford estudou o impacto do uso de assistentes de codificação inteligentes no aparecimento de vulnerabilidades no código. Foram consideradas soluções baseadas na plataforma de aprendizado de máquina OpenAI Codex, como GitHub Copilot, que permitem a geração de blocos de código bastante complexos, até funções prontas. A preocupação é que, como o código real dos repositórios públicos do GitHub, incluindo aqueles que contêm vulnerabilidades, é usado para treinar o modelo de aprendizado de máquina, o código sintetizado pode repetir erros e sugerir código que contém vulnerabilidades, e também não leva em conta a necessidade de executar verificações adicionais durante o processamento de dados externos.

Estiveram envolvidos no estudo 47 voluntários com experiências variadas em programação – desde estudantes até profissionais com dez anos de experiência. Os participantes foram divididos em dois grupos - experimental (33 pessoas) e controle (14 pessoas). Ambos os grupos tiveram acesso a quaisquer bibliotecas e recursos da Internet, incluindo a capacidade de usar exemplos prontos do Stack Overflow. O grupo experimental teve a oportunidade de usar um assistente de IA.

Cada participante recebeu 5 tarefas relacionadas à escrita de código em que é potencialmente fácil cometer erros que levam a vulnerabilidades. Por exemplo, havia tarefas de escrita de funções de criptografia e descriptografia, uso de assinaturas digitais, processamento de dados envolvidos na formação de caminhos de arquivos ou consultas SQL, manipulação de grandes números em código C, processamento de entradas exibidas em páginas da web. Para considerar o impacto das linguagens de programação na segurança do código produzido ao usar assistentes de IA, as tarefas abrangeram Python, C e JavaScript.

Como resultado, descobriu-se que os participantes que usaram um assistente de IA inteligente baseado no modelo codex-davinci-002 prepararam um código significativamente menos seguro do que os participantes que não usaram um assistente de IA. No geral, apenas 67% dos participantes do grupo que utilizou o assistente de IA conseguiram fornecer código correto e seguro, enquanto no outro grupo esse número foi de 79%.

Ao mesmo tempo, os indicadores de autoestima eram opostos – os participantes que utilizavam o assistente de IA acreditavam que seu código seria mais seguro do que o dos participantes do outro grupo. Além disso, notou-se que os participantes que confiaram menos no assistente de IA e gastaram mais tempo analisando os prompts dados e fazendo alterações neles apresentaram menos vulnerabilidades no código.

Por exemplo, o código copiado de bibliotecas criptográficas continha valores de parâmetros padrão mais seguros do que o código sugerido pelo assistente de IA. Além disso, ao usar o assistente de IA, foram registradas a escolha de algoritmos de criptografia menos confiáveis ​​e a falta de verificações de autenticação dos valores retornados. Em uma tarefa envolvendo manipulação de números em C, mais erros foram cometidos no código escrito usando o assistente de IA, levando ao estouro de inteiros.

Adicionalmente, podemos notar um estudo semelhante realizado por um grupo da Universidade de Nova York, realizado em novembro, envolvendo 58 estudantes que foram solicitados a implementar uma estrutura para processamento de lista de compras em linguagem C. Os resultados mostraram pouco impacto do assistente de IA na segurança do código – os usuários que usaram o assistente de IA cometeram, em média, cerca de 10% mais erros relacionados à segurança.

Pesquisa sobre o impacto de assistentes de IA como GitHub Copilot na segurança de código


Fonte: opennet.ru

Adicionar um comentário