Skip to main content

5 dicas para adotar a assistência de IA para programação com segurança

blog feature ai

30 de maio de 2024

0 minutos de leitura

Nos últimos anos, a tecnologia de IA generativa tem despertado muito entusiasmo, especialmente no desenvolvimento de software. Desenvolvedores de todos os níveis estão recorrendo a ferramentas de IA, como GitHub Copilot, Amazon CodeWhisperer e ChatGPT, da OpenAI, para apoiar suas atividades de programação. De fato, o GitHub constatou que 92% dos desenvolvedores usam ferramentas de programação com IA.

No entanto, muitas empresas estão percebendo que precisam ter mais cautela ao usar IA no desenvolvimento de software. A IA generativa ainda é propensa a imprecisões e alucinações e pode expor as organizações a novos vetores de ameaça, como envenenamento de dados e injeção de prompt. 

O segredo para usar IA não é eliminá-la nem deixar que as equipes a usem sem controle, mas pensar estrategicamente em mecanismos de proteção para aproveitar com segurança o código gerado por IA. 

Vamos apresentar cinco dicas para usar assistentes de programação com IA com segurança em todo o ciclo de vida do desenvolvimento de software, incluindo:

  1. Mantenha sempre uma pessoa no processo.

  2. Analise o código gerado por IA no IDE com uma ferramenta de segurança independente e imparcial.

  3. Valide o código de terceiros.

  4. Automatize os testes entre equipes e projetos.

  5. Proteja sua propriedade intelectual.

Mantenha sempre uma pessoa no processo

Na prática, a IA generativa é como um desenvolvedor júnior com acesso a milhões de exemplos de código disponíveis na internet. Embora trabalhem rapidamente, os assistentes de programação com IA estão longe de ser infalíveis, pois usam códigos bons e ruins como dados de treinamento. Por isso, é fundamental incluir verificações humanas suficientes ao adotar ferramentas de programação com IA generativa. As equipes podem manter uma pessoa no processo com as seguintes práticas:

  • Realizar os mesmos testes de segurança de código usados antes da IA, como validar, testar e corrigir vulnerabilidades no IDE com testes estáticos de segurança de aplicações (SAST).

  • Promover treinamentos regulares sobre os benefícios e os riscos do código gerado por IA.

  • Criar políticas e procedimentos para realizar revisões regulares do código gerado por IA.

Analise o código gerado por IA no IDE com uma ferramenta de segurança independente e imparcial

Ao realizar testes de segurança no código gerado por IA, a melhor prática é usar uma ferramenta diferente daquela que gerou uma parte significativa do código. Uma ferramenta de segurança separada garante imparcialidade. Além disso, ferramentas diferentes se especializam em áreas distintas. Uma ferramenta de IA criada para gerar código funcional não conhece todo o contexto da sua postura de segurança nem tem recursos para compreender nuances complexas de segurança. 

Há dois critérios principais a considerar ao escolher essa ferramenta independente e imparcial para proteger o código gerado por IA:

  1. Uma visão completa e contextualizada de toda a aplicação — não apenas visões incompletas de trechos individuais de código gerados por IA. Assim, ela pode sugerir correções que não afetem o restante da aplicação.

  2. Recursos de análise dentro do IDE para antecipar ao máximo as verificações de segurança no processo de desenvolvimento. Dessa forma, os desenvolvedores podem corrigir vulnerabilidades no código gerado por IA e no código escrito manualmente logo após a criação. 

Valide o código de terceiros

O código aberto representa 70% a 90% de uma aplicação típica. Os desenvolvedores não só recorrem regularmente a esses recursos de terceiros, como o código escrito por IA também utiliza dependências de terceiros. Embora o código aberto seja uma ótima maneira de desenvolver aplicações com mais agilidade, sua qualidade e seu nível de segurança podem variar. Bibliotecas de código aberto recomendadas por IA também podem trazer riscos, pois a IA muitas vezes não está atualizada com as informações de segurança mais recentes e pode recomendar recursos de terceiros desatualizados ou com vulnerabilidades conhecidas. 

A análise de composição de software (SCA) ajuda as organizações a encontrar e corrigir vulnerabilidades nesses recursos de terceiros. Ela pode analisar as dependências escolhidas por pessoas ou por IA, identificando pacotes de código aberto vulneráveis, informando sobre essas vulnerabilidades e sugerindo formas de corrigi-las. Ao usar assistentes de programação com IA, as equipes precisam testar e verificar as bibliotecas de código aberto recomendadas por IA com uma ferramenta de SCA de alta qualidade. 

Automatize os testes entre equipes e projetos

Ao avaliar como implementar essas práticas recomendadas de segurança de código para código escrito por pessoas e por IA, identifique oportunidades de usar automação. Os assistentes de programação com IA aceleraram os ciclos de desenvolvimento como nunca, e, sem testes de segurança automatizados, será impossível acompanhar essa velocidade sem precedentes. Para automatizar com sucesso, incorpore os testes de segurança aos fluxos de trabalho que as equipes de desenvolvimento já utilizam, como os pipelines de CI/CD.

Proteja sua propriedade intelectual

As equipes também devem considerar o código usado para criar prompts para assistentes de programação com IA e identificar maneiras de evitar que os funcionários exponham dados confidenciais acidentalmente em um desses prompts. Em geral, as ferramentas de IA usam os prompts dos clientes como dados de treinamento, o que significa que tudo o que você escreve em um prompt pode ser aproveitado. Por isso, é fundamental não inserir código confidencial ou proprietário em uma ferramenta de IA. Veja algumas maneiras de ter cautela ao criar prompts para ferramentas de IA:

  • Documente políticas detalhadas para o uso de IA e treine as equipes sobre essas diretrizes, incluindo as possíveis consequências de não segui-las.

  • Parta do princípio de que todos os dados inseridos em um LLM serão usados no treinamento dele.

  • Insira apenas as informações mínimas necessárias para que a ferramenta de IA cumpra sua função.

  • Considere usar verificações de entrada e saída para sanitizar os dados enviados pelos usuários e as respostas das ferramentas de IA.

Saiba mais sobre como a Snyk viabiliza a adoção segura de assistentes de programação com IA.

Publicado em: