Skip to main content

Como a Snyk usa IA na segurança para desenvolvedores

Escrito por

Frank Fischer

feature snyklaunch

4 de abril de 2023

0 minutos de leitura

Como referência na aplicação de IA à segurança para desenvolvedores, a Snyk adota uma abordagem única. Hoje, queremos mostrar um pouco de como a Snyk usa IA e ciência de dados atualmente e dar uma prévia do que vem por aí.

Antes de entrar no assunto, queremos destacar dois aspectos do uso de IA pela Snyk para contextualizar:

  1. A Snyk combina diferentes abordagens e algoritmos de IA, unindo as duas principais vertentes da inteligência artificial — aprendizado de máquina (ML) e IA simbólica — à inteligência humana para criar uma IA híbrida.

  2. Até agora, a Snyk tem usado IA principalmente nos bastidores, com foco em oferecer e aperfeiçoar a qualidade e a precisão dos serviços de pesquisa de segurança. Enquanto continua inovando com IA em suas pesquisas, a Snyk também vai adicionar novos recursos mais visíveis na interface do usuário.

A abordagem da Snyk para IA: IA híbrida

Vamos falar um pouco mais sobre o primeiro ponto destacado acima: a IA híbrida. Usamos esse termo porque combinamos vários modelos de IA com a inteligência humana.

Há duas vertentes importantes da IA: o ML e a IA simbólica.

  • O ML, ou aprendizado de máquina, funciona bem em situações ambíguas, mas precisa de muitos dados de treinamento. É chamado de “caixa-preta” porque não consegue justificar a correção de suas descobertas. Técnicas de ML generativo, como o GPT, fazem parte dessa categoria.

  • Já a IA simbólica é adequada para tarefas com estrutura clara, não precisa de dados de treinamento e consegue justificar suas descobertas (é transparente, em vez de uma caixa-preta). Mas a IA simbólica tem limitações em situações ambíguas.

Para produzir resultados de segurança, é preciso lidar com os dois tipos de situação. Você precisa de ferramentas que analisem o código e entendam sua intenção, mesmo quando a estrutura varia de uma amostra para outra. Esse é um campo em que o ML se destaca, mas uma grande desvantagem dos sistemas de ML generativo, como GPT ou Codex, são as chamadas alucinações. Por mais impressionantes que sejam, não há garantia de que os resultados desses sistemas estejam corretos, e eles podem ser convincentemente enganosos.

É aí que entra a IA simbólica, que produz resultados e explica por que eles estão corretos. Para se proteger contra alucinações, a Snyk combina ML generativo com IA simbólica. Os modelos de ML generativo da Snyk geram o código-fonte de uma correção; em seguida, a IA simbólica verifica se o código gerado não tem problemas. Para você, isso significa que a Snyk fornece automaticamente, direto no seu IDE, o código que corrige o problema em questão e verifica se ele não introduz novos problemas.

Por fim, mas não menos importante, temos a inteligência humana. A Snyk acredita no valor da inteligência natural de seus especialistas em segurança para controlar e orientar a IA. E tem mais: a equipe de pesquisa de segurança da Snyk descobriu e divulgou milhares de vulnerabilidades e adiciona metadados e insights às descobertas, facilitando o trabalho de quem vai usá-las e entendê-las — desenvolvedores e equipes de segurança. A IA ajuda a detectar a fumaça, mas os pesquisadores conseguem dizer se há mesmo um incêndio e garantir que os resultados sejam precisos e úteis.

Como combinar essas áreas traz grandes benefícios para a usabilidade e a robustez, a Snyk aposta na IA híbrida. Ela é a melhor ferramenta para colocar em prática nossa filosofia: oferecer soluções de segurança inovadoras, com o que há de mais recente em IA e nossa experiência exclusiva em segurança.

Produtos da Snyk que já usam IA

Na Snyk, há equipes dedicadas a diferentes tecnologias de IA e ciência de dados. Nossa equipe central de IA surgiu da DeepCode e reúne pesquisadores e profissionais de renome mundial nas áreas de IA, análise estática e segurança. Eles publicaram vários artigos acadêmicos em conferências e revistas reconhecidas e participam das discussões do setor sobre o uso de IA na segurança de aplicações.

Veja como a Snyk usa IA e ciência de dados em seus produtos hoje:

  • A Snyk usa IA para monitorar diversos canais sociais e comunidades, filtrar possíveis problemas interessantes e encaminhá-los à equipe de pesquisa de segurança. Nosso processamento avançado de linguagem natural identifica possíveis vulnerabilidades novas e exploradas em pacotes e frameworks de código aberto por meio de análise de sentimento, busca por palavras-chave e triangulação.

  • Snyk Code usa IA para fazer análises semânticas de código rápidas e aprofundadas, estabelecendo um padrão de velocidade no setor. Nosso mecanismo de IA é extremamente rápido e preciso, e os modelos usados também explicam suas descobertas, mostram os fluxos de dados que devem ser acompanhados e dão exemplos de como outros desenvolvedores resolveram problemas semelhantes. Explicar por que uma resposta está correta é importante em segurança e depende de um modelo diferente do usado pelas ferramentas de ML generativo.

  • Criamos e mantemos nossa base de conhecimento de SAST com algoritmos de aprendizado de máquina que aprendem com mais de 100 mil repositórios de código aberto por linguagem de programação. Ao combinar IA com nossa experiência em segurança, criamos uma IA híbrida única e dinâmica.

  • O Snyk Cloud combina várias fontes de dados em tempo real para modelar a postura de segurança de uma aplicação, desde o código original até a nuvem e vice-versa. Com os mecanismos avançados de análise e geração de relatórios da plataforma Snyk, as informações se transformam em conhecimento para a tomada de decisões ou são integradas a sistemas corporativos mais amplos de parceiros como ServiceNow e Sysdig.

O futuro da IA na Snyk

À medida que aprendemos e inovamos, a Snyk vai ampliar os exemplos a seguir e criar mais recursos de produto baseados em IA.

  • Se você assistiu ao nosso evento SnykLaunch de abril, viu uma demonstração de um próximo recurso desenvolvido com a IA da Snyk. A Snyk vai fornecer automaticamente, direto no seu IDE, o código que corrige um problema de segurança e verificar se o código gerado não introduz novos problemas e realmente resolve a falha.

  • Os usuários poderão interagir diretamente com a IA da Snyk para escrever consultas de código personalizadas. A IA traz dois benefícios importantes: o preenchimento automático semântico simplifica as buscas e agiliza os resultados no conjunto de treinamento usado pelo mecanismo Snyk Code. Além disso, a Snyk consegue gerar regras com algoritmos evolutivos ou genéticos, otimizando-as para reduzir ruído e aumentar a abrangência.

  • Ao combinar os recursos de consulta semântica de código da Snyk com o processamento de linguagem natural, os desenvolvedores podem expressar suas intenções em linguagem natural e encontrar exemplos de implementações em projetos de código aberto para aprender e adaptar. Você pode expressar suas intenções livremente e receber exemplos de código confiáveis que atendam às suas necessidades.

  • Daqui para a frente, o volume e a complexidade dos dados que chegam à Snyk vão aumentar, à medida que a cadeia de suprimentos de software se torna mais complexa e a Snyk reúne mais dados sobre código, pacotes e nuvem, além de dados de parceiros. A IA híbrida poderá identificar problemas que talvez ainda não causem uma falha de segurança, mas possam se tornar vulnerabilidades no futuro.

  • O Snyk Learn, um ambiente interativo de aprendizado, pode se adaptar ao nível de conhecimento de cada desenvolvedor usando IA para personalizar os módulos de aprendizagem.

Um mergulho mais profundo na IA: ML generativo, IA simbólica e alucinações

Se você tem bastante interesse em modelos de IA e em como a Snyk os usa para gerar resultados, esta seção é para você!

Boa parte do recente entusiasmo em torno da IA vem dos resultados impressionantes do GPT-3 da OpenAI, agora também dos modelos GPT-4, e de derivados como o Codex da Microsoft. Modelos de ML generativo aprendem regras ao analisar enormes volumes de dados e criar suas próprias regras sobre como determinadas entradas levam a determinados resultados. Embora os resultados sejam impressionantes, o ML generativo tem um problema chamado alucinação. As alucinações acontecem quando uma máquina apresenta uma resposta convincente, mas totalmente inventada, diferente do que seria esperado ou “normal”. Em outras palavras, embora esses sistemas sejam bons em interpretar informações ambíguas, não há garantia de que seus resultados estejam corretos, e eles podem ser muito convincentemente enganosos, pois não conseguem explicar por que acreditam que uma resposta está correta.

Por outro lado, a IA simbólica é adequada para tarefas com estrutura clara, não precisa de dados de treinamento e consegue explicar por que suas descobertas são precisas. Ela incorpora regras e lógica que são usadas para analisar e determinar uma resposta. Como as regras fazem parte do sistema, posso explicar como ele chega a uma resposta. Mas seu ponto fraco são as situações ambíguas.

Para se proteger contra alucinações, a Snyk vai combinar ML generativo com IA simbólica. Usando modelos generativos próprios, otimizados para gerar código-fonte, a Snyk aplica IA simbólica para verificar se o código gerado não tem problemas. Para você, isso significa que a Snyk fornece automaticamente o código que corrige o problema em questão e verifica se a correção não introduz novos problemas.