theNet by CLOUDFLARE

Guia para CTOs sobre desenvolvimento assistido por IA

Considerações sobre a incorporação da IA em processos de engenharia


A IA generativa tem inúmeros usos, mas um dos mais promissores para as organizações são os incríveis benefícios do desenvolvimento assistido por IA. Com inovações anunciadas recentemente, como Devin AI, o primeiro engenheiro de software de IA do mundo, integrar a IA é uma proposta atraente para líderes de tecnologia que buscam ganhar eficiência em seus processos e resultados de engenharia.

As organizações podem abordar a integração da IA no desenvolvimento de códigos, especificamente, de várias maneiras. Uma opção é usar ferramentas como o GitHub Copilot para criar automaticamente um código básico e implementar uma forma de programação em pares baseada em IA. Outra opção é aproveitar desenvolvedores autônomos de IA como Devin, que têm o potencial de trabalhar de forma independente ao lado de colegas humanos.

O desenvolvimento auxiliado pela IA oferece vários benefícios para as empresas e provavelmente continuará a moldar o futuro do desenvolvimento. No entanto, também apresenta vários riscos de segurança que devem ser gerenciados para aproveitar ao máximo a tecnologia.


As vantagens do desenvolvimento aprimorado pela IA

Estima-se que 81% dos desenvolvedores já usam assistentes de codificação baseados em IA, como GitHub Copilot, Tabnine e Amazon CodeWhisperer, para responder a perguntas e escrever códigos difíceis. À medida que a IA se torna mais avançada e onipresente, as equipes de desenvolvimento provavelmente se tornarão ainda mais dependentes dela.

Adotar o uso da IA para o desenvolvimento tem inúmeros benefícios em potencial para as equipes de desenvolvedores, como:

  1. Eficiência aprimorada: a IA pode executar automaticamente várias tarefas de desenvolvimento, que vão desde responder a perguntas básicas até escrever código automaticamente e projetar IUs automaticamente. Esses recursos podem acelerar o tempo de lançamento no mercado, reduzir os custos de desenvolvimento e permitir que as empresas façam mais com um número menor de funcionários. Um estudo de pesquisa descobriu que o uso do GitHub Copilot permitiu que os desenvolvedores concluíssem as tarefas de codificação 55% mais rápido. Essa eficiência aprimorada pode permitir que uma organização reduza o número de funcionários ou expanda drasticamente o volume de código que produz.

  2. Redução do esgotamento dos desenvolvedores: a capacidade da GenAI de automatizar a criação de código básico elimina a necessidade de os desenvolvedores escreverem códigos simples e repetitivos. Melhorar a experiência do desenvolvedor reduz o risco de esgotamento ou rotatividade de funcionários se os desenvolvedores se cansarem dessas tarefas. Em 2023, 73% dos desenvolvedores relataram que sofreram esgotamento em algum momento de suas carreiras. De acordo com 60-75% dos desenvolvedores, a capacidade da IA de automatizar essas tarefas aumenta a satisfação no trabalho.

  3. Melhor qualidade de código: além de escrever código, a IA também pode ser usada para detectar automaticamente bugs, vulnerabilidades e outros problemas com o código durante o processo de desenvolvimento. Encontrar e corrigir problemas antes que eles cheguem à produção reduz o risco de uma organização desperdiçar tempo e recursos emitindo correções ou corrigindo uma violação de dados.

  4. Desenvolvimento especializado: a IA pode escrever código especializado que uma equipe de desenvolvimento não tem conhecimento e experiência para escrever internamente. Eliminar a necessidade de conhecimento especializado reduz a necessidade de contratar especialistas externos ou oferecer grandes incentivos para atrair especialistas no assunto.

  5. Educação e aprimoramento de habilidades de desenvolvedores: a GenAI tem o potencial de fornecer treinamento "just in time" aos desenvolvedores, aprimorando a segurança do código e atualizando os desenvolvedores novatos mais rapidamente. Em média, os desenvolvedores aceitam 30% das sugestões de código e os desenvolvedores novatos têm uma taxa de aceitação mais alta. Isso reduz o custo do gerenciamento de vulnerabilidades e permite que as empresas maximizem os recursos de sua equipe de desenvolvimento.


Os riscos do desenvolvimento com IA

A GenAI é uma ferramenta poderosa, mas não é uma solução perfeita. Ao ponderar se e como integrar a IA nos pipelines de desenvolvimento, o CTO também deve considerar os riscos e os possíveis impactos na organização.

Uma violação recente na Samsung é um excelente exemplo dos riscos de não gerenciar adequadamente o uso da IA. A empresa já havia proibido o uso de IA generativa, mas suspendeu essa proibição para aumentar a produtividade dos funcionários. Em três semanas, a empresa supostamente vazou dados confidenciais de P&D de semicondutores, código-fonte e gravações de reuniões internas para o ChatGPT em uma tentativa de corrigir erros de código e gerar atas de reuniões automaticamente. Esses dados são acessíveis à OpenAI e podem ter sido usados para treinar seu modelo, resultando possivelmente na exposição a outros usuários também.

Alguns dos riscos mais significativos do desenvolvimento auxiliado pela IA incluem os seguintes:

  1. Vazamentos de dados confidenciais: as ferramentas de GenAI são projetadas para estar em constante aprendizado e podem se treinar com as entradas do usuário. Dados confidenciais e amostras de código inseridos em uma ferramenta de GenAI podem se tornar parte do modelo e ser exibidos para outros usuários. Em 2023, a Samsung vazou acidentalmente dados confidenciais de semicondutores via ChatGPT, e a pesquisa descobriu que essas ferramentas também podem incluir outros dados confidenciais em sugestões, como endpoints de API privados.

  2. Código de baixa qualidade: a GenAI é imperfeita e pode criar respostas incorretas e código de baixa qualidade. O uso de código gerado automaticamente pode afetar negativamente a experiência do usuário ou introduzir vulnerabilidades em um aplicativo.

  3. Compreensão de código reduzida: os desenvolvedores frequentemente estão "de plantão" porque escrevem o código, entendem-no e podem resolver qualquer problema. O código gerado por IA é mais como uma caixa preta, o que pode prejudicar a capacidade de uma equipe de desenvolvimento de corrigi-lo se algo der errado.

  4. Alucinações de IA: em desenvolvimento, as alucinações de IA podem levar a GenAI a recomendar o uso de pacotes e bibliotecas inexistentes. Se um invasor cria esses pacotes, pode injetar vulnerabilidades ou códigos maliciosos nos aplicativos de qualquer pessoa que usar esses pacotes recomendados.

  5. Problemas de licenciamento: as recomendações de IA ou o código gerado automaticamente podem usar código de terceiros com termos de licenciamento incompatíveis. Por exemplo, se a IA usar um código com uma licença copy-left, uma organização pode precisar tornar o código-fonte aberto ou enfrentar processos de propriedade intelectual.

  6. Aumento dos gastos com nuvem: o código gerado por IA pode fazer solicitações de serviços pagos ou usar de forma ineficiente o armazenamento, a computação e outros recursos em nuvem. Como resultado, os gastos com nuvem podem aumentar devido ao código não otimizado.

Aprisionamento tecnológico da solução: os assistentes de codificação habilitados por IA estão na fase inicial e novas soluções estão surgindo regularmente. Incluir uma solução específica em um fluxo de trabalho pode reduzir a eficiência ou forçar uma mudança cara quando uma nova tecnologia estiver disponível.


Gerenciar os riscos do desenvolvimento com IA

A IA tem inúmeros benefícios em potencial e é provavelmente o futuro do desenvolvimento. Idealmente, a GenAI permite que as organizações criem códigos mais sofisticados, eficientes e seguros com menos recursos e em um cronograma mais apertado do que seria possível com uma equipe de desenvolvimento totalmente humana. As empresas que se recusam a permitir o desenvolvimento auxiliado pela IA correm o risco de serem superadas e perder os melhores talentos para aquelas que o fazem.

No entanto, os CTOs que procuram usar a IA para aprimorar seus processos de desenvolvimento também precisam considerar e gerenciar os riscos da tecnologia. Aqui estão oito práticas recomendadas que podem ajudar a reduzir ou eliminar os maiores riscos do desenvolvimento auxiliado pela IA:

  1. Validar as recomendações da IA: as alucinações da IA são um problema comum e esses erros podem ser extremamente prejudiciais no desenvolvimento de software. Verificar duas vezes o código e as informações geradas por um sistema de IA quanto à precisão antes de usá-los.

  2. Gerenciar os riscos dos dados de IA: fazer uma pergunta de programação à IA ou fazer com que ela gere um código básico é de risco relativamente baixo. Fornecer um IP confidencial para verificar erros ou fazer uma pergunta arrisca a exposição de dados. Treinar desenvolvedores no uso aceitável da IA e implementar salvaguardas de prevenção contra perda de dados (DLP) para gerenciar o risco de vazamentos.

  3. Implementar DevSecOps: a IA pode acelerar rapidamente o desenvolvimento de código e reduzir a compreensão dos desenvolvedores sobre o código que estão escrevendo. A implementação de práticas recomendadas de DevSecOps, como criar e testar requisitos focados em segurança, reduz o risco de a segurança passar despercebida.

  4. Automatizar os testes de segurança: o código gerado por IA pode introduzir vulnerabilidades ou código não funcional na base de código de uma organização. A criação de testes de segurança, incluindo o teste de segurança de aplicativos estáticos (SAST) e o teste dinâmico de segurança de aplicativos (DAST), em pipelines de CI/CD automatizados limita os possíveis impactos de código inseguro gerado por IA.

  5. Realizar testes funcionais e não funcionais: além de introduzir vulnerabilidades, o código gerado por IA pode ser de qualidade inferior ou até mesmo não funcional. A realização de testes de unidade para requisitos funcionais e não funcionais pode ajudar a garantir que o código seja funcional e de desempenho. Impor a conformidade com guias de estilo e práticas recomendadas de programação também pode ajudar a identificar e evitar códigos problemáticos.

  6. Monitorar cadeias de suprimentos de software: a IA pode recomendar ou usar pacotes ou bibliotecas vulneráveis, maliciosos ou inexistentes com termos de licenciamento incompatíveis. A execução da análise de composição de software (SCA) e a manutenção de uma lista de materiais de software (SBOM) fornecem visibilidade das dependências do aplicativo e permitem que elas sejam validadas antes do lançamento.

  7. Implementar a proteção do tempo de execução: apesar dos melhores esforços dos desenvolvedores, o código vulnerável provavelmente alcançará a produção. O aplicativo deve ser protegido usando WAFs, WAAP, RASP e outras defesas que podem bloquear tentativas de exploração no tempo de execução.

  8. Considerar a IA interna: os LLMs de código aberto permitem que as empresas hospedem seus próprios sistemas de IA. Manter a IA interna reduz a ameaça de vazamento de dados, dados de treinamento envenenados e outros riscos do uso da GenAI.

O Cloudflare para IA oferece aos CTOs as ferramentas de que precisam para criar, hospedar e defender os pipelines de desenvolvimento auxiliado por IA e os aplicativos que produzem. Saiba mais sobre como aproveitar o poder da IA ao implementar a segurança por design.

Este artigo é parte de uma série sobre as tendências e os assuntos mais recentes que influenciam os tomadores de decisões de tecnologia hoje em dia.


Saiba mais sobre esse assunto

Saiba mais sobre como simplificar e proteger iniciativas de IA no e-book A nuvem de conectividade: uma maneira de recuperar o controle da TI e da segurança.



Principais conclusões

Após ler este artigo, você entenderá:

  • Como o desenvolvimento assistido pela IA beneficia os processos de engenharia

  • Os riscos do uso de IA para desenvolvimento de software

  • Oito práticas recomendadas para reduzir ou eliminar os riscos do desenvolvimento auxiliado pela IA


Recursos relacionados


Receba um resumo mensal das informações mais populares da internet.