Relatório de segurança de código gerado por IA – 2023

Código gerado por IA, segurança e confiança no desenvolvimento moderno

Para 56,4%, sugestões de IA inseguras são comuns, mas poucos alteraram processos para melhorar a segurança da IA. Apesar das claras evidências de que esses sistemas fazem sugestões inseguras continuamente, os comportamentos de segurança não acompanham a adoção do código gerado por IA.

Resumo executivo

As ferramentas de complementação de código por IA alcançaram rapidamente uma notável presença no mercado. Em nossa pesquisa de 537 membros e líderes de equipes de engenharia e segurança de software, 96% das equipes usam ferramentas de codificação por IA como parte da cadeia de suprimentos de software. Apesar dos altos níveis de adoção, as ferramentas de codificação por IA geram código inseguro continuamente. Mais da metade dos participantes afirmaram que as ferramentas de codificação por IA costumam gerar sugestões de código inseguras. Ao mesmo tempo, menos de 10% dessas organizações automatizam a maioria das verificações de segurança. Além disso, 80% dos desenvolvedores ignoram políticas de segurança de código gerado por IA. Para reduzir os riscos das ferramentas de codificação por IA e da dependência excessiva de IA, as equipes de tecnologia precisam implementar medidas de segurança para acompanhar a aceleração do ritmo de desenvolvimento de código, aumentar a automatização de processos de segurança e instruir equipes sobre o uso seguro de sugestões de IA.

Parte um

Riscos da terceirização da segurança do código para IA

As respostas da pesquisa indicam que a complementação de código por IA continua injetando riscos de segurança no processo de desenvolvimento. Além disso, os desenvolvedores ativamente ignoram as políticas de uso de IA para codificação. Tudo isso ocorre sem que existam proteções adequadas, como verificação automatizada de código. O código aberto representa um risco específico, já que as ferramentas de codificação por IA aceleram a velocidade e sugerem módulos de código aberto, mas não há validação programática da segurança desses componentes pelas equipes.

As ferramentas de codificação por IA geram código inseguro. No entanto, os desenvolvedores ignoram esse fato.

Em dezembro de 2022, a StackOverflow baniu todas as contribuições geradas pelo ChatGPT ao seu site de perguntas e resposta de codificação, afirmando que “a taxa média de respostas corretas do ChatGPT é muito baixa". Essa afirmação reflete os resultados de vários estudos acadêmicos respeitados da New York University e Stanford University. Esses estudos constataram que as ferramentas de complementação de código por IA fazem sugestões inseguras repetidamente e que desenvolvedores com algo grau de dependências dessas ferramentas geram código mais inseguro. 

Na nossa pesquisa, 75,8% dos participantes afirmaram que o código gerado por IA é mais seguro do que o código humano. Essa enorme discrepância indica problemas importantes na forma como as organizações protegem o processo de desenvolvimento contra ferramentas de codificação por IA e instruem as equipes de tecnologia sobre os riscos conhecidos da utilização de IA para gerar código.

Porcentagem de codificadores que apresentam respostas seguras a perguntas sobre codificação (com IA vs. sem IA)

Usando IA

Não usando IA

80%

60%

40%

20%

0%

0%

20%

40%

60%

80%

Criptografia e descriptografia

Assinatura de mensagens

Diretório em área restrita

SQL

Fonte: “Do Users Write More Insecure Code with AI Assistants?”, Stanford University

Para 56,4% dos participantes, é comum encontrar problemas de segurança nas sugestões de código geradas por IA

Apesar de expressar muita confiança nas ferramentas de complementação de código por IA e demonstrar uma forte adoção dessas ferramentas, os participantes reconhecem que a IA introduz problemas de segurança. Para 56,4% deles, é ocasional ou frequente a introdução de problemas de codificação pela IA. 

Isso indica que as ferramentas de IA exigem verificação e auditoria de todas as sugestões devido à alta taxa de produção de código possivelmente falho. Embora os participantes relatem que os problemas de segurança nas sugestões de código são comuns, 75,4% classificam a segurança das sugestões de correção de código geradas por IA como boa ou excelente, o que indica um profundo viés cognitivo extremamente perigoso para a segurança dos aplicativos.

Com que frequência você encontra um problema de segurança em código sugerido por uma ferramenta de IA?

Frequentemente

20%

Ocasionalmente

35%

Raramente

34%

Nunca

5%

Não tenho certeza

3%

Como você avalia a segurança das sugestões de correção de código geradas por IA?

60%

50%

40%

30%

20%

10%

0%

0%

10%

20%

30%

40%

50%

60%

Excelente

Boa

Razoável

Ruim

Não se aplica

Excelente

Boa

Razoável

Ruim

Não se aplica

Políticas de segurança são ignoradas por 80% dos participantes, mas apenas 10% verificam a maioria do código

A maioria das organizações dos participantes conta com políticas que permitem pelo menos alguma utilização de ferramentas de IA, mas quase todas relataram que os desenvolvedores ignoram essas políticas. Ou seja, a confiança na entrega de código e sugestões por IA é maior que a depositada nas políticas de IA da empresa.

Com a rápida adoção de IA pelas empresas, essa discrepância cria riscos enormes, já que não há uma automação dos processos de segurança para proteger o código. Apenas 9,7% dos participantes afirmaram que suas equipes automatizam 75% ou mais das verificações de segurança, embora o uso de ferramentas de IA pelos desenvolvedores provavelmente acelere a produção de código. Essa falta de conformidade com políticas, agregada à maior velocidade de geração de código, aumenta mais do que nunca a importância da verificação de segurança.

Com que frequência os desenvolvedores da sua organização ignoram políticas de segurança para usar ferramentas de complementação de código por IA?

Sempre

23%

Muitas vezes

31%

Algumas vezes

25%

Raramente

12%

Nunca

7%

Qual a porcentagem de automação da sua verificação de segurança?

50%

40%

30%

20%

10%

0%

0%

10%

20%

30%

40%

50%

1% a 25%

26% a 50%

51% a 75%

76% a 100%

1% a 25%

26% a 50%

51% a 75%

76% a 100%

“Ao usar análises estáticas de IA do Snyk Code e sua mais recente inovação, o DeepCodeAI Fix, as equipes de desenvolvimento e segurança nos ajudam a criar software com mais rapidez e proteção.”

ICE/NYSE

Steve Pugh

CISO, ICE/NYSE

IA aumenta a exposição de segurança da cadeia de suprimentos de código aberto

Na pesquisa, 73,2% dos participantes afirmaram que contribuem com projetos de código aberto. Portanto, o participante médio da pesquisa tem familiaridade com código aberto. Apesar dessa compreensão, poucos usam práticas de segurança mais avançadas e confiáveis para validar a segurança das sugestões de código geradas pelas ferramentas de codificação por IA. Apenas 24,6% usaram análise de composição de software (SCA) para fazer essa validação. O aumento na velocidade provavelmente acelerará a aceitação de componentes de código aberto inseguros no código. 

Os sistemas de codificação por IA usam algoritmos de aprendizado por reforço para aprimorar e ajustar resultados. Portanto, quando usuários aceitam componentes de código aberto inseguros incorporados nas sugestões, aumenta a probabilidade de que os sistemas de IA identifiquem esses componentes como seguros, mesmo quando não é esse o caso. Esse processo pode criar um ciclo de feedback perigoso e possivelmente aumentar o número de sugestões inseguras.

Você usa ferramentas de complementação de código por IA em projetos de código aberto?

Sim

83%

Não

16%

Como você verifica a segurança de pacotes e bibliotecas de código aberto incluídas nas sugestões de código geradas por IA?

60%

40%

20%

0%

0%

20%

40%

60%

Verificação das informações no registro ou gerenciador de pacotes

Classificações de repositório

Atividade da comunidade

Verificação de uma política de divulgação responsável (como SECURITY.md)

Cartão de pontuação de segurança

Ferramenta de SCA

Revisões de código

Não há verificação da segurança de pacotes de código aberto sugeridos por ferramentas de IA

Verificação das informações no registro ou gerenciador de pacotes

Classificações de repositório

Atividade da comunidade

Verificação de uma política de divulgação responsável (como SECURITY.md)

Cartão de pontuação de segurança

Ferramenta de SCA

Revisões de código

Não há verificação da segurança de pacotes de código aberto sugeridos por ferramentas de IA

IA considerada parte da cadeia de suprimentos de software, mas poucos alteram as práticas

Para 55,1% dos participantes, suas organizações já consideram a complementação de código por IA como parte da cadeia de suprimentos de software. Essa situação não levou a mudanças significativas nos processos de segurança de aplicativos orientados por IA. Segundo a maioria dos participantes, suas equipes adotaram pelo menos uma mudança nas práticas de segurança de software como resultado do uso de ferramentas de complementação de código por IA. No entanto, as porcentagens gerais nesta pergunta de múltipla escolha foram baixas.

A maior mudança percentual foi o aumento das verificações de segurança, por 18,4% dos participantes. Essa baixa adoção de mudanças pode ser atribuída à falsa percepção de que as sugestões de código geradas por IA são mais seguras do que o código humano. Fundamentalmente, alterações significativas na nossa forma de trabalho normalmente exigem revisão e mudanças correspondentes no gerenciamento de risco para abordar riscos novos/adicionais resultantes dessas alterações.

Sua organização considera a complementação de código por IA como parte da cadeia de suprimentos de software?

Sim

55%

Não

22%

Não tenho certeza

19%

Não se aplica

2%

Como a sua organização alterou as práticas de segurança de software devido à complementação de código por IA?

20%

15%

10%

5%

0%

0%

5%

10%

15%

20%

Auditorias de código mais frequentes

Auditorias de código mais detalhadas

Verificações de segurança mais frequentes

Adição de novas ferramentas

Implementação de automação de segurança

Adição de novos processos de segurança (por exemplo, SBOMs, SALSA)

Não houve alteração

Auditorias de código mais frequentes

Auditorias de código mais detalhadas

Verificações de segurança mais frequentes

Adição de novas ferramentas

Implementação de automação de segurança

Adição de novos processos de segurança (por exemplo, SBOMs, SALSA)

Não houve alteração

Parte dois

Desenvolvedores reconhecem os riscos de confiança cega na IA

Ainda que os desenvolvedores considerem o código produzido por IA confiável, existe uma preocupação generalizada de que as ferramentas de complementação de código baseadas em IA vão gerar maior insegurança e uma dependência excessiva dessas ferramentas. Nas organizações que limitam o uso de IA, problemas de qualidade e segurança de código são o principal motivo dessa restrição. Os participantes reconhecem que uma porcentagem significativa das equipes de AppSec enfrentam dificuldades para acompanhar a maior velocidade de codificação. Todos esses indícios revelam a necessidade de priorizar alterações na utilização de processos e tecnologias (mais verificações de segurança automatizadas) com a educação contínua das equipes de desenvolvimento para que fiquem mais cientes dos riscos reais das sugestões de código geradas por IA.

Preocupação com segurança demonstrada por 86% dos participantes indica dissonância cognitiva

A grande maioria dos participantes expressou preocupações sobre as implicações de segurança do uso de ferramentas de complementação de código por IA. Essa necessidade contrasta com a forte confiança na capacidade de as ferramentas de codificação por IA gerarem código seguro e sugerirem código para aumentar a segurança.

Possivelmente, essa dissonância cognitiva resulta da mentalidade de rebanho: os desenvolvedores acreditam que, como todos usam ferramentas de codificação por IA, elas devem ser confiáveis e isso norteia suas ações. No entanto, em um nível mais contemplativo, eles compreendem os riscos e reconhecem que a IA pode injetar mais código inseguro do que percebem ou conseguem identificar facilmente sem medidas de segurança mais amplas.

Qual o seu nível de preocupação com as implicações mais amplas de segurança relacionadas ao uso de ferramentas de complementação de código por IA?

Muito preocupado

37%

Um pouco preocupado

49%

Não preocupado

13%

Preocupações com segurança e privacidade de dados são os principais motivos das restrições ao código gerado por IA

No pequeno subconjunto de empresas que restringem, parcial ou totalmente, as ferramentas de codificação por IA, a preocupação mais comum por trás dessas restrições foi segurança de código (57%), seguida por privacidade de dados (53,8%) e qualidade do código (46,4%). Todos os fatores importantes que motivaram a restrição da IA eram relacionados à segurança, o que reflete as preocupações da liderança sobre possíveis impactos negativos ou não mitigados da complementação de código por IA. 

Se sua organização restringe o uso de ferramentas de codificação por IA, quais são os motivos dessas restrições?*

60%

40%

20%

0%

0%

20%

40%

60%

Preocupações com segurança

Preocupações com privacidade de dados

Preocupações com garantia de qualidade

Preocupações com custos

Falta de adesão da administração

Nenhuma das opções anteriores

Preocupações com segurança

Preocupações com privacidade de dados

Preocupações com garantia de qualidade

Preocupações com custos

Falta de adesão da administração

Nenhuma das opções anteriores

Desenvolvedores se preocupam com a dependência excessiva de IA

Uma preocupação comum é que desenvolvedores que usam IA passarão a depender excessivamente das ferramentas de codificação e perderão a capacidade de criar código próprio ou executar tarefas essenciais de codificação nas quais costumam usar IA. Em algumas pesquisas, trabalhadores de conhecimento que dependem excessivamente de uma IA sólida tornam-se menos propensos a reconhecer boas soluções, o que pode ser atípico ou fora do padrão. Os participantes compartilharam essa preocupação: 45% afirmam ter alguma preocupação e 40% dizem estar muito preocupados. Ou seja, aparentemente estão cientes dos riscos de terceirizar para a IA uma parte excessiva de suas habilidades.

Qual o seu nível de preocupação com o uso excessivo de ferramentas de complementação de código baseadas em IA pelos desenvolvedores?

Muito preocupado

40%

Um pouco preocupado

46%

Não preocupado

14%

Para 58,7% das equipes de AppSec, é difícil acompanhar o ritmo

Como as ferramentas de codificação por IA aumentaram a produtividade e provavelmente agilizaram a produção de código (ou até mesmo o número de linhas de código geradas), perguntamos se essa aceleração aumentou a pressão sobre as equipes de AppSec. Segundo os participantes, metade das equipes de AppSec enfrentam alguma dificuldade e um quinto delas, muita dificuldade para acompanhar o novo ritmo da complementação de código orientada por IA. Esse resultado é um tanto previsível quando ferramentas de complementação de código por IA aumentam significativamente a produtividade. Além disso, realça os desafios criados pela maior pressão sobre processos que, mesmo antes da utilização de IA, costumavam ter dificuldade para acompanhar o ritmo de desenvolvimento de software.

Sua equipe de AppSec ou segurança enfrenta dificuldades para acompanhar a velocidade de desenvolvimento resultante da complementação de código por IA?

Muita dificuldade

20%

Alguma dificuldade

38%

Acompanha normalmente

35%

Não é afetada

6%

Conclusão

Educação e automação de segurança para corrigir o viés de infalibilidade da IA

Há um descompasso evidente entre a percepção dos desenvolvedores de que as sugestões de codificação geradas por IA são seguras e a grande maioria das pesquisas que frequentemente indicam o contrário. Esta pesquisa revela um contraste acentuado por respostas aparentemente conflitantes. A maioria dos participantes (incluindo profissionais de segurança) considera as sugestões de código geradas por IA seguras mas, ao mesmo tempo, admite que são comuns as sugestões inseguras. 


É uma questão de percepção e educação, decorrente da mentalidade de grupo e causada pelo princípio de validação social e pela confiança inerente dos humanos em sistemas que se apresentam com autoridade. A crença infundada de que as ferramentas de codificação por IA têm um alto grau de precisão e falham menos que humanos circula livremente e é aceita por muitos como fato. Para as organizações, é essencial erradicar essa falsa e perigosa percepção reforçando a educação das equipes sobre as tecnologias adotadas e protegendo o código gerado por IA com ferramentas de segurança aprovadas pelo setor e com histórico comprovado de segurança.

Sobre este relatório

A pesquisa tinha 30 perguntas sobre como as organizações percebem e usam ferramentas de complementação de código por IA e codificação generativa. A pesquisa entrevistou 537 participantes com funções de tecnologia. Do painel, 45,3% eram dos Estados Unidos, 30,9% do Reino Unido e 23,6% do Canadá. Solicitamos que os participantes identificassem suas funções escolhendo todos os cargos aplicáveis. As funções mais selecionadas foram gerenciamento de desenvolvedores (42,1%), desenvolvedor (37,6%), gerenciamento de TI (30,9%) e gerenciamento de segurança (30,7%). Essa distribuição indica que o painel incluiu uma parte significativa de participantes com funções gerenciais. Os participantes estavam amplamente distribuídos entre diversos setores. O setor de SaaS/tecnologia contou com o maior grupo de participantes (21%) e foi o único a representar mais de 20% das respostas. Somente dois outros setores representaram mais de 10% dos participantes: serviços de negócios (17,1%) e serviços financeiros/fintech (11,2%). No painel da pesquisa, predominaram as empresas menores: 48,6% dos participantes trabalham em empresas com 500 funcionários ou menos. Apenas 12,8% trabalham em empresas com mais de 5.000 funcionários. Além disso, os participantes usam uma grande variedade de ferramentas de codificação. A maioria citou o ChatGPT (70,3%), com Amazon CodeWhisperer (47,4%), GitHub Copilot (43,7%), VisualStudio Intellicode da Microsoft (35,8%) e Tabnine (19,9%) logo em seguida. Essa era uma pergunta de múltipla escolha. As altas porcentagens das várias respostas indicam que os participantes provavelmente usam mais de uma ferramenta de codificação por IA no trabalho, por diversos motivos ou para diferentes tarefas.

Patch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo SegmentPatch Logo Segment

Snyk é uma plataforma de segurança para desenvolvedores. Integrando-se diretamente a ferramentas de desenvolvimento, fluxos de trabalhos e pipelines de automação, a Snyk possibilita que as equipes encontrem, priorizem e corrijam mais facilmente vulnerabilidades em códigos, dependências, contêineres e infraestrutura como código. Com o suporte do melhor aplicativo do setor e inteligência em segurança, a Snyk coloca a experiência em segurança no kit de ferramentas de todo desenvolvedor.

Comece grátisAgende uma demonstração ao vivo

© 2024 Snyk Limited
Registrada na Inglaterra e País de Gales

logo-devseccon