Home  >  Inovação

Estudo: GitHub Copilot gera sugestões de código errôneas ou vulneráveis em 40% do tempo

Rafael Romer

26/08/2021 às 18h05

Código HTML programação
Foto:

Legenda: Adobe Stock

Um artigo publicado por uma equipe de pesquisa da Universidade de Nova Iorque (NYU) colocou em cheque a segurança do GitHub Copilot, ferramenta de inteligência artificial desenvolvida pelo GitHub e OpenAI para auxiliar os usuários do Visual Studio Code por meio do preenchimento automático do código.

Segundo os pesquisadores, em cerca de 40% das vezes, o código gerado pelo assistente de programação traz erros ou é potencialmente vulnerável a ataques, de acordo com informações do The Register.

O artigo An Empirical Cybersecurity Evaluation of GitHub Copilot’s Code Contributions, apontou para a “vasta quantidade de código não testado que o Copilot processou”, levantando questionamentos sobre a segurança das contribuições de código da ferramenta.

“Neste trabalho, investigamos sistematicamente a prevalência e as condições que podem fazer com que o GitHub Copilot recomende um código inseguro. Para realizar esta análise, solicitamos ao Copilot a geração de código em cenários relevantes para CWEs de alto risco (por exemplo aqueles da lista "Top 25" do MITRE). Exploramos o desempenho do Copilot em três eixos distintos de geração de código - examinando como ele funciona, dada a diversidade de fraquezas, diversidade de prompts e diversidade de domínios”, explicam os pesquisadores no artigo.

No total, foram produzidos 89 cenários diferentes para o Copilot concluir, produzindo 1.692 programas. Destes, os pesquisadores descobriram que, aproximadamente, 40% eram vulneráveis.

O Copilot está agora disponível em testes beta privados como uma extensão do Visual Studio Code da Microsoft. Ele permite que os desenvolvedores descrevam a funcionalidade em uma linha de comentário e, em seguida, gerem o código que preenche a descriçãor. A ferramenta também é capaz de prever o que o desenvolvedor está prestes a escrever a partir dos nomes das variáveis e funções, oferecendo insights.

Basicamente, ao invés de terminar uma linha parcialmente digitada com base em um conjunto estreito de possibilidades, o Copilot tenta conjurar blocos de código que funcionam conforme descrito a partir de um modelo de IA relacionado ao GPT-3 da OpenAI e treinado no código-fonte retirado dos milhões de repositórios públicos do GitHub, diz o The Register.

Os pesquisadores observaram não apenas que bugs herdados de dados de treinamento devem ser considerados, mas também que a idade do modelo merece atenção, já que as práticas de codificação mudam com o tempo.

Apesar de todos os pontos levantados no artigo científico, os pesquisadores parecem convencidos que, ainda assim, há valor até mesmo em sistemas automatizados errôneos.

"Não há dúvida de que as ferramentas de 'preenchimento automático' de próxima geração, como o GitHub Copilot, aumentarão a produtividade dos desenvolvedores de software", concluem eles. "No entanto, embora o Copilot possa gerar rapidamente quantidades prodigiosas de código, nossas conclusões revelam que os desenvolvedores devem permanecer vigilantes ('acordados') ao usar o Copilot como um copiloto".

(Com informações de The Register)