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.
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:
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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 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.
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