Analysis
A IA generativa poderá ajudar as equipas de DevSecOps na geração de código e documentação mais seguros, mas poderá representar um grande perigo se não for utilizada corretamente
11/03/2024
A Inteligência Artificial (IA) generativa está a preparar-se para impactar substancialmente a área de DevSecOps, mas os primeiros resultados ainda são mistos. Por um lado, espera-se que a IA generativa ajude a escrever código e documentação mais seguros, a melhorar a análise de código, a criar testes, entre várias outras funções. Por outro, receia-se o perigo da geração de código inseguro, de forma rápida e autoritária, o que poderá criar problemas para as empresas. A perspetiva otimista defende que todas as sugestões de código da IA generativa seriam seguras desde o início, através do seu treino em bibliotecas de código limpo e seguro e da exposição às políticas e estruturas internas de uma empresa, ensinando-lhe as melhores práticas. Ainda mais, esta tecnologia poderá ajudar a encontrar problemas de segurança em código existente, assim como em debugging. De acordo com um inquérito a mais de 13 mil developers, 67% dos profissionais de tecnologia afirmam que a IA já é utilizada no seu trabalho, sendo o ChatGPT a principal ferramenta mencionada, seguido pelo GitHub Copilot e pelo Bard. A tecnologia é mais utilizada para a assistência de código (quase 59%), aprendizagem e tutoriais (mais de 50%) e geração de código (cerca de 45%). Sejal Amin, CTO da Shutterstock, revela que o recurso ao GitHub Copilot teve um impacto positivo no trabalho diário dos engenheiros de software da empresa de fotografia. “Depois de apenas oito horas de aprendizagem, 90% dos developers reportaram um impacto na experiência do developer”, refere Amin. “E alguns dos primeiros comentários que recebemos é que a maioria dos nossos developers aumentou a sua produtividade”. No entanto, existem limitações àquilo que a IA generativa, até agora, consegue fazer, como é o caso da criação de segurança desde o início do processo de desenvolvimento. “Com base na nossa experiência, nenhuma ferramenta hoje está a gerar código ao nível de produção com segurança, desempenho, estabilidade, escala – todas essas coisas que precisamos de observar e que são contextualmente relevantes para o nosso negócio”, sublinha Amin. Atualmente, o código gerado ainda requer uma revisão aprofundada, o que “exige que engenheiros seniores se envolvam com o resultado que está a ser criado”, acrescenta. Uma investigação da SlashData que contou com o testemunho de 17 mil developers averiguou que 80% dos programadores acreditam que a IA generativa irá aumentar o seu potencial e produtividade no trabalho. Também os novos developers têm uma visão otimista, sendo que 80% dos developers com menos de um ano de experiência em codificação consideram que a IA generativa irá ajudá-los na utilização de ferramentas que antes não conseguiam usar, em comparação com 60% dos developers com mais de 16 anos de experiência. “Com a IA generativa e o desenvolvimento de software, prevemos algo entre 15% e 20% de mais produtividade na automação de casos de teste”, comenta Janet Worthington, analista da Forrester. “E na codificação, esperamos um punhado ainda maior – um aumento de até 50% na produtividade. A quantidade de código que as pessoas serão capazes de gerar está a disparar. Estamos a ver um nível de volume e produtividade que não víamos há muito tempo no desenvolvimento de software. E estamos apenas no início”. Segundo um estudo da LinearB com CTO e VP de engenharia, 87% das empresas estão a planear investir numa ferramenta generativa de codificação de IA este ano. Ainda mais, uma revisão do GitClear de 153 milhões de linhas de código prevê um aumento de 7% da rotatividade do código – a percentagem de código que é enviado para o repositório, mas revertido, removido ou atualizado em duas semanas – este ano, assim como um crescimento dos assistentes de codificação de IA generativos. A inteligência artificial foi também um tema importante no relatório anual da Google Cloud sobre o estado do DevOps. Os developers inquiridos revelaram que já veem o valor da IA na escrita e otimização de código e na análise de segurança, ajudando-os a aprender novas habilidades, identificar bugs, escrever testes, criar documentação, entre outros. Os dados do relatório apontam ainda que a IA tem um impacto neutro ou mesmo negativo no desempenho da equipa e da entrega de software. “Especulamos que a fase inicial da adoção de ferramentas de IA entre as empresas pode ajudar a explicar esta evidência mista”, disseram os autores. “Há muito entusiasmo sobre o potencial das ferramentas de desenvolvimento de IA… mas prevemos que levará algum tempo para que as ferramentas baseadas em IA sejam amplamente utilizadas e coordenadas na indústria”. Muitos acreditam que, com a incorporação das melhores práticas de codificação de repositórios de código públicos, o código gerado pela IA seja mais seguro desde o início e evite os erros comuns cometidos pelos developers humanos. O vice-CISO da Netskope, James Robinson, dá um exemplo: quando um developer inicia um novo trecho de código, a IA pode sugerir ou até mesmo aplicar de forma inteligente elementos como cabeçalhos de propriedade intelectual. “Isto não apenas agiliza o processo de codificação, mas também minimiza a necessidade da equipa de DevSecOps monitorizar ativamente e abordar tais considerações”, explica Robinson. Para Robinson, a adoção da IA generativa poderá levar a uma nova era no desenvolvimento de software com a sua capacidade de captação de informações contextuais. “Apesar das possíveis armadilhas, o aproveitamento de ferramentas generativas de IA, como os copilotos, capacita os developers a produzir código com menos falhas e vulnerabilidades”, defende o vice-CISO da Netskope. “Os benefícios estendem-se à estruturação de código melhorada, explicações aprimoradas e um processo de teste simplificado, reduzindo, em última análise, a carga de teste nas equipas de DevSecOps”, acrescenta Robinson. Alguns developers acreditam que a IA já é capaz de produzir um código melhor do que as equipas humanas. Um relatório da Snyk, uma plataforma de segurança de código, demonstra que, para 76% dos profissionais de tecnologia e segurança inquiridos, o código de IA é mais seguro do que o código humano. O mesmo estudo revela também que 92% consideram que a IA gera sugestões de códigos inseguros pelo menos algumas vezes, enquanto um quinto dos inquiridos afirmam que a tecnologia gera problemas de segurança “frequentemente”. Embora a utilização da IA generativa possibilite a aceleração da produção de código, apenas 10% dos entrevistados dizem que já automatizaram a maioria das suas verificações e scanning de segurança. Por sua vez, 80% revelam que os developers nas suas organizações ignoram completamente as políticas de segurança de IA. Além disto, mais de metade das organizações não alteraram os seus processos de segurança de software com a adoção de ferramentas generativas de codificação de IA. Dos que o fizeram, a mudança mais comum foi a realização mais frequente de auditorias de código, seguindo-se a implementação de automatização de segurança. |