SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
As 10 mais críticas vulnerabilidades de
        segurança em Aplicações Web


            Carlos Serrão
            OWASP Portugal
            ISCTE/DCTI/Adetti/NetMuST
            Abril, 2009
            carlos.serrao@iscte.pt
            carlos.j.serrao@gmail.com
OWASP
             Copyright © 2004 - The OWASP Foundation
             Permission is granted to copy, distribute and/or modify this document under
             the terms of the GNU Free Documentation License.




             The OWASP Foundation
             http://www.owasp.org
O que é segurança de Aplicações Web?

 Não é Segurança de Redes
   Segurança do “código” criado para implementar a
   aplicação web
   Segurança de bibliotecas
   Segurança de sistemas de back-end
   Segurança de servidores web e aplicacionais


 Segurança de Redes ignora o conteúdo do tráfego
 de HTTP
   Firewalls, SSL, Intrusion Detection Systems, Operating
   System Hardening, Database Hardening
                                                     OWASP
O Código faz parte do perímetro de segurança
                                           O seu perímetro de segurança possui
                                               buracos enormes na camada
                                                       aplicacional
Application Layer




                                                                                                  Legacy Systems




                                                                                                                                                Human Resrcs
                                                                                                                   Web Services
                                                                                                                                  Directories
                                                                                      Databases




                                                                                                                                                               Billing
                                                      Custom Developed
                                                       Application Code
                      APPLICATION
                        ATTACK




                                                        App Server
                                                        Web Server
Network Layer




                                                       Hardened OS




                                                                           Firewall
                                     Firewall




                    Não é possível usar protecção ao nível da camada de rede (firewall, SSL, IDS,
                           hardening) para parar ou detectar ataques ao nível aplicacional
                                                                                       OWASP
Isto é preocupante?
 Vamos lá pensar…
   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 controlo de acesso de utilizadores
       Descaracterização (Defacement)
       Ataques secundários a partir da própria aplicação web

                                                         OWASP
Isto é preocupante?

 A Segurança de Aplicações Web é tão importante
 como a Segurança de Redes
   Porque é que grande parte do investimento em Segurança
   é canalizado para a segurança das redes?




                                                 OWASP
1. Parâmetros não validados

 Pedidos HTTP dos browsers para as WebApps
   URL, Querystring, Form Fields, Hidden Fields, Cookies,
   Headers
   As WebApps usam esta informação para gerar páginas
 Os atacantes podem modificar tudo num pedido
 Pontos-chave:
   Verificar tudo antes de usar o pedido HTTP
   Canonicalizar/Normalizar antes de verificar
   Validações Client-side são quase irrelevantes
   Rejeitar tudo o que não seja especificamente aceite
       Tipo, Tamanho min/max, conj. de caracteres, regex, Valores min/max …


                                                                 OWASP
2. Controlos de Acesso quebrados

 O controlo de acesso é a forma como se controla o
 acesso a aplicações e a informação
 O problema é que muito ambientes oferecem
 autenticação, mas não lidam correctamente com o
 controlo de acessos
   Muitos sites tem políticas complexas de controlo de acesso
   De muito difícil implementação
 Pontos-chave
   Anote a política de controlo de acessos
   Não use “IDs” que um atacante pode manipular
   Implemente o controlo de acessos num módulo central

                                                    OWASP
3. Quebra de Contas e da Gestão de Sessões

 Gestão de Contas
   Lidar com as credenciais entre o cliente e o servidor
   Autenticação no backend necessita de credenciais também
 Gestão de Sessões
   O HTTP é um protocolo “stateless”. As WebApps
   necessitam de saber que pedido veio de que utilizador
   Marcar/Propagar as sessões com um ID usando cookies,
   campos hidden, tags no URL, etc…
  Pontos-chave
   Manter sempre as credenciais secretas
   Usar apenas um ID de sessão aleatório fornecido pelo
   ambiente de aplicação
                                                   OWASP
4. Falhas de Cross-Site Scripting (XSS)

 Os browsers Web executam código enviado por sites
 de web
   Javascript
   Flash, e outros…
 Mas o que acontece se um atacante conseguir que
 um site web origine um ataque?
   Armazenado – a aplicação web armazena conteúdo do utilizador, e
    depois envia-o a outros utilizadores
   Refletido – a aplicação web não armazena o ataque, apenas o envia a
    quem enviou o pedido
 Pontos-chave
   Não vale a pena filtrar todas as combinações possíveis – usar uma
    especificação positiva.

                                                              OWASP
5. Buffer Overflows

 As aplicações Web lêem todo o tipo de input dos
 utilizadores
   Bibliotecas, DLL’s, Server code, Custom code, Exec
 Código C e C++ é vulnerável a buffer overflows
   O input ultrapassa o tamanho do buffer e escreve por cima
   do stack
   Pode ser usado para executar código arbitrário
 Pontos-chave
   Evitar usar C ou C++ (em aplicações web)
   Ter cuidado ao usar buffers e a escrever buffers
   Usar bibliotecas de manipulação segura de strings

                                                    OWASP
6. Falhas de Injecção de comandos
 As aplicações Web envolvem multiplos componentes/
  interpretadores
   Chamadas ao SO, BD’s SQL, Sistemas de Templates
 Código Malicioso
   Enviado num pedido HTTP
   Extraído pela aplicação Web
   Passado ao interpretador, executado em nome da aplicação
    Web
 Pontos-chave
   Usar com cuidado extremo a chamada interpretadores
   Usar interfaces limitados sempre que possível
    (PreparedStatement)
   Verificar os valores de retorno


                                                      OWASP
7. Problemas com a Gestão de Erros
 Os erros ocorrem em aplicações Web em qualquer momento
    Falta de memória, demasiados utilizadores, timeout, falhas na base de
     dados, …
    Falhas de Autenticação, Falhas de controlo de acesso, Entradas erradas
 Como responder?
    É preciso dizer ao utilizador o que aconteceu (sem dar pistas ao atacante)
    É preciso registar a mensagem de erro (log)
    Logout, email, pager, apagar cartão de crédito, etc…
 Pontos-chave:
    Ter a certeza que as mensagens de erro não mostram toda a informação
    Desenhar a forma de lidar com os error
    Falhar em segurança
    Configurar o servidor


                                                                OWASP
8. Uso inseguro da Criptografia
 Usar a criptografia para armazenar informação sensível
    Os algoritmos são fáceis de usar. Integrá-los é que é complicado
 Pontos-chave
    Nem pense em inventar um novo algoritmo
    Seja muito cuidadoso no armazenamento de chaves, certificados e
     passwords
    Re-pense se precisa mesmo de armazenar a informação
    Não armazene passwords – use funções de resumo (hash) tais
     como o MD5, SHA-1 ou SHA-256
 O “master secret” pode estar dividido em duas localizações
  diferentes e construído sempre que precisa de ser usado
    Ficheiros de Configuração, servidores externos, escondidos no
     código
                                                          OWASP
9. Falhas de Administração Remota

 Muitos sites permitem administração remota
   Muito difícil, com interfaces escondidas
   Difíceis de proteger
 Pontos-chave
   Elimitar toda a administração através da Internet (se
   possível)
   Separar a aplicação de administração da aplicação
   principal
   Limite o que se pode fazer remotamente
 Considere a utilização de autenticação forte
   Smart-card ou token

                                                     OWASP
10. Falhas na configuração de servidores
Web e Aplicacionais
 Todos os servidores web e aplicacionais possuem
 múltiplas configurações relacionadas com segurança
   Contas por defeito e passwords
   Mensagens de erro com demasiados detalhes
   Má configuração de SSL, certificados usados por defeito,
   certificados auto-gerados e auto-assinados
   Serviços de administração não-utilizados
 Pontos-chave:
   Estar atento aos patches (Code Red, Slammer)
   Usar ferramentas de scanning (Nikto, Nessus)
   Configurar os servidores a pensar em segurança (harden!)

                                                    OWASP
Um Plano de Saúde simples

 Treino e Formação
    Ler o relatório do Top Ten!
    Formar os programadores em segurança aplicacional para
    web
    User a ferramenta OWASP WebGoat para aprender como as
    vulnerabilidades actuam
 Políticas
    Escrever as regras de segurança da aplicação
 Revisões
    Efectuar revisões de código e efectuar testes de penetração
    com frequência
                                                     OWASP
Às armas… às armas ;-)
 Clientes
   Exigir aplicações web que não padeçam destes 10
   problemas
 Programadores
   Assumir a responsabilidade de tornar o código seguro
 Organizações de Desenvolvimento de Software
   Garantir que as aplicações web não sofrem destes 10
   problemas de segurança
 Professores
   Parem de ensinar a programar de forma “insegura”
 Gestores de Projecto
   Separar o orçamento de segurança entre redes e aplicação
   Tornar a segurança como parte da análise de desempenho
   do programador
                                                   OWASP

Contenu connexe

Similaire à OWASP Top Ten 2004

OWASP @ ISCTE-IUL, OWASP Top 10 2010
OWASP @ ISCTE-IUL, OWASP Top 10 2010OWASP @ ISCTE-IUL, OWASP Top 10 2010
OWASP @ ISCTE-IUL, OWASP Top 10 2010Carlos Serrao
 
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)Carlos Serrao
 
Introdução ao OWASP
Introdução ao OWASPIntrodução ao OWASP
Introdução ao OWASPCarlos Serrao
 
Seguranca web testday2012
Seguranca web testday2012Seguranca web testday2012
Seguranca web testday2012Marcio Cunha
 
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
 
E scan tech i - bem vindos ao escan
E scan   tech i - bem vindos ao escanE scan   tech i - bem vindos ao escan
E scan tech i - bem vindos ao escanAlexandre Almeida
 
Apresentação acunetix scanner ambiente web - abril2012 [modo de compatibili...
Apresentação acunetix   scanner ambiente web - abril2012 [modo de compatibili...Apresentação acunetix   scanner ambiente web - abril2012 [modo de compatibili...
Apresentação acunetix scanner ambiente web - abril2012 [modo de compatibili...SUNLIT Technologies
 
Os 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceOs 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceE-Commerce Brasil
 
OWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP Brasília
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebMagno Logan
 
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
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1Edgar Silva
 
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
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 

Similaire à OWASP Top Ten 2004 (20)

OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
OWASP @ ISCTE-IUL, OWASP Top 10 2010
OWASP @ ISCTE-IUL, OWASP Top 10 2010OWASP @ ISCTE-IUL, OWASP Top 10 2010
OWASP @ ISCTE-IUL, OWASP Top 10 2010
 
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)
OWASP @ ISCTE-IUL - OWASP Top 10 (v2010)
 
Introdução ao OWASP
Introdução ao OWASPIntrodução ao OWASP
Introdução ao OWASP
 
Seguranca web testday2012
Seguranca web testday2012Seguranca web testday2012
Seguranca web testday2012
 
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
 
E scan tech i - bem vindos ao escan
E scan   tech i - bem vindos ao escanE scan   tech i - bem vindos ao escan
E scan tech i - bem vindos ao escan
 
Apresentação acunetix scanner ambiente web - abril2012 [modo de compatibili...
Apresentação acunetix   scanner ambiente web - abril2012 [modo de compatibili...Apresentação acunetix   scanner ambiente web - abril2012 [modo de compatibili...
Apresentação acunetix scanner ambiente web - abril2012 [modo de compatibili...
 
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
 
Os 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceOs 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerce
 
OWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHA
 
Ass - RIA
Ass - RIAAss - RIA
Ass - RIA
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
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
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1
 
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...
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 

Plus de Carlos Serrao

Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"
Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"
Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"Carlos Serrao
 
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...Carlos Serrao
 
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]Carlos Serrao
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebCarlos Serrao
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisCarlos Serrao
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisCarlos Serrao
 
OWASP e o desenvolvimento seguro de aplicações para a Web
OWASP e o desenvolvimento seguro de aplicações para a WebOWASP e o desenvolvimento seguro de aplicações para a Web
OWASP e o desenvolvimento seguro de aplicações para a WebCarlos Serrao
 
Principios básicos de segurança on-line
Principios básicos de segurança on-linePrincipios básicos de segurança on-line
Principios básicos de segurança on-lineCarlos Serrao
 
To DRM or not to DRM?
To DRM or not to DRM?To DRM or not to DRM?
To DRM or not to DRM?Carlos Serrao
 
OWASP presentation on FISTA2011
OWASP presentation on FISTA2011OWASP presentation on FISTA2011
OWASP presentation on FISTA2011Carlos Serrao
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalCarlos Serrao
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisCarlos Serrao
 
OWASP, PT.OWASP, IBWAS'10 & Cia.
OWASP, PT.OWASP, IBWAS'10 & Cia.OWASP, PT.OWASP, IBWAS'10 & Cia.
OWASP, PT.OWASP, IBWAS'10 & Cia.Carlos Serrao
 
Owasp@iscte iul ferramentas-analise_vulnerabilidades
Owasp@iscte iul ferramentas-analise_vulnerabilidadesOwasp@iscte iul ferramentas-analise_vulnerabilidades
Owasp@iscte iul ferramentas-analise_vulnerabilidadesCarlos Serrao
 
OWASP@ ISCTE-IUL, Segurança em PHP
OWASP@ ISCTE-IUL, Segurança em PHPOWASP@ ISCTE-IUL, Segurança em PHP
OWASP@ ISCTE-IUL, Segurança em PHPCarlos Serrao
 
OWASP @ ISCTE-IUL, Criptografia em PHP
OWASP @ ISCTE-IUL, Criptografia em PHPOWASP @ ISCTE-IUL, Criptografia em PHP
OWASP @ ISCTE-IUL, Criptografia em PHPCarlos Serrao
 
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP PortugalOWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP PortugalCarlos Serrao
 
aula de PED - Academia ISCTE-IUL 2010
aula de PED - Academia ISCTE-IUL 2010aula de PED - Academia ISCTE-IUL 2010
aula de PED - Academia ISCTE-IUL 2010Carlos Serrao
 

Plus de Carlos Serrao (20)

Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"
Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"
Prevenir o "ransomware" - Guia da OWASP para prevenção do "ransomware"
 
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
 
OWASP Mobile Top 10
OWASP Mobile Top 10OWASP Mobile Top 10
OWASP Mobile Top 10
 
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]
Vamos tirar uma selfie? [... como a privacidade morreu e ninguém nos avisou]
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a Web
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes Sociais
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes Sociais
 
OWASP e o desenvolvimento seguro de aplicações para a Web
OWASP e o desenvolvimento seguro de aplicações para a WebOWASP e o desenvolvimento seguro de aplicações para a Web
OWASP e o desenvolvimento seguro de aplicações para a Web
 
Principios básicos de segurança on-line
Principios básicos de segurança on-linePrincipios básicos de segurança on-line
Principios básicos de segurança on-line
 
To DRM or not to DRM?
To DRM or not to DRM?To DRM or not to DRM?
To DRM or not to DRM?
 
OWASP presentation on FISTA2011
OWASP presentation on FISTA2011OWASP presentation on FISTA2011
OWASP presentation on FISTA2011
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web Nacional
 
Segurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes SociaisSegurança e Privacidade em Redes Sociais
Segurança e Privacidade em Redes Sociais
 
OWASP, PT.OWASP, IBWAS'10 & Cia.
OWASP, PT.OWASP, IBWAS'10 & Cia.OWASP, PT.OWASP, IBWAS'10 & Cia.
OWASP, PT.OWASP, IBWAS'10 & Cia.
 
Is the Web at Risk?
Is the Web at Risk?Is the Web at Risk?
Is the Web at Risk?
 
Owasp@iscte iul ferramentas-analise_vulnerabilidades
Owasp@iscte iul ferramentas-analise_vulnerabilidadesOwasp@iscte iul ferramentas-analise_vulnerabilidades
Owasp@iscte iul ferramentas-analise_vulnerabilidades
 
OWASP@ ISCTE-IUL, Segurança em PHP
OWASP@ ISCTE-IUL, Segurança em PHPOWASP@ ISCTE-IUL, Segurança em PHP
OWASP@ ISCTE-IUL, Segurança em PHP
 
OWASP @ ISCTE-IUL, Criptografia em PHP
OWASP @ ISCTE-IUL, Criptografia em PHPOWASP @ ISCTE-IUL, Criptografia em PHP
OWASP @ ISCTE-IUL, Criptografia em PHP
 
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP PortugalOWASP @ ISCTE-IUL, OWASP e OWASP Portugal
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
 
aula de PED - Academia ISCTE-IUL 2010
aula de PED - Academia ISCTE-IUL 2010aula de PED - Academia ISCTE-IUL 2010
aula de PED - Academia ISCTE-IUL 2010
 

OWASP Top Ten 2004

  • 1. As 10 mais críticas vulnerabilidades de segurança em Aplicações Web Carlos Serrão OWASP Portugal ISCTE/DCTI/Adetti/NetMuST Abril, 2009 carlos.serrao@iscte.pt carlos.j.serrao@gmail.com OWASP Copyright © 2004 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License. The OWASP Foundation http://www.owasp.org
  • 2. O que é segurança de Aplicações Web?  Não é Segurança de Redes  Segurança do “código” criado para implementar a aplicação web  Segurança de bibliotecas  Segurança de sistemas de back-end  Segurança de servidores web e aplicacionais  Segurança de Redes ignora o conteúdo do tráfego de HTTP  Firewalls, SSL, Intrusion Detection Systems, Operating System Hardening, Database Hardening OWASP
  • 3. O Código faz parte do perímetro de segurança O seu perímetro de segurança possui buracos enormes na camada aplicacional Application Layer Legacy Systems Human Resrcs Web Services Directories Databases Billing Custom Developed Application Code APPLICATION ATTACK App Server Web Server Network Layer Hardened OS Firewall Firewall Não é possível usar protecção ao nível da camada de rede (firewall, SSL, IDS, hardening) para parar ou detectar ataques ao nível aplicacional OWASP
  • 4. Isto é preocupante?  Vamos lá pensar…  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 controlo de acesso de utilizadores   Descaracterização (Defacement)   Ataques secundários a partir da própria aplicação web OWASP
  • 5. Isto é preocupante?  A Segurança de Aplicações Web é tão importante como a Segurança de Redes  Porque é que grande parte do investimento em Segurança é canalizado para a segurança das redes? OWASP
  • 6. 1. Parâmetros não validados  Pedidos HTTP dos browsers para as WebApps  URL, Querystring, Form Fields, Hidden Fields, Cookies, Headers  As WebApps usam esta informação para gerar páginas  Os atacantes podem modificar tudo num pedido  Pontos-chave:  Verificar tudo antes de usar o pedido HTTP  Canonicalizar/Normalizar antes de verificar  Validações Client-side são quase irrelevantes  Rejeitar tudo o que não seja especificamente aceite   Tipo, Tamanho min/max, conj. de caracteres, regex, Valores min/max … OWASP
  • 7. 2. Controlos de Acesso quebrados  O controlo de acesso é a forma como se controla o acesso a aplicações e a informação  O problema é que muito ambientes oferecem autenticação, mas não lidam correctamente com o controlo de acessos  Muitos sites tem políticas complexas de controlo de acesso  De muito difícil implementação  Pontos-chave  Anote a política de controlo de acessos  Não use “IDs” que um atacante pode manipular  Implemente o controlo de acessos num módulo central OWASP
  • 8. 3. Quebra de Contas e da Gestão de Sessões  Gestão de Contas  Lidar com as credenciais entre o cliente e o servidor  Autenticação no backend necessita de credenciais também  Gestão de Sessões  O HTTP é um protocolo “stateless”. As WebApps necessitam de saber que pedido veio de que utilizador  Marcar/Propagar as sessões com um ID usando cookies, campos hidden, tags no URL, etc…   Pontos-chave  Manter sempre as credenciais secretas  Usar apenas um ID de sessão aleatório fornecido pelo ambiente de aplicação OWASP
  • 9. 4. Falhas de Cross-Site Scripting (XSS)  Os browsers Web executam código enviado por sites de web  Javascript  Flash, e outros…  Mas o que acontece se um atacante conseguir que um site web origine um ataque?  Armazenado – a aplicação web armazena conteúdo do utilizador, e depois envia-o a outros utilizadores  Refletido – a aplicação web não armazena o ataque, apenas o envia a quem enviou o pedido  Pontos-chave  Não vale a pena filtrar todas as combinações possíveis – usar uma especificação positiva. OWASP
  • 10. 5. Buffer Overflows  As aplicações Web lêem todo o tipo de input dos utilizadores  Bibliotecas, DLL’s, Server code, Custom code, Exec  Código C e C++ é vulnerável a buffer overflows  O input ultrapassa o tamanho do buffer e escreve por cima do stack  Pode ser usado para executar código arbitrário  Pontos-chave  Evitar usar C ou C++ (em aplicações web)  Ter cuidado ao usar buffers e a escrever buffers  Usar bibliotecas de manipulação segura de strings OWASP
  • 11. 6. Falhas de Injecção de comandos  As aplicações Web envolvem multiplos componentes/ interpretadores  Chamadas ao SO, BD’s SQL, Sistemas de Templates  Código Malicioso  Enviado num pedido HTTP  Extraído pela aplicação Web  Passado ao interpretador, executado em nome da aplicação Web  Pontos-chave  Usar com cuidado extremo a chamada interpretadores  Usar interfaces limitados sempre que possível (PreparedStatement)  Verificar os valores de retorno OWASP
  • 12. 7. Problemas com a Gestão de Erros  Os erros ocorrem em aplicações Web em qualquer momento  Falta de memória, demasiados utilizadores, timeout, falhas na base de dados, …  Falhas de Autenticação, Falhas de controlo de acesso, Entradas erradas  Como responder?  É preciso dizer ao utilizador o que aconteceu (sem dar pistas ao atacante)  É preciso registar a mensagem de erro (log)  Logout, email, pager, apagar cartão de crédito, etc…  Pontos-chave:  Ter a certeza que as mensagens de erro não mostram toda a informação  Desenhar a forma de lidar com os error  Falhar em segurança  Configurar o servidor OWASP
  • 13. 8. Uso inseguro da Criptografia  Usar a criptografia para armazenar informação sensível  Os algoritmos são fáceis de usar. Integrá-los é que é complicado  Pontos-chave  Nem pense em inventar um novo algoritmo  Seja muito cuidadoso no armazenamento de chaves, certificados e passwords  Re-pense se precisa mesmo de armazenar a informação  Não armazene passwords – use funções de resumo (hash) tais como o MD5, SHA-1 ou SHA-256  O “master secret” pode estar dividido em duas localizações diferentes e construído sempre que precisa de ser usado  Ficheiros de Configuração, servidores externos, escondidos no código OWASP
  • 14. 9. Falhas de Administração Remota  Muitos sites permitem administração remota  Muito difícil, com interfaces escondidas  Difíceis de proteger  Pontos-chave  Elimitar toda a administração através da Internet (se possível)  Separar a aplicação de administração da aplicação principal  Limite o que se pode fazer remotamente  Considere a utilização de autenticação forte  Smart-card ou token OWASP
  • 15. 10. Falhas na configuração de servidores Web e Aplicacionais  Todos os servidores web e aplicacionais possuem múltiplas configurações relacionadas com segurança  Contas por defeito e passwords  Mensagens de erro com demasiados detalhes  Má configuração de SSL, certificados usados por defeito, certificados auto-gerados e auto-assinados  Serviços de administração não-utilizados  Pontos-chave:  Estar atento aos patches (Code Red, Slammer)  Usar ferramentas de scanning (Nikto, Nessus)  Configurar os servidores a pensar em segurança (harden!) OWASP
  • 16. Um Plano de Saúde simples  Treino e Formação  Ler o relatório do Top Ten!  Formar os programadores em segurança aplicacional para web  User a ferramenta OWASP WebGoat para aprender como as vulnerabilidades actuam  Políticas  Escrever as regras de segurança da aplicação  Revisões  Efectuar revisões de código e efectuar testes de penetração com frequência OWASP
  • 17. Às armas… às armas ;-)  Clientes  Exigir aplicações web que não padeçam destes 10 problemas  Programadores  Assumir a responsabilidade de tornar o código seguro  Organizações de Desenvolvimento de Software  Garantir que as aplicações web não sofrem destes 10 problemas de segurança  Professores  Parem de ensinar a programar de forma “insegura”  Gestores de Projecto  Separar o orçamento de segurança entre redes e aplicação  Tornar a segurança como parte da análise de desempenho do programador OWASP