In this article
Detecção aprimorada de vulnerabilidades com IA
Como uma empresa que coloca a IA em primeiro lugar, a Snyk tem o compromisso de integrar a inteligência artificial a todas as etapas dos nossos processos de engenharia. Esse compromisso nos leva a buscar continuamente maneiras inovadoras de usar a IA para fortalecer nossas soluções de segurança. Recentemente, lançamos com sucesso a primeira versão de dois projetos que demonstram nossa dedicação ao uso de tecnologia de ponta para aprimorar a detecção de vulnerabilidades. Esses projetos foram planejados estrategicamente para reduzir o trabalho manual, aumentar significativamente a precisão e permitir que nossos especialistas em segurança se concentrem em tarefas estratégicas de maior impacto.
O problema: análise manual e excesso de informações
No universo da cibersegurança, estar à frente das vulnerabilidades é fundamental. A Snyk se orgulha de seus extensos dados de segurança, que são a base da nossa capacidade de fornecer informações precisas e em tempo hábil sobre possíveis ameaças. Desde a fundação da empresa, uma equipe dedicada de profissionais de segurança trabalha incansavelmente para manter nossos dados de vulnerabilidades atualizados. Para isso, usa diversas ferramentas e automações para acompanhar vulnerabilidades emergentes, incluindo exploits de dia zero, e garantir que sejamos os primeiros a informar nossos usuários sobre elas.
No entanto, essa tarefa essencial está longe de ser simples. Nossos analistas passam boa parte do dia, muitas vezes várias horas, examinando um volume enorme de informações. Eles analisam diversos eventos, como comentários em repositórios do GitHub, discussões em fóruns e comunicados de segurança, em busca de possíveis sinais de vulnerabilidades recém-descobertas. É como procurar uma agulha no palheiro. O volume de informações é avassalador, e a grande maioria desses eventos — mais de 95% — acaba sendo falso positivo.
Exemplo de situação
Imagine que um analista encontre um comentário no GitHub dizendo: "Este código parece ter um problema na validação de entrada." À primeira vista, isso pode indicar uma possível vulnerabilidade. No entanto, depois de investigar a conversa e a alteração no código manualmente, o analista pode descobrir que o "problema" é apenas uma preferência de estilo de programação, e não uma falha de segurança. Esse processo demorado se repete centenas de vezes por dia, desperdiçando muito esforço e podendo levar ao esgotamento dos analistas.
Esse trabalho manual e repetitivo não só consome um tempo valioso, como também aumenta o risco de erro humano. Diante de tantos dados, informações cruciais podem passar despercebidas, atrasando a identificação de vulnerabilidades e abrindo caminho para possíveis violações de segurança.
Proteja seu futuro na era da IA no Snyk Launch 2025
Participe do Snyk Launch e descubra como criar uma base para desenvolver com segurança e confiança na era da IA.
IA para classificar possíveis vulnerabilidades: nossa solução
Ao reconhecer esse desafio, nossa equipe de Machine Learning percebeu que os avanços dos modelos de linguagem grandes (LLMs) poderiam ajudar a automatizar boa parte dessa análise. O objetivo era desenvolver um modelo de IA capaz de analisar esses eventos e sinalizar com precisão aqueles que realmente representassem possíveis vulnerabilidades.
A primeira versão do projeto consistiu em criar uma solução baseada em uma técnica simples de prompt one-shot. Essa solução serviu como núcleo do nosso sistema de classificação. Os principais componentes da solução foram:
Aprimoramento do prompt one-shot: Realizamos várias rodadas de experimentos para garantir que o prompt e o contexto fornecido fossem suficientes. Usando apenas os dados brutos de um evento — no nosso caso, um comentário —, obtivemos resultados bastante bons, sem precisar investir tempo e recursos extras em ajustes finos.
Prioridade para alta revocação: Nosso principal objetivo era garantir uma alta revocação, ou seja, não deixar passar nenhuma vulnerabilidade real. Embora os experimentos iniciais tenham alcançado uma revocação de 95%, descobrimos que, ao ajustar o prompt para permitir a resposta “talvez” em caso de dúvida, conseguimos chegar perto de 100% de revocação, mantendo uma precisão relativamente boa.
Resultados
Mantivemos uma revocação impressionante de 100% — ou seja, nenhuma das muitas vulnerabilidades que descobrimos todos os meses passou despercebida — e sinalizamos dezenas de eventos de baixa relevância com alta confiança todas as semanas.
Para nós, isso representa uma redução de 10% no número de eventos que os analistas precisam avaliar. Assim, nossos clientes continuam contando com as mesmas garantias de segurança, sem concessões, e os analistas podem encontrar mais problemas relevantes.
Classificador de commits de correção: análise de versões
O segundo projeto foi criado para aprimorar a análise de novas versões de pacotes e identificar se elas incluíam correções para vulnerabilidades conhecidas. Antes, essa tarefa era manual, demorada e sujeita a erros: os analistas precisavam revisar os commits de cada nova versão.
O desafio de analisar versões
Todo pacote de software recebe atualizações e novas versões. Cada versão pode conter diversos commits, cada um representando uma alteração no código. Identificar quais commits corrigem vulnerabilidades específicas exige um conhecimento profundo do código e da natureza da vulnerabilidade. Revisar manualmente os commits de cada versão era uma tarefa árdua.
Por exemplo, imagine que nosso analista receba uma notificação sobre a nova versão 1.9.1 da biblioteca React, que contém 492 (!) commits desde a versão anterior, a 1.9.0. Para determinar se essa versão corrige uma vulnerabilidade conhecida, o analista teria que revisar todos os commits incluídos, compará-los com os detalhes de todas as vulnerabilidades conhecidas e avaliar se as alterações resolvem o problema. É claro que não seria possível fazer tudo isso manualmente. Por isso, normalmente o analista limita o tempo dedicado à tarefa e prioriza os problemas mais graves ou aqueles cuja correção foi mencionada explicitamente nas notas da versão. Mesmo assim, o processo poderia levar horas, principalmente em pacotes como o React, em que cada versão inclui muitos commits.
Classificação de commits de correção com IA: nossa abordagem
Para enfrentar esse desafio, buscamos complementar os alertas de novas versões com recomendações geradas por IA sobre a possibilidade de um commit corrigir uma vulnerabilidade específica. O processo foi dividido em várias etapas:
Recuperação dos commits relacionados: Primeiro, recuperamos todos os commits associados a uma determinada versão do pacote.
Identificação de correções com IA: Em seguida, usamos um modelo de linguagem grande para determinar se algum desses commits corrigia uma vulnerabilidade específica.
Enriquecimento dos alertas de novas versões: Quando a IA identificava uma correção, acrescentávamos essa informação aos alertas, oferecendo insights imediatos aos analistas.
Resultados
O maior ganho foi descobrir correções de vulnerabilidades que antes não eram sinalizadas. Durante o desenvolvimento da solução e a avaliação das métricas de precisão, encontramos mais de 500 correções que agora estão sendo adicionadas à nossa base de dados de segurança.
Além disso, com uma média atual de cerca de 30 descobertas automatizadas por mês graças a essa mudança, podemos supor que boa parte delas são achados adicionais que, de outra forma, teriam passado despercebidos.
Impacto geral
Com as duas melhorias já disponíveis, os usuários da Snyk estão descobrindo vulnerabilidades mais rapidamente e contam com um portfólio de segurança ainda mais completo. Assim, oferecemos o mais alto nível de segurança com a agilidade que é referência no setor.
Por fim, ao acelerar etapas essenciais do processo de análise e oferecer insights orientados por IA, aumentamos a eficiência e a precisão das nossas iniciativas de segurança. Integrar a IA aos nossos processos de gerenciamento de vulnerabilidades não é apenas um avanço tecnológico. É uma mudança fundamental na forma como abordamos a segurança, que nos permite antecipar ameaças emergentes e proteger nossos usuários com mais eficácia.
Comece gratuitamente a usar as ferramentas de segurança de código com IA da Snyk
Não é necessário cartão de crédito.
Crie uma conta com Bitbucket e confira outras opções
Ao usar a Snyk, você concorda em cumprir nossas políticas, incluindo nossos Termos de Serviço e nossa Política de Privacidade.