Uma ferramenta de SAST (Static Application Security Testing) — ou ferramenta de análise de código — é uma ferramenta que foi criada com o objetivo de analisar o código fonte ou mesmo suas versões compiladas de código, buscando nestes códigos falhas que possam comprometer a segurança.
É importante destacar que o SAST é uma das técnicas que compõem o AST (Application Security Testing), um conjunto de práticas para garantir a segurança abrangente das aplicações.
Dessa forma, as ferramentas de revisão de código como o SAST, devem ser vistas como apoio ao processo de desenvolvimento e, portanto, devem ser integradas estrategicamente ao fluxo de trabalho de desenvolvimento.
As ferramentas SAST analisam códigos de aplicações de dentro para fora, buscando padrões prejudiciais. Assim, funciona de quatro formas principais:
Análise de controle de fluxo: verifica a ordem das operações no código, buscando por padrões que possam causar problemas, como falhas de transmissão de cookies, variáveis não iniciadas ou condições de corrida.
Análise estrutural: examina a estrutura do código, baseando-se nas melhores práticas para a linguagem usada. Avalia aspectos como a criação das classes, as declarações e o uso de variáveis.
Análise semântica: usa uma estrutura de análise semântica para buscar por contextos específicos no código, como por exemplo .executeQuery().
Análise de configuração: verifica os arquivos de configuração da aplicação, como XML ou arquivos de propriedades. Garante que a configuração esteja alinhada às práticas e políticas de segurança, como por exemplo definir uma página de erro padrão para a aplicação web.
O SAST é importante porque permite identificar e corrigir as vulnerabilidades de segurança antes que elas sejam exploradas por atacantes, fornecendo informações detalhadas e orientações para os desenvolvedores sobre como melhorar o seu código.
No entanto, o SAST não é uma solução completa de AppSec, pois ele tem algumas limitações que precisam ser consideradas. Por exemplo:
Portanto, é crucial complementar o SAST com outras técnicas e processos de AppSec.
Configurar ferramentas do tipo SAST é importante e faz parte de uma das outras atividades de AppSec que podem ser automatizadas no pipeline. Esse tipo de configuração visa facilitar a vida dos desenvolvedores, permitindo uma configuração rápida da ferramenta e a utilização de seus benefícios.
No entanto, é importante ficar atento a alguns pontos:
Configuração de Branches: É comum que apenas uma branch (como "master" ou "main") seja configurada para análise AST. Recomendamos também considerar a análise em branches de "homologação" (como "develop" ou "staging") para detectar vulnerabilidades mais cedo durante o desenvolvimento.
Evento para Análise: Verifique se os eventos "pull" e "push" estão especificados na análise. Ambos são importantes para garantir uma boa cobertura do código.
Análise Completa do Codebase: Algumas ferramentas analisam apenas os diffs (modificações) entre commits. É essencial também realizar análises completas do codebase em determinados momentos para garantir que vulnerabilidades em trechos não modificados sejam identificadas e para se beneficiar de novas regras do SAST.
Integrar SAST ao seu CI/CD pode te ajudar a melhorar a eficiência das análises, garantindo maior cobertura do código, menor intervenção humana e maior frequência de feedback.
SAST tem as seguintes características em comparação com DAST:
Fase do ciclo de vida: SAST é executado frequentemente na fase de desenvolvimento, antes da aplicação ser implantada. Já o DAST é executado geralmente na fase de produção, depois da aplicação estar disponível para uso.
Método de análise: SAST analisa o código fonte da aplicação, procurando por vulnerabilidades na lógica, na sintaxe e na estrutura do código. Enquanto DAST não requer o acesso ao código fonte da aplicação, apenas à sua interface.
Tipo de vulnerabilidade: SAST pode identificar vulnerabilidades que DAST não pode, como falhas de criptografia, vazamento de informações sensíveis ou erros de configuração. Por outro lado, DAST pode identificar vulnerabilidades que SAST não pode, como problemas de autenticação, autorização, sessão ou injection.
Custo e tempo: de modo geral, SAST é mais rápido e barato do que DAST, pois não requer a execução da aplicação nem recursos adicionais. DAST é mais lento e caro do que SAST, pois requer a configuração de um ambiente de teste.
Aplicabilidade: SAST é mais adequado para aplicações novas ou em desenvolvimento, pois permite corrigir as vulnerabilidades antes que elas se tornem um risco. DAST é mais adequado para aplicações antigas ou legadas, pois permite verificar o nível de segurança atual e detectar falhas que podem ter sido introduzidas após a implantação.
SAST e DAST são ferramentas de análise de segurança de aplicações que têm suas vantagens e desvantagens. O ideal é usar as duas em conjunto com as demais práticas e processos de AppSec, assim é possível obter uma visão abrangente das vulnerabilidades existentes.
A Conviso Platform vai além de apenas oferecer ferramentas do tipo SAST, sendo uma solução completa para o desenvolvimento seguro. Com o Conviso CLI, por exemplo, você pode analisar o código-fonte de forma automatizada e contínua em seu CI/CD.
Nossa plataforma também integra diversas ferramentas, como Veracode, Checkmarx, Fortify e Sonarqube, proporcionando uma gestão centralizada e eficiente do processo de correção de vulnerabilidades para sua empresa.