Skip to main content

Por que você precisa de um aliado de segurança para código gerado por IA

blog feature ai blue

25 de outubro de 2023

0 minutos de leitura

Todo mundo está falando sobre inteligência artificial generativa (GenAI), e uma enorme onda de desenvolvedores já incorpora essa tecnologia transformadora ao seu trabalho. No entanto, assistentes de programação com GenAI só devem ser usados em conjunto com ferramentas de segurança de IA. Vamos entender por quê e o que os dados mostram.

Com a ajuda da IA, os desenvolvedores estão criando mais rápido do que nunca. Com esse salto expressivo de produtividade, as equipes de segurança precisam acompanhar o ritmo sem frear o progresso nem deixar vulnerabilidades passarem despercebidas em meio ao grande volume de código.

O volume é um grande desafio, mas também existe uma enorme diferença entre a velocidade do desenvolvimento impulsionado por GenAI e a dos processos de teste mais tradicionais. Depois que uma ferramenta de programação com GenAI gera um resultado, o desenvolvedor pode presumir que o código é seguro e continuar trabalhando até que um teste de segurança seja executado. Se uma vulnerabilidade for identificada nesse momento, será preciso voltar e corrigir o código. Essa mudança de foco não só leva tempo (um estudo anterior da Universidade da Califórnia, em Irvine, mostra que levamos 23 minutos para retomar o ritmo depois de uma interrupção), como também é altamente ineficiente, pois o trabalho precisa ser refeito.

Além disso, estudos de referência mostram que outros fatores agravam ainda mais o problema:

  • Número de vulnerabilidades: desenvolvedores que usam assistentes de programação com GenAI inserem significativamente mais vulnerabilidades no código do que aqueles que programam sem essa ajuda.

  • Menor percepção dos riscos: desenvolvedores que usam assistentes de programação com GenAI tendem a ter uma confiança maior — e infundada — no código que produzem.

Vamos analisar os dois estudos a seguir, mas o ponto principal é que, com a ajuda da IA, os desenvolvedores não só produzem mais código vulnerável, como também confiam mais nesse código vulnerável do que confiavam no código inseguro que criavam manualmente. Isso significa que desenvolvedores e equipes de AppSec precisam de soluções de segurança mais inteligentes, rápidas e intuitivas para acompanhar esses novos desafios.

Guia da Snyk intitulado “O companheiro de segurança para assistentes de programação com IA”, com texto sobre como proteger código gerado por IA e equipes de AppSec.
Baixe nosso guia Security Companion for AI Coding

Não presuma que o código gerado por GenAI é seguro

Como mencionamos, o problema não é apenas o volume de código. Vulnerabilidades também podem ser introduzidas sem que ninguém perceba, na velocidade da IA — e incorporadas às bases do seu aplicativo.

Por que dizemos que não se deve presumir que a GenAI é segura? Um dos motivos é que um estudo de pesquisadores da Universidade Stanford (dez. de 2022) mostrou que participantes com acesso a um assistente de IA “escreveram códigos significativamente menos seguros” do que aqueles sem acesso. Outro motivo é um estudo recente de pesquisadores da Universidade Cornell (out. de 2023) sobre problemas de segurança e sua dimensão — com foco específico em cenários reais e aplicações práticas —, que revelou a complexidade e a gravidade das vulnerabilidades no código gerado por IA. Em particular:

  • 35,8% dos trechos de código gerados pelo Copilot contêm falhas comuns (CWEs) em várias linguagens de programação.

  • Além disso, o estudo identificou, de forma preocupante, uma grande variedade de falhas de segurança relacionadas a 42 CWEs diferentes. As vulnerabilidades mais comuns foram: CWE-78: injeção de comandos do sistema operacional, CWE-330: uso de valores insuficientemente aleatórios e CWE-703: verificação ou tratamento inadequado de condições excepcionais.

  • E o resultado mais preocupante foi que cerca de 26% das CWEs identificadas estão entre as 25 principais CWEs de 2022.

Desenvolvedores confiam mais em código vulnerável

O mesmo estudo da Universidade Stanford mencionado acima também concluiu que “os participantes com acesso a um assistente de IA tinham mais chances de acreditar que haviam escrito um código seguro do que aqueles sem acesso ao assistente de IA”. Em outras palavras, além de mais vulnerabilidades do que nunca serem incorporadas às bases dos seus aplicativos, os desenvolvedores também têm mais chances de confiar nesse código. Parece seguro presumir que a velocidade está sendo confundida com habilidade.

A solução: uma abordagem holística

Não estamos dizendo que você não deve usar GenAI. Uma pesquisa da Gartner de 2023 com altos executivos mostra que 70% das organizações estão investigando e explorando o uso de GenAI, enquanto 19% estão em fase piloto ou já usam GenAI em produção. Ou seja, essa mudança já aconteceu. Na verdade, a Snyk também usa ferramentas de programação com GenAI, mas de uma forma que prioriza a segurança.

Acreditamos que vale a pena aproveitar essa nova e incrível tecnologia, desde que isso seja feito com segurança. Uma ferramenta de programação com GenAI pode ser vista como um desenvolvedor inexperiente. Ela consegue gerar código, mas não captar suas nuances; comete erros e certamente não foi treinada para identificar riscos de segurança, grandes ou pequenos. Para enfrentar esse desafio moderno, você precisa adotar uma abordagem holística de DevSecOps e considerar pessoas, processos e ferramentas.

Pessoas

Primeiro, você precisa ensinar aos desenvolvedores como a GenAI funciona, quais falhas ela pode gerar e quais são os riscos inerentes a essa tecnologia.

Os modelos de GenAI (alguns também chamados de grandes modelos de linguagem, ou LLMs, um subconjunto da GenAI treinado com textos e que gera textos) são apenas modelos estatísticos que fazem previsões com base em probabilidades. Um LLM analisa enormes volumes de dados, identifica padrões que se repetem e faz uma estimativa do que é provável (em vez de factual), com base na grande quantidade de repetições semelhantes ou idênticas. Um LLM não tem capacidade de raciocínio e só é tão bom quanto os dados usados no treinamento. Portanto, qualquer falha nesses dados, incluindo vieses e informações desatualizadas, será reproduzida pelo LLM. Às vezes, o que ele prevê não se encaixa no contexto, não faz sentido ou nem sequer é verdade, mas o LLM não consegue reconhecer que está errado nem alertar o usuário.

Algumas ferramentas de GenAI podem incluir verificações de segurança, mas como esse não é seu objetivo principal, elas são insuficientes. Assim como você não confiaria no firewall de um sistema operacional para proteger toda a sua empresa, também não deveria depender de um assistente de programação como sua principal camada de segurança.

A IA não é um tema novo, apesar de o ChatGPT ter despertado o interesse recente. Se quiser saber mais, há uma ampla variedade de conteúdos disponíveis, incluindo o blog da Snyk.

Processos

Em seguida, você precisa repensar seus processos. Os métodos e processos tradicionais de segurança são relativamente lentos e prejudicam o fluxo de trabalho dos desenvolvedores. Como você talvez saiba, a Snyk é uma das pioneiras na defesa e na viabilização de “shift left” — isto é, realizar testes de software e sistemas mais cedo no ciclo de desenvolvimento. Há um bom motivo para isso: os desenvolvedores criam o que gera e mantém sua receita, enquanto a segurança protege sua reputação e evita que erros ou falta de conhecimento causem prejuízos de milhões ou bilhões. Por isso, as duas áreas precisam trabalhar juntas no ritmo ideal e sem interrupções.

Historicamente, porém, há atritos entre a forma de atuação dessas duas áreas. Os desenvolvedores precisam avançar rápido, mas os métodos de teste existentes criam gargalos. Em vez de interromper o trabalho que gera negócios, impor comportamentos que não são naturais para os desenvolvedores e sobrecarregar ainda mais as equipes de segurança, que já fazem o possível para acompanhar o ritmo, por que não contar com um aliado de segurança com IA que neutralize as ameaças no momento em que são criadas?

Ferramentas

Isso nos leva às ferramentas. A IA traz riscos, mas também aumenta imensamente a produtividade. Assim como um carro facilita muito a nossa vida ao nos levar mais rápido aos lugares, mas também envolve riscos consideráveis — por isso nunca dirigimos sem colocar o cinto de segurança —, os desenvolvedores precisam usar ferramentas de programação com GenAI com um “cinto de segurança” bem afivelado. O estudo da Universidade Stanford mencionado anteriormente concluiu que, entre o código seguro e inseguro produzido pelos participantes que usaram GenAI, “87% das respostas seguras exigiram edições significativas dos usuários”. O estudo sugere que talvez seja necessário “modificar com conhecimento” para tornar o código seguro. Essa conclusão reforça nossa crença de que os desenvolvedores podem aproveitar todo o potencial da GenAI, desde que o código passe por verificações de segurança em tempo real e na velocidade necessária.

Agora que sabemos que o código gerado por GenAI precisa passar por verificações de segurança, o que torna uma solução ideal para esse caso de uso? Uma ferramenta assim deve funcionar sem atrapalhar o desenvolvedor e acompanhar o ritmo do trabalho, realizar verificações completas e precisas e ser interoperável.

É aqui que a Snyk pode ajudar. Aproveitamos nossa experiência acumulada em segurança para proteger e corrigir seu código no ritmo do desenvolvimento assistido por IA. Sabemos que proteger aplicativos modernos é um processo complexo. Por isso, a Snyk verifica o código em todo o seu aplicativo em tempo real, enquanto ele é escrito; rastreia os fluxos de dados para identificar apenas as dependências e vulnerabilidades relevantes; gera uma possível correção; e verifica novamente o aplicativo inteiro para avaliar o impacto dessa correção, antes de destacar as vulnerabilidades relevantes para o desenvolvedor e permitir que sejam corrigidas com um clique no IDE. E tudo isso acontece em segundos.

Editor de código exibindo a lógica de avaliações de produtos em JavaScript ao lado de um texto sobre a análise de todo o código para garantir a segurança

A Snyk se integra diretamente às ferramentas mais populares (IDE, Git, CLI), às linguagens de programação e aos fluxos de trabalho. Em resumo, a Snyk é como o melhor amigo de um desenvolvedor, sempre atento à segurança. Estamos onde os desenvolvedores e suas ferramentas de IA estão, trabalhando ao lado deles no mesmo ritmo e orientando-os para criar aplicativos mais seguros.

Quer saber como escolher o aliado de segurança ideal para sua ferramenta de programação com GenAI? Vamos falar sobre isso em detalhes na próxima semana. Fique de olho no nosso blog.

Adote o novo “shift left” com a Snyk

Vimos que a GenAI é extremamente útil, mas também traz grandes desafios de segurança. Entre os problemas que as ferramentas de programação com GenAI causam às equipes de segurança estão:

  • Fluxo de trabalho interrompido: não dá para esperar que os desenvolvedores aguardem a conclusão das compilações e o retorno dos resultados dos testes antes de continuar a mesma tarefa.

  • Volume de código e falhas inerentes: com a IA, os desenvolvedores programam mais rápido e, na mesma proporção, inserem mais vulnerabilidades no código.

  • Mais confiança dos desenvolvedores em código vulnerável: a ferramenta de IA cria uma falsa sensação de segurança.

As ferramentas de GenAI mudaram o jogo e levaram o “shift left” ainda mais para a esquerda — antes mesmo do desenvolvedor. Por isso, precisamos atuar também na etapa de IA do ciclo de vida de desenvolvimento de software para enfrentar os riscos desde o início. Assim como o cinto de segurança permite que o motorista dirija mais rápido, as ferramentas de segurança ajudam você a acelerar com as ferramentas de programação com GenAI.

Capacite os desenvolvedores para aproveitar todo o potencial da GenAI com segurança. Adote o novo shift left com o aliado ideal para seu assistente de programação com GenAI: a Snyk.

Quer ver a Snyk em ação? Assista à nossa sessão virtual sob demanda — Live Hack: Explorando código gerado por IA.

Comece a proteger o código gerado por IA

Crie sua conta gratuita da Snyk e comece a proteger o código gerado por IA em minutos. Ou agende uma demonstração com um especialista para ver como a Snyk pode atender às necessidades de segurança dos seus desenvolvedores.

Leia mais

Blog

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

Blog

Por que agentes de programação com IA continuam criando falhas de controle de acesso

Agentes de programação com IA podem gerar uma lógica de autorização que compila e passa pela revisão, mas permite que um tenant acesse os dados de outro. Saiba por que é difícil detectar falhas de controle de acesso e como evitá-las.