SlideShare uma empresa Scribd logo
Analysis of Vulnerabilities in Web
          Applications


  Como saber se suas aplicações web estão seguras.
2/2

                            Quem sou eu?
      Luiz Vieira
      ● Construtor 4Linux
      ● Analista e Consultor de Segurança
      ● 15 anos de experiência em TI
      ● Pen-Tester
      ● Articulista sobre Segurança de vários
      sites: VivaOLinux, SegurançaLinux,
      Imasters, HackProofing e etc
      ● Entusiasta do Software Livre
      ● Filósofo e Psicoterapeuta
Tópicos de hoje

●
    Princípios de Sistemas Web
●
    Ataques Web: Origem e Motivação
●
    Princípios da Segurança Web
●
    “all input is evil until proven otherwise”
●
    OWASP
●
    Ferramentas para Análise e Auditoria
●
    Prós e Contras das Ferramentas
●
    Vulnerabilidades Web
●
    Oportunidades
●
    WebGoat
●
    Demo
Princípios de Sistemas Web


 • Ótima escolha para mudança de plataforma das
 aplicações(?)

 • A Internet não foi criada visando segurança

 • Atualmente é considerada uma selva
Ataques Web: Origem e Motivação

●
    Roubo de informações
      – Benefício Próprio
      – Espionagem Industrial

●
    Defacement
      – Mass scaning/defacing

●
    (Ex-)Funcionários Insatisfeitos
       – Salários baixos ou demissões injustas

●
    Worms
Princípios da Segurança Web


●
    “all input is evil until proven otherwise”.

●
    Ter uma noção das falhas não é suficiente.

●
    White List vs Black List
“all input is evil until proven
otherwise”
●
    Entradas visíveis e de fácil manipulação
     – Campos texto
     – Variáveis de URL
●
    Entradas de manipulação intermediária
     – Campos hidden
     – Valores de cookies
     – Demais inputs (select, checkbox, radio etc)
●
    Entradas de difícil manipulação
     – Campos de cabeçalhos HTTP
OWASP
●
    Significado:
      – Open Web Application Security Project

●
    Missão:
     ●
         Promove o desenvolvimento seguro de software
     ●
         Orientado para o desenvolvimento de serviços baseados na
         web
     ●
         Focado mais em aspectos de desenvolvimento do que em web-
         design
     ●
         Um fórum aberto para discussão
     ●
         Um recurso gratuito e livre para qualquer equipe de
         desenvolvimento

●
    http://www.owasp.org
OWASP Top 10
●
    Top 10 Web Application Security
    Vulnerabilities
    ●
      Uma lista dos 10 aspectos de segurança mais
      críticos
    ●
      Atualizado periodicamente
    ●
      Crescente aceitação pela indústria
      ●
          Federal Trade Commission (US Gov)
      ●
          US Defense Information Systems Agency
      ●
          VISA (Cardholder Information Security Program)

●
    Está sendo adotado como um padrão de
    segurança para aplicações web
OWASP Guide

Guia para o Desenvolvimento Seguro de Web
Apps
●
    Oferece um conjunto de linhas gerais para o
    desenvolvimento de software seguro
     ●
         Introdução à segurança em geral
     ●
         Introdução à segurança aplicacional
     ●
         Discute áreas-chave de implementação
          -   Arquitetura
          -   Autenticação
          -   Gestão de Sessões
          -   Controle de Acesso e Autorização
          -   Registro de Eventos
          -   Validação de Dados

●
    Em contínuo desenvolvimento
Ferramentas para Análise e Auditoria
●
    Distribuições
       - Backtrack 4
       - OWASP Live CD

●
    Ferramentas
      - WebScarab
      - Paros Proxy
      - Firebug
      - Muitas outras...

●
    Plugins
       - Firecat (para Firefox)          http://migre.me/RyHN


●
    Wargames
      - Webgoat
      - Série HACME, da Foundstone
      - www.hackerskills.com
       http://projects.webappsec.org/Web-Application-Security-Scanner-List
Prós e Contras das Ferramentas
Prós                            Contras


 Recursos temporais limitados    Confiabilidade das
    Podem poupar muito           ferramentas
     tempo em vulnerabilidades    Não são “A” solução
     facilmente detectáveis         Não significa que não
     pelas ferramentas               existam falhas se estas não
 Boas soluções custo/eficácia       forem encontradas
 Recursos humanos limitados      Têm limitações
 Exige pouco conhecimento        Custo
 técnico                          Tempo de scanning
 Automatização de testes            Dependendo da aplicação,
 frequentes                           o próprio crawling pode
                                      demorar dias
Vulnerabilidades Web

●
    Caminho mais fácil de expor informação.

●
    Internet não é somente a Web

●
    Preocupação com vulnerabilidades
       – Dados valiosos?
       – E em outro host do mesmo servidor?
Vulnerabilidades Web
O código faz parte do perímetro de
            segurança




Não é possível usar proteção ao nível da camada de rede (firewall, SSL, IDS,
      hardening) para parar ou detectar ataques ao nível aplicacional
Isto é preocupante?
●
    Qual a probabilidade de sucesso de um ataque
     contra uma aplicação web?
    ➢
      Probabilidade elevada
    ➢
      Fácil de explorar sem conhecimento e ferramentas especiais
    ➢
      Quase indetectável
    ➢
      Existem milhares de programadores web, pouco preocupados
      com segurança

●
    Consequências?
    ➢
      Corrupção de dados ou destruição de BD
    ➢
      Acesso root a servidores web ou aplicacionais
    ➢
      Perda de autenticação e de controle de acesso de usuários
    ➢
      Defacement
    ➢
      Ataques secundários a partir da própria aplicação web
Isto é preocupante?
Principais Vulnerabilidades – OWASP
                Top 10 2010
●
  A1: Injeção
●
  A2: Cross Site Scripting (XSS)
●
  A3: Quebra de Autenticação e da Gestão de
  Sessões
●
  A4: Referência Insegura Direta a Objetos
●
  A5: Cross Site Request Forgery (CSRF)
●
  A6: Configuração de Segurança Incorreta
●
  A7: Falhas na Restrição de Acesso a URL
●
  A8: Redirecionamentos e Encaminhamentos não-
  validados
●
  A9: Armazenamento Criptográfico Inseguro
●
  A10: Proteção Insuficiente da Camada de
  Transporte
Cross-Site-Scripting (XSS)
●
    Alta ocorrência

●
    Baixo impacto (?)
     - Sequestro de sessão
     - Alteração de fluxo de dados
     - Defacement
     - Vetor para diversos outros ataques

●
    Execução arbitrária de códigos Javascript

●
    Má (ou falta de) filtragem dos dados que podem ser
    manipulados pelo usuário.

●
    Permite a criação de worms:
     – Vírus do Orkut (2007)
Exemplo de código vulnerável à
            XSS
Localização da Vulnerabilidade
Vulnerabilidade de XSS:




A variável "buscar" pode ser facilmente manipulada
 pelo usuário
A variável é repassada para o navegador sem
 qualquer tipo de filtro
Exploração da Vulnerabilidade
●
    Induzir a vítima a acessar o endereço:
      - http://localhost/AtaquesWeb/xss_exemplo1.php?
      busca=<script>alert('Vulneravel+a+XSS')</script>
Tentativa de Proteção
Métodos de Ataque
●
    Procurar esconder (camuflar) a tentativa de ataque:

    http://localhost/AtaquesWeb/xss_exemplo1.php?busca=
    %3c%73%63%72%69%70%74%3e%61%6c
    %65%72%74%28%27%56%75%6c%6e
    %65%72%61%76%65%6c%20%61%20%58%53
    %53%27%29%3c%2f%73%63%72%69%70%74%3e
●
    http://localhost/AtaquesWeb/xss_exemplo1.php?busca=<script>alert('Vulneravel a XSS')</script>



                                                  OU

●
    – http://localhost/AtaquesWeb/xss_exemplo1.php?
    busca=“+onmouseover="javascript:alert('XSS')
Soluções

●
    Criar uma whitelist ao invés de uma blacklist

●
    Utilizar funções de tratamento de caracteres que
    possuem significado no HTML
      – PHP: htmlspecialchars()


      $txtbuscar = htmlspecialchars($_GET['buscar']);
Cross Site Request Forgery
●
  Semelhante a XSS
●
  Qualquer sistema vulnerável a XSS está
  vulnerável a XSRF
●
  Nem toda aplicação vulnerável a XSRF está
  também vulnerável a XSS
●
  Permite alterar as informações enviadas ao
  navegados.
●
  Ataque client-side
●
  Não se baseia em executar código JS
●
  Se baseia em enviar requisições com as
  credenciais do usuário para o servidor.
Soluções

●
    Ineficientes:
      – Blacklist
      – addslashes() é ineficiente para XSRF
●
    Eficientes:
       – Evitar falhas de XSS
       – Controle próprio de tokens
Armazenamento Criptográfico Inseguro

    Definições:
●
    Funções Hash
●
    Funções Criptográficas
      – Criptografia Simétrica
      – Criptografia Assimétrica
●
    Hash + Criptografia

    Ataques:
●
    Senhas fracas
      – Brute-force
●
    Senhas fortes
      – Wordlist
      - Rainbowtables + hash sites
Armazenamento Criptográfico Inseguro
          RainbowCrack
●
    Brute-force Normal:
       – 350 milhões de senhas (texto puro) por segundo.
●
    Rainbow:
       – 62.223 milhões de senhas em texto puro por
       segundo

●
    http://www.md5crack.com/
Proteção de dados
●
    Armazenamento de Senha?
●
    Dados a serem recuperados?
●
    Hash puro?
●
    E criptografia? Proteja bem a chave.
Execução Remota de Arquivos

Características:
 ●
     Diversas proteções por configuração
 ●
     Alto Impacto
 ●
     Execução de Comandos no Servidor

Possibilidades:
 ●
     Apagar Arquivos
 ●
     Instalar Programas (keyloggers, sniffers)
 ●
     Acessar Outras Páginas
 ●
     Repositório de Arquivos (virus?)
 ●
     Utilizar o servidor como zumbi (DDoS ?)
 ●
     O que a imaginação permitir...
Execução Remota de Arquivos –
                Exemplos de PHP
 ●
     include()
 ●
     require()
 ●
     include_once()
 ●
     require_once()

 ●
     include → Em caso de erro continua
 ●
     require → Em caso de erro crash!
 ●
     _once() → Apenas uma vez

E daí?
 ●
   Se o arquivo a ser incluído contiver códigos PHP
   os mesmos serão executados.
Execução Remota de Arquivos –
   Exemplo: Formulário de Acesso
Execução Remota de Arquivos –
         Exemplo: Formulário de Acesso


●
    É possível notar a utilização das funções
    citadas.

●
    Sistema com alta produtividade
       - Ex: Adicionar um novo item de menu

●
    O parâmetro de uma das funções include()
    pode ser manipulada pelo usuário.
Execução Remota de Arquivos –
                      Princípio do Ataque

●
    http://localhost/AtaquesWeb/rfi/?pagina=home home.php

●
    http://localhost/AtaquesWeb/rfi/?pagina=historico historico.php

●
    http://localhost/AtaquesWeb/rfi/?pagina=contato contato.php

●
    ...
●
    …

●
    http://localhost/AtaquesWeb/rfi/?pagina=[arquivo_malefico]
Execução Remota de Arquivos –
         Arquivos Maléficos Famosos

 ●
     Explorer de Arquivos, bypass de
     segurança, etc

       - c99.txt
       - r57.txt
       - Safe0ver.txt
 ●
     Atenção: Cuidado com trapdoors.
Execução Remota de Arquivos –
                    Solução Eficiente
●
    Criar whitelist, permitindo somente caracteres válidos:
38/2

                    Oportunidades
       ● Necessidade de maior nível de segurança
       ● Previnir X Remediar
       ● Compliance com normas e metodologias
       ● Testes automatizados X Testes personalizados
       ● Funcionário X Consultor
39/2

                        WebGoat
       ● WebGoat é uma aplicação web J2EE
         deliberadamente vulnerável, mantida pelo
         OWASP e desenvolvida para ensinar lições de
         segurança em aplicações web.




       ● http://www.owasp.org/index.php/Category:OWASP
         _WebGoat_Project
40/2
41/2
       Injection Flaws – String SQL
                  Injection
42/2
          Injection Flaws – String SQL
                     Injection

       ● Solução do desafio:


                         Vieira' OR 'a'='a
43/2
       Cross-Site Scripting (XSS) -
          Stage 1: Stored XSS
44/2
          Cross-Site Scripting (XSS) -
             Stage 1: Stored XSS

       ● Solução do desafio:


                 <script>alert("XSS");</script>
                               OU
            <script>alert(document.cookie);</script>
45/2
       Cross-Site Scripting (XSS) - Cross
         Site Request Forgery (CSRF)
46/2
        Cross-Site Scripting (XSS) - Cross
          Site Request Forgery (CSRF)

       ● Solução do desafio:


                              <img
          src="http://127.0.0.1:8080/WebGoat/attack?
          Screen=9&menu=900&transferFunds=4000"
                   width="1" height="1" />
47/2
       AJAX Security - DOM-Based cross-
                site scripting
48/2
           AJAX Security - DOM-Based
              cross-site scripting
       ● Solução do desafio:
       ● <IMG SRC="images/logos/owasp.jpg"/>
       ● <img src=x onerror=;;alert('XSS') />
       ● <IFRAME SRC="javascript:alert('XSS');"></IFRAME>
       ● Please enter your password:<BR><input type = "password"
         name="pass"/><button onClick="javascript:alert('I have your
         password: ' +
         pass.value);">Submit</button><BR><BR><BR><BR><BR><BR><
         BR><BR> <BR><BR><BR><BR><BR><BR><BR><BR>
49/2
       Parameter Tampering -
          Exploit Hidden Fields
50/2
       Parameter Tampering -
          Exploit Hidden Fields




                Vídeo
51/2
         Session Management Flaws -
       Spoofing an Authentication Cookie
52/2
         Session Management Flaws -
       Spoofing an Authentication Cookie




                    Vídeo
53/2
54/2

         Obrigado!!!!



             Luiz Vieira
           luizwt@gmail.com
       luiz.vieira@4linux.com.br
          www.4linux.com.br
       hackproofing.blogspot.com
        Tel: 55-11-2125-4747

Mais conteúdo relacionado

PDF
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
ODP
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
PDF
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
PDF
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
PPT
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
PDF
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI - DF
PPT
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
PDF
Segurança em Aplicações Web
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI - DF
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Segurança em Aplicações Web

Mais procurados (20)

PPT
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
PDF
Manobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
PDF
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
PPT
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
PDF
Testes de segurança em aplicações web
PDF
Segurança em aplicações web: pequenas ideias, grandes resultados
PDF
Teste seguranca aplicacoes web security testing
PDF
Segurança em Aplicações Web conforme OWASP
PDF
ENSOL 2011 - OWASP e a Segurança na Web
PDF
Introdução de teste de segurança app web
PDF
OWASP_BSB_20120827_mod_security_KLAUBERTHERR
PDF
Teste de segurança do lado servidor - Nível 1
PDF
Webinar # 21 – Análise Forense de Redes
PPTX
Teste de segurança em aplicações web ( sites )
PDF
Segurança em desenvolvimento de software
PDF
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
PPTX
OWASP - Ferramentas
PDF
Introducão a Web Applications Firewalls
PPT
Testes de Segurança de Software (tech-ed 2008)
PPT
Ameacas e Vulnerabilidades em Apps Web-2013
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Manobras Evasivas: Técnicas de Evasão para Varreduras com o Nmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Testes de segurança em aplicações web
Segurança em aplicações web: pequenas ideias, grandes resultados
Teste seguranca aplicacoes web security testing
Segurança em Aplicações Web conforme OWASP
ENSOL 2011 - OWASP e a Segurança na Web
Introdução de teste de segurança app web
OWASP_BSB_20120827_mod_security_KLAUBERTHERR
Teste de segurança do lado servidor - Nível 1
Webinar # 21 – Análise Forense de Redes
Teste de segurança em aplicações web ( sites )
Segurança em desenvolvimento de software
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
OWASP - Ferramentas
Introducão a Web Applications Firewalls
Testes de Segurança de Software (tech-ed 2008)
Ameacas e Vulnerabilidades em Apps Web-2013
Anúncio

Destaque (20)

PDF
PDF
Redes De Computadores - Alberane - 3
PDF
Pescaria
ODP
Modos De OperaçãO Snort Campusparty2010
PDF
Iptables
PPTX
Aula 23 novembro Linux Firewall
PDF
Acessibilidade
PDF
Inst Config Debian
PDF
PPT
Firewall em Linux
PPT
Snort "O sniffer"
PDF
Webcast Luiz Vieira criptografia on-the-fly com software livre
PDF
Segurança em servidores Linux
PPT
Iptables Completo Oliver
PDF
Segurança no Linux
PDF
Firewall
PPT
Firewall
PPTX
SENAI - Segurança firewall
PPS
Segurança com Software Livre
Redes De Computadores - Alberane - 3
Pescaria
Modos De OperaçãO Snort Campusparty2010
Iptables
Aula 23 novembro Linux Firewall
Acessibilidade
Inst Config Debian
Firewall em Linux
Snort "O sniffer"
Webcast Luiz Vieira criptografia on-the-fly com software livre
Segurança em servidores Linux
Iptables Completo Oliver
Segurança no Linux
Firewall
Firewall
SENAI - Segurança firewall
Segurança com Software Livre
Anúncio

Semelhante a Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010 (20)

PDF
OWASP Top 10 - A web security cookbook
PDF
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
PDF
Introdução à Segurança da Informação
PDF
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
PDF
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
PPTX
Engenharia de Software II - Teste de segurança de software
PPTX
Java security
PPT
Seguranca web Testday2012
PPTX
Aplicações Web ‐ Seu site está seguro?
PDF
Os 10 erros mais comuns de segurança na operação de um ecommerce
PDF
Ferramentas livres para teste de invasao
PDF
Palestra: Pentest - Intrusão de Redes
PPTX
Workshop - Testes de Segurança
PDF
API - Security and speed at layer 7 integrated in zabbix.
PDF
2011 01-18.campus party 2011
PDF
FLISOL 2011 Novo Hamburgo - Detectando falhas de segurança na Web com Softwar...
PPT
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
PPT
Top 5 vulnerabilidades_em_aplicacoes_web
PDF
Como invadir uma exchange - Um relatório geral de segurança de corretoras de ...
PDF
Ferranentas OWASP
OWASP Top 10 - A web security cookbook
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Introdução à Segurança da Informação
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Engenharia de Software II - Teste de segurança de software
Java security
Seguranca web Testday2012
Aplicações Web ‐ Seu site está seguro?
Os 10 erros mais comuns de segurança na operação de um ecommerce
Ferramentas livres para teste de invasao
Palestra: Pentest - Intrusão de Redes
Workshop - Testes de Segurança
API - Security and speed at layer 7 integrated in zabbix.
2011 01-18.campus party 2011
FLISOL 2011 Novo Hamburgo - Detectando falhas de segurança na Web com Softwar...
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web
Como invadir uma exchange - Um relatório geral de segurança de corretoras de ...
Ferranentas OWASP

Mais de Luiz Vieira .´. CISSP, OSCE, GXPN, CEH (14)

PDF
Webgoat como ferramenta de aprendizado
PDF
Segurança Física: Lockpicking
PDF
Cool 3 assembly para linux
PDF
Android forensics the hard work
PDF
Segurança nos ciclos de desenvolvimento de softwares
PDF
Auditoria em sistemas linux - LinuxCon Brazil 2011
PDF
Forense Computacional com Software Livre
PDF
Análise de malware com software livre
PDF
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
PPT
Introdução à linguagem python
ODP
Trusted Computing e Software Livre FISL 11 - 2010
Webgoat como ferramenta de aprendizado
Segurança Física: Lockpicking
Cool 3 assembly para linux
Android forensics the hard work
Segurança nos ciclos de desenvolvimento de softwares
Auditoria em sistemas linux - LinuxCon Brazil 2011
Forense Computacional com Software Livre
Análise de malware com software livre
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Introdução à linguagem python
Trusted Computing e Software Livre FISL 11 - 2010

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Apple Pippin Uma breve introdução. - David Glotz
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula 18 - Manipulacao De Arquivos python
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010

  • 1. Analysis of Vulnerabilities in Web Applications Como saber se suas aplicações web estão seguras.
  • 2. 2/2 Quem sou eu? Luiz Vieira ● Construtor 4Linux ● Analista e Consultor de Segurança ● 15 anos de experiência em TI ● Pen-Tester ● Articulista sobre Segurança de vários sites: VivaOLinux, SegurançaLinux, Imasters, HackProofing e etc ● Entusiasta do Software Livre ● Filósofo e Psicoterapeuta
  • 3. Tópicos de hoje ● Princípios de Sistemas Web ● Ataques Web: Origem e Motivação ● Princípios da Segurança Web ● “all input is evil until proven otherwise” ● OWASP ● Ferramentas para Análise e Auditoria ● Prós e Contras das Ferramentas ● Vulnerabilidades Web ● Oportunidades ● WebGoat ● Demo
  • 4. Princípios de Sistemas Web • Ótima escolha para mudança de plataforma das aplicações(?) • A Internet não foi criada visando segurança • Atualmente é considerada uma selva
  • 5. Ataques Web: Origem e Motivação ● Roubo de informações – Benefício Próprio – Espionagem Industrial ● Defacement – Mass scaning/defacing ● (Ex-)Funcionários Insatisfeitos – Salários baixos ou demissões injustas ● Worms
  • 6. Princípios da Segurança Web ● “all input is evil until proven otherwise”. ● Ter uma noção das falhas não é suficiente. ● White List vs Black List
  • 7. “all input is evil until proven otherwise” ● Entradas visíveis e de fácil manipulação – Campos texto – Variáveis de URL ● Entradas de manipulação intermediária – Campos hidden – Valores de cookies – Demais inputs (select, checkbox, radio etc) ● Entradas de difícil manipulação – Campos de cabeçalhos HTTP
  • 8. OWASP ● Significado: – Open Web Application Security Project ● Missão: ● Promove o desenvolvimento seguro de software ● Orientado para o desenvolvimento de serviços baseados na web ● Focado mais em aspectos de desenvolvimento do que em web- design ● Um fórum aberto para discussão ● Um recurso gratuito e livre para qualquer equipe de desenvolvimento ● http://www.owasp.org
  • 9. OWASP Top 10 ● Top 10 Web Application Security Vulnerabilities ● Uma lista dos 10 aspectos de segurança mais críticos ● Atualizado periodicamente ● Crescente aceitação pela indústria ● Federal Trade Commission (US Gov) ● US Defense Information Systems Agency ● VISA (Cardholder Information Security Program) ● Está sendo adotado como um padrão de segurança para aplicações web
  • 10. OWASP Guide Guia para o Desenvolvimento Seguro de Web Apps ● Oferece um conjunto de linhas gerais para o desenvolvimento de software seguro ● Introdução à segurança em geral ● Introdução à segurança aplicacional ● Discute áreas-chave de implementação - Arquitetura - Autenticação - Gestão de Sessões - Controle de Acesso e Autorização - Registro de Eventos - Validação de Dados ● Em contínuo desenvolvimento
  • 11. Ferramentas para Análise e Auditoria ● Distribuições - Backtrack 4 - OWASP Live CD ● Ferramentas - WebScarab - Paros Proxy - Firebug - Muitas outras... ● Plugins - Firecat (para Firefox) http://migre.me/RyHN ● Wargames - Webgoat - Série HACME, da Foundstone - www.hackerskills.com http://projects.webappsec.org/Web-Application-Security-Scanner-List
  • 12. Prós e Contras das Ferramentas Prós Contras  Recursos temporais limitados  Confiabilidade das  Podem poupar muito ferramentas tempo em vulnerabilidades  Não são “A” solução facilmente detectáveis  Não significa que não pelas ferramentas existam falhas se estas não  Boas soluções custo/eficácia forem encontradas  Recursos humanos limitados  Têm limitações  Exige pouco conhecimento  Custo técnico  Tempo de scanning  Automatização de testes  Dependendo da aplicação, frequentes o próprio crawling pode demorar dias
  • 13. Vulnerabilidades Web ● Caminho mais fácil de expor informação. ● Internet não é somente a Web ● Preocupação com vulnerabilidades – Dados valiosos? – E em outro host do mesmo servidor?
  • 15. O código faz parte do perímetro de segurança Não é possível usar proteção ao nível da camada de rede (firewall, SSL, IDS, hardening) para parar ou detectar ataques ao nível aplicacional
  • 16. Isto é preocupante? ● Qual a probabilidade de sucesso de um ataque contra uma aplicação web? ➢ Probabilidade elevada ➢ Fácil de explorar sem conhecimento e ferramentas especiais ➢ Quase indetectável ➢ Existem milhares de programadores web, pouco preocupados com segurança ● Consequências? ➢ Corrupção de dados ou destruição de BD ➢ Acesso root a servidores web ou aplicacionais ➢ Perda de autenticação e de controle de acesso de usuários ➢ Defacement ➢ Ataques secundários a partir da própria aplicação web
  • 18. Principais Vulnerabilidades – OWASP Top 10 2010 ● A1: Injeção ● A2: Cross Site Scripting (XSS) ● A3: Quebra de Autenticação e da Gestão de Sessões ● A4: Referência Insegura Direta a Objetos ● A5: Cross Site Request Forgery (CSRF) ● A6: Configuração de Segurança Incorreta ● A7: Falhas na Restrição de Acesso a URL ● A8: Redirecionamentos e Encaminhamentos não- validados ● A9: Armazenamento Criptográfico Inseguro ● A10: Proteção Insuficiente da Camada de Transporte
  • 19. Cross-Site-Scripting (XSS) ● Alta ocorrência ● Baixo impacto (?) - Sequestro de sessão - Alteração de fluxo de dados - Defacement - Vetor para diversos outros ataques ● Execução arbitrária de códigos Javascript ● Má (ou falta de) filtragem dos dados que podem ser manipulados pelo usuário. ● Permite a criação de worms: – Vírus do Orkut (2007)
  • 20. Exemplo de código vulnerável à XSS
  • 21. Localização da Vulnerabilidade Vulnerabilidade de XSS: A variável "buscar" pode ser facilmente manipulada pelo usuário A variável é repassada para o navegador sem qualquer tipo de filtro
  • 22. Exploração da Vulnerabilidade ● Induzir a vítima a acessar o endereço: - http://localhost/AtaquesWeb/xss_exemplo1.php? busca=<script>alert('Vulneravel+a+XSS')</script>
  • 24. Métodos de Ataque ● Procurar esconder (camuflar) a tentativa de ataque: http://localhost/AtaquesWeb/xss_exemplo1.php?busca= %3c%73%63%72%69%70%74%3e%61%6c %65%72%74%28%27%56%75%6c%6e %65%72%61%76%65%6c%20%61%20%58%53 %53%27%29%3c%2f%73%63%72%69%70%74%3e ● http://localhost/AtaquesWeb/xss_exemplo1.php?busca=<script>alert('Vulneravel a XSS')</script> OU ● – http://localhost/AtaquesWeb/xss_exemplo1.php? busca=“+onmouseover="javascript:alert('XSS')
  • 25. Soluções ● Criar uma whitelist ao invés de uma blacklist ● Utilizar funções de tratamento de caracteres que possuem significado no HTML – PHP: htmlspecialchars() $txtbuscar = htmlspecialchars($_GET['buscar']);
  • 26. Cross Site Request Forgery ● Semelhante a XSS ● Qualquer sistema vulnerável a XSS está vulnerável a XSRF ● Nem toda aplicação vulnerável a XSRF está também vulnerável a XSS ● Permite alterar as informações enviadas ao navegados. ● Ataque client-side ● Não se baseia em executar código JS ● Se baseia em enviar requisições com as credenciais do usuário para o servidor.
  • 27. Soluções ● Ineficientes: – Blacklist – addslashes() é ineficiente para XSRF ● Eficientes: – Evitar falhas de XSS – Controle próprio de tokens
  • 28. Armazenamento Criptográfico Inseguro Definições: ● Funções Hash ● Funções Criptográficas – Criptografia Simétrica – Criptografia Assimétrica ● Hash + Criptografia Ataques: ● Senhas fracas – Brute-force ● Senhas fortes – Wordlist - Rainbowtables + hash sites
  • 29. Armazenamento Criptográfico Inseguro RainbowCrack ● Brute-force Normal: – 350 milhões de senhas (texto puro) por segundo. ● Rainbow: – 62.223 milhões de senhas em texto puro por segundo ● http://www.md5crack.com/
  • 30. Proteção de dados ● Armazenamento de Senha? ● Dados a serem recuperados? ● Hash puro? ● E criptografia? Proteja bem a chave.
  • 31. Execução Remota de Arquivos Características: ● Diversas proteções por configuração ● Alto Impacto ● Execução de Comandos no Servidor Possibilidades: ● Apagar Arquivos ● Instalar Programas (keyloggers, sniffers) ● Acessar Outras Páginas ● Repositório de Arquivos (virus?) ● Utilizar o servidor como zumbi (DDoS ?) ● O que a imaginação permitir...
  • 32. Execução Remota de Arquivos – Exemplos de PHP ● include() ● require() ● include_once() ● require_once() ● include → Em caso de erro continua ● require → Em caso de erro crash! ● _once() → Apenas uma vez E daí? ● Se o arquivo a ser incluído contiver códigos PHP os mesmos serão executados.
  • 33. Execução Remota de Arquivos – Exemplo: Formulário de Acesso
  • 34. Execução Remota de Arquivos – Exemplo: Formulário de Acesso ● É possível notar a utilização das funções citadas. ● Sistema com alta produtividade - Ex: Adicionar um novo item de menu ● O parâmetro de uma das funções include() pode ser manipulada pelo usuário.
  • 35. Execução Remota de Arquivos – Princípio do Ataque ● http://localhost/AtaquesWeb/rfi/?pagina=home home.php ● http://localhost/AtaquesWeb/rfi/?pagina=historico historico.php ● http://localhost/AtaquesWeb/rfi/?pagina=contato contato.php ● ... ● … ● http://localhost/AtaquesWeb/rfi/?pagina=[arquivo_malefico]
  • 36. Execução Remota de Arquivos – Arquivos Maléficos Famosos ● Explorer de Arquivos, bypass de segurança, etc - c99.txt - r57.txt - Safe0ver.txt ● Atenção: Cuidado com trapdoors.
  • 37. Execução Remota de Arquivos – Solução Eficiente ● Criar whitelist, permitindo somente caracteres válidos:
  • 38. 38/2 Oportunidades ● Necessidade de maior nível de segurança ● Previnir X Remediar ● Compliance com normas e metodologias ● Testes automatizados X Testes personalizados ● Funcionário X Consultor
  • 39. 39/2 WebGoat ● WebGoat é uma aplicação web J2EE deliberadamente vulnerável, mantida pelo OWASP e desenvolvida para ensinar lições de segurança em aplicações web. ● http://www.owasp.org/index.php/Category:OWASP _WebGoat_Project
  • 40. 40/2
  • 41. 41/2 Injection Flaws – String SQL Injection
  • 42. 42/2 Injection Flaws – String SQL Injection ● Solução do desafio: Vieira' OR 'a'='a
  • 43. 43/2 Cross-Site Scripting (XSS) - Stage 1: Stored XSS
  • 44. 44/2 Cross-Site Scripting (XSS) - Stage 1: Stored XSS ● Solução do desafio: <script>alert("XSS");</script> OU <script>alert(document.cookie);</script>
  • 45. 45/2 Cross-Site Scripting (XSS) - Cross Site Request Forgery (CSRF)
  • 46. 46/2 Cross-Site Scripting (XSS) - Cross Site Request Forgery (CSRF) ● Solução do desafio: <img src="http://127.0.0.1:8080/WebGoat/attack? Screen=9&menu=900&transferFunds=4000" width="1" height="1" />
  • 47. 47/2 AJAX Security - DOM-Based cross- site scripting
  • 48. 48/2 AJAX Security - DOM-Based cross-site scripting ● Solução do desafio: ● <IMG SRC="images/logos/owasp.jpg"/> ● <img src=x onerror=;;alert('XSS') /> ● <IFRAME SRC="javascript:alert('XSS');"></IFRAME> ● Please enter your password:<BR><input type = "password" name="pass"/><button onClick="javascript:alert('I have your password: ' + pass.value);">Submit</button><BR><BR><BR><BR><BR><BR>< BR><BR> <BR><BR><BR><BR><BR><BR><BR><BR>
  • 49. 49/2 Parameter Tampering - Exploit Hidden Fields
  • 50. 50/2 Parameter Tampering - Exploit Hidden Fields Vídeo
  • 51. 51/2 Session Management Flaws - Spoofing an Authentication Cookie
  • 52. 52/2 Session Management Flaws - Spoofing an Authentication Cookie Vídeo
  • 53. 53/2
  • 54. 54/2 Obrigado!!!! Luiz Vieira luizwt@gmail.com luiz.vieira@4linux.com.br www.4linux.com.br hackproofing.blogspot.com Tel: 55-11-2125-4747