Fuzzing com ZAP (Zed Attack Proxy)

30
Fuzzing com ZAP (Zed Attack Proxy) MAURÍCIO HARLEY HTTPS://LINKEDIN.COM/IN/MAURICIOHARLEY/ JULHO DE 2017

Transcript of Fuzzing com ZAP (Zed Attack Proxy)

Page 1: Fuzzing com ZAP (Zed Attack Proxy)

Fuzzing com ZAP (Zed Attack Proxy)MAURÍCIO HARLEY

HTTPS://LINKEDIN.COM/IN/MAURICIOHARLEY/

JULHO DE 2017

Page 2: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Agenda

Motivação;

Estatísticas;

Conceitos sobre Fuzzing;

O ZAP;

Demonstração;

Dicas Finais.

2

Page 3: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 4: Fuzzing com ZAP (Zed Attack Proxy)

Motivação

Page 5: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Motivação

Quem não precisa de software?

5

Page 6: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Alguns exemplos… 6

Ícones por Madebyoliver (FlatIcon)

Page 7: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Software está em ”tudo”! 7

SDSSDN

SDDC

SDe

Page 8: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

E em ”todo lugar”! 8

Page 9: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 10: Fuzzing com ZAP (Zed Attack Proxy)

Estatísticas

Page 11: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Distribuição de software nas empresas 11

Fonte - relatório Datacenter Modernization: Trends and Challenges (HP)

Page 12: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

A preocupação quanto à segurança da informação

12

Fonte – Cisco 2016 Annual Security Report

Page 13: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Segurança em Aplicações Web 13

Page 14: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 15: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 16: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 17: Fuzzing com ZAP (Zed Attack Proxy)

Conceitos sobre Fuzzing

Page 18: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 19: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 20: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 21: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 22: Fuzzing com ZAP (Zed Attack Proxy)

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

Page 23: Fuzzing com ZAP (Zed Attack Proxy)

ZAP (Zed Attack Proxy)

Page 24: Fuzzing com 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

Page 25: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

ZAP 25

Page 26: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

ZAP 26

Page 27: Fuzzing com ZAP (Zed Attack Proxy)

Demonstração

Page 28: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Dica de Evento 28

https://www.blackhat.com/us-17/training/fuzzing-for-vulnerabilities.html

Page 29: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Para saber mais 29

Page 30: Fuzzing com ZAP (Zed Attack Proxy)

https://linkedin.com/in/mauricioharley/

Muito obrigado!

https://linkedin.com/in/mauricioharley/

http://hxbrasil.com.br/

30