Skip to main content

Snyk na RSAC 2021 — ML em SAST: distração ou ruptura?

Escrito por

Tony Sleva

social security video

30 de junho de 2021

0 minutos de leitura

Machine learning é um termo carregado de significados. Embora ofereça um potencial incrível para impulsionar a tecnologia, muitas vezes é usado como um termo da moda no marketing para descrever um reconhecimento de padrões sofisticado. Com isso, fica cada vez mais difícil saber se aplicar machine learning a uma tecnologia existente vai abrir novos caminhos ou apenas vender mais licenças. Esse é o problema que Frank Fischer, de marketing de produto da Snyk Code, explora em sua palestra na RSAC 2021, ML em SAST: ruptura ou distração.

O teste estático de segurança de aplicações (SAST) é uma tecnologia que encontra vulnerabilidades de segurança em código-fonte que não está em execução. O objetivo do SAST é encontrar vulnerabilidades o mais rápido possível e no início do ciclo de vida de desenvolvimento de software (SDLC). Como usa o código-fonte como entrada para a análise, é o ambiente ideal para aplicar IA simbólica, permitindo que ferramentas SAST executem regras em bases de código para identificar problemas.

Ultimamente, temos visto muito alvoroço em torno do GitHub Copilot. Essa solução é baseada em um modelo de machine learning, mas parece compreender melhor o código subjacente. Como mostram os exemplos compartilhados nas redes sociais, às vezes ela oferece sugestões incríveis e, às vezes, age como um papagaio que repete frases que já ouviu. Isso mostra o que é possível hoje e quais são as limitações atuais — e reforça todo o propósito da palestra na RSAC!

Embora o SAST exista há muito tempo, ele não passou por grandes rupturas, apenas por melhorias incrementais. A precisão vem aumentando de forma constante, mas essas melhorias têm exigido mais poder computacional. Isso significa que análises que sejam ao mesmo tempo sólidas (sem falsos positivos) e completas (sem deixar passar vulnerabilidades) podem levar horas ou dias para terminar. Além disso, as ferramentas SAST costumam ser muito boas em detectar problemas, mas muito ruins em oferecer soluções práticas. Então, fica a pergunta: será que o machine learning pode gerar a ruptura de que o SAST precisa para ser rápido, preciso e prático?

Mas, antes de responder, é importante entender como as ferramentas SAST funcionam. Para encontrar vulnerabilidades, elas precisam de uma base de conhecimento repleta de regras e métodos para detectar padrões maliciosos. Especialistas que pesquisam vulnerabilidades e adicionam novas regras de IA simbólica precisam manter essa base. Ainda não é possível automatizar o gerenciamento da base de conhecimento, mas ele pode ser aprimorado com machine learning.

Ao usar um enorme número de repositórios de código-fonte (todos disponíveis como código aberto) e aplicar machine learning, os especialistas que mantêm as bases de conhecimento do SAST podem aumentar exponencialmente o número de vulnerabilidades que conseguem detectar. Com o aprendizado baseado em bilhões de linhas de código, a solidez e a completude podem avançar muito. Esse tipo de avanço é uma ruptura.

Mas detectar mais vulnerabilidades parece uma melhoria, não uma ruptura. A verdadeira ruptura estaria em aplicar machine learning para automatizar correções de código. A implementação de machine learning não pode parar na detecção: também precisa ser aplicada às correções dessas vulnerabilidades. Quando aplicado corretamente ao SAST, o machine learning pode não só detectar padrões incorretos, mas também identificar os padrões corretos para resolver os problemas. Essa é a ruptura.

A ruptura final que o machine learning pode trazer é a capacidade de melhorar a precisão e a praticidade em grande escala. Todos os dias, temos mais poder computacional (por exemplo, GPUs), algoritmos melhores e mais modelos pré-treinados (por exemplo, GPT-3 ou GitHub Copilot) para ajudar o machine learning a operar na escala necessária para reduzir o tempo de análise a poucos minutos.

Com base nisso, Frank conclui que o machine learning vai, de fato, provocar uma ruptura na área de SAST, oferecendo mais velocidade, precisão e praticidade. Mas, mesmo com esse potencial, ele ainda pode servir como distração quando implementado de forma incompleta. Ao pesquisar sua próxima solução SAST, considere alguns pontos:

  • Sua solução SAST já aplica algum nível de machine learning? Se não, quando isso está previsto no roadmap? O machine learning precisa ser usado para encontrar e corrigir vulnerabilidades. Se o roadmap não incluir os dois usos, a solução SAST ficará aquém do esperado.

  • Sua solução SAST já oferece soluções práticas? E faz isso diretamente nas ferramentas que os desenvolvedores usam? Se não, aplicar machine learning só vai ajudar a detectar mais vulnerabilidades sem oferecer soluções — o que significa mais trabalho para os desenvolvedores e menor adoção.

  • Sua solução SAST se integra diretamente a um pipeline automatizado? Se não, ainda haverá um gargalo, por mais robusta que seja a implementação de machine learning. E vale acrescentar: no relatório recente da Snyk, O estado da segurança de aplicações nativas em nuvem, descobrimos que 72% das equipes com automação completa corrigiram vulnerabilidades críticas em menos de uma semana. Com machine learning, esse percentual pode ser ainda maior.

Assista à palestra completa da RSAC 2021 para saber mais sobre machine learning em SAST. Se você procura uma ferramenta SAST que já ofereça velocidade, precisão e praticidade, cadastre-se e comece a usar o Snyk Code gratuitamente.

Comece a participar de desafios de Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.