O desenvolvimento de software se beneficiou muito do uso de Modelos de Linguagem em Grande Escala (LLMs) para produzir código-fonte de alta qualidade, principalmente porque as tarefas de codificação agora levam menos tempo e dinheiro para serem concluídas. No entanto, apesar destas vantagens, os LLMs produzem frequentemente código que, embora funcional, muitas vezes apresenta falhas de segurança, de acordo com pesquisas atuais e testes do mundo real. Esta limitação se deve ao fato de que esses modelos são treinados em grandes volumes de dados de código aberto, muitas vezes utilizando técnicas de codificação inseguras ou ineficazes. Por causa disso, mesmo que os LLMs sejam capazes de produzir código funcional, a presença desses riscos pode comprometer a segurança e a confiabilidade do software produzido, especialmente para aplicações sensíveis à segurança.
Para resolver este problema, é necessário um mecanismo que possa corrigir automaticamente as instruções fornecidas pelos LLMs para garantir que o código gerado seja seguro e funcional. Uma equipe de pesquisadores do New Jersey Institute of Technology e do Qatar Computing Research Institute apresentou o PromSec, uma solução criada para resolver esse problema, que visa melhorar as informações do LLM para gerar código seguro e eficiente. Funciona combinando dois componentes importantes, como este.
- Remoção de vulnerabilidades: PromSec usa uma rede neural gráfica generativa (gGAN) para detectar e solucionar falhas de segurança no código gerado. Este método específico tem como objetivo encontrar e corrigir vulnerabilidades no código.
- Loop interativo: entre gGAN e LLM, PromSec estabelece um ciclo de feedback iterativo. Depois que as vulnerabilidades são detectadas e corrigidas, o gGAN cria informações melhores com base no código atualizado, que o LLM usa como guia para escrever código mais seguro na próxima iteração. Como resultado da interação dos modelos, as informações são melhoradas em termos de desempenho e segurança do código.
O uso de aprendizagem diferencial dentro do gGAN, que permite ao PromSec melhorar a geração de código como uma questão de duplo objetivo, é um de seus recursos exclusivos. Isso significa que o PromSec reduz a quantidade de considerações de LLM necessárias e, ao mesmo tempo, melhora o desempenho e a segurança do código. Como resultado, o sistema pode gerar código seguro e confiável rapidamente, economizando tempo e poder de computação necessários para múltiplas iterações de geração de código e análise de segurança.
O desempenho do PromSec foi demonstrado por meio de testes rigorosos com conjuntos de dados Python e código Java. Os resultados confirmaram que o PromSec aumenta significativamente o nível de segurança do código gerado, preservando a funcionalidade pretendida. O PromSec pode abordar riscos que outros métodos não percebem, mesmo quando comparado a técnicas mais avançadas. O PromSec também proporciona uma redução significativa nos custos operacionais, reduzindo o número de consultas LLM, a duração da análise de segurança e a quantidade total de processamento.
A generalização do PromSec é outra vantagem importante. O PromSec pode criar comandos avançados para um LLM que podem ser usados para outro, mesmo usando diferentes linguagens de programação. Essas informações podem corrigir vulnerabilidades não detectadas, tornando o PromSec uma opção confiável para diferentes cenários de codificação.
A equipe resume suas principais contribuições da seguinte forma.
- É introduzido o PromSec, que é um mecanismo exclusivo que automatiza comandos LLM para gerar código-fonte seguro, preservando a funcionalidade pretendida do código.
- O modelo gGAN, ou rede adversária geradora de grafos, é apresentado. Este modelo apresenta o problema de corrigir questões de segurança do código-fonte como uma tarefa de preparação com dois objetivos: medir a segurança e o desempenho do código. Usando uma função exclusiva de perda diferencial, o gGAN usa aprimoramentos de segurança semântica, garantindo que o código mantenha a funcionalidade pretendida e ao mesmo tempo seja altamente seguro.
- Extensas pesquisas foram conduzidas mostrando como o PromSec pode melhorar significativamente o desempenho e a segurança do código escrito pelo LLM. Foi demonstrado que as informações aprimoradas do PromSec podem ser usadas em diversas linguagens de programação, abordar equações de fraqueza comuns (CWEs) e ser transferidas entre diferentes LLMs.
Concluindo, o PromSec é um grande avanço no uso de LLMs para criar código seguro. Ele pode aumentar muito a confiabilidade dos LLMs no desenvolvimento de software em larga escala, reduzindo as falhas de segurança no código gerado pelo LLM e fornecendo uma solução escalonável e acessível. Para garantir que os LLMs possam ser incorporados de forma segura e contínua nas técnicas de codificação e, em última análise, expandir a sua utilização em vários setores, este desenvolvimento reúne o que há de melhor.
Confira Papel. Todo o crédito deste estudo vai para os pesquisadores deste projeto. Além disso, não se esqueça de nos seguir Twitter e junte-se ao nosso Estação telefônica de novo LinkedIn Gracima. Se você gosta do nosso trabalho, você vai gostar do nosso jornal..
Não se esqueça de participar do nosso Mais de 50k ML SubReddit
⏩ ⏩ WEBINAR GRATUITO DE IA: 'Vídeo SAM 2: Como sintonizar seus dados' (quarta-feira, 25 de setembro, 4h00 – 4h45 EST)
Tanya Malhotra está em seu último ano na Universidade de Estudos de Petróleo e Energia, Dehradun, cursando BTech em Engenharia de Ciência da Computação com especialização em Inteligência Artificial e Aprendizado de Máquina.
Ele é um entusiasta de Data Science com forte pensamento analítico e crítico e grande interesse em adquirir novas habilidades, liderar equipes e gerenciar o trabalho de maneira organizada.
⏩ ⏩ WEBINAR GRATUITO DE IA: 'Vídeo SAM 2: Como sintonizar seus dados' (quarta-feira, 25 de setembro, 4h00 – 4h45 EST)