SlideShare une entreprise Scribd logo
1  sur  39
Testes de segurança em aplicações web


     Eduardo Habib Bechelane Maia
Roteiro da apresentação


Introdução
Problema
Principais falhas
Ferramentas Open Source
Conclusão
Introdução


No início da internet, segurança não era
preocupação.
Hoje a maoria dos sites é uma aplicação
  Possuem muitas funcionalidades.
  Suportam login, transações comerciais.
  Conteúdo dinâmico.
  Informações confidenciais.
Introdução


Cada aplicação é diferente.
  Falhas únicas.
  Desenvolvidas por pessoas que possuem
  pouco entendimento sobre segurança.
  Sites consultam servidores que possuem
  informações confidenciais.
SSL
  Não impossibilita ataques.
Segurança ruim pode comprometer bolso.
Introdução


Segurança na transmissão de dados é
importante.
  Comércio eletrônico.
  Tráfego de informações confidenciais.
  Evitar fraudes.
  Evitar propagação de virus
Introdução
Por que fazer testes de segurança?



Apesar do aumento da preocupação,
incidentes vêm aumentando ano a ano.
  Aumento de incidentes de 61% de 2008 para
  2009.
  Aumento de 11530% de 1999 até 2009.
  Universidade de Michigan -> 75% dos sites de
  Bancos possuem alguma falha grave.
  Whitehat Security -> 64% de 1364 sites
  corporativos possuem falhas graves.
Problema principal da segurança


O Usuário pode enviar QUALQUER dado
  Deve-se assumir que toda entrada pode ser
  maliciosa.
  Requisições podem ser feitas em qualquer
  sequência
  Usuários não irão usar apenas o navegador
  para acessar a aplicação.
Problema principal da segurança


Exemplos:
  Usuários podem mudar o preço de um produto
  na requisição;
  Modificar o token da sessão transmitido.
  Remover certos parâmetros que normalmente
  são enviados.
  Armazenar Scripts para serem rodados depois.
SSL não resolve esse problema.
Top 10 Owasp

Falhas de injeção
Cross Site Scripting (XSS)
Falhas de autenticação e de gerenciamento de sessão
Referência insegura a objetos
Cross Site Request Forgery (CSRF)
Problemas de configuração
Falha ao rstringir o acesso a alguma URL
Redirecionamento inválido
Problemas no armazenamento de informações
confidenciais
Proteção na camada de transporte insuficiente
  Sem criptografia
  Certificados inválidos
Mapeamento da aplicação


Levantamento de informações sobre a
aplicação.
O que ela faz e como ela funciona?
  Examinar cada aspecto de suas funcionalidades.
Mapeamento manual
Para processo preciso, automação é
necessária.
  Ferramentas chamadas de Web Spidering
Burlando o controle no cliente


Campos hidden




Tamanho de campos
Cookies


Cookies
  Cookies também podem ter valor alterado




  Ex.:
    Cookie de sessão, usuário e desconto.
Transmissão de dados via
       parâmetros da URL


Pode ser mudado de forma trivial sem usar
qualquer ferramenta.
Validações do lado do cliente


Validações podem ser burladas
  Significa que são inúteis?
  Não
    Melhora usabilidade
    Diminui requisições ao servidor.
Atacando a Autenticação


Se usuário existe e tem permissão ele loga.
Senão, não loga.
  Autenticação TEM que ser segura.
Senhas “Fracas”
  Senha iniciada com um valor padrão
Login por força bruta
  Logins comuns, de teste, controle de falhas
  por cookies.
Senha com valor padrão.
Força bruta


Mensagem diferente na falha do login e da senha
Acessos com vários estágios de autenticação.
Algumas aplicações reiniciam a senha assim que
a pergunta secreta é respondida.
Dicas:
  Entenda o mecanismo através de uma conta que você
  conheça.
  Se existe uma pergunta secreta, identifique as possíveis
  perguntas.
  Tente identificar qualquer comportamento que possa
  ser explorado.
Funcionalidade Remember me.
Prevenção de ataques de força
       bruta


Travamento da conta após algumas
tentativas
Suspensão da conta por algum período
Uso do captcha
  Informação do captcha deve estar apenas na
  imagem.
Testar existência de logs


Deve-se logar todas as informações que
podem vir a ser relevantes
Qualquer suspeita de anomalia deve ser
investigada.
Usuários devem ser informados de qualquer
possibilidade de vazamento de informações.
Atacando o controle de acesso


Acesso vertical
  Usuários conseguem acessar funcionalidade
  que não deveriam conseguir.
Acesso horizontal
  Um usuário consegue ver ou modificar dados
  que ele não deveria conseguir.
    Ex: WebMail, bancos etc.
Exemplos de falhas


Arquivos estáticos
  https://www.site.com/download/0636628104.pdf
Acesso passado via URL
  https://wahh.site.com/login/home.jsp?admin=true
Path traversal
  WebGoat (Bypass a Path Based Access control)
     ../../../conf/tomcat-users.xml
     Etágio 1 de (Bypass a Path Based Access control)
Injetando código


Definição
  Manipulação de uma instrução SQL através
  das variáveis quem compõem os parâmetros
  recebidos a ser inseridos numa consulta.
Objetivo do Uso
  Permissão de acesso a conteúdo restrito;
  Deleção de tabelas;
  Alteração / Deleção / Inserção de conteúdos;
  Outros.
Injetando código


SELECT nome,sobrenome FROM user
WHERE name = ‘nome’




O que acontecerá se for digitado
habib‘ or ‘1’=‘1    ?
Injetando código


Teste de Vulnerabilidade Básico

  http://www.site.com.br/noticias.asp?publisher=wiley



  http://www.site.com.br/noticias.asp?publisher=wiley’



 Microsoft JET Database Engine (0x80040E14)
 Erro de sintaxe na seqüência de caracteres na
   expressão de consulta ‘publisher= wiley''.
              /noticias.asp, line 6
Injetando código


Considere uma aplicação web que possua
uma tela que faça a seguinte pesquisa
  SELECT author,title,year FROM books WHERE
  publisher = ‘Wiley’
  E se o usuário digitar no campo de pesquisa:
    Wiley’ OR ‘a’ = ‘a
  E se a for colocado um OR desses no login?
Exemplo – WebGoat SQL Stage 1 e
    3




•' or '1' = '1
Atacando outros usuários


Ataques aos usuários
  Usuários atacam a aplicação com o intuito de
  atacar o usuário.
    “Travamento” do usuário.
    Roubo de dados.
    Scripts podem “vigiar” os usuários.
    Scripts podem modificar o conteúdo do site.
    Explorar relação de confiança.
    Travar ou redirecionar browser.
  Principal forma:
    Cross-site scripting.
Cross-site Scripting (XSS)


XSS não armazenado: código malicioso é inserido
na página e resposta é obtida instantaneamente.
  https://www.site.com.br/error.php?message==Desculpe%2c+um
  +erro+ocorreu
  https://www.site.com.br/error.php?message=<script>alert(‘xss’);
  </script>
XSS armazenado: o código malicioso é inserido no
servidor para ser executado posteriormente.
     <script>alert(‘xss’);</script>
Exemplo:
  Stored XSS no WebGoat – Stage 1
  Banco do Brasil
Cross-site Scripting (XSS)

   Exemplo 2
      http://www.infoconsumo.gov.br/busca/busca.asp
          Código da página:
              <input type="TEXT" class="caixaSimples" value=""
              maxlength="100" size="25" name="SearchString">
          Entrada: '"><script>alert('teste')</script>
          Saída:
<input type="TEXT" name="SearchString" size="25"
   maxlength="100" value="'"> <script>alert(‘teste') </script> "
   class="caixaSimples">
   Outros exemplos de entradas
      XSS-Me
      SQL Inject Me
Ataque Cross-site Scripting ao
       MySpace


Usuário Implementou script que fazia 2
coisas:
   Adicionava o invasor na lista de amigos
   Copiava o script no profile da vítima.
   1 milhão de vítimas em menos de 1 hora.
MySpace foi retirado do ar.
   Removeu o código mailicioso de todos os
   profiles.
Explorando informações exibidas


Mensagens de erro.
  Stack Traces exibidos.
    Mostra a razão precisa do erro.
    Faz referência a bibliotecas de terceiros.
    Informações adicionais sobre o ambiente.
  Erros de scripts.
    Dicas sobre parâmetros.
  Mensagens de depuração.
Revisões no código


Existem várias situações onde é possível
auditar o código.
  Ex: Verificar se as entradas estão sendo
  tratadas.
Programador experiente
Conhecimento profundo da arquitetura.
Algumas ferramentas


Plugins para navegadores
  Firefox
    FoxyProxy
    Tamper Data
    Live HTTP Headers
    AddNEditCookies
    Cookie Watcher
    XSS Me
    SQL Inject Me
    Hack Bar
Algumas ferramentas


Scanner
  Paros
Outros
  WebScarab
  Burp Suite
Fonte aberta


Projeto Owasp
  WebScarab
  WebGoat.
Conclusão


Todo sistema / aplicação é passível de
invasão.
Todos usuários são potenciais invasores.
Otimização e cautela na programação.
Análise de riscos.
Novas tecnologias irão criar novas “brechas”.
Ataques às aplicações estão perdendo espaço
para ataques a usuários.
Referências


Livros
  The Web Application Hacker’s Handbook
  Software Security: Building Security In
Cross-Site Scripting: Uma Análise Prática
Analyzing the Accuracy and Time Costs of
Web Application Security Scanners
http://www.parosproxy.org/index.shtml
Projeto Owasp
  http://www.owasp.org
Testes de segurança em aplicações web

     Eduardo Habib Bechelane Maia.
          habib@dcc.ufmg.br

Contenu connexe

Tendances

Segurança da informação - Forense Computacional
Segurança da informação - Forense ComputacionalSegurança da informação - Forense Computacional
Segurança da informação - Forense ComputacionalJefferson Costa
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografiaNatanael Fonseca
 
Universidade Hacker 4ª Edição
Universidade Hacker  4ª EdiçãoUniversidade Hacker  4ª Edição
Universidade Hacker 4ª EdiçãoSoftD Abreu
 
03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptxEduardoHernandes9
 
2 Unit 1. Traditional Symmetric Ciphers.pdf
2 Unit 1. Traditional Symmetric Ciphers.pdf2 Unit 1. Traditional Symmetric Ciphers.pdf
2 Unit 1. Traditional Symmetric Ciphers.pdfNandiniLokanath1
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Basic Cryptography unit 4 CSS
Basic Cryptography unit 4 CSSBasic Cryptography unit 4 CSS
Basic Cryptography unit 4 CSSSURBHI SAROHA
 
Методи за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данниМетоди за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данниpinf_117075
 
Aula03 – Códigos Maliciosos e Tipos de Ataques
Aula03 – Códigos Maliciosos e Tipos de AtaquesAula03 – Códigos Maliciosos e Tipos de Ataques
Aula03 – Códigos Maliciosos e Tipos de AtaquesCarlos Veiga
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Office 365 fiche produit
Office 365 fiche produitOffice 365 fiche produit
Office 365 fiche produitPROJECT SI
 
Defesa Cibernética: Aspectos Concentuais e Práticos
Defesa Cibernética: Aspectos Concentuais e PráticosDefesa Cibernética: Aspectos Concentuais e Práticos
Defesa Cibernética: Aspectos Concentuais e PráticosGian Gabriel Guglielmelli
 
Resposta a Incidentes de Segurança com ferramentas SIEM
Resposta a Incidentes de Segurança com ferramentas SIEMResposta a Incidentes de Segurança com ferramentas SIEM
Resposta a Incidentes de Segurança com ferramentas SIEMSpark Security
 

Tendances (20)

Ataques na internet
Ataques na internetAtaques na internet
Ataques na internet
 
Segurança da informação - Forense Computacional
Segurança da informação - Forense ComputacionalSegurança da informação - Forense Computacional
Segurança da informação - Forense Computacional
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
 
Universidade Hacker 4ª Edição
Universidade Hacker  4ª EdiçãoUniversidade Hacker  4ª Edição
Universidade Hacker 4ª Edição
 
03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx03 FTI Hardware e Software-atualizado.pptx
03 FTI Hardware e Software-atualizado.pptx
 
2 Unit 1. Traditional Symmetric Ciphers.pdf
2 Unit 1. Traditional Symmetric Ciphers.pdf2 Unit 1. Traditional Symmetric Ciphers.pdf
2 Unit 1. Traditional Symmetric Ciphers.pdf
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Basic Cryptography unit 4 CSS
Basic Cryptography unit 4 CSSBasic Cryptography unit 4 CSS
Basic Cryptography unit 4 CSS
 
Методи за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данниМетоди за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данни
 
Bpmn2 0 poster_es[1]
Bpmn2 0 poster_es[1]Bpmn2 0 poster_es[1]
Bpmn2 0 poster_es[1]
 
Trabalho Segurança da Informação -
Trabalho Segurança da Informação - Trabalho Segurança da Informação -
Trabalho Segurança da Informação -
 
Snort
SnortSnort
Snort
 
Aula03 – Códigos Maliciosos e Tipos de Ataques
Aula03 – Códigos Maliciosos e Tipos de AtaquesAula03 – Códigos Maliciosos e Tipos de Ataques
Aula03 – Códigos Maliciosos e Tipos de Ataques
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Office 365 fiche produit
Office 365 fiche produitOffice 365 fiche produit
Office 365 fiche produit
 
Defesa Cibernética: Aspectos Concentuais e Práticos
Defesa Cibernética: Aspectos Concentuais e PráticosDefesa Cibernética: Aspectos Concentuais e Práticos
Defesa Cibernética: Aspectos Concentuais e Práticos
 
Cryptography
CryptographyCryptography
Cryptography
 
التشفير
التشفيرالتشفير
التشفير
 
Entendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento SeguroEntendendo o Ciclo de Desenvolvimento Seguro
Entendendo o Ciclo de Desenvolvimento Seguro
 
Resposta a Incidentes de Segurança com ferramentas SIEM
Resposta a Incidentes de Segurança com ferramentas SIEMResposta a Incidentes de Segurança com ferramentas SIEM
Resposta a Incidentes de Segurança com ferramentas SIEM
 

Similaire à Testes de segurança em aplicações web

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de softwareJuliano Padilha
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityMarlon Bernardes
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR, UnB
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenPOANETMeetup
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebMarcio Roberto de Souza Godoi
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 

Similaire à Testes de segurança em aplicações web (20)

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top Ten
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013
 
Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Java security
Java securityJava security
Java security
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 

Plus de Synergia - Engenharia de Software e Sistemas

Plus de Synergia - Engenharia de Software e Sistemas (13)

Testes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de confortoTestes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de conforto
 
Desenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWTDesenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWT
 
Teste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagensTeste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagens
 
Por que contratar projetos ágeis?
Por que contratar projetos ágeis?Por que contratar projetos ágeis?
Por que contratar projetos ágeis?
 
Estimativas em projetos de software
Estimativas em projetos de softwareEstimativas em projetos de software
Estimativas em projetos de software
 
Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
 
Como os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeisComo os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeis
 
Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)
 
Controle estatístico de processos
Controle estatístico de processosControle estatístico de processos
Controle estatístico de processos
 
O retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuárioO retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuário
 
Gerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente críticaGerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente crítica
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®
 

Testes de segurança em aplicações web

  • 1.
  • 2. Testes de segurança em aplicações web Eduardo Habib Bechelane Maia
  • 3. Roteiro da apresentação Introdução Problema Principais falhas Ferramentas Open Source Conclusão
  • 4. Introdução No início da internet, segurança não era preocupação. Hoje a maoria dos sites é uma aplicação Possuem muitas funcionalidades. Suportam login, transações comerciais. Conteúdo dinâmico. Informações confidenciais.
  • 5. Introdução Cada aplicação é diferente. Falhas únicas. Desenvolvidas por pessoas que possuem pouco entendimento sobre segurança. Sites consultam servidores que possuem informações confidenciais. SSL Não impossibilita ataques. Segurança ruim pode comprometer bolso.
  • 6. Introdução Segurança na transmissão de dados é importante. Comércio eletrônico. Tráfego de informações confidenciais. Evitar fraudes. Evitar propagação de virus
  • 8. Por que fazer testes de segurança? Apesar do aumento da preocupação, incidentes vêm aumentando ano a ano. Aumento de incidentes de 61% de 2008 para 2009. Aumento de 11530% de 1999 até 2009. Universidade de Michigan -> 75% dos sites de Bancos possuem alguma falha grave. Whitehat Security -> 64% de 1364 sites corporativos possuem falhas graves.
  • 9. Problema principal da segurança O Usuário pode enviar QUALQUER dado Deve-se assumir que toda entrada pode ser maliciosa. Requisições podem ser feitas em qualquer sequência Usuários não irão usar apenas o navegador para acessar a aplicação.
  • 10. Problema principal da segurança Exemplos: Usuários podem mudar o preço de um produto na requisição; Modificar o token da sessão transmitido. Remover certos parâmetros que normalmente são enviados. Armazenar Scripts para serem rodados depois. SSL não resolve esse problema.
  • 11. Top 10 Owasp Falhas de injeção Cross Site Scripting (XSS) Falhas de autenticação e de gerenciamento de sessão Referência insegura a objetos Cross Site Request Forgery (CSRF) Problemas de configuração Falha ao rstringir o acesso a alguma URL Redirecionamento inválido Problemas no armazenamento de informações confidenciais Proteção na camada de transporte insuficiente Sem criptografia Certificados inválidos
  • 12. Mapeamento da aplicação Levantamento de informações sobre a aplicação. O que ela faz e como ela funciona? Examinar cada aspecto de suas funcionalidades. Mapeamento manual Para processo preciso, automação é necessária. Ferramentas chamadas de Web Spidering
  • 13. Burlando o controle no cliente Campos hidden Tamanho de campos
  • 14. Cookies Cookies Cookies também podem ter valor alterado Ex.: Cookie de sessão, usuário e desconto.
  • 15. Transmissão de dados via parâmetros da URL Pode ser mudado de forma trivial sem usar qualquer ferramenta.
  • 16. Validações do lado do cliente Validações podem ser burladas Significa que são inúteis? Não Melhora usabilidade Diminui requisições ao servidor.
  • 17. Atacando a Autenticação Se usuário existe e tem permissão ele loga. Senão, não loga. Autenticação TEM que ser segura. Senhas “Fracas” Senha iniciada com um valor padrão Login por força bruta Logins comuns, de teste, controle de falhas por cookies. Senha com valor padrão.
  • 18. Força bruta Mensagem diferente na falha do login e da senha Acessos com vários estágios de autenticação. Algumas aplicações reiniciam a senha assim que a pergunta secreta é respondida. Dicas: Entenda o mecanismo através de uma conta que você conheça. Se existe uma pergunta secreta, identifique as possíveis perguntas. Tente identificar qualquer comportamento que possa ser explorado. Funcionalidade Remember me.
  • 19. Prevenção de ataques de força bruta Travamento da conta após algumas tentativas Suspensão da conta por algum período Uso do captcha Informação do captcha deve estar apenas na imagem.
  • 20. Testar existência de logs Deve-se logar todas as informações que podem vir a ser relevantes Qualquer suspeita de anomalia deve ser investigada. Usuários devem ser informados de qualquer possibilidade de vazamento de informações.
  • 21. Atacando o controle de acesso Acesso vertical Usuários conseguem acessar funcionalidade que não deveriam conseguir. Acesso horizontal Um usuário consegue ver ou modificar dados que ele não deveria conseguir. Ex: WebMail, bancos etc.
  • 22. Exemplos de falhas Arquivos estáticos https://www.site.com/download/0636628104.pdf Acesso passado via URL https://wahh.site.com/login/home.jsp?admin=true Path traversal WebGoat (Bypass a Path Based Access control) ../../../conf/tomcat-users.xml Etágio 1 de (Bypass a Path Based Access control)
  • 23. Injetando código Definição Manipulação de uma instrução SQL através das variáveis quem compõem os parâmetros recebidos a ser inseridos numa consulta. Objetivo do Uso Permissão de acesso a conteúdo restrito; Deleção de tabelas; Alteração / Deleção / Inserção de conteúdos; Outros.
  • 24. Injetando código SELECT nome,sobrenome FROM user WHERE name = ‘nome’ O que acontecerá se for digitado habib‘ or ‘1’=‘1 ?
  • 25. Injetando código Teste de Vulnerabilidade Básico http://www.site.com.br/noticias.asp?publisher=wiley http://www.site.com.br/noticias.asp?publisher=wiley’ Microsoft JET Database Engine (0x80040E14) Erro de sintaxe na seqüência de caracteres na expressão de consulta ‘publisher= wiley''. /noticias.asp, line 6
  • 26. Injetando código Considere uma aplicação web que possua uma tela que faça a seguinte pesquisa SELECT author,title,year FROM books WHERE publisher = ‘Wiley’ E se o usuário digitar no campo de pesquisa: Wiley’ OR ‘a’ = ‘a E se a for colocado um OR desses no login?
  • 27. Exemplo – WebGoat SQL Stage 1 e 3 •' or '1' = '1
  • 28. Atacando outros usuários Ataques aos usuários Usuários atacam a aplicação com o intuito de atacar o usuário. “Travamento” do usuário. Roubo de dados. Scripts podem “vigiar” os usuários. Scripts podem modificar o conteúdo do site. Explorar relação de confiança. Travar ou redirecionar browser. Principal forma: Cross-site scripting.
  • 29. Cross-site Scripting (XSS) XSS não armazenado: código malicioso é inserido na página e resposta é obtida instantaneamente. https://www.site.com.br/error.php?message==Desculpe%2c+um +erro+ocorreu https://www.site.com.br/error.php?message=<script>alert(‘xss’); </script> XSS armazenado: o código malicioso é inserido no servidor para ser executado posteriormente. <script>alert(‘xss’);</script> Exemplo: Stored XSS no WebGoat – Stage 1 Banco do Brasil
  • 30. Cross-site Scripting (XSS) Exemplo 2 http://www.infoconsumo.gov.br/busca/busca.asp Código da página: <input type="TEXT" class="caixaSimples" value="" maxlength="100" size="25" name="SearchString"> Entrada: '"><script>alert('teste')</script> Saída: <input type="TEXT" name="SearchString" size="25" maxlength="100" value="'"> <script>alert(‘teste') </script> " class="caixaSimples"> Outros exemplos de entradas XSS-Me SQL Inject Me
  • 31. Ataque Cross-site Scripting ao MySpace Usuário Implementou script que fazia 2 coisas: Adicionava o invasor na lista de amigos Copiava o script no profile da vítima. 1 milhão de vítimas em menos de 1 hora. MySpace foi retirado do ar. Removeu o código mailicioso de todos os profiles.
  • 32. Explorando informações exibidas Mensagens de erro. Stack Traces exibidos. Mostra a razão precisa do erro. Faz referência a bibliotecas de terceiros. Informações adicionais sobre o ambiente. Erros de scripts. Dicas sobre parâmetros. Mensagens de depuração.
  • 33. Revisões no código Existem várias situações onde é possível auditar o código. Ex: Verificar se as entradas estão sendo tratadas. Programador experiente Conhecimento profundo da arquitetura.
  • 34. Algumas ferramentas Plugins para navegadores Firefox FoxyProxy Tamper Data Live HTTP Headers AddNEditCookies Cookie Watcher XSS Me SQL Inject Me Hack Bar
  • 35. Algumas ferramentas Scanner Paros Outros WebScarab Burp Suite
  • 36. Fonte aberta Projeto Owasp WebScarab WebGoat.
  • 37. Conclusão Todo sistema / aplicação é passível de invasão. Todos usuários são potenciais invasores. Otimização e cautela na programação. Análise de riscos. Novas tecnologias irão criar novas “brechas”. Ataques às aplicações estão perdendo espaço para ataques a usuários.
  • 38. Referências Livros The Web Application Hacker’s Handbook Software Security: Building Security In Cross-Site Scripting: Uma Análise Prática Analyzing the Accuracy and Time Costs of Web Application Security Scanners http://www.parosproxy.org/index.shtml Projeto Owasp http://www.owasp.org
  • 39. Testes de segurança em aplicações web Eduardo Habib Bechelane Maia. habib@dcc.ufmg.br