O assistente de codificação baseado em IA do GitHub, GitHub Copilot, pode sugerir código inseguro quando a base de código existente do usuário contém problemas de segurança, de acordo com a empresa de segurança para desenvolvedores Snyk.

O GitHub Copilot pode replicar problemas de segurança existentes em código, disse Snyk em uma postagem no blog publicada em 22 de fevereiro. “Isso significa que a dívida de segurança existente em um projeto pode tornar os desenvolvedores inseguros que usam o Copilot ainda menos seguros”, disse a empresa. No entanto, é menos provável que o GitHub Copilot sugira código inseguro em projetos sem problemas de segurança, pois tem um contexto de código menos inseguro para se basear.

Assistentes de codificação generativa de IA, como GitHub Copilot, Amazon CodeWhisperer e ChatGPT, oferecem um salto significativo em produtividade e eficiência de código, disse Snyk. Mas essas ferramentas não entendem a semântica do código e, portanto, não podem julgá-lo.

GitHub Copilot gera trechos de código com base em padrões e estruturas que aprendeu em um vasto repositório de código existente. Embora esta abordagem tenha vantagens, também pode ter uma desvantagem evidente no contexto da segurança, disse Snyk. As sugestões de código do Copilot podem replicar inadvertidamente vulnerabilidades de segurança existentes e práticas inadequadas presentes em arquivos vizinhos.

Para mitigar a duplicação de problemas de segurança existentes no código gerado pelos assistentes de IA, Snyk aconselha as seguintes etapas:

  • Os desenvolvedores devem realizar revisões manuais do código.
  • As equipes de segurança devem implementar uma proteção SAST (teste de segurança de aplicativos de segurança), incluindo políticas.
  • Os desenvolvedores devem aderir às diretrizes de codificação segura.
  • As equipes de segurança devem fornecer treinamento e conscientização às equipes de desenvolvimento e priorizar e fazer a triagem do acúmulo de problemas por equipe.
  • As equipes executivas devem impor barreiras de segurança.

Os dados da Snyk dizem que um projeto de software comercial médio tem uma média de 40 vulnerabilidades em código próprio, e quase um terço delas são problemas de alta gravidade. “Este é o playground onde as ferramentas de geração de IA podem duplicar código usando essas vulnerabilidades como contexto”, disse Snyk. Os problemas mais comuns que Snyk vê em projetos comerciais são scripts entre sites, passagem de caminho, injeção de SQL e segredos e credenciais codificados.

Não foi possível entrar em contato com o GitHub no final da tarde de quarta-feira para responder aos comentários de Snyk sobre o GitHub Copilot.