Não dá para comparar ferramentas SAST usando apenas listas, suítes de testes e benchmarks
Asaf Biton
Shani Gal
16 de junho de 2021
0 minutos de leituraHá muitos desafios para identificar a melhor ferramenta SAST para sua equipe. Mas como medir algo que foi criado para encontrar desconhecidos? Como saber se a ferramenta atende às suas necessidades? Como comparar ferramentas diferentes? Não é de surpreender que frequentemente nos perguntem: “O Snyk Code cobre o OWASP Top 10?” — e, em seguida: “Como vocês recomendam avaliar e comparar diferentes ferramentas SAST?”
Todos queremos respostas simples. Por isso, o “parâmetro de comparação” mais usado em comparações de SAST costuma ser composto por artigos e listas das vulnerabilidades mais comuns contra as quais é preciso se proteger (OWASP Top 10, SANS-25 etc.). Pode parecer simples comparar os resultados de duas ferramentas SAST usando essas listas, mas a resposta não é tão fácil. Neste artigo, vamos explorar as limitações desses parâmetros de comparação.
Antes de analisar cada padrão, vamos esclarecer alguns termos.
OWASP Top 10 é uma lista dos dez principais riscos que os desenvolvedores devem conhecer ao criar uma aplicação web. Ela é publicada pela The OWASP® Foundation e sua última revisão foi em 2017.
SANS-25 é uma lista dos 25 tipos mais perigosos de erros de software. Ela é publicada pelo SANS Institute e sua última revisão foi em 2011.
CWE Top 25 é outra lista, bastante semelhante à SANS-25, mas atualizada com mais frequência. Ela é publicada pela equipe CWE e sua revisão mais recente é de 2020.
Benchmarké uma suíte de testes de código aberto, criada especificamente para testar ferramentas SAST. Ela testa apenas Java e é mantida ativamente, embora a última versão principal tenha sido lançada em 2016.
Aplicações intencionalmente vulneráveis são repositórios ou projetos que buscam ensinar e fornecer exemplos de vulnerabilidades. Eles também podem seguir um dos vários padrões. Esses projetos não foram criados pensando em ferramentas SAST. Alguns exemplos são OWASP/NodeGoat, appsecco/dvna, WebGoat e juice-shop.
Vamos começar!
Limitações das listas de vulnerabilidades para avaliar ferramentas SAST
Há alguns motivos pelos quais diferentes listas de vulnerabilidades não são adequadas para avaliar ferramentas SAST ou priorizar problemas identificados por SAST:
Escopo limitado: Algumas listas costumam se restringir a um escopo específico. Por exemplo, o OWASP Top 10 trata apenas da segurança de aplicações web.
Genéricas demais: Por outro lado, SANS-25 e CWE Top 25 não diferenciam ambientes nem linguagens, então podem incluir muitas vulnerabilidades (ou CWEs) que não são necessariamente relevantes para todas as linguagens. Por exemplo, CWE-416: Use After Free só é relevante para linguagens de baixo nível, como C, C++, Rust etc.
Possivelmente desatualizadas: Muitas vezes, essas listas não são atualizadas regularmente. O OWASP Top 10 foi atualizado pela última vez em 2017, e o SANS-25, em 2011. Isso significa que as listas não representam necessariamente o estado atual da segurança de aplicações. Um exemplo notável é o aumento recente de ataques à cadeia de suprimentos e de typosquatting — nenhum dos dois aparece nas listas.
Irrelevantes para SAST — Alguns problemas não são necessariamente relevantes no contexto de SAST (o que não significa que não sejam importantes em geral). Por exemplo, o OWASP Top 10 menciona registro e monitoramento insuficientes, que, por si só, não constituem uma vulnerabilidade.
Limitações de suítes de testes e aplicações intencionalmente vulneráveis para avaliar ferramentas SAST
Suítes de testes como o OWASP Benchmark e repositórios vulneráveis também têm suas próprias limitações:
Limitadas em linguagens: Não existe uma suíte de testes ou conjunto de aplicações intencionalmente vulneráveis capaz de testar várias linguagens. O OWASP Benchmark, por exemplo, contém apenas problemas em Java.
Ajuste excessivo: Quando há um conjunto de suítes de testes ou aplicações intencionalmente vulneráveis considerado “padrão de mercado”, as empresas podem basear os recursos SAST nesses problemas específicos. Com isso, seus produtos podem ter um desempenho excepcional nesses benchmarks. Infelizmente, isso não se traduz necessariamente em precisão e abrangência no mundo real.
Semântica abrangente: Os exemplos incluídos em benchmarks e aplicações vulneráveis muitas vezes não representam aplicações do mundo real, nas quais o fluxo de dados costuma ser mais complexo.
Então... como comparar ferramentas SAST?
Analisamos as diversas ferramentas disponíveis e vimos por que elas não são ideais para avaliar ferramentas SAST. É importante ressaltar que isso não significa que essas listas, suítes de testes e benchmarks sejam inúteis. A maioria foi criada para ensinar desenvolvedores e conscientizá-los sobre problemas de segurança comuns. Embora não sejam ideais para medir o desempenho de uma ferramenta SAST, acreditamos que ainda podem contribuir muito para ampliar o conhecimento sobre segurança na sua organização.
Agora você deve estar se perguntando: se os padrões acima não são adequados, qual é a melhor maneira de avaliar ferramentas SAST? Confira nosso próximo artigo para conhecer 3 parâmetros para avaliar testes SAST.
Comece a jogar Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.

