Cleyton Tsukuda Kano
                 Danilo Luiz Favacho Lopes
                    Décio Vicente Castaldi
                       Paulo Kuester Neto

MBA em Gestão de Segurança da Informação
                                  19º SEG




                         São Paulo, Março de 2013
Sumário

 Introdução
   O Problema
   Objetivo
   Ambiente utilizado

 Projeto WebGoat
   OWASP
   WebGoat
   Didática

 Colocando em prática
   Resumo das lições
   Vídeo

 Conclusão
 Bibliografia
Introdução – O Problema



 Mundo dependente tecnologicamente

 Popularização numa velocidade
  evolutiva nunca antes experimentada

 Serviços vitais conectados:
   Energia

   Transportes

   Alimentos

   Sistemas financeiros

   etc
Introdução – O Problema


 ... E tudo isso gerou elevação dos riscos
 Empresas devem ter preocupação e um plano
  estruturado que leve em conta a segurança da
  informação
 Antes era privilégio ou motivo de preocupação
  para de organizações militares, governos ou
  grandes conglomerados empresariais
 Hoje é parte do modelo de médias e pequenas
  empresas
 Ernst & Young mostra que 55% das empresas
  elevarão seus investimentos com segurança da
  informação
 Para muitas empresas a segurança da informação
  não é visualizada como estratégica, nem como um
  investimento para o negócio e sim como um custo
  a mais na planilha financeira
Introdução – O Problema



                             SQL Injection no banco de currículos das
                             organizações C.E.S.A.R e Pitang – Agile IT




  Fonte: (RODRIGUES, 2011)
Introdução - Objetivo

Demonstrar de uma maneira geral e tomando como exemplo algumas das lições
presentes na estudar a ferramenta web denominada de WebGoat (versão padrão, não
sendo a versão de desenvolvedor), algumas das teorias discutidas na disciplina - gestão
de ameaças e vulnerabilidades, explorando, além dos ensinamentos introdutórios
apresentados pelo tópico da lição geral da ferramenta, as primeiras três lições de
segurança da informação para aplicações web e a lição desafio.


Dessa forma serão trabalhadas no total as seguintes cinco lições:
 Lição Geral (HTML basics e HTML splitting);
 Falhas no controle de acesso;
 Segurança no AJAX;
 Falhas de autenticação;
 Lição Desafio.
Introdução - Ambiente utilizado




 Sistema operacional Linux Ubuntu 10.10

 Java Development Kit (JDK) 1.7.0.11

 Apache Tomcat 7.0.35

 WebGoat 5.4 Standard

 WebScarab Lite v20070504-1631

 Web-browser Mozilla Firefox 3.6.10 com Add-ons:
   Tamper Data 11.0.1

   Firebug 1.7.3
Introdução - Ambiente utilizado



 Sistema operacional Linux Ubuntu 10.10

 Java Development Kit (JDK) 1.7.0.11

 Apache Tomcat 7.0.35

 WebGoat 5.4 Standard

 WebScarab Lite v20070504-1631
 Web-browser Mozilla Firefox 3.6.10 com Add-ons:

   Tamper Data 11.0.1

   Firebug 1.7.3
Projeto WebGoat - OWASP




 Ano de surgimento: 2001

 Não possui associação com empresas ou serviços ditos comerciais

 Fóruns, aplicativos e documentos são abertos ao público

 Missão: promover o desenvolvimento seguro de aplicações e serviços de internet
   Conferências

   Artigos

   Projetos
Projeto WebGoat - WebGoat

 Aplicação web desenvolvida pela OWASP
 Ambiente de aplicação web de aprendizado
 Construída sob a linguagem de programação Java na plataforma J2EE
 Concebida propositalmente para ser insegura
   Contém falhas
   Ensinar lições de segurança em aplicações web
   Verificar diversos tipos de vulnerabilidades existentes

 Origem do nome: alguém para culpar (scape-goat)
 Navegação através de lições em diferentes níveis
 A ideia não é sair verificando vulnerabilidades em aplicações de outrem sem a
 devida permissão
 Pretensão futura de servir de Honeypot
Projeto WebGoat - WebGoat

 Fundamental para:
   Evitar que estas mesmas vulnerabilidades estejam presentes
   Aprender a anatomia de ataques podem se valer de uma melhor prática de programação
   Incluir a segurança da informação seja incluída em todo o ciclo de desenvolvimento de aplicações e serviços
    que são disponibilizados
   Minimizar falhas e riscos desnecessários

 Não se encontra hospedado em um servidor de internet
   Necessidade de instalar em um ambiente de trabalho
   Pré requisitos:
     JVM
     Servidor Apache Tomcat
   SOs compatíveis:
     Linux
     OSX Tiger
     Windows
Projeto WebGoat - Didática

 Baseada em ensinamentos sobre segurança em aplicações web

 Cada uma das lições dá uma visão geral sobre a vulnerabilidade que está sendo
  trabalhada e contém problemas, tais como:
   Cross-site Scripting (XSS);

   Falhas no controle de acesso (cross site request forgery (CSRF), acesso remoto de administrador, etc.);

   Falhas de autenticação e gerência de sessões (roubo de seção, spoof em cookie de autenticação, etc.);

   Manipulação de campos ocultos/parâmetros;

   Falhas de injeção (SQL Injection; Log spoofing, XPath injection, etc.);

   Falhas em Web Services (web service SQL/SAX injection, WSDL scanning, etc.);

   Vulnerabilidades no código (pistas e comentários no HTML);

   Buffer overflows;

   Segurança no AJAX (DOM/XML/JSON injection, etc.);

   Lição desafio, cujo objetivo é quebrar a autenticação, roubar os dados de cartão de crédito e desfigurar o
    site, mais conhecido como deface.
Projeto WebGoat - Didática


 A análise das lições envolvem basicamente:
   análise do conteúdo no lado cliente (client side)

   código fonte em HTML

   scripts

   comunicação entre o cliente o servidor

   cookies

   dados locais
Colocando em prática – Resumo das lições


 Lição Geral (HTML basics e HTML splitting)



                                               Familiarizar-se com alguns
                                               campos de sessão do HTTP,
                                               cookies e códigos




Possibilidade de inserir determinados
caracteres, variáveis ou códigos em
determinados campos que podem
levar a um comportamento não
previsto inicialmente pela aplicação
Colocando em prática – Resumo das lições


 Falhas no controle de acesso


                                           Obtenção de acesso a arquivos
                                           indevidamente




      Acesso a ações privilegiadas, para
      usuários sem privilégio




                                               Acesso indevido das informações de
                                               perfil de outro usuário
Colocando em prática – Resumo das lições


 Segurança no AJAX

                                                 Possibilidade     de     inserir
                                                 determinados            códigos
                                                 javascript em determinados
                                                 campos que podem levar a um
                                                 comportamento não previsto
                                                 inicialmente pela aplicação




Demonstrar os perigos em comportamentos AJAX
ao enviar informações desnecessárias e que,
supostamente, o usuário não deveria visualizar
Colocando em prática – Resumo das lições


 Falhas de autenticação

                                     Verificar a força das senhas fornecidas,
                                     analisando o grau de complexidade e o
                                     tempo necessário para quebra-las




    Descoberta de senha através de
    dicas de senha




                                       Realizar acesso com um usuário e
                                       realizar ações com outro usuário
Colocando em prática – Resumo das lições


 Lição Desafio


                                     Burlar o método de autenticação




  Descobrir todos os cartões de
  créditos registrados no banco de
  dados do sistema




                                            Desfigurar a página
Colocando em prática – Vídeo




                 DEMO!
Conclusão


 Cumpre sua função de aplicação web de aprendizado
   Ilustrando as falhas de segurança de uma forma bem estruturada

   Dividida em tópicos por tipos de vulnerabilidades, através das lições

 Boa forma para desenvolvedores, testadores de software e estudantes de
 segurança da informação para se aprimorarem

 Vale a pena lembrar que o objetivo da aplicação não é sair por ai procurando por
 vulnerabilidades nas aplicações de outrem sem a devida permissão.

 Como a própria aplicação sugere que a pessoa que utilizar estas técnicas para
 realizar ataques, esta poderá ser pega e/ou demitida por este ato.

 Portanto, deve-se utilizar este aprendizado na melhor forma possível e na
 legalidade.
Bibliografia

APACHE SOFTWARE FOUNDATION. Apache Tomcat. [S.l.]: Apache Software
Foundation, 2013. Disponível em: <http://tomcat.apache.org/>. Acesso em: 14 de
março de 2013.

HEWITT, J; ODVARKO, J.; CAMPBELL, R. Firebug. [S.l.]: Add-ons for Firefox, 2013.
Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/firebug/>. Acesso
em: 14 de março de 2013.

JUDSON, A. Tamper Data. [S.l.]: Add-ons for Firefox, 2010. Disponível em:
<https://addons.mozilla.org/pt-br/firefox/addon/tamper-data/>. Acesso em: 14 de
março de 2013.

MAYHEW, B.; WILLIAMS, J.. OWASP WebGoat, versão 5.4. [S.l.]: 2012. Aplicação web.

OWASP. About OWASP. [S.l.]: Open Web Application Security Project Foundation,
2013a. Disponível em: <https://www.owasp.org/index.php/About_OWASP>. Acesso
em: 6 de fevereiro de 2013.
Bibliografia

OWASP. WebGoat Project. [S.l.]: Open Web Application Security Project Foundation,
2013b.                               Disponível                              em:
<https://www.owasp.org/index.php/OWASP_WebGoat_Project>. Acesso em: 6 de
fevereiro de 2013.

OWASP. WebScarab Project. [S.l.]: Open Web Application Security Project Foundation,
2013c.                               Disponível                                em:
<https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project>. Acesso
em: 14 de março de 2013.

OXFORD. 2 ed. Pocket Oxford American Dictionary. New York: Oxford University Press,
2008.

RODRIGUES, M.. OWASP Top 10 + Java EE. [S.l.]: OWASP Paraíba, 2011. Disponível em:
<https://www.owasp.org/images/7/7a/Magno_Logan_AppSec_Latam_2011_-
_OWASP_Top_10_%2B_JavaEE.pdf>. Acesso em: 17 de fevereiro de 2013.

WebGoat Project - Apresentação

  • 1.
    Cleyton Tsukuda Kano Danilo Luiz Favacho Lopes Décio Vicente Castaldi Paulo Kuester Neto MBA em Gestão de Segurança da Informação 19º SEG São Paulo, Março de 2013
  • 2.
    Sumário  Introdução  O Problema  Objetivo  Ambiente utilizado  Projeto WebGoat  OWASP  WebGoat  Didática  Colocando em prática  Resumo das lições  Vídeo  Conclusão  Bibliografia
  • 3.
    Introdução – OProblema  Mundo dependente tecnologicamente  Popularização numa velocidade evolutiva nunca antes experimentada  Serviços vitais conectados:  Energia  Transportes  Alimentos  Sistemas financeiros  etc
  • 4.
    Introdução – OProblema  ... E tudo isso gerou elevação dos riscos  Empresas devem ter preocupação e um plano estruturado que leve em conta a segurança da informação  Antes era privilégio ou motivo de preocupação para de organizações militares, governos ou grandes conglomerados empresariais  Hoje é parte do modelo de médias e pequenas empresas  Ernst & Young mostra que 55% das empresas elevarão seus investimentos com segurança da informação  Para muitas empresas a segurança da informação não é visualizada como estratégica, nem como um investimento para o negócio e sim como um custo a mais na planilha financeira
  • 5.
    Introdução – OProblema SQL Injection no banco de currículos das organizações C.E.S.A.R e Pitang – Agile IT Fonte: (RODRIGUES, 2011)
  • 6.
    Introdução - Objetivo Demonstrarde uma maneira geral e tomando como exemplo algumas das lições presentes na estudar a ferramenta web denominada de WebGoat (versão padrão, não sendo a versão de desenvolvedor), algumas das teorias discutidas na disciplina - gestão de ameaças e vulnerabilidades, explorando, além dos ensinamentos introdutórios apresentados pelo tópico da lição geral da ferramenta, as primeiras três lições de segurança da informação para aplicações web e a lição desafio. Dessa forma serão trabalhadas no total as seguintes cinco lições:  Lição Geral (HTML basics e HTML splitting);  Falhas no controle de acesso;  Segurança no AJAX;  Falhas de autenticação;  Lição Desafio.
  • 7.
    Introdução - Ambienteutilizado  Sistema operacional Linux Ubuntu 10.10  Java Development Kit (JDK) 1.7.0.11  Apache Tomcat 7.0.35  WebGoat 5.4 Standard  WebScarab Lite v20070504-1631  Web-browser Mozilla Firefox 3.6.10 com Add-ons:  Tamper Data 11.0.1  Firebug 1.7.3
  • 8.
    Introdução - Ambienteutilizado  Sistema operacional Linux Ubuntu 10.10  Java Development Kit (JDK) 1.7.0.11  Apache Tomcat 7.0.35  WebGoat 5.4 Standard  WebScarab Lite v20070504-1631  Web-browser Mozilla Firefox 3.6.10 com Add-ons:  Tamper Data 11.0.1  Firebug 1.7.3
  • 9.
    Projeto WebGoat -OWASP  Ano de surgimento: 2001  Não possui associação com empresas ou serviços ditos comerciais  Fóruns, aplicativos e documentos são abertos ao público  Missão: promover o desenvolvimento seguro de aplicações e serviços de internet  Conferências  Artigos  Projetos
  • 10.
    Projeto WebGoat -WebGoat  Aplicação web desenvolvida pela OWASP  Ambiente de aplicação web de aprendizado  Construída sob a linguagem de programação Java na plataforma J2EE  Concebida propositalmente para ser insegura  Contém falhas  Ensinar lições de segurança em aplicações web  Verificar diversos tipos de vulnerabilidades existentes  Origem do nome: alguém para culpar (scape-goat)  Navegação através de lições em diferentes níveis  A ideia não é sair verificando vulnerabilidades em aplicações de outrem sem a devida permissão  Pretensão futura de servir de Honeypot
  • 11.
    Projeto WebGoat -WebGoat  Fundamental para:  Evitar que estas mesmas vulnerabilidades estejam presentes  Aprender a anatomia de ataques podem se valer de uma melhor prática de programação  Incluir a segurança da informação seja incluída em todo o ciclo de desenvolvimento de aplicações e serviços que são disponibilizados  Minimizar falhas e riscos desnecessários  Não se encontra hospedado em um servidor de internet  Necessidade de instalar em um ambiente de trabalho  Pré requisitos:  JVM  Servidor Apache Tomcat  SOs compatíveis:  Linux  OSX Tiger  Windows
  • 12.
    Projeto WebGoat -Didática  Baseada em ensinamentos sobre segurança em aplicações web  Cada uma das lições dá uma visão geral sobre a vulnerabilidade que está sendo trabalhada e contém problemas, tais como:  Cross-site Scripting (XSS);  Falhas no controle de acesso (cross site request forgery (CSRF), acesso remoto de administrador, etc.);  Falhas de autenticação e gerência de sessões (roubo de seção, spoof em cookie de autenticação, etc.);  Manipulação de campos ocultos/parâmetros;  Falhas de injeção (SQL Injection; Log spoofing, XPath injection, etc.);  Falhas em Web Services (web service SQL/SAX injection, WSDL scanning, etc.);  Vulnerabilidades no código (pistas e comentários no HTML);  Buffer overflows;  Segurança no AJAX (DOM/XML/JSON injection, etc.);  Lição desafio, cujo objetivo é quebrar a autenticação, roubar os dados de cartão de crédito e desfigurar o site, mais conhecido como deface.
  • 13.
    Projeto WebGoat -Didática  A análise das lições envolvem basicamente:  análise do conteúdo no lado cliente (client side)  código fonte em HTML  scripts  comunicação entre o cliente o servidor  cookies  dados locais
  • 14.
    Colocando em prática– Resumo das lições  Lição Geral (HTML basics e HTML splitting) Familiarizar-se com alguns campos de sessão do HTTP, cookies e códigos Possibilidade de inserir determinados caracteres, variáveis ou códigos em determinados campos que podem levar a um comportamento não previsto inicialmente pela aplicação
  • 15.
    Colocando em prática– Resumo das lições  Falhas no controle de acesso Obtenção de acesso a arquivos indevidamente Acesso a ações privilegiadas, para usuários sem privilégio Acesso indevido das informações de perfil de outro usuário
  • 16.
    Colocando em prática– Resumo das lições  Segurança no AJAX Possibilidade de inserir determinados códigos javascript em determinados campos que podem levar a um comportamento não previsto inicialmente pela aplicação Demonstrar os perigos em comportamentos AJAX ao enviar informações desnecessárias e que, supostamente, o usuário não deveria visualizar
  • 17.
    Colocando em prática– Resumo das lições  Falhas de autenticação Verificar a força das senhas fornecidas, analisando o grau de complexidade e o tempo necessário para quebra-las Descoberta de senha através de dicas de senha Realizar acesso com um usuário e realizar ações com outro usuário
  • 18.
    Colocando em prática– Resumo das lições  Lição Desafio Burlar o método de autenticação Descobrir todos os cartões de créditos registrados no banco de dados do sistema Desfigurar a página
  • 19.
    Colocando em prática– Vídeo DEMO!
  • 20.
    Conclusão  Cumpre suafunção de aplicação web de aprendizado  Ilustrando as falhas de segurança de uma forma bem estruturada  Dividida em tópicos por tipos de vulnerabilidades, através das lições  Boa forma para desenvolvedores, testadores de software e estudantes de segurança da informação para se aprimorarem  Vale a pena lembrar que o objetivo da aplicação não é sair por ai procurando por vulnerabilidades nas aplicações de outrem sem a devida permissão.  Como a própria aplicação sugere que a pessoa que utilizar estas técnicas para realizar ataques, esta poderá ser pega e/ou demitida por este ato.  Portanto, deve-se utilizar este aprendizado na melhor forma possível e na legalidade.
  • 21.
    Bibliografia APACHE SOFTWARE FOUNDATION.Apache Tomcat. [S.l.]: Apache Software Foundation, 2013. Disponível em: <http://tomcat.apache.org/>. Acesso em: 14 de março de 2013. HEWITT, J; ODVARKO, J.; CAMPBELL, R. Firebug. [S.l.]: Add-ons for Firefox, 2013. Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/firebug/>. Acesso em: 14 de março de 2013. JUDSON, A. Tamper Data. [S.l.]: Add-ons for Firefox, 2010. Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/tamper-data/>. Acesso em: 14 de março de 2013. MAYHEW, B.; WILLIAMS, J.. OWASP WebGoat, versão 5.4. [S.l.]: 2012. Aplicação web. OWASP. About OWASP. [S.l.]: Open Web Application Security Project Foundation, 2013a. Disponível em: <https://www.owasp.org/index.php/About_OWASP>. Acesso em: 6 de fevereiro de 2013.
  • 22.
    Bibliografia OWASP. WebGoat Project.[S.l.]: Open Web Application Security Project Foundation, 2013b. Disponível em: <https://www.owasp.org/index.php/OWASP_WebGoat_Project>. Acesso em: 6 de fevereiro de 2013. OWASP. WebScarab Project. [S.l.]: Open Web Application Security Project Foundation, 2013c. Disponível em: <https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project>. Acesso em: 14 de março de 2013. OXFORD. 2 ed. Pocket Oxford American Dictionary. New York: Oxford University Press, 2008. RODRIGUES, M.. OWASP Top 10 + Java EE. [S.l.]: OWASP Paraíba, 2011. Disponível em: <https://www.owasp.org/images/7/7a/Magno_Logan_AppSec_Latam_2011_- _OWASP_Top_10_%2B_JavaEE.pdf>. Acesso em: 17 de fevereiro de 2013.