Download - 2011 01-18.campus party 2011

Transcript
Page 1: 2011 01-18.campus party 2011

Pentest em aplicações webNelson Uto, M.Sc.

Page 2: 2011 01-18.campus party 2011

Agenda

Motivação.(In)segurança de software.Metodologia de testes de invasão.Reconhecimento.Mapeamento.Descoberta e exploração de vulnerabilidades.

Page 3: 2011 01-18.campus party 2011

Importante

NUNCA procure vulnerabilidades em sistemas, quaisquer que sejam, sem a devida autorização!!!

Page 4: 2011 01-18.campus party 2011

Ambiente de teste

Page 5: 2011 01-18.campus party 2011

Motivação

“any program, no matter how innocuous it seems, canharbor security holes”

Cheswick e Bellovin, 1994.

Page 6: 2011 01-18.campus party 2011

Exemplo

Page 7: 2011 01-18.campus party 2011

Distribuição de vulnerabilidades

Rede

Sistema Operacional

Aplicações

Fonte: SANS

Page 8: 2011 01-18.campus party 2011

Vulnerabilidades mais comuns – CVE

Page 9: 2011 01-18.campus party 2011

Segurança de software

Trindade de problemas [McGraw]:Complexidade;Conectividade;Extensibilidade.

Embutir segurança quando o SW já estiver pronto?Segurança deve ser considerada em todo o ciclo de desenvolvimento de software!!

Page 10: 2011 01-18.campus party 2011

Vulnerabilidades por fase do SDLC

Fase Vulnerabilidade

Especificação Microsoft Bob

Arquitetura e projeto Topologia de redeEscolha de algoritmos criptográficosfracos

Codificação Tratamento inadequado de erros

Implantação Infraestrutura subjacente vulnerávelGerenciamento inadequado de chaves

Page 11: 2011 01-18.campus party 2011

OWASP Top Ten 2010 (1)

A1 – Injeção A2 – Cross-site Scripting (XSS)A3 – Falhas em autenticação e gerenciamento de sessõesA4 – Referência direta a objetos inseguraA5 – Cross-site Request Forgery (CSRF)

Page 12: 2011 01-18.campus party 2011

OWASP Top Ten (2)

A6 – Falhas na configuração de segurançaA7 – Armazenamento criptográfico inseguroA8 – Acesso irrestrito a URLsA9 – Proteção inadequada no transporte de informaçõesA10 – Redirecionamentos não validados

Page 13: 2011 01-18.campus party 2011

Teste de invasão em aplicações web

O que é um teste de invasão?Tipos de teste:

Caixa preta;Caixa branca;Caixa cinza.

Page 14: 2011 01-18.campus party 2011

Metodologia

Page 15: 2011 01-18.campus party 2011

Ferramentas básicas

Navegadores web.Proxies de interceptação.Web spiders.Fuzzers.Varredores de portas e serviços.Varredores de vulnerabilidades.

Page 16: 2011 01-18.campus party 2011

ReconhecimentoInformações interessantes

Informações:Nomes de funcionários e informações sobre eles.Identificadores de usuários.Tecnologias empregadas.Servidores e topologia de rede.Configurações dos componentes.Recursos disponibilizados pelos servidores.

Page 17: 2011 01-18.campus party 2011

ReconhecimentoLevantamento de infos em fontes públicas

Redes sociais.Grupos de discussão.Anúncios de emprego.WHOIS.DNS.

Page 18: 2011 01-18.campus party 2011

ReconhecimentoGoogle Hacking

Técnica que utiliza mecanismos de busca para identificar vulnerabilidades de software e de configuração em sistemas acessíveis pela Internet.Aplicável não somente ao Google Search.Exemplo:

site:<domínio> login OR logonsite:<domínio> "This file was generated by Nessus".

Page 19: 2011 01-18.campus party 2011

ReconhecimentoInformações sobre infraestrutura

Identificação de SOs, portas e serviços.Identificação de servidores web.Métodos suportados pelo servidor web.Detecção de hosts virtuais.Descoberta de arquivos e diretórios.

Page 20: 2011 01-18.campus party 2011

Mapeamento

Deve resultar em um mapa da aplicação.Passos:

Cópia das páginas e recursos da aplicação.Identificação dos pontos de entrada de informação.Relacionamento com as informações de reconhecimento.

Page 21: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesValidação no lado cliente da aplicação

Validações no lado cliente devem ser realizadas apenas como uma pré-filtragem.Muito fácil de serem burladas.Muito comum em sistemas Web.

Page 22: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesXSS (1)

Um dos problemas mais populares.Permite transportar código malicioso até o navegador de outros usuários.Código é executado no contexto da aplicação vulnerável.

Page 23: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesXSS (2) – Exemplo

Page 24: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesXSS (3) – Armazenado

Page 25: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesXSS (4) – Cenários

Sequestro de sessão.Escravização de navegador web.Varredura de redes.

Page 26: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesInjeção de SQL (1)

Usuário injeta código SQL em campos da interface.Aplicação não trata a entrada corretamente e executa o código injetado.

Page 27: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesInjeção de SQL (2)

SELECT * FROM TABELA WHERE COLUNA = ´Blah´

BlahCampo:

Aplicação

Interface da aplicação

Page 28: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesInjeção de SQL (3)

SELECT * FROM TABELA WHERE COLUNA = ´´ or 1 = 1;--’

´ or 1 = 1;--Campo:

Aplicação

Interface da aplicação

Page 29: 2011 01-18.campus party 2011

Descoberta e exploração de vulnerabilidadesFalhas no ger. de sessões e autenticação

São falhas comuns em aplicações web.Permitem acesso ilegítimo.

Page 30: 2011 01-18.campus party 2011

Nelson Uto, nelson_uto (at) yahoo.com.br

Dúvidas?