Pwn OWASP WebGoat com teste fuzz
Cada equipe de desenvolvimento e segurança luta para mudar para a esquerda, e então, que tal encontrar e corrigir vulnerabilidades? É um ciclo vicioso de feedback negativo: escreva mais código, encontre mais bugs (e falsos positivos), perca tempo perseguindo bugs, escreva mais código, reduza a cobertura do código, aumente o risco de segurança. (Eu poderia representar isso, mas você realmente quer isso?)
Os scanners SAST produzem muitos falsos positivos, os scanners DAST são apenas caixas pretas.
Digite fuzzers baseados em feedback, eles combinam o melhor de fuzzing (injetar entrada aleatória) com teste de código de caixa branca e instrumentação. Eles usam automação para melhorar continuamente sua cobertura para encontrar caminhos e vulnerabilidades mais exclusivos. Os fuzzers baseados em feedback estão até encontrando CVEs anteriormente desconhecidos . (Espero começar a construir meu próprio equipamento de fuzzing em breve. Por favor, ajude-me a me responsabilizar por isso.)
Mas vamos voltar ao WebGoat.
WebGoat é um aplicativo da web inseguro do projeto OWASP . É um alvo de teste para encontrar bugs e ferramentas de teste. Nesta demonstração sobre como automatizar o teste da API REST , Daniel Teuchert , OSCP e especialista em segurança, configura o CI Fuzz para atacar o WebGoat. Eu cataloguei a demonstração e coloquei em negrito as melhores partes.
18h30 — início da demonstração da ferramenta
21h30 — configuração do CI Fuzz no VS Code
27h33 — a varredura começa na página de login do web cabra (não autenticada) 32h28 — a varredura começa com a autenticação para o teste webGoat fuzz 33h33 — corpus exclusivo entradas 36:20 — depuração — mostra o problema no nível da linha de código 37:45 — interface do usuário para a plataforma Code Intelligence (depuração, cURL, rastreamento de pilha) 40:15 — automação no CICD, como gerar scripts e automatizar testes fuzz com cada confirmação de código 42:05 — resumo/conclusão (slides)
Métricas principais:
- @ cerca de 3 minutos com o fuzzer em execução, 54% de cobertura de código, 21% de cobertura de bloco
- @ 4 minutos e 30 segundos, 31 descobertas, incluindo injeções de SQL
- Os futuros testes fuzz usarão as entradas de corpus exclusivas do CI; eles se tornam pontos de partida para testes futuros
- A depuração é explícita na plataforma (https://app.code-intelligence.com/), mostrando no nível da linha de código o que deu errado e o cURL, rastreamento de pilha
- Automatize o teste fuzz integrando-se diretamente ao CICD de sua escolha (Azure DevOps)
- API para serviço esperada no segundo trimestre, mas pode ser adiada (sem promessas, desculpe)
- o teste fuzz inicial para atingir mais de 95% de cobertura de código requer várias horas.
- totalmente automatizado no CICD garante testes fuzz mais rápidos
- atualizações de versão maiores ou novos recursos podem levar mais tempo para alcançar a cobertura completa do código novamente, pois o fuzzer identifica caminhos novos e interessantes, mas logo alcançará a mesma verificação rápida





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)