Ler o código manualmente é um processo demorado. Também está sujeito a erros, pois é fácil perder detalhes importantes. Como desenvolvedores e testadores de penetração, precisamos encontrar uma maneira de automatizar esse processo. SAST é uma técnica que pode nos ajudar nessa tarefa. É utilizável apenas para casos de uso com acesso ao código-fonte para projetos de código aberto ou testes de penetração de caixa branca. No entanto, pode ajudá-lo a encontrar alguns frutos mais fáceis de alcançar e economizar tempo. SAST não é uma solução mágica. O que é SAST? O teste estático de segurança de aplicativos (SAST) é um subconjunto de análise estática de código usado para aumentar a segurança e a confiabilidade do código. O SAST detecta dependências antigas, detecção de segredos, erros lógicos que levam a vulnerabilidades e muito mais. O SAST inclui testes que afetam secundariamente a segurança cibernética, como complexidade visual do código, ambiguidade do código e práticas não intuitivas que podem levar a vulnerabilidades. Ferramentas na prática As ferramentas SAST geralmente são correspondências de padrões regex em esteróides que procuram vulnerabilidades conhecidas no código. Por exemplo, uma ferramenta SAST pode procurar o uso de , ou no código Python; essas funções podem ser usadas para executar código arbitrário. eval exec pickle Hacking e SAST Eu dividiria minha abordagem ao SAST em três categorias: : uso ferramentas como , para encontrar vetores de ataque no código. Geralmente, você pode encontrar resultados fáceis, como entradas não higienizadas, criptografia ruim ou bibliotecas vulneráveis. Aliás, a versão Semgrep PRO tem mais regras; é gratuito se não houver mais de 10 desenvolvedores no projeto. Detecção de vulnerabilidades Semgrep , Bandit Nodejsscan : , ou podem ajudá-lo a encontrar segredos no código. Isto é importante porque os segredos podem ser usados para aumentar privilégios ou acessar dados confidenciais. Normalmente, cadeias de conexão de banco de dados, chaves de API ou senhas são armazenadas no código. Detecção de segredos Gileaks Trufflehog Grep : ferramentas como ou podem ajudá-lo a encontrar configurações incorretas. As configurações incorretas geralmente estão em arquivos de "infraestrutura como código" (IaC), mas também podem estar no próprio código. Um exemplo seria um arquivo docker-compose configurado incorretamente que expõe um banco de dados à Internet. Para digitalizar Dockerfiles, recomendo uma combinação de e Configurações incorretas Checkov Trivy hadolint grype Mais informações: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker As ferramentas SAST não são perfeitas. Eles lhe darão falsos positivos e falsos negativos. **No entanto, economiza muito tempo em comparação com a exploração aleatória de alguns aplicativos. Usei ferramentas SAST em meus compromissos e competições de testes de penetração. Isso me ajudou a começar com a base de código e me deu algumas dicas sobre onde procurar vulnerabilidades. Como treinar usando SAST em hacking Eu recomendo que você comece com . Esta plataforma oferece desafios, como obter código-fonte e encontrar vulnerabilidades. Em seguida, explore-os em uma máquina real. Esta é uma ótima maneira de aprender como usar as ferramentas SAST na prática. Hack The Box Ou, se você for um desenvolvedor, poderá usar ferramentas SAST em seu pipeline de CI/CD. Dessa forma, você pode se acostumar com as ferramentas e seus resultados. Simultaneamente, você melhorará a segurança do seu aplicativo. Recomendação de guias Preparei uma lista de guias para ajudá-lo a começar com SAST e detecção de segredos. Esses guias foram escritos como parte da minha tese e são um excelente ponto de partida para qualquer pessoa interessada em ferramentas SAST. Como começar com a detecção secreta. Ao detectar segredos, lembre-se: não é segredo se os hackers souberem disso. Até mesmo desenvolvedores experientes podem enviar acidentalmente senhas ou cadeias de conexão para o controle remoto de origem. Utilizando diversas ferramentas, este guia oferece métodos rápidos e fáceis para mitigar esse risco. Como automatizar a detecção de segredos Este guia se concentra na compreensão da detecção de segredos usando ganchos de pré-confirmação e pipelines de CI/CD. Embora o código se concentre principalmente no GitLab, a última seção também cobrirá o GitHub. Como começar com pipelines SAST Este guia descreve com eficiência as etapas para iniciar o Static Application Security Testing (SAST) no GitLab. SAST é um processo que usa análise estática de código para identificar vulnerabilidades potenciais. Como começar com IaC SAST Esta folha de dicas apresenta ferramentas úteis para verificar artefatos de infraestrutura como código (IaC) e fornece exemplos sobre como integrá-los ao pipeline de CI/CD. Ferramenta personalizada em Golang Eu criei uma ferramenta personalizada em Golang que me ajuda a combinar rapidamente expressões regulares com enormes bases de código. Existe uma compensação infinita entre precisão e variação. Suponha que você precise de mais variação e não se importe com mais revisões manuais. Nesse caso, você pode tentar , que é como , mas mais adequado para detecção de segredos (mais rápido em repositórios maiores, saída clara, ignorando algumas extensões de arquivo). Ou você pode usar grep diretamente. no repositório, não a ferramenta que você usará. RegFinder grep O mais valioso são as expressões regulares Clonar este repositório Execute grep -n -r your_app/ -Ef regex_dir/general.txt Ou Execute ./regfinder.elf -d your_app/ -f regex_dir/general.txt É simples estender os padrões regex existentes. Esta ferramenta não é viável para pipelines automatizados. No entanto, é útil se você precisar encontrar um segredo fora do padrão ou em outras avaliações, como análises de segurança, onde se espera mais trabalho manual. . Obrigado por ler. Comente se você tem ótima experiência com outras ferramentas