DAST + Auth
“DAST + Zap == Scan autenticado 😎”
Problemática
Em uma empresa na qual eu trabalhei, precisávamos implementar um scan DAST na pipeline, porém todas as APIs precisavam estar autenticadas para conseguir enviar e receber uma resposta válida. A empresa utilizava centenas de APIs, cada uma com sua respectiva documentação OpenAPI (swagger), como implementamos um DAST que realmente pudesse fazer scan válido?
Ideia
Na época, a ferramenta BurpSuite ainda não suportava nativamente a leitura de swaggers, porém o Zap Proxy sim, então pensei em criar um script em python onde eu poderia baixar todas as APIs em pastas, ler uma por uma, realizar o login do meu usuário utilizando o token de autenticação como header nas requisições do scan.
Resultado
Conseguimos implementar com sucesso o scan DAST na pipeline através de container docker, tendo a certeza de que o scan estava sendo efetivo uma vez que todas as requisições estavam sendo feitas de forma autenticada.
PoC
Para esse prova e conceito irei utilizar o mesmo vídeo da página OWASP ZAP, nessa página do meu blog você pode encontrar todos os detalhes técnicos que realizei para conseguir performar esse scan.
Observação
Essa é uma versão antiga do script, em breve irei disponibilizar um jeito muito mais eficiente de se alterar uma requisição com um header utilizando o Zap Proxy.
Mais vale uma cultura de DevSecOps com ferramentas open source, do que centenas de ferramentas pagas que sem um processo bem definido!
Posts:
- Post Board parte 2
- Post Board parte 1
- Guess Me Parte 2
- Guess Me Parte 1
- Food Store
- IOT Connect
- UnCrackable L1 Parte 2
- UnCrackable L1 Parte 1
- CVE-2022-26352
- DCA php
- Docker Code Analyzer
- Vulnado Parte 3
- Vulnado Parte 2
- Vulnado Parte 1
- Damm Vulnerable WebSocket
- OWASP ZAP Zed Attack Proxy
- Estratégias de um code review
- O que é code review?