Pen-test de Aplicações Web: Técnicas e Ferramentas



Documentos relacionados
Desenvolvimento e disponibilização de Conteúdos para a Internet

World Wide Web e Aplicações

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

Análise de Vulnerabilidades em Aplicações WEB

Boas Práticas de Desenvolvimento Seguro

OWASP. The OWASP Foundation As 10 mais críticas vulnerabilidades de segurança em Aplicações Web

Fonte: - Illustration by Gaich Muramatsu

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Segurança em Aplicações Web Metodologia OWASP

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

XSS - CROSS-SITE SCRIPTING

segurança em aplicações web

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

O atacante pode roubar a sessão de um usuário legítimo do sistema, que esteja previamente autenticado e realizar operações que o mesmo poderia.

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA

A autoria - II. A autoria - II. Tecnologias básicas da Web. A autoria - II Wilson de Pádua Paula Filho. Tópicos:

Aplicação Prática de Lua para Web

Plano de Aula - Dreamweaver CS6 - cód Horas/Aula

18/04/2006 Micropagamento F2b Web Services Web rev 00


Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Burp Suite. Módulo 25

ASP.NET MVC em Ação. Jeffrey Palermo Ben Scheirman Jimmy Bogard. Novatec. Prefácio de Phil Haack

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Prova de pré-requisito

Segurança de Aplicações Aula 14

Segurança na WEB Ambiente WEB estático

VULNERABILIDADES WEB v.2.2

Manual Integra S_Line

Sistemas para internet e software livre

Entendendo e Mitigando Ataques Baseados em HTTP Parameter Pollution (HPP)

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Treinamento em PHP. Aula 1. Ari Stopassola Junior

Automidia Service Management Desbloqueio de Contas e Provisionamento via Autoatendimento

Segurança em Sistemas Web. Addson A. Costa

Anexo V - Planilha de Apuração Aquisição de Solução de Redes Sociais

Antonio Gomes de Araujo Laboratório de Eletrônica Industrial, Escola SENAI Anchieta São Paulo

Linux - Servidor de Redes

METODOLOGIA HACKING E INVASÃO DA WEB AULA 09 Segurança de Sistemas Gil Eduardo de Andrade

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Programação Web Prof. Wladimir

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

Guia de Integração para Transferência

Manual de Usuário INDICE

Aula 14 Mecanismos de Proteção. Fernando José Karl, AMBCI, CISSP, CISM, ITIL

Gestão de senhas, políticas e o mundo conectado: desafios e soluções

Conteúdo Programático de PHP

CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS. Módulo 788- Administração de Servidores Web. Ano letivo Docente: Ana Batista

Programação WEB Introdução

Associação Carioca de Ensino Superior Centro Universitário Carioca

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Desenvolvimento de Sistema WEB de Gerenciamento de Conteúdo para a empresa SC PRINT

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Prof.: MARCIO HOLLWEG

Automidia Service Management Provisionamento para o AD integrado ao Service Desk

Aula 13 Mecanismos de Proteção. Fernando José Karl, AMBCI, CISSP, CISM, ITIL

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

Procedimento para instalação do OMNE-Smartweb em Raio-X


Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

MANUAL JOOMLA 2.5 PORTAL INTERNET. Ministério do Esporte

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

AS CONSULTORIA & TREINAMENTOS. Pacote VIP. Linux Básico Linux Intermediário Samba 4 Firewall pfsense

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Desenvolvimento de Sistema WEB de Gerenciamento de Conteúdo para o Colégio Menino Jesus

Nota Fiscal Paulista. Manual para Envio de Arquivo de Cupons Fiscais via Webservice GOVERNO DO ESTADO DE SÃO PAULO

2013 GVDASA Sistemas Administração dos Portais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Falha segurança Baco Cross-site scripting (XSS) e Logins por canal não seguro (http) perenboom@hmamail.com

PROCEDIMENTO DE MIGRAÇÃO

Monitoramento & Auditoria no

Web Technologies. Tópicos da apresentação

J550 Segurança e Controle de erros

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

Aplicabilidade: visão geral

Transcrição:

Divisão de Informática - DINF MJ Departamento de Polícia Federal Pen-test de Aplicações Web: Técnicas e Ferramentas Ivo de Carvalho Peixinho Perito Criminal Federal

Agenda 1. Introdução 2. Ferramentas 3. 4. Conclusões 2

Introdução Aplicações Web Desenvolvidas em cima do protocolo HTTP e dos Web Servers. Utilizam diversas linguagens e tecnologias (PHP, ASP,.NET, J2EE, Applets Java, ActiveX, CSS, DOM, SOAP, XML, C#, AJAX, SQL, RMDBS, Perl, Python, Ruby, Cookies, HTML, Javascript, Flash, ISAPI, WebDAV, CGI, ColdFusion, etc). Crescimento exponencial das aplicações Crescimento dos ataques 3

Introdução Segurança de Aplicações Web SSL/TLS como panacéia de segurança Protocolo HTTP inseguro Inadequado para aplicações web (stateless) Clientes (Browsers) inseguros Usuário pode manipular dados Usuário pode enviar dados arbitrários Proteção de perímetro insuficiente Filtros na porta 80/443? 4

Introdução Análise de Vulnerabilidades Pode ser automatizado por ferramentas Bons para aplicações off the shelf (Webmail, blogs, etc). Podem não encontrar todas as vulnerabilidades da aplicação (variações) Podem gerar falso-positivos Pen-Testing Requer conhecimento e tempo por parte do analista Capaz de encontrar vulnerabilidades mais complexas Comprovação das vulnerabilidades (sem falso-positivos) 5

Ferramentas Análise de Vulnerabilidades W3AF - http://w3af.sourceforge.net/ Nikto - http://cirt.net/nikto2 Nessus - http://www.nessus.org/ Httprint - http://www.net-square.com/httprint/ Pen-Test Burp Suite - http://www.portswigger.net/suite/ WebScarab - http://www.owasp.org/ JAD - http://www.varaneckas.com/jad Paros proxy - http://www.parosproxy.org/ WebGoat - http://www.owasp.org/ 6

1. Mapear o conteúdo da aplicação 2. Analisar a aplicação e o servidor 3. Testar controles no lado do cliente 4. Testar mecanismos de autenticação 5. Testar mecanismos de gerenciamento de sessão 6. Testar controles de acesso 7. Testar vulnerabilidades nos parâmetros de entrada 8. Testar vulnerabilidades do Web Server 7

Mapear o conteúdo da aplicação Web Spidering Varrer links da aplicação Montar mapa da aplicação Ferramentas automáticas Burp Suite WebScarab Paros Proxy 8

Web Spidering 9

Mapear o conteúdo da aplicação Web Spidering automático Desvantgens Métodos de navegação não usuais Funções com validação de dados Gerenciamento de sessões Spidering manual Ferramentas de interceptação / proxy Acesso manual à aplicação 10

Mapear o conteúdo da aplicação Conteúdo escondido Força bruta (admin, access, setup, teste, test, downloads, private, phpinfo,.php) robots.txt Mecanismos de busca (google site: e link: ) Caminhos escondidos em aplicações conhecidas 11

Analisar a aplicação Pontos de entrada de dados URL s Parametros de formulários (POST) Query Strings Cookies Encapsulamento de dados Parâmetros no caminho da URL Verificar se a aplicação responde diferente para novos parâmetros 12

Analisar o servidor Identificando o servidor Web httprint Mensagens de erro da aplicação 13

Possível superfície de ataque Bancos de dados -> Injeção SQL Envio/download de arquivos -> Vulnerabilidades de path traversal Apresentação de dados enviados pelo usuário -> XSS Autenticação -> enumeração de usuários, senhas fracas, força bruta Mensagens de erro -> Vazamento de informação Componentes nativos -> buffer overflows Componentes de terceiros -> Vulnerabilidades conhecidas 14

Mapear a aplicação Resumo Enumerar conteúdo visível e funcionalidade Uso de força bruta e inferência para localizar conteúdo escondido Análise da aplicação Funcionalidade, comportamento e mecanismos de segurança Verificação da superfície de ataque 15

Testar controles no lado do cliente Campos de formulário escondidos Parametros em URL Dados obfuscados Base64, hex, etc Limites de tamanho em formulários Validação Javascript (ex: CPF) Atributos desabilitados (disabled= true ) Componentes compilados (Applets Java, etc) Teclado Virtual 16

Testar controles no lado do cliente Applets em Java Bytecode decompilável JAva Decompiler (JAD) <applet code= HelloWorld.class id= Applet ></applet> Possibilidades Alterar e recompilar Analisar métodos públicos (JavaScript) Converter em linha de comando (void main) 17

Testar controles no lado do cliente Outros componentes compilados Flash Flasm / Flare Silverlight Decompilável (dll em C#) Active X Decompilável se for em C# Debugger (funções exportáveis - JavaScript) 18

Testar mecanismos de autenticação Senhas fracas Possibilidade de enumerar usuários Força bruta de usuários Mecanismos de recuperação de senhas e contas Cookies de lembrança (remember-me) 19

20

Testar mecanismos de gerenciamento de sessão HTTP Status Codes 200 Ok 301 / 302 Redirect 401 / 403 Not Authorized 404 Not found 500 Server Error 21

Manipulação insegura de credenciais Credenciais enviadas por HTTP Credenciais enviadas por HTTPS, porém o formulário de login é enviado via HTTP (verificação da origem) Credenciais armazenadas em cookies Credenciais passadas na URL (Query String) Usar sempre POST Credenciais passadas do servidor para o cliente (remember me) 22

Testar mecanismos de gerenciamento de sessão Mecanismos de estado de sessão HTTP é stateless Necessidade de identificar sessões Atribuição de token para cada sessão Token reenviado em cada requisição Vulnerabilidades Tokens gerados de forma insegura Tokens tratados de forma insegura 23

Testar mecanismos de gerenciamento de sessão Geração de tokens Tokens com dados da sessão (ex: IP, username, etc). Tokens codificados Base64 Hexadecimal Tokens previsíveis (aleatoriedade insegura) Tokens cifrados (possibilidade de tamper/ecb) 24

Testar mecanismos de gerenciamento de sessão Geração de tokens Tokens com dados da sessão (ex: IP, username, etc). Tokens codificados Base64 Hexadecimal Tokens previsíveis (aleatoriedade insegura) Tokens cifrados 25

26

Testar mecanismos de gerenciamento de sessão Manipulação de tokens Revelação de tokens Trechos do site em HTTP Tokens na URL Captura de tokens em cookies (XSS) Finalização de sessão Funções de logout defeituosas 27

Testar controles de acesso URL s de acesso privilegiado públicas URL s não são secretas!! Controles baseados em identificação Especificam recusos e ações acessados Identificadores tambem não são secretos Controles de acesso múltiplos Apenas o primeiro estágio seguro Arquivos estáticos 28

Testar controles de acesso Arquivos estáticos Compras online de arquivos URL estática Acessível em contextos não autorizados Métodos inseguros admin=true 29

Testar vulnerabilidades nos parâmetros de entrada Injeção SQL or 1=1 UNION SELECT -- SELSELECTECT Etc 30

Testar vulnerabilidades nos parâmetros de entrada Injeção de comandos de sistema ` & ; < > \ script.cgi?a=b cat /etc/passwd <parametro> && dir c:\ 31

Testar vulnerabilidades do Web Server Credenciais Padrão interfaces de administração Conteúdo padrão phpinfo, test.cgi, etc. Listagens de diretório Virtual Hosting mal configurado (permissões) Servidores Web vulneráveis (atualizações) 32

Conclusões Crescimento exponencial das aplicações Web Pouca cultura de segurança em aplicações Web SSL não torna seu site seguro URL s são públicas!!! Use POST Filtros de pacote ineficientes para proteção do perímetro Mod_security é uma boa idéia!! Pen-test importante para aplicações home made Necessita de tempo e conhecimento (treino) Ferramentas ajudam 33

Ivo de Carvalho Peixinho Perito Criminal Federal peixinho.icp @ dpf.gov.br