SAST, DAST e RASP: um guia para a nova sopa de alfabeto de segurança

Vitor Schiavo
Nov 1 · 4 min read

Você leva a sério a segurança do seu aplicativo da web. Talvez você esteja corretamente preocupado com o poder destrutivo potencial de uma violação de dados ou precise tranquilizar seus clientes de que está implementando os melhores procedimentos de segurança da categoria. Independentemente disso, você não está interessado em jogar jogos ou teatro de segurança. Você precisa de soluções eficazes.

Mas por onde começar? É um mercado confuso, cheio de tecnologias concorrentes, afirmações ousadas e siglas.

Sem dúvida, você está se perguntando (tendo chegado tão longe!), quais são suas vantagens. Neste artigo, vamos aprofundar e comparar o Sast, Dast e Rast com um grupo de tecnologias coletivamente chamado Application Security Testing, ou AST. Você aprenderá como cada parte deste grupo de tecnologias funciona, o que torna o RASP diferente e entenderá em detalhes por que o segurança é uma parte importante do processo.

Teste de segurança de aplicativos.

Em termos gerais, existem dois tipos de AST: estático (SAST) e dinâmico (DAST). Geralmente, esses dois aparecem juntos, pois se complementam: Onde o SAST trabalha a partir do código-fonte, o DAST trabalha de fora para dentro.

Teste de segurança de aplicativos estáticos.

O objetivo do SAST é identificar vulnerabilidades no seu código-fonte antes de implantar na produção. As ferramentas SAST examinam o código-fonte do seu aplicativo diretamente, normalmente como parte do pipeline de Integração Contínua (CI), usando técnicas de análise de código estático para procurar problemas sem precisar executar o código.

Devido à maneira como funciona, o SAST oferece duas vantagens distintas: Primeiro, ajuda a encontrar problemas mais cedo, antes da implantação. Segundo, como ele está olhando diretamente para o seu código, fornece informações detalhadas que sua equipe de engenharia pode usar facilmente para corrigir os problemas.

Mas pelas mesmas razões, o SAST tem algumas desvantagens sérias. Primeiro, como ele não executa seu código, o SAST é propenso a modelar imprecisos. O resultado é uma combinação frustrante de falsos positivos e falsos negativos .

Os falsos positivos são os mais facilmente observáveis: as ferramentas SAST são notórias por sinalizar códigos perfeitamente seguros como vulneráveis. Como geralmente não há como provar que uma determinada função é um falso positivo. O resultado é uma distração desnecessária que pode levar à perda de tempo e produtividade, ou talvez pior, ao desativar recursos úteis do SAST que são muito barulhentos.

Negativos, falsos são menos óbvios: são problemas no seu código que a ferramenta SAST não pode detectar. Embora as ferramentas SAST geralmente sejam excelentes para detectar vulnerabilidades no nível da linguagem e da estrutura, como chamadas SQL inseguras, seus modelos de código não são (e não podem ser) sofisticados o suficiente para detectar vulnerabilidades em tempo de execução, como erros de autenticação (levando a quebra de contas e aquisições), configuração incorreta do servidor (possivelmente expondo credenciais de infraestrutura ou backdoors) ou falhas sutis na lógica comercial (abrindo as portas para fraudes).

Teste de segurança de aplicativos dinâmicos

O DAST foi concebido como uma maneira de melhorar parcialmente algumas das deficiências do SAST. Em vez de examinar seu código, o DAST é executado fora do aplicativo, tratando-o como uma caixa preta. O DAST automatiza o estresse da mesma maneira que um invasor faria. Como seu primo estático, o DAST pode ser implantado como parte do seu pipeline de IC, mas exige que uma instância em execução do seu aplicativo seja estressada, seja em uma produção ou (idealmente) em um ambiente de armazenamento temporário.

Além disso, como o DAST está testando em um aplicativo em execução, ele está muito melhor situado para identificar os tipos de vulnerabilidades em tempo de execução que o SAST perde, como as decorrentes de erros de configuração ou defeitos na lógica de negócios.

No entanto, diferentemente das técnicas de análise de código estático que podem ser usadas de prateleira, as regras que alimentam as ferramentas DAST devem ser totalmente personalizadas, personalizadas para o seu aplicativo, antes que possam ser totalmente eficazes. Isso requer experiência significativa em segurança da informação. Além disso, as regras devem ser mantidas atualizadas à medida que novos ataques são descobertos pelos engenheiros de segurança e à medida que seu aplicativo cresce e muda com o tempo. O resultado é que o DAST pode ser proibitivamente caro e lento para acompanhar seu ciclo de vida de desenvolvimento.

Além disso, como o DAST trata seu aplicativo como uma caixa preta, ele não tem informações sobre as causas subjacentes das vulnerabilidades descobertas — nossas equipes de engenharia e desenvolvimento ainda precisam gastar tempo procurando os bugs e correlacionando-os com os relatórios do DAST. Não há garantia de que os erros descobertos pelo DAST tenham sido totalmente contabilizados.

Vulnerabilidades x ataques.

O tema comum para os dois lados do AST é uma ênfase na detecção de vulnerabilidades no seu código. A idéia é descobrir possíveis mecanismos que os invasores possam explorar.

Esse tipo de pensamento é, no entanto, reativo: só podemos criar regras para testar o que já vimos. As regras do SAST destacam os padrões de linguagem que causaram problemas no passado; As regras do DAST podem apenas verificar os padrões de ataque que vimos funcionar no passado. Nem pode prever o futuro, nem proteger seu aplicativo quando algo novo acontecer. Além disso, essas regras são escritas de modo a serem o mais genéricas possível, em vez de adaptadas ao seu aplicativo, aumentando o risco de falsos positivos.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade