SlideShare uma empresa Scribd logo
Testes de segurança em aplicações web
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

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011
Kleitor Franklint Correa Araujo
 
Distributed Immutable Ephemeral - New Paradigms for the Next Era of Security
Distributed Immutable Ephemeral - New Paradigms for the Next Era of SecurityDistributed Immutable Ephemeral - New Paradigms for the Next Era of Security
Distributed Immutable Ephemeral - New Paradigms for the Next Era of Security
Sounil Yu
 
Cyber Defense Matrix: Reloaded
Cyber Defense Matrix: ReloadedCyber Defense Matrix: Reloaded
Cyber Defense Matrix: Reloaded
Sounil Yu
 
Briefing the board lessons learned from cisos and directors
Briefing the board lessons learned from cisos and directorsBriefing the board lessons learned from cisos and directors
Briefing the board lessons learned from cisos and directors
Priyanka Aash
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
MarketingArrowECS_CZ
 
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
Spark Security
 
DOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma YöntemleriDOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma Yöntemleri
BGA Cyber Security
 
Amálgama Dental
Amálgama DentalAmálgama Dental
Amálgama Dental
Raphael Machado
 
Secure Coding 101 - OWASP University of Ottawa Workshop
Secure Coding 101 - OWASP University of Ottawa WorkshopSecure Coding 101 - OWASP University of Ottawa Workshop
Secure Coding 101 - OWASP University of Ottawa Workshop
Paul Ionescu
 
Application Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingApplication Security Architecture and Threat Modelling
Application Security Architecture and Threat Modelling
Priyanka Aash
 
Conscientização sobre a Segurança da Informação
Conscientização sobre a Segurança da InformaçãoConscientização sobre a Segurança da Informação
Conscientização sobre a Segurança da Informação
Jean Israel B. Feijó
 
Palestra: Fundamentos do Desenvolvimento Seguro de Softwares
Palestra: Fundamentos do Desenvolvimento Seguro de SoftwaresPalestra: Fundamentos do Desenvolvimento Seguro de Softwares
Palestra: Fundamentos do Desenvolvimento Seguro de Softwares
Andre Henrique
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Alcyon Ferreira de Souza Junior, MSc
 
Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...
Codemotion
 
4 leishmanioses
4 leishmanioses4 leishmanioses
4 leishmanioses
dayrla
 
Cloud penetration testing
Cloud penetration testingCloud penetration testing
Cloud penetration testing
vericlouds11
 
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
Estomatologista- Dra Dulce Cabelho
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - Novo
Luiz Arthur
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
BGA Cyber Security
 
Zika vírus
Zika vírusZika vírus

Mais procurados (20)

Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011Desenvolvimento Seguro- 2011
Desenvolvimento Seguro- 2011
 
Distributed Immutable Ephemeral - New Paradigms for the Next Era of Security
Distributed Immutable Ephemeral - New Paradigms for the Next Era of SecurityDistributed Immutable Ephemeral - New Paradigms for the Next Era of Security
Distributed Immutable Ephemeral - New Paradigms for the Next Era of Security
 
Cyber Defense Matrix: Reloaded
Cyber Defense Matrix: ReloadedCyber Defense Matrix: Reloaded
Cyber Defense Matrix: Reloaded
 
Briefing the board lessons learned from cisos and directors
Briefing the board lessons learned from cisos and directorsBriefing the board lessons learned from cisos and directors
Briefing the board lessons learned from cisos and directors
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
 
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
 
DOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma YöntemleriDOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma Yöntemleri
 
Amálgama Dental
Amálgama DentalAmálgama Dental
Amálgama Dental
 
Secure Coding 101 - OWASP University of Ottawa Workshop
Secure Coding 101 - OWASP University of Ottawa WorkshopSecure Coding 101 - OWASP University of Ottawa Workshop
Secure Coding 101 - OWASP University of Ottawa Workshop
 
Application Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingApplication Security Architecture and Threat Modelling
Application Security Architecture and Threat Modelling
 
Conscientização sobre a Segurança da Informação
Conscientização sobre a Segurança da InformaçãoConscientização sobre a Segurança da Informação
Conscientização sobre a Segurança da Informação
 
Palestra: Fundamentos do Desenvolvimento Seguro de Softwares
Palestra: Fundamentos do Desenvolvimento Seguro de SoftwaresPalestra: Fundamentos do Desenvolvimento Seguro de Softwares
Palestra: Fundamentos do Desenvolvimento Seguro de Softwares
 
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 05 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...
 
4 leishmanioses
4 leishmanioses4 leishmanioses
4 leishmanioses
 
Cloud penetration testing
Cloud penetration testingCloud penetration testing
Cloud penetration testing
 
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
A Importância do Cirurgião-dentista no diagnóstico e tratamento das manifesta...
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - Novo
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
 
Zika vírus
Zika vírusZika vírus
Zika vírus
 

Semelhante a 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ções
Clavis 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 software
Juliano Padilha
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
Marlon Bernardes
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
Alan 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 Linux
Edlaine Zamora
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
Marcio Cunha
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
CJR, 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 + JavaEE
Magno Logan
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
Giovani Decusati
 
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
POANETMeetup
 
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
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
Alcyon Ferreira de Souza Junior, MSc
 
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
Kleitor Franklint Correa Araujo
 
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
Kleitor Franklint Correa Araujo
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
Flavio Souza
 
Java security
Java securityJava security
Java security
armeniocardoso
 
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 Web
Marcio Roberto de Souza Godoi
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
Sergio Henrique
 

Semelhante a 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
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
 
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 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ç...
 
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
 

Mais de Synergia - Engenharia de Software e Sistemas

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
Synergia - Engenharia de Software e Sistemas
 
Desenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWTDesenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWT
Synergia - Engenharia de Software e Sistemas
 
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
Synergia - Engenharia de Software e Sistemas
 
Por que contratar projetos ágeis?
Por que contratar projetos ágeis?Por que contratar projetos ágeis?
Por que contratar projetos ágeis?
Synergia - Engenharia de Software e Sistemas
 
Estimativas em projetos de software
Estimativas em projetos de softwareEstimativas em projetos de software
Estimativas em projetos de software
Synergia - Engenharia de Software e Sistemas
 
Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
Synergia - Engenharia de Software e Sistemas
 
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
Synergia - Engenharia de Software e Sistemas
 
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)
Synergia - Engenharia de Software e Sistemas
 
Controle estatístico de processos
Controle estatístico de processosControle estatístico de processos
Controle estatístico de processos
Synergia - Engenharia de Software e Sistemas
 
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
Synergia - Engenharia de Software e Sistemas
 
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
Synergia - Engenharia de Software e Sistemas
 
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
Synergia - Engenharia de Software e Sistemas
 
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®
Synergia - Engenharia de Software e Sistemas
 

Mais 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®
 

Último

ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negóciosExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 

Último (6)

ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negóciosExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 

Testes de segurança em aplicações web

  • 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