SlideShare ist ein Scribd-Unternehmen logo
1 von 118
Downloaden Sie, um offline zu lesen
OWASP e o desenvolvimento
seguro de aplicações para a Web        ISELTech’12
                                       2012.05.23
                       Carlos Serrão
@pontocom
carlos.serrao@iscte.pt
carlos.j.serrao@iscte.pt
http://www.linkedin.com/in/carlosserrao
“We wouldn’t have to spend so much             time,
money, and effort on network security if
 we didn’t have such bad software

               security”
               Viega & McGraw, Building Secure Software, Addison
                                    Wesley
Segurança de Software
Segurança de Software

• o software é ubíquo
Segurança de Software

• o software é ubíquo

• dependemos do software nos diversos aspectos da nossa
  vida
Segurança de Software

• o software é ubíquo

• dependemos do software nos diversos aspectos da nossa
  vida

• funções críticas de negócio dependem de software
Segurança de Software

• o software é ubíquo

• dependemos do software nos diversos aspectos da nossa
  vida

• funções críticas de negócio dependem de software

• software está cada vez mais exposto à Internet
Segurança de Software

• o software é ubíquo

• dependemos do software nos diversos aspectos da nossa
  vida

• funções críticas de negócio dependem de software

• software está cada vez mais exposto à Internet

• exposição aumentada torna o software visível para terceiros
Segurança de Software

• o software é ubíquo

• dependemos do software nos diversos aspectos da nossa
  vida

• funções críticas de negócio dependem de software

• software está cada vez mais exposto à Internet

• exposição aumentada torna o software visível para terceiros

• nem todas as pessoas são bem intencionadas
Problema no software

• Características do software actual

    • Complexidade

         • Ataques exploram bugs designados por vulnerabilidades

         • Estima-se entre 5-50 bugs por 1000 linhas de código

         • Windows XP 40 milhões de linhas de código


    • Extensibilidade

         • O que é o software nos nossos computadores? SO + software em produção + patches + 3rd party
           DLLs + device drivers + plugins + ....


    • Conectividade

         • Internet (1+ biliões de utilizadores) + sistemas de controlo + PDAs + telemóveis + ...
WhiteHat Security, Website Security Statistics Report, Winter 2011
Vulnerabilidades
                                                            Específicas
                        cífic       as
               Web espe
A   p licações

              s Web standard
             e
    Aplicaçõ
                     eb
          Se rvidor W                                       Vulnerabilidades
                                                            conhecidas e
                      s                                     documentadas
         Base de Dado


                    e   s
           Aplicaçõ

                     ra     tivo
        Siste ma Ope


                 Rede



                             WhiteHat Security, Website Security Statistics Report, Winter 2011
Tipologia de um ataque aplicacional
                                              Network Layer


                                                 OS Layer


                                                 Application
   Network Layer                                   Layer


     OS Layer                             Custom
                                                               Back-end
                                         Application
    Application                                                Database
      Layer
     (End-user     Application Traffic
     interface)
Tipologia de um ataque aplicacional
                                              Network Layer


                                                 OS Layer


                                                 Application
   Network Layer                                   Layer


     OS Layer                             Custom
                                                               Back-end
                                         Application
    Application                                                Database
      Layer
     (End-user     Application Traffic
     interface)
Tipologia de um ataque aplicacional
                                              Network Layer


                                                 OS Layer


                                                 Application
   Network Layer                                   Layer


     OS Layer                             Custom
                                                               Back-end
                                         Application
    Application                                                Database
      Layer
     (End-user     Application Traffic
     interface)
Tipologia de um ataque aplicacional
                                              Network Layer


                                                 OS Layer


                                                 Application
   Network Layer                                   Layer


     OS Layer                             Custom
                                                               Back-end
                                         Application
    Application                                                Database
      Layer
     (End-user     Application Traffic
     interface)
Citigroup attack...




                      ...information accessed on
                            360,069 accounts
Top 10, anyone?...




                                     Attack vector

      http://www.owasp.org/index.php/Top_10
2011 CWE/SANS Top 25 Most Dangerous
Software Errors
 1. Improper Neutralization of Special Elements used in           13.Improper Limitation of a Pathname to a
    an SQL Command ('SQL Injection')                                 Restricted Directory ('Path Traversal')
 2. Improper Neutralization of Special Elements used in           14.Download of Code Without Integrity Check
    an OS Command ('OS Command Injection')
                                                                  15.Incorrect Authorization
 3. Buffer Copy without Checking Size of Input ('Classic          16.Inclusion of Functionality from Untrusted
    Buffer Overflow')                                                 Control Sphere
 4. Improper Neutralization of Input During Web Page              17.Incorrect Permission Assignment for
    Generation ('Cross-site Scripting')                              Critical Resource

 5. Missing Authentication for Critical Function                  18.Use of Potentially Dangerous Function
                                                                  19.Use of a Broken or Risky Cryptographic
 6. Missing Authorization                                            Algorithm
 7. Use of Hard-coded Credentials                                 20.Incorrect Calculation of Buffer Size
                                                                  21.Improper Restriction of Excessive
 8. Missing Encryption of Sensitive Data
                                                                     Authentication Attempts
 9. Unrestricted Upload of File with Dangerous Type               22.URL Redirection to Untrusted Site ('Open
                                                                     Redirect')
 10. Reliance on Untrusted Inputs in a Security Decision
                                                                  23.Uncontrolled Format String
 11. Execution with Unnecessary Privileges
                                                                  24.Integer Overflow or Wraparound
 12. Cross-Site Request Forgery (CSRF)                            25.Use of a One-Way Hash without a Salt
                                             29 June 2011, http://cwe.mitre.org/top25/
2011 CWE/SANS Top 25 Most Dangerous
Software Errors
 1. Improper Neutralization of Special Elements used in           13.Improper Limitation of a Pathname to a
    an SQL Command ('SQL Injection')                                 Restricted Directory ('Path Traversal')
 2. Improper Neutralization of Special Elements used in           14.Download of Code Without Integrity Check
    an OS Command ('OS Command Injection')
                                                                  15.Incorrect Authorization
 3. Buffer Copy without Checking Size of Input ('Classic          16.Inclusion of Functionality from Untrusted
    Buffer Overflow')                                                 Control Sphere
 4. Improper Neutralization of Input During Web Page              17.Incorrect Permission Assignment for
    Generation ('Cross-site Scripting')                              Critical Resource

 5. Missing Authentication for Critical Function                  18.Use of Potentially Dangerous Function
                                                                  19.Use of a Broken or Risky Cryptographic
 6. Missing Authorization                                            Algorithm
 7. Use of Hard-coded Credentials                                 20.Incorrect Calculation of Buffer Size
                                                                  21.Improper Restriction of Excessive
 8. Missing Encryption of Sensitive Data
                                                                     Authentication Attempts
 9. Unrestricted Upload of File with Dangerous Type               22.URL Redirection to Untrusted Site ('Open
                                                                     Redirect')
 10. Reliance on Untrusted Inputs in a Security Decision
                                                                  23.Uncontrolled Format String
 11. Execution with Unnecessary Privileges
                                                                  24.Integer Overflow or Wraparound
 12. Cross-Site Request Forgery (CSRF)                            25.Use of a One-Way Hash without a Salt
                                             29 June 2011, http://cwe.mitre.org/top25/
Sony attacks




               http://attrition.org/security/rants/sony_aka_sownage.html
Sony attacks
                 “Several of Sony's sites have been
               compromised as a result of basic SQL
               injection attacks, nothing elaborate or
                              complex.”




                  http://attrition.org/security/rants/sony_aka_sownage.html
Sony attacks
                 “Several of Sony's sites have been
               compromised as a result of basic SQL
               injection attacks, nothing elaborate or
                              complex.”




                  http://attrition.org/security/rants/sony_aka_sownage.html
https://www.dges.mctes.pt/
wwwReportViewer/
ReportViewer.aspx?Report=/
RelatoriosBolsas/
Autorizacao_ST&CandidatoID=XXX
XXX&CandidaturaID=XXXXXX
https://www.dges.mctes.pt/
wwwReportViewer/
ReportViewer.aspx?Report=/
RelatoriosBolsas/
Autorizacao_ST&CandidatoID=XXX
XXX&CandidaturaID=XXXXXX
SQL injection #101
Contexto

• Falta de percepção da
  segurança

   • as (algumas) organizações não
     investem o suficiente em
     segurança (ou investem
     incorretamente)

   • programadores não percebem
     os riscos de segurança (ou não
     podem ou querem perceber)

       • DISCLAIMER: não estou com
         isto a insinuar que *TODOS* os
         programadores são maus ;-)
Motivação/Contexto




Tendências
Cisco para
   2011
Motivação/Contexto




      Número médio de vulnerabilidades sérias encontradas
        em WebApps por sector (fonte: WhiteHat, 2011)
Motivação/Contexto




   Percentagem de ocorrência de problemas de segurança em
              WebApps (fonte: WhiteHat, 2011)
Motivação/Contexto
Motivação/Contexto
   Gartner	
  Group	
  (2009)              IBM	
  (2009)
                                              Outros
         Outros                               10%
         25%


                           Aplicacional      Sites	
  Web	
  Vulneráveis
                           75%               90%




         WASC	
  (2009)

           Outros                          Outros
           15%                             22%


             Sites	
  Web	
  Vulneráveis
             85%                                       Fáceis	
  de	
  Explorar
                                                       78%
... an open community dedicated to enabling
    organizations to develop, purchase, and
   maintain applications that can be trusted
OWASP?

• Open Web Application Security Project

   • Promove o desenvolvimento seguro de software

   • Orientado para o desenvolvimento de serviços baseados na web

   • Focado principalmente em aspectos de desenvolvimento do
     que em web-design

   • Um fórum aberto para discussão

   • Um recurso gratuito e livre para qualquer equipa de
     desenvolvimento
OWASP?

• Open Web Application Security Project

     • Organização sem fins lucrativos, orientada para esforço voluntário

          •   Todos os membros são voluntários

          •   Todo o trabalho é “doado” por patrocinadores


     • Oferecer recursos livres para a comunidade

          •   Publicações, Artigos, Normas

          •   Software de Testes e de Formação

          •   Chapters Locais & Mailing Lists


     • Suportada através de patrocínios

          •   Suporte de empresas através de patrocínios financeiros ou de projectos

          •   Patrocínios pessoais por parte dos membros
OWASP
OWASP
OWASP?
OWASP?

• Top 10 Web Application Security Risks/Vulnerabilities

    • Uma lista dos 10 aspectos de segurança mais críticos

    • Actualizado numa base (quase) anual

    • Crescente aceitação pela indústria

         • Federal Trade Commission (US Gov)

         • US Defense Information Systems Agency


         • VISA (Cardholder Information Security Program)




• Está a ser adoptado como um standard de segurança para aplicações web
OWASP?




    http://www.owasp.org/index.php/Top_10
OWASP
OWASP SUMMIT 2011
Ataques contra WebApps
Ataques

• Ataques contra a infra-estrutura

• Ataques contra a aplicação

• Ataques contra os utilizadores

• Outros ataques
Ataques




 parse input
          escape output
Ataques contra a infra-estrutura
      atacar a camada mais fraca
Aplicação Web

Servidor Aplicacional

 Servidor Web

Sistema Operativo

Dispositivos de Rede
Aplicação Web

                                                       Servidor Aplicacional

                                                        Servidor Web

                                                       Sistema Operativo

 Estão todos caminhos desnecessários fechados?         Dispositivos de Rede
 Estão todos os portos desnecessários fechados?
Está o interface de administração acessível via web?
 Pode uma conta de administração ser quebrada?
           Está o dispositivo actualizado?
Aplicação Web

                                                 Servidor Aplicacional

                                                  Servidor Web
   Estão todos os serviços desnecessários
                 desactivados?                   Sistema Operativo
    Estão todas as contas desnecessárias
                 desactivadas?
Todas as passwords de defeito foram alteradas?
          Está o sistema actualizado?            Dispositivos de Rede
Aplicação Web

                                                   Servidor Aplicacional

Todos os scripts desnecessários foram removidos?
  Existem alguns recursos de backup/teste ainda
                                                    Servidor Web
                    disponíveis?
        Está o servidor de web actualizado?
 Foram alteradas todas as passwords por defeito?   Sistema Operativo

                                                   Dispositivos de Rede
Aplicação Web
Todas as aplicações de demonstração foram
                 removidas?                   Servidor Aplicacional
        Está o servidor actualizado?
 Está a parte de administração protegida de
               acesso externo?
  Indexação de directorias foi desactivada?
                                               Servidor Web
 Foram as passwords de defeito alteradas?

                                              Sistema Operativo

                                              Dispositivos de Rede
Aplicação Web
E aqui????
             Servidor Aplicacional

              Servidor Web

             Sistema Operativo

             Dispositivos de Rede
o seu sistema será tão seguro
 quanto a segurança do elo
         mais fraco...



                         ©"Darwin"Bell@flickr"
A6: Configuração de Segurança Incorrecta
• Qual é o Risco?

     • Se existir um elo mais fraco do que a própria aplicação Web, o atacante vai preferir atacar essa camada mais
       fraca

• Quais são as principais contra-medidas?

     • Garantir a segurança de todas as camadas

     • Reduzir os serviços e contas ao mínimo

     • Não usar passwords por defeito

     • Ter tudo actualizado

     • Usar e aplicar as directrizes de segurança (segurança do SO, segurança do servidor Web, segurança do
       servidor aplicacional, etc.)

     • Manter a configuração por defeito da aplicação Web segura

     • “Funcionamento seguro numa arquitectura segura”
Ataques contra a aplicação
    injectar código hostil...
e se?....
e se?....




            SELECT * FROM users usr
        WHERE usr.username = ‘admin’;--’
                     AND
usr.password=’bb21158c733229347bd4e681891e21
                  3d94c685be’
e se?....
qualquer input do
 utilizador pode ser
um vector de ataque
A1: Injecção

• Risco?

  • Qualquer ponto de entrada da aplicação pode ser usada
    como vector para injectar conteúdo hostil para modificar o
    comportamento das mesmas

• IMPORTANTE

  • Não afecta apenas o SQL

  • LDAP e XPath podem ser igualmente vulneráveis
A1: Injecção

• CONTRA-MEDIDAS

  • Todas as entradas/input pode ser modificado do lado do cliente. É necessário
    validar:

      • Parâmetros das strings de query;

      • Campos dos formulários (incluindo os “hidden”)

      • Upload de Ficheiros: se se está à espera de uma imagem, é preciso ter a certeza
        que se recebe uma imagem!!!!

      • Cookies

      • HTTP Headers: todos os campos, incluindo o “referrer” são input do utilizador (e
        podem ser modificados)
A1: Injecção
• CONTRA-MEDIDAS

    •   NUNCA copiar o input do utilizador directamente para comandos de query (SQL, Xpath, LDAP, comandos do SO, etc.)

           •   usar um modelo de ligação para parâmetros SQL:




           •   se não existir um modelo de ligação, codificar o input antes de o usar:

                   •   usar aspas (“) no caso do SQL Server


                   •   pelicas com ‘’ (’) no caso do MySQL (no PHP, a função addslashes é bastante útil)


                   •   ...
A1: Injecção

• CONTRA-MEDIDAS

   • escolher a melhor estratégia de validação

   • melhor: whitelist

       • quando todos os valores possíveis são conhecidos (enums, expressões if/else...if, expressões
         regulares, ...)


   • graylist

       • forçar as regras de negócio

            •   tipo: string, numérico, byte, ...


            •   intervalo: >0, <MaxInt, [a-z]{3,20}


   • mais fraco: blacklist                 if(input.IndexOf(“<script>”)>=0)
                                                         // rejeitar
Ataques contra a aplicação
 brincar com identificadores óbvios...
e se?....
                                            •     um atacante repara que o
                                                   parâmetro acct é 6065
                                                        ?acct=6065
https://www.onlinebank.com/user?acct=6065



                                            • modifica este valor para um
                                                       valor próximo
                                                        ?acct=6066




                                            •       atacante consegue ver a
                                                informação da conta da vítima
A4: Referências Directas a Objectos Inseguras

• Qual é risco?

    • Todas as referências podem ser modificadas do lado do cliente. Um atacante pode conseguir
      obter acesso e/ou modificar informação confidencial




• Quais as contra-medidas?

    • Nunca enviar referências internas para o browser:

         • Usar mapeamentos temporários e aleatórios (#0, #1, #2, #3, etc.)


    • OU combinar o acesso a referências com controlo de acesso:

         • SELECT * FROM item WHERE id = $id AND owner = $uID

         • UPDATE item … WHERE id = $id AND owner = $uid
Ataques contra a aplicação
quebrar os mecanismos de sessão
        e de autenticação
e se?....
e se?....
e se?....
1    Utilizador envia credenciais




                                                                                                           Knowledge Mgmt
                                                                                                           Communication
                                                                                          Administration




                                                                                                            Bus. Functions
                                                                                                             E-Commerce
                                                                                           Transactions
                                                                               Accounts
                                                                               Finance
    www.site.com?JSESSIONID=9FA1DB9EA...
                                        Site usa URL rewriting          2                 Custom Code
                                        (i.e., coloca sessão na URL)




                                       3       Utilizador carrega num link para
                                               http://www.hacker.com num forum

                   Hacker verificar os logs dos referers no www.hacker.com
                                   e encontra o JSESSIONID do utilizador          4
5   Hacker usa JSESSIONID e
    assume a identificação e a
    conta da vítima
A3: Quebra da Autenticação e da Gestão de
Sessões

• Qual o risco?

    • o HTTP é um protocolo stateless. Cada pedido deve transmitir informação da sessão na rede

    • os mecanismos de autenticação são um dos alvos preferenciais dos atacantes, a vários
      níveis: formulários, tráfego, dados armazenados.

• Quais as contra-medidas?

    • Usar mecanismos simples, normalizados e centralizados de sessões

    • usar atributos de segurança dos cookies (flag de segurança, flag HttpOnly, cifra e controlo de
      integridade)

    • validar os identificadores de sessão

         • o sessionID está a ser enviado do sítio certo?
A3: Quebra da Autenticação e da Gestão de
Sessões

• Quais as contra-medidas?

   • ter a certeza que o ‘logout’ destrói efectivamente a sessão

   • prevenir ataques de força bruta, mas prevenir igualmente ataques
     de DoS em contas legítimas

   • forçar a recuperação segura de passwords

      • autenticar antes de efectuar o reset da password


   • rever, rever e rever manualmente o código da autenticação (e do
     logoff)
Ataques contra a aplicação
encontrar URLs “secretas” escondidas
e se?....
e se?....
e se?....
            • um atacante repara que a
              URL indica qual o seu papel
                 /user/getAccounts



            • modifica este valor para um
                    papel diferente
                 /admin/getAccounts
                /manager/getAccounts




            • atacante consegue ver mais
                 contas do que a sua
A7: Falhas na Restrição de Acesso a URL

• Qual o risco?

    • URLs que conduzem a recursos confidenciais podem ser facilmente enviadas,
      armazenadas (bookmarks), monitoradas (proxies, dispositivos de segurança) e
      algumas vezes adivinhadas

• Quais as contra-medidas?

    • Desautorizar por completo o acesso certos tipos de ficheiros mais sensíveis

    • Validar TODOS os pedidos que chegam à aplicação

        • Autorização explicita


    • Não expor documentos físicos com URLs permanentes ou facilmente adivinháveis
Ataques contra os utilizadores
redireccionar os utilizadores para outro lado...
e se?....
Atacante envia um ataque para a vítima através de um
                      email ou página Web
                      From: Internal Revenue Service
                      Subject: Your Unclaimed Tax Refund                    A aplicação
                      Our records show you have an                    3     redirecciona a vítima
                      unclaimed federal tax refund. Please                  para o site do atacante
                      click here to initiate your claim.




                                                                                                                                                Knowledge Mgmt
                                                                                                                               Communication
                                                                                               Administration




                                                                                                                                                                              Bus. Functions
                    Vítima carrega no link que contém um parâmetro




                                                                                                                                                                 E-Commerce
                                                                                                                Transactions
                                                                          Accounts
                                                                                     Finance
                2     não validado


                                                                                                  Custom Code
                              Pedido é enviado para um site
                              vulnerável, incluindo o site de
                              destino do atacante como
                              parâmetro. O redireccionamento
                              envia a vítima para o site do
                              atacante.                                                                                                        Evil Site


                                                                    O site do atacante instala
http://www.irs.gov/taxrefund/claim.jsp?                         4   malware ou tenta obter
   year=2006& … &dest=www.evilsite.com                              informação privada
A8: Redirecionamentos e Encaminhamentos não-
Validados

• Qual o risco?

    • Um atacante pode usar a reputação do seu site de Web como um vector para
      redireccionar utilizadores para um site de Web hostil

• Quais as contra-medidas?

    • Nunca permitir o redireccionamento de URL absolutas

    • Se não for possível:

         • Usar whitelists de hosts válidos


         • Mostrar um aviso antes de redirecionar o utilizador


    • Se usar um “portal web”, tenha a certeza que as páginas de redirecionamento não
      incluem informação sensível na URL (a.k.a. informação de single-sign-on)
Evitar o A8

• Existem diversas opções

    • Evitar usar redirecionamentos e encaminhamentos sempre que puder

    • Se usar, não envolva parâmetros (do utilizador) ao definir a URL alvo

    • Se tiver mesmo que usar parâmetros, então faça um dos seguintes:

          •   valide cada parâmetro para garantir que é válido e autorizado para o utilizador actual, ou

          •   (preferido) use um mapeamento do lado do servidor para traduzir a escolha realizada pelo utilizador na URL alvo


    • Defesa em profundidade: para redirecionamentos, valide a URL alvo, depois da mesma ser calculada,
      garantido que se refere a um site externo devidamente autorizado

    • ESAPI: pode fazer isto por si:

          •   Ver: SecurityWrapperResponse.sendRedirect(	
  URL	
  )

          •   http://owasp-­‐esapi-­‐java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/SecurityWrapperResponse.html#sendRedirect(java.lang.String)
Ataques contra os utilizadores
  executar código hostil do cliente
         no site de web...
e se?....
e se?....
XSS

        1   Atacante monta a armadilha – actualizando o seu perfil


                                                          Aplicação com
                       Atacante introduz um
                       script malicioso numa              vulnerabilidade XSS
                       página web que                     armazenada
                       armazena os dados no
                       servidor




                                                                                        Knowledge Mgmt
                                                                                        Communication
                                                                       Administration




                                                                                        Bus. Functions
            Vítima visualiza a página – visita o perfil




                                                                                        E-Commerce
                                                                       Transactions
        2




                                                            Accounts
                do atacante




                                                            Finance
                                                             Custom Code


                       Script corre dentro do
                       browser da vítima com
                       acesso total ao DOM e
                       aos cookies

3   O script envia silenciosamente para o atacante o cookie de
       sessão da vítima
A2: Cross Site Scripting (XSS)

• Qual o risco?

     • Um atacante pode injectar código hostil a partir do lado do cliente na aplicação web, que depois pode
       ser reenviado para uma vítima

• Quais as contra-medidas?

     • Filtrar/Sanitizar o output. Codificar no formato de destino.

           •   Para output em HTML, usar o HtmlEntities:

                  •   <div	
  id=“comment”>Here	
  is	
  my	
  <script>attack</script></div>


                  •   <div	
  id=“comment”>Here	
  is	
  my	
  &lt;script&gt;attack&lt;/script&gt;</div>


           •   No caso do output XML, usar entidades pré-definidas:

                  •   <says>“here	
  is	
  my	
  <script>”</says>	
  	
  
                      <says><![CDATA[here	
  is	
  my	
  <script>]]></says>


                  •   <says>my	
  input	
  is	
  <script></says>	
  
                      <says>my	
  input	
  is	
  &lt;script&gt;</says>
Ataques contra os utilizadores
 replicar e repetir pedidos previsíveis
e se?....
e se?....
Alice                 transferir 100€ para o                Bob
                                   Bob através do bank.com

                         POST	
  http://bank.com/transfer.do	
  HTTP/1.1
                         ...
                         ...
                         ...
                         Content-­‐Length:	
  19;

                         acct=BOB&amount=100




           percebe que a mesma aplicação web do bank.com pode executar a
Maria               transferência usando uma URL com parâmetros.
          GET	
  http://bank.com/transfer.do?acct=BOB&amount=100	
  HTTP/1.1

        vai tentar usar a Alice para tentar transferir 100.000€ para a sua própria conta
          http://bank.com/transfer.do?acct=MARIA&amount=100000

        envia email HTML para a Alice com uma URL para carregar
                         <a	
  href="http://bank.com/transfer.do?
                    acct=MARIA&amount=100000">View	
  my	
  Pictures!</a>

        ou, envia email HTML para a Alice com uma imagem para esconder o ataque
           <img	
  src="http://bank.com/transfer.do?acct=MARIA&amount=100000"	
  
                              width="1"	
  height="1"	
  border="0">


Alice      se Alice estiver autenticada no bank.com com uma sessão activa é
               feita a transferência (no segundo caso de forma escondida)
A5: Cross Site Request Forgery (CSRF)
• Qual o risco?

    • Um atacante pode construir o seu próprio site de web e iniciar pedidos no browser do visitante

• Quais as contra-medidas?

    • Implementar pedidos imprevisíveis para para todas as acções sensíveis

          •   usar campos de controlo aleatórios invisíveis e temporários:

                 •   <input	
  type=”hidden”	
  name=”check”	
  value=”ab23b4a”>


          •   ligar os formulários à sessão do utilizador:

                 •   if(!(Request.Form[“checker”]).Equals(SessionID))	
  //	
  return	
  error


          •   Usar CAPTCHA

          •   Usar verificações alternativas:

                 •   SMS/Chamada de Voz/Tokens criptográficos, etc.
Outros ataques
quebrar criptografia fraca...
A9: Armazenamento Criptográfico Inseguro

• Qual o risco?

     • Um atacante pode não necessitar de tanto tempo como pode esperar para decifrar os seus dados

     • Se alguma das seguintes expressões são estranhas para si, então existe um risco:

           •   cifra assimétrica e simétrica, cifra online, cifra offline, CBC, entropia de chaves, vector de inicialização, ECB, código
               de autenticação de mensagens (MAC), PBKDF2 (RFC2898), Rijndael, AES, 3DES, DSA, RSA, ECC, SHA, keyring,
               DPAPI, ...


• Quais as contra-medidas?

     • Não faça criptografia por si próprio!!!

     • Usar APIs conhecidas

           •   usar implementações open-source de referência (OpenSSL, Truecrypt, etc.)

           •   usar librarias implementadas pela comunidade (OWASP ESAPI, ...)


     • Formação...
Evitar o A9
•   Verifique a sua arquitectura

        •   identificar todos os dados sensíveis

        •   identificar todos os pontos em que os dados são armazenados

        •   assegurar modelo de ameaças para lidar com possíveis ataques

        •   usar cifra para combater as ameaças => não se limitando apenas a “codificar” os dados

•   Proteger com os mecanismos apropriados

        •   Cifra de ficheiros, Cifra de BD, Cifra de Elementos de dados (XML)

•   Usar os mecanismos correctamente

        •   usar algoritmos fortes e standard

        •   gerar, distribuir e proteger as chaves de forma adequada

        •   estar preparado para mudar de chaves

•   Verificar a implementação

        •   o algoritmo forte e standard está a ser usado e é o adequado para esta situação

        •   todas as chaves, certificados e passwords estão devidamente armazenados e protegidos

        •   estão criados os mecanismos correctos e seguros para a distribuição e alteração de chaves
Outros ataques
observar o ambiente...
e se?....
A10: Protecção Insuficiente da Camada de
Transporte

• Qual é o risco?

   • Visualização do tráfego, devido a insuficiente protecção da camada
     de transporte

• Quais as contra-medidas?

   • Requere links SSL cifrados

   • Usar certificados apropriados (assinados e válidos)

   • Impedir que os cookies possam sair dos links cifrados (flag “secure”
     activa)
Evitar o A10
• Protecção com os mecanismos adequados

        •   usar o TLS em todas as ligações com dados sensíveis

        •   cifrar individualmente as mensagens antes do seu envio

                •   ex., usar XML-Encryption


        •   assinar digitalmente as mensagens antes do envio

                •   ex., usar XML-Signature


• Usar os mecanismos de forma adequada e correcta

        •   usar algoritmos fortes e standard (desactivar alguns algoritmos antigos no SSL)

        •   gerir as chaves e certificados correctamente

        •   verificar os certificados SSL antes de os usar

        •   usar mecanismos adequados e não sobrepostos

                •   ex., SSL vs. XML-Encryption


• Consultar: http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
OWASP Top 10
OWASP Top 10 (2010)

• A1: Injecção

• A2: Cross Site Scripting (XSS)

• A3: Quebra de Autenticação e da Gestão de Sessões

• A4: Referência Directa a Objectos Insegura

• A5: Cross Site Request Forgery (CSRF)

• A6: Configuração de Segurança Incorrecta

• A7: Falhas na Restrição de Acesso a URL

• A8: Redireccionamentos e Encaminhamentos não-Validados

• A9: Armazenamento Criptográfico Inseguro

• A10: Protecção Insuficiente da Camada de Transporte
Riscos no OWASP Top 10


        RISCO              Agentes
                                               	
  	
  	
  	
  Vectores          	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Fraquezas                	
  Impactos          Impactos
                          de	
  Ameaça   	
  	
  	
  	
  de	
  Ataque            	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  de	
  Segurança             	
  	
  	
  Técnicos    Negócio
                                         Exploração                          Prevalência                                          Detecção                Impacto

      A1-­‐Injec=on                                  FÁCIL                    COMUM                                                        MÉDIA         SEVERO

         A2-­‐XSS                                 MÉDIO                   MTO	
  ESPALHADO                                                 FÁCIL     MODERADO

       A3-­‐Auth’n                                MÉDIO                       COMUM                                                        MÉDIA         SEVERO

         A4-­‐DOR                                    FÁCIL                    COMUM                                                        FÁCIL     MODERADO

        A5-­‐CSRF                                 MÉDIO                     ESPALHADO                                                      FÁCIL     MODERADO

       A6-­‐Config                                    FÁCIL                    COMUM                                                        FÁCIL     MODERADO

       A7-­‐Crypto                                 DIFÍCIL                POUCO	
  COMUM                                                   DIFÍCIL       SEVERO

     A8-­‐URL	
  Access                              FÁCIL                POUCO	
  COMUM                                                   MÉDIA     MODERADO

     A9-­‐Transport                                DIFÍCIL                    COMUM                                                        FÁCIL     MODERADO

     A10-­‐Redirects                              MÉDIO                   POUCO	
  COMUM                                                   FÁCIL     MODERADO
O “novo” Top 10 da OWASP (2010)




                    http://www.owasp.org/index.php/Top_10
@pontocom
carlos.serrao@iscte.pt
carlos.j.serrao@iscte.pt
http://www.linkedin.com/in/carlosserrao
OWASP e o desenvolvimento
seguro de aplicações para a Web        ISELTech’12
                                       2012.05.11
                       Carlos Serrão

Weitere ähnliche Inhalte

Was ist angesagt?

Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...Symantec Brasil
 
Segurança em Sistemas SCADA
Segurança em Sistemas SCADASegurança em Sistemas SCADA
Segurança em Sistemas SCADAAlexandre Freire
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?Eduardo Lanna
 
Relatório IBM X-Force ameaças e tendências de riscos
Relatório IBM X-Force ameaças e tendências de riscos Relatório IBM X-Force ameaças e tendências de riscos
Relatório IBM X-Force ameaças e tendências de riscos Alexandre Freire
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingCristiano Caetano
 
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais   Solução Astaro Para Segurança De Redes CorporativasAmeaças Digitais   Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativasosmarcorrea
 
QualysGuard Vulnerability Manager
QualysGuard Vulnerability ManagerQualysGuard Vulnerability Manager
QualysGuard Vulnerability ManagerSite Blindado S.A.
 
Symantec Advanced Threat Protection: Symantec Cynic
Symantec Advanced Threat Protection: Symantec CynicSymantec Advanced Threat Protection: Symantec Cynic
Symantec Advanced Threat Protection: Symantec CynicSymantec Brasil
 
Desafios Futuros e Oportunidades
Desafios Futuros e OportunidadesDesafios Futuros e Oportunidades
Desafios Futuros e OportunidadesMarcio Cunha
 
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidade
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidadeBe Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidade
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidadeSymantec Brasil
 
FIRST TECH - Security Solutions
FIRST TECH - Security SolutionsFIRST TECH - Security Solutions
FIRST TECH - Security SolutionsLuiz Veloso
 
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
 
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis Segurança da Informação
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
39145734 minimizando-os-riscos-de-seguranca-da-rede
39145734 minimizando-os-riscos-de-seguranca-da-rede39145734 minimizando-os-riscos-de-seguranca-da-rede
39145734 minimizando-os-riscos-de-seguranca-da-redeMarco Guimarães
 

Was ist angesagt? (19)

Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...
BE AWARE WEBINAR - Se a senha é fraca, como posso melhorar a autenticação da ...
 
Segurança em Sistemas SCADA
Segurança em Sistemas SCADASegurança em Sistemas SCADA
Segurança em Sistemas SCADA
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
Relatório IBM X-Force ameaças e tendências de riscos
Relatório IBM X-Force ameaças e tendências de riscos Relatório IBM X-Force ameaças e tendências de riscos
Relatório IBM X-Force ameaças e tendências de riscos
 
IBM Mobile First Security
IBM Mobile First SecurityIBM Mobile First Security
IBM Mobile First Security
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais   Solução Astaro Para Segurança De Redes CorporativasAmeaças Digitais   Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
 
QualysGuard Vulnerability Manager
QualysGuard Vulnerability ManagerQualysGuard Vulnerability Manager
QualysGuard Vulnerability Manager
 
Symantec Advanced Threat Protection: Symantec Cynic
Symantec Advanced Threat Protection: Symantec CynicSymantec Advanced Threat Protection: Symantec Cynic
Symantec Advanced Threat Protection: Symantec Cynic
 
Desafios Futuros e Oportunidades
Desafios Futuros e OportunidadesDesafios Futuros e Oportunidades
Desafios Futuros e Oportunidades
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidade
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidadeBe Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidade
Be Aware Webinar - Protegendo pdv de ameaças externas e garantindo conformidade
 
FIRST TECH - Security Solutions
FIRST TECH - Security SolutionsFIRST TECH - Security Solutions
FIRST TECH - Security Solutions
 
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...
 
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
39145734 minimizando-os-riscos-de-seguranca-da-rede
39145734 minimizando-os-riscos-de-seguranca-da-rede39145734 minimizando-os-riscos-de-seguranca-da-rede
39145734 minimizando-os-riscos-de-seguranca-da-rede
 

Ähnlich wie OWASP e desenvolvimento seguro de aplicações Web

OWASP presentation on FISTA2011
OWASP presentation on FISTA2011OWASP presentation on FISTA2011
OWASP presentation on FISTA2011Carlos Serrao
 
Gestão de Risco de Ti | Andracom
Gestão de Risco de Ti | AndracomGestão de Risco de Ti | Andracom
Gestão de Risco de Ti | AndracomAndracom Solutions
 
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
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerceSite Blindado S.A.
 
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.TI Safe
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de softwareJuliano Padilha
 
15h00 aws - trend micro - hernan v8
15h00   aws - trend micro - hernan v815h00   aws - trend micro - hernan v8
15h00 aws - trend micro - hernan v8Luiz Gustavo Santos
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsMarkus Christen
 
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua..."Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...WeOp - The Operations Summit
 
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...TI Safe
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWS
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWSAWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWS
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWSMarcelo Leite ☁
 

Ähnlich wie OWASP e desenvolvimento seguro de aplicações Web (20)

OWASP presentation on FISTA2011
OWASP presentation on FISTA2011OWASP presentation on FISTA2011
OWASP presentation on FISTA2011
 
Gestão de Risco de Ti | Andracom
Gestão de Risco de Ti | AndracomGestão de Risco de Ti | Andracom
Gestão de Risco de Ti | Andracom
 
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
 
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
 
2011 01-18.campus party 2011
2011 01-18.campus party 20112011 01-18.campus party 2011
2011 01-18.campus party 2011
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce
 
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.
Palestra - Visão geral da norma ANSI/ISA 99, Status da Norma e Tendências.
 
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
 
15h00 aws - trend micro - hernan v8
15h00   aws - trend micro - hernan v815h00   aws - trend micro - hernan v8
15h00 aws - trend micro - hernan v8
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-Pros
 
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua..."Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
Deep security
Deep security Deep security
Deep security
 
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...
Apresentação Técnica - O uso de padrões abertos para proteção de sistemas sca...
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
OWASP Top Ten 2004
OWASP Top Ten 2004OWASP Top Ten 2004
OWASP Top Ten 2004
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWS
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWSAWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWS
AWS Summit 2017 - Como proteger contra Ransomware minhas instâncias AWS
 
Pres clusterpdf
Pres clusterpdfPres clusterpdf
Pres clusterpdf
 

Mehr von 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
 
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
 
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
 
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, 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
 
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
 
Apresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãApresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãCarlos Serrao
 
cTIC2009 - Segurança em Aplicações Web-based e RIA
cTIC2009 - Segurança em Aplicações Web-based e RIAcTIC2009 - Segurança em Aplicações Web-based e RIA
cTIC2009 - Segurança em Aplicações Web-based e RIACarlos Serrao
 
Apresentação do OWASP Portugal
Apresentação do OWASP PortugalApresentação do OWASP Portugal
Apresentação do OWASP PortugalCarlos Serrao
 
Introdução ao OWASP
Introdução ao OWASPIntrodução ao OWASP
Introdução ao OWASPCarlos Serrao
 

Mehr von Carlos Serrao (20)

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]
 
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
 
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?
 
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, 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)
 
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
 
Apresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãApresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, Covilhã
 
cTIC2009 - Segurança em Aplicações Web-based e RIA
cTIC2009 - Segurança em Aplicações Web-based e RIAcTIC2009 - Segurança em Aplicações Web-based e RIA
cTIC2009 - Segurança em Aplicações Web-based e RIA
 
Apresentação do OWASP Portugal
Apresentação do OWASP PortugalApresentação do OWASP Portugal
Apresentação do OWASP Portugal
 
Welcome to OWASP
Welcome to OWASPWelcome to OWASP
Welcome to OWASP
 
Introdução ao OWASP
Introdução ao OWASPIntrodução ao OWASP
Introdução ao OWASP
 

OWASP e desenvolvimento seguro de aplicações Web

  • 1. OWASP e o desenvolvimento seguro de aplicações para a Web ISELTech’12 2012.05.23 Carlos Serrão
  • 3.
  • 4. “We wouldn’t have to spend so much time, money, and effort on network security if we didn’t have such bad software security” Viega & McGraw, Building Secure Software, Addison Wesley
  • 6. Segurança de Software • o software é ubíquo
  • 7. Segurança de Software • o software é ubíquo • dependemos do software nos diversos aspectos da nossa vida
  • 8. Segurança de Software • o software é ubíquo • dependemos do software nos diversos aspectos da nossa vida • funções críticas de negócio dependem de software
  • 9. Segurança de Software • o software é ubíquo • dependemos do software nos diversos aspectos da nossa vida • funções críticas de negócio dependem de software • software está cada vez mais exposto à Internet
  • 10. Segurança de Software • o software é ubíquo • dependemos do software nos diversos aspectos da nossa vida • funções críticas de negócio dependem de software • software está cada vez mais exposto à Internet • exposição aumentada torna o software visível para terceiros
  • 11. Segurança de Software • o software é ubíquo • dependemos do software nos diversos aspectos da nossa vida • funções críticas de negócio dependem de software • software está cada vez mais exposto à Internet • exposição aumentada torna o software visível para terceiros • nem todas as pessoas são bem intencionadas
  • 12. Problema no software • Características do software actual • Complexidade • Ataques exploram bugs designados por vulnerabilidades • Estima-se entre 5-50 bugs por 1000 linhas de código • Windows XP 40 milhões de linhas de código • Extensibilidade • O que é o software nos nossos computadores? SO + software em produção + patches + 3rd party DLLs + device drivers + plugins + .... • Conectividade • Internet (1+ biliões de utilizadores) + sistemas de controlo + PDAs + telemóveis + ...
  • 13. WhiteHat Security, Website Security Statistics Report, Winter 2011
  • 14. Vulnerabilidades Específicas cífic as Web espe A p licações s Web standard e Aplicaçõ eb Se rvidor W Vulnerabilidades conhecidas e s documentadas Base de Dado e s Aplicaçõ ra tivo Siste ma Ope Rede WhiteHat Security, Website Security Statistics Report, Winter 2011
  • 15. Tipologia de um ataque aplicacional Network Layer OS Layer Application Network Layer Layer OS Layer Custom Back-end Application Application Database Layer (End-user Application Traffic interface)
  • 16. Tipologia de um ataque aplicacional Network Layer OS Layer Application Network Layer Layer OS Layer Custom Back-end Application Application Database Layer (End-user Application Traffic interface)
  • 17. Tipologia de um ataque aplicacional Network Layer OS Layer Application Network Layer Layer OS Layer Custom Back-end Application Application Database Layer (End-user Application Traffic interface)
  • 18. Tipologia de um ataque aplicacional Network Layer OS Layer Application Network Layer Layer OS Layer Custom Back-end Application Application Database Layer (End-user Application Traffic interface)
  • 19. Citigroup attack... ...information accessed on 360,069 accounts
  • 20. Top 10, anyone?... Attack vector http://www.owasp.org/index.php/Top_10
  • 21. 2011 CWE/SANS Top 25 Most Dangerous Software Errors 1. Improper Neutralization of Special Elements used in 13.Improper Limitation of a Pathname to a an SQL Command ('SQL Injection') Restricted Directory ('Path Traversal') 2. Improper Neutralization of Special Elements used in 14.Download of Code Without Integrity Check an OS Command ('OS Command Injection') 15.Incorrect Authorization 3. Buffer Copy without Checking Size of Input ('Classic 16.Inclusion of Functionality from Untrusted Buffer Overflow') Control Sphere 4. Improper Neutralization of Input During Web Page 17.Incorrect Permission Assignment for Generation ('Cross-site Scripting') Critical Resource 5. Missing Authentication for Critical Function 18.Use of Potentially Dangerous Function 19.Use of a Broken or Risky Cryptographic 6. Missing Authorization Algorithm 7. Use of Hard-coded Credentials 20.Incorrect Calculation of Buffer Size 21.Improper Restriction of Excessive 8. Missing Encryption of Sensitive Data Authentication Attempts 9. Unrestricted Upload of File with Dangerous Type 22.URL Redirection to Untrusted Site ('Open Redirect') 10. Reliance on Untrusted Inputs in a Security Decision 23.Uncontrolled Format String 11. Execution with Unnecessary Privileges 24.Integer Overflow or Wraparound 12. Cross-Site Request Forgery (CSRF) 25.Use of a One-Way Hash without a Salt 29 June 2011, http://cwe.mitre.org/top25/
  • 22. 2011 CWE/SANS Top 25 Most Dangerous Software Errors 1. Improper Neutralization of Special Elements used in 13.Improper Limitation of a Pathname to a an SQL Command ('SQL Injection') Restricted Directory ('Path Traversal') 2. Improper Neutralization of Special Elements used in 14.Download of Code Without Integrity Check an OS Command ('OS Command Injection') 15.Incorrect Authorization 3. Buffer Copy without Checking Size of Input ('Classic 16.Inclusion of Functionality from Untrusted Buffer Overflow') Control Sphere 4. Improper Neutralization of Input During Web Page 17.Incorrect Permission Assignment for Generation ('Cross-site Scripting') Critical Resource 5. Missing Authentication for Critical Function 18.Use of Potentially Dangerous Function 19.Use of a Broken or Risky Cryptographic 6. Missing Authorization Algorithm 7. Use of Hard-coded Credentials 20.Incorrect Calculation of Buffer Size 21.Improper Restriction of Excessive 8. Missing Encryption of Sensitive Data Authentication Attempts 9. Unrestricted Upload of File with Dangerous Type 22.URL Redirection to Untrusted Site ('Open Redirect') 10. Reliance on Untrusted Inputs in a Security Decision 23.Uncontrolled Format String 11. Execution with Unnecessary Privileges 24.Integer Overflow or Wraparound 12. Cross-Site Request Forgery (CSRF) 25.Use of a One-Way Hash without a Salt 29 June 2011, http://cwe.mitre.org/top25/
  • 23. Sony attacks http://attrition.org/security/rants/sony_aka_sownage.html
  • 24. Sony attacks “Several of Sony's sites have been compromised as a result of basic SQL injection attacks, nothing elaborate or complex.” http://attrition.org/security/rants/sony_aka_sownage.html
  • 25. Sony attacks “Several of Sony's sites have been compromised as a result of basic SQL injection attacks, nothing elaborate or complex.” http://attrition.org/security/rants/sony_aka_sownage.html
  • 26.
  • 27.
  • 31. Contexto • Falta de percepção da segurança • as (algumas) organizações não investem o suficiente em segurança (ou investem incorretamente) • programadores não percebem os riscos de segurança (ou não podem ou querem perceber) • DISCLAIMER: não estou com isto a insinuar que *TODOS* os programadores são maus ;-)
  • 32.
  • 34. Motivação/Contexto Número médio de vulnerabilidades sérias encontradas em WebApps por sector (fonte: WhiteHat, 2011)
  • 35. Motivação/Contexto Percentagem de ocorrência de problemas de segurança em WebApps (fonte: WhiteHat, 2011)
  • 37. Motivação/Contexto Gartner  Group  (2009) IBM  (2009) Outros Outros 10% 25% Aplicacional Sites  Web  Vulneráveis 75% 90% WASC  (2009) Outros Outros 15% 22% Sites  Web  Vulneráveis 85% Fáceis  de  Explorar 78%
  • 38. ... an open community dedicated to enabling organizations to develop, purchase, and maintain applications that can be trusted
  • 39. OWASP? • Open Web Application Security Project • Promove o desenvolvimento seguro de software • Orientado para o desenvolvimento de serviços baseados na web • Focado principalmente em aspectos de desenvolvimento do que em web-design • Um fórum aberto para discussão • Um recurso gratuito e livre para qualquer equipa de desenvolvimento
  • 40. OWASP? • Open Web Application Security Project • Organização sem fins lucrativos, orientada para esforço voluntário • Todos os membros são voluntários • Todo o trabalho é “doado” por patrocinadores • Oferecer recursos livres para a comunidade • Publicações, Artigos, Normas • Software de Testes e de Formação • Chapters Locais & Mailing Lists • Suportada através de patrocínios • Suporte de empresas através de patrocínios financeiros ou de projectos • Patrocínios pessoais por parte dos membros
  • 41. OWASP
  • 42. OWASP
  • 44. OWASP? • Top 10 Web Application Security Risks/Vulnerabilities • Uma lista dos 10 aspectos de segurança mais críticos • Actualizado numa base (quase) anual • Crescente aceitação pela indústria • Federal Trade Commission (US Gov) • US Defense Information Systems Agency • VISA (Cardholder Information Security Program) • Está a ser adoptado como um standard de segurança para aplicações web
  • 45. OWASP? http://www.owasp.org/index.php/Top_10
  • 46. OWASP
  • 49. Ataques • Ataques contra a infra-estrutura • Ataques contra a aplicação • Ataques contra os utilizadores • Outros ataques
  • 50. Ataques parse input escape output
  • 51. Ataques contra a infra-estrutura atacar a camada mais fraca
  • 52.
  • 53. Aplicação Web Servidor Aplicacional Servidor Web Sistema Operativo Dispositivos de Rede
  • 54. Aplicação Web Servidor Aplicacional Servidor Web Sistema Operativo Estão todos caminhos desnecessários fechados? Dispositivos de Rede Estão todos os portos desnecessários fechados? Está o interface de administração acessível via web? Pode uma conta de administração ser quebrada? Está o dispositivo actualizado?
  • 55. Aplicação Web Servidor Aplicacional Servidor Web Estão todos os serviços desnecessários desactivados? Sistema Operativo Estão todas as contas desnecessárias desactivadas? Todas as passwords de defeito foram alteradas? Está o sistema actualizado? Dispositivos de Rede
  • 56. Aplicação Web Servidor Aplicacional Todos os scripts desnecessários foram removidos? Existem alguns recursos de backup/teste ainda Servidor Web disponíveis? Está o servidor de web actualizado? Foram alteradas todas as passwords por defeito? Sistema Operativo Dispositivos de Rede
  • 57. Aplicação Web Todas as aplicações de demonstração foram removidas? Servidor Aplicacional Está o servidor actualizado? Está a parte de administração protegida de acesso externo? Indexação de directorias foi desactivada? Servidor Web Foram as passwords de defeito alteradas? Sistema Operativo Dispositivos de Rede
  • 58. Aplicação Web E aqui???? Servidor Aplicacional Servidor Web Sistema Operativo Dispositivos de Rede
  • 59. o seu sistema será tão seguro quanto a segurança do elo mais fraco... ©"Darwin"Bell@flickr"
  • 60. A6: Configuração de Segurança Incorrecta • Qual é o Risco? • Se existir um elo mais fraco do que a própria aplicação Web, o atacante vai preferir atacar essa camada mais fraca • Quais são as principais contra-medidas? • Garantir a segurança de todas as camadas • Reduzir os serviços e contas ao mínimo • Não usar passwords por defeito • Ter tudo actualizado • Usar e aplicar as directrizes de segurança (segurança do SO, segurança do servidor Web, segurança do servidor aplicacional, etc.) • Manter a configuração por defeito da aplicação Web segura • “Funcionamento seguro numa arquitectura segura”
  • 61. Ataques contra a aplicação injectar código hostil...
  • 63. e se?.... SELECT * FROM users usr WHERE usr.username = ‘admin’;--’ AND usr.password=’bb21158c733229347bd4e681891e21 3d94c685be’
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71. qualquer input do utilizador pode ser um vector de ataque
  • 72. A1: Injecção • Risco? • Qualquer ponto de entrada da aplicação pode ser usada como vector para injectar conteúdo hostil para modificar o comportamento das mesmas • IMPORTANTE • Não afecta apenas o SQL • LDAP e XPath podem ser igualmente vulneráveis
  • 73. A1: Injecção • CONTRA-MEDIDAS • Todas as entradas/input pode ser modificado do lado do cliente. É necessário validar: • Parâmetros das strings de query; • Campos dos formulários (incluindo os “hidden”) • Upload de Ficheiros: se se está à espera de uma imagem, é preciso ter a certeza que se recebe uma imagem!!!! • Cookies • HTTP Headers: todos os campos, incluindo o “referrer” são input do utilizador (e podem ser modificados)
  • 74. A1: Injecção • CONTRA-MEDIDAS • NUNCA copiar o input do utilizador directamente para comandos de query (SQL, Xpath, LDAP, comandos do SO, etc.) • usar um modelo de ligação para parâmetros SQL: • se não existir um modelo de ligação, codificar o input antes de o usar: • usar aspas (“) no caso do SQL Server • pelicas com ‘’ (’) no caso do MySQL (no PHP, a função addslashes é bastante útil) • ...
  • 75. A1: Injecção • CONTRA-MEDIDAS • escolher a melhor estratégia de validação • melhor: whitelist • quando todos os valores possíveis são conhecidos (enums, expressões if/else...if, expressões regulares, ...) • graylist • forçar as regras de negócio • tipo: string, numérico, byte, ... • intervalo: >0, <MaxInt, [a-z]{3,20} • mais fraco: blacklist if(input.IndexOf(“<script>”)>=0) // rejeitar
  • 76. Ataques contra a aplicação brincar com identificadores óbvios...
  • 77. e se?.... • um atacante repara que o parâmetro acct é 6065 ?acct=6065 https://www.onlinebank.com/user?acct=6065 • modifica este valor para um valor próximo ?acct=6066 • atacante consegue ver a informação da conta da vítima
  • 78. A4: Referências Directas a Objectos Inseguras • Qual é risco? • Todas as referências podem ser modificadas do lado do cliente. Um atacante pode conseguir obter acesso e/ou modificar informação confidencial • Quais as contra-medidas? • Nunca enviar referências internas para o browser: • Usar mapeamentos temporários e aleatórios (#0, #1, #2, #3, etc.) • OU combinar o acesso a referências com controlo de acesso: • SELECT * FROM item WHERE id = $id AND owner = $uID • UPDATE item … WHERE id = $id AND owner = $uid
  • 79. Ataques contra a aplicação quebrar os mecanismos de sessão e de autenticação
  • 83. 1 Utilizador envia credenciais Knowledge Mgmt Communication Administration Bus. Functions E-Commerce Transactions Accounts Finance www.site.com?JSESSIONID=9FA1DB9EA... Site usa URL rewriting 2 Custom Code (i.e., coloca sessão na URL) 3 Utilizador carrega num link para http://www.hacker.com num forum Hacker verificar os logs dos referers no www.hacker.com e encontra o JSESSIONID do utilizador 4 5 Hacker usa JSESSIONID e assume a identificação e a conta da vítima
  • 84. A3: Quebra da Autenticação e da Gestão de Sessões • Qual o risco? • o HTTP é um protocolo stateless. Cada pedido deve transmitir informação da sessão na rede • os mecanismos de autenticação são um dos alvos preferenciais dos atacantes, a vários níveis: formulários, tráfego, dados armazenados. • Quais as contra-medidas? • Usar mecanismos simples, normalizados e centralizados de sessões • usar atributos de segurança dos cookies (flag de segurança, flag HttpOnly, cifra e controlo de integridade) • validar os identificadores de sessão • o sessionID está a ser enviado do sítio certo?
  • 85. A3: Quebra da Autenticação e da Gestão de Sessões • Quais as contra-medidas? • ter a certeza que o ‘logout’ destrói efectivamente a sessão • prevenir ataques de força bruta, mas prevenir igualmente ataques de DoS em contas legítimas • forçar a recuperação segura de passwords • autenticar antes de efectuar o reset da password • rever, rever e rever manualmente o código da autenticação (e do logoff)
  • 86. Ataques contra a aplicação encontrar URLs “secretas” escondidas
  • 89. e se?.... • um atacante repara que a URL indica qual o seu papel /user/getAccounts • modifica este valor para um papel diferente /admin/getAccounts /manager/getAccounts • atacante consegue ver mais contas do que a sua
  • 90. A7: Falhas na Restrição de Acesso a URL • Qual o risco? • URLs que conduzem a recursos confidenciais podem ser facilmente enviadas, armazenadas (bookmarks), monitoradas (proxies, dispositivos de segurança) e algumas vezes adivinhadas • Quais as contra-medidas? • Desautorizar por completo o acesso certos tipos de ficheiros mais sensíveis • Validar TODOS os pedidos que chegam à aplicação • Autorização explicita • Não expor documentos físicos com URLs permanentes ou facilmente adivinháveis
  • 91. Ataques contra os utilizadores redireccionar os utilizadores para outro lado...
  • 93. Atacante envia um ataque para a vítima através de um email ou página Web From: Internal Revenue Service Subject: Your Unclaimed Tax Refund A aplicação Our records show you have an 3 redirecciona a vítima unclaimed federal tax refund. Please para o site do atacante click here to initiate your claim. Knowledge Mgmt Communication Administration Bus. Functions Vítima carrega no link que contém um parâmetro E-Commerce Transactions Accounts Finance 2 não validado Custom Code Pedido é enviado para um site vulnerável, incluindo o site de destino do atacante como parâmetro. O redireccionamento envia a vítima para o site do atacante. Evil Site O site do atacante instala http://www.irs.gov/taxrefund/claim.jsp? 4 malware ou tenta obter year=2006& … &dest=www.evilsite.com informação privada
  • 94. A8: Redirecionamentos e Encaminhamentos não- Validados • Qual o risco? • Um atacante pode usar a reputação do seu site de Web como um vector para redireccionar utilizadores para um site de Web hostil • Quais as contra-medidas? • Nunca permitir o redireccionamento de URL absolutas • Se não for possível: • Usar whitelists de hosts válidos • Mostrar um aviso antes de redirecionar o utilizador • Se usar um “portal web”, tenha a certeza que as páginas de redirecionamento não incluem informação sensível na URL (a.k.a. informação de single-sign-on)
  • 95. Evitar o A8 • Existem diversas opções • Evitar usar redirecionamentos e encaminhamentos sempre que puder • Se usar, não envolva parâmetros (do utilizador) ao definir a URL alvo • Se tiver mesmo que usar parâmetros, então faça um dos seguintes: • valide cada parâmetro para garantir que é válido e autorizado para o utilizador actual, ou • (preferido) use um mapeamento do lado do servidor para traduzir a escolha realizada pelo utilizador na URL alvo • Defesa em profundidade: para redirecionamentos, valide a URL alvo, depois da mesma ser calculada, garantido que se refere a um site externo devidamente autorizado • ESAPI: pode fazer isto por si: • Ver: SecurityWrapperResponse.sendRedirect(  URL  ) • http://owasp-­‐esapi-­‐java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/SecurityWrapperResponse.html#sendRedirect(java.lang.String)
  • 96. Ataques contra os utilizadores executar código hostil do cliente no site de web...
  • 99. XSS 1 Atacante monta a armadilha – actualizando o seu perfil Aplicação com Atacante introduz um script malicioso numa vulnerabilidade XSS página web que armazenada armazena os dados no servidor Knowledge Mgmt Communication Administration Bus. Functions Vítima visualiza a página – visita o perfil E-Commerce Transactions 2 Accounts do atacante Finance Custom Code Script corre dentro do browser da vítima com acesso total ao DOM e aos cookies 3 O script envia silenciosamente para o atacante o cookie de sessão da vítima
  • 100. A2: Cross Site Scripting (XSS) • Qual o risco? • Um atacante pode injectar código hostil a partir do lado do cliente na aplicação web, que depois pode ser reenviado para uma vítima • Quais as contra-medidas? • Filtrar/Sanitizar o output. Codificar no formato de destino. • Para output em HTML, usar o HtmlEntities: • <div  id=“comment”>Here  is  my  <script>attack</script></div> • <div  id=“comment”>Here  is  my  &lt;script&gt;attack&lt;/script&gt;</div> • No caso do output XML, usar entidades pré-definidas: • <says>“here  is  my  <script>”</says>     <says><![CDATA[here  is  my  <script>]]></says> • <says>my  input  is  <script></says>   <says>my  input  is  &lt;script&gt;</says>
  • 101. Ataques contra os utilizadores replicar e repetir pedidos previsíveis
  • 104. Alice transferir 100€ para o Bob Bob através do bank.com POST  http://bank.com/transfer.do  HTTP/1.1 ... ... ... Content-­‐Length:  19; acct=BOB&amount=100 percebe que a mesma aplicação web do bank.com pode executar a Maria transferência usando uma URL com parâmetros. GET  http://bank.com/transfer.do?acct=BOB&amount=100  HTTP/1.1 vai tentar usar a Alice para tentar transferir 100.000€ para a sua própria conta http://bank.com/transfer.do?acct=MARIA&amount=100000 envia email HTML para a Alice com uma URL para carregar <a  href="http://bank.com/transfer.do? acct=MARIA&amount=100000">View  my  Pictures!</a> ou, envia email HTML para a Alice com uma imagem para esconder o ataque <img  src="http://bank.com/transfer.do?acct=MARIA&amount=100000"   width="1"  height="1"  border="0"> Alice se Alice estiver autenticada no bank.com com uma sessão activa é feita a transferência (no segundo caso de forma escondida)
  • 105. A5: Cross Site Request Forgery (CSRF) • Qual o risco? • Um atacante pode construir o seu próprio site de web e iniciar pedidos no browser do visitante • Quais as contra-medidas? • Implementar pedidos imprevisíveis para para todas as acções sensíveis • usar campos de controlo aleatórios invisíveis e temporários: • <input  type=”hidden”  name=”check”  value=”ab23b4a”> • ligar os formulários à sessão do utilizador: • if(!(Request.Form[“checker”]).Equals(SessionID))  //  return  error • Usar CAPTCHA • Usar verificações alternativas: • SMS/Chamada de Voz/Tokens criptográficos, etc.
  • 107. A9: Armazenamento Criptográfico Inseguro • Qual o risco? • Um atacante pode não necessitar de tanto tempo como pode esperar para decifrar os seus dados • Se alguma das seguintes expressões são estranhas para si, então existe um risco: • cifra assimétrica e simétrica, cifra online, cifra offline, CBC, entropia de chaves, vector de inicialização, ECB, código de autenticação de mensagens (MAC), PBKDF2 (RFC2898), Rijndael, AES, 3DES, DSA, RSA, ECC, SHA, keyring, DPAPI, ... • Quais as contra-medidas? • Não faça criptografia por si próprio!!! • Usar APIs conhecidas • usar implementações open-source de referência (OpenSSL, Truecrypt, etc.) • usar librarias implementadas pela comunidade (OWASP ESAPI, ...) • Formação...
  • 108. Evitar o A9 • Verifique a sua arquitectura • identificar todos os dados sensíveis • identificar todos os pontos em que os dados são armazenados • assegurar modelo de ameaças para lidar com possíveis ataques • usar cifra para combater as ameaças => não se limitando apenas a “codificar” os dados • Proteger com os mecanismos apropriados • Cifra de ficheiros, Cifra de BD, Cifra de Elementos de dados (XML) • Usar os mecanismos correctamente • usar algoritmos fortes e standard • gerar, distribuir e proteger as chaves de forma adequada • estar preparado para mudar de chaves • Verificar a implementação • o algoritmo forte e standard está a ser usado e é o adequado para esta situação • todas as chaves, certificados e passwords estão devidamente armazenados e protegidos • estão criados os mecanismos correctos e seguros para a distribuição e alteração de chaves
  • 111. A10: Protecção Insuficiente da Camada de Transporte • Qual é o risco? • Visualização do tráfego, devido a insuficiente protecção da camada de transporte • Quais as contra-medidas? • Requere links SSL cifrados • Usar certificados apropriados (assinados e válidos) • Impedir que os cookies possam sair dos links cifrados (flag “secure” activa)
  • 112. Evitar o A10 • Protecção com os mecanismos adequados • usar o TLS em todas as ligações com dados sensíveis • cifrar individualmente as mensagens antes do seu envio • ex., usar XML-Encryption • assinar digitalmente as mensagens antes do envio • ex., usar XML-Signature • Usar os mecanismos de forma adequada e correcta • usar algoritmos fortes e standard (desactivar alguns algoritmos antigos no SSL) • gerir as chaves e certificados correctamente • verificar os certificados SSL antes de os usar • usar mecanismos adequados e não sobrepostos • ex., SSL vs. XML-Encryption • Consultar: http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
  • 114. OWASP Top 10 (2010) • A1: Injecção • A2: Cross Site Scripting (XSS) • A3: Quebra de Autenticação e da Gestão de Sessões • A4: Referência Directa a Objectos Insegura • A5: Cross Site Request Forgery (CSRF) • A6: Configuração de Segurança Incorrecta • A7: Falhas na Restrição de Acesso a URL • A8: Redireccionamentos e Encaminhamentos não-Validados • A9: Armazenamento Criptográfico Inseguro • A10: Protecção Insuficiente da Camada de Transporte
  • 115. Riscos no OWASP Top 10 RISCO Agentes        Vectores                      Fraquezas  Impactos Impactos de  Ameaça        de  Ataque                    de  Segurança      Técnicos Negócio Exploração Prevalência Detecção Impacto A1-­‐Injec=on FÁCIL COMUM MÉDIA SEVERO A2-­‐XSS MÉDIO MTO  ESPALHADO FÁCIL MODERADO A3-­‐Auth’n MÉDIO COMUM MÉDIA SEVERO A4-­‐DOR FÁCIL COMUM FÁCIL MODERADO A5-­‐CSRF MÉDIO ESPALHADO FÁCIL MODERADO A6-­‐Config FÁCIL COMUM FÁCIL MODERADO A7-­‐Crypto DIFÍCIL POUCO  COMUM DIFÍCIL SEVERO A8-­‐URL  Access FÁCIL POUCO  COMUM MÉDIA MODERADO A9-­‐Transport DIFÍCIL COMUM FÁCIL MODERADO A10-­‐Redirects MÉDIO POUCO  COMUM FÁCIL MODERADO
  • 116. O “novo” Top 10 da OWASP (2010) http://www.owasp.org/index.php/Top_10
  • 118. OWASP e o desenvolvimento seguro de aplicações para a Web ISELTech’12 2012.05.11 Carlos Serrão