Post on 22-Jan-2018
Fuzzing com ZAP (Zed Attack Proxy)MAURÍCIO HARLEY
HTTPS://LINKEDIN.COM/IN/MAURICIOHARLEY/
JULHO DE 2017
https://linkedin.com/in/mauricioharley/
Agenda
Motivação;
Estatísticas;
Conceitos sobre Fuzzing;
O ZAP;
Demonstração;
Dicas Finais.
2
https://linkedin.com/in/mauricioharley/
Mini-CV
MBA em Gerenciamento de Projetos de TI;
Bacharel em Engenharia Elétrica;
Tecnológo em Telemática;
2x CCIE (Routing & Switching, Service Provider), VCIX-NV (NSX);
CISSP, MCSE Private Cloud, VCP6-DCV, ITIL v3;
Ex-membro do Cisco Data Center Tiger Team;
Arquiteto de Computação em Nuvem;
Colaborador regular da PenTest Magazine;
Arquiteto de Cloud e CyberSec na HX Brasil;
Perito Forense Computacional;
Mais de 20 anos de experiência em TI;
Palestrante de temas diversos em Tecnologia da Informação.
3
Motivação
https://linkedin.com/in/mauricioharley/
Motivação
Quem não precisa de software?
5
https://linkedin.com/in/mauricioharley/
Alguns exemplos… 6
Ícones por Madebyoliver (FlatIcon)
https://linkedin.com/in/mauricioharley/
Software está em ”tudo”! 7
SDSSDN
SDDC
SDe
https://linkedin.com/in/mauricioharley/
E em ”todo lugar”! 8
https://linkedin.com/in/mauricioharley/
A IoT (Internet das Coisas) e suasnuances
Ubiquidade por meio dos dispositivos;
Baixas capacidades de processamento, armazenamento e memória
Pouco espaço para mecanismos de segurança;
Comunicação normalmente via Bluetooth;
Autenticação fraca ou inexistente (ver MQTT);
Criptografia em repouso fica a cargo do desenvolvedor
Armazenamento pequeno pode tornar esta atividade inviável;
Normalmente não há criptografia em trânsito.
Alguns autores chamam de Internet of Threats.
9
Estatísticas
https://linkedin.com/in/mauricioharley/
Distribuição de software nas empresas 11
Fonte - relatório Datacenter Modernization: Trends and Challenges (HP)
https://linkedin.com/in/mauricioharley/
A preocupação quanto à segurança da informação
12
Fonte – Cisco 2016 Annual Security Report
https://linkedin.com/in/mauricioharley/
Segurança em Aplicações Web 13
https://linkedin.com/in/mauricioharley/
Segurança em Aplicações Web 1
Quantidade de dias emque vulnerabilidadespermaneceram semcorreção, de acordo com o tipo de empresa.
14
Fonte – White Hat Web Application Security Statistics Report 2016
https://linkedin.com/in/mauricioharley/
Segurança em Aplicações Web 2
Percentual de vulnerabilidadescorrigidas, de acordo com o tipode empresa.
15
Fonte – White Hat Web Application Security Statistics Report 2016
https://linkedin.com/in/mauricioharley/
Segurança em Aplicações Web 3
Tempo para corrigirvulnerabilidades, de acordo com o tipo de empresa.
16
Fonte – White Hat Web Application Security Statistics Report 2016
Conceitos sobre Fuzzing
https://linkedin.com/in/mauricioharley/
OWASP (Open Web Application Security Project)
Seguramente, uma das mais bem organizadas comunidades para compartilhamento de conhecimento e abordagem em segurança em web;
Publica, regularmente, o relatório Top 10 OWASP com as dez maioresvulnerabilidades em aplicações web;
O mais recente encontra-se em fase de votação (Release Candidate);
Coordena alguns projetos de código aberto (open source), tais como o ZAP, que abordaremos aqui;
https://www.owasp.org/
18
https://linkedin.com/in/mauricioharley/
Último OWASP Top 10 (2017 RC 1)
1. Injection;
2. Broken Authentication e Session Management;
3. Cross-Site Scripting (XSS);
4. Broken Access Control;
5. Security Misconfiguration;
6. Sensitive Data Exposure;
7. Insufficient Attack Protection;
8. Cross-Site Request Forgery (CSRF);
9. Using Components with Known Vulnerabilities;
10. Underprotected APIs.
19
https://linkedin.com/in/mauricioharley/
Fuzzing
Consiste em gerar padrões aleatórios (ou semi-aleatórios) de dados de entrada e submetê-los a uma aplicação para avaliação do comportamento;
É dever da aplicação criticar qualquer tipo de entrada;
Objetivo: encontrar e relatar bugs;
Dependendo de como o código foi escrito, os dados de entrada informadospodem ser entendidos como:
Entrada válida;
Entrada não válida
Mensagem de erro e retorno da função (o esperado);
Buffer overflow;
Privilege Escalation;
DoS.
20
https://linkedin.com/in/mauricioharley/
Fuzzing (continuando)
Técnica antiga. Se puxarmos pelo conceito em si, podemos voltar no tempo à década de 1950, quando cartões perfurados eram feitos de maneiras diferentes de propósito;
Formalmente, foi criada em 1989 na Universidade de Wisconsin e consistiainicialmente em realizar os testes em interface de linha de comando e com interfaces gráficas para usuários;
Com a sofisticação dos códigos, precisou evoluir também;
Existem diversas ferramentas (fuzzers) que a implementam, dentre elas o ZAP e o AFL (American Fuzzer Loop);
Tem vantagens e desvantagens…
21
https://linkedin.com/in/mauricioharley/
Fuzzers
Vantagens
Normalmente, após os casos de teste serem criados e submetidos, operampraticamente sem intervenção;
Dão uma visão geral do estado do aplicação.
Desvantagens
Podem não encontrar todos os bugs, atendo-se a situações mais genéricas e possivelmente passando direto em áreas específicas;
À medida que a aplicação se torna complexa, o efeito do fuzzer diminui, necessitando que o mesmo seja ajustado para refletir a sofisticação do alvo.
22
ZAP (Zed Attack Proxy)
https://linkedin.com/in/mauricioharley/
ZAP
Projeto open source conduzido pelo OWASP;
Disponível em https://github.com/zaproxy/;
Roda em Java e tem suporte cross-plataforma (Windows, Linux e macOS);
Principais recursos:
Funciona como um servidor proxy;
Scanners ativos e passivos;
Suporte a plugins;
Geração de relatórios em HTML, XML e texto limpo.
24
https://linkedin.com/in/mauricioharley/
ZAP 25
https://linkedin.com/in/mauricioharley/
ZAP 26
Demonstração
https://linkedin.com/in/mauricioharley/
Dica de Evento 28
https://www.blackhat.com/us-17/training/fuzzing-for-vulnerabilities.html
https://linkedin.com/in/mauricioharley/
Para saber mais 29
https://linkedin.com/in/mauricioharley/
Muito obrigado!
https://linkedin.com/in/mauricioharley/
http://hxbrasil.com.br/
30