Estudo realizado por um grupo de alunos, estudantes do curso de MBA em Gestão de Segurança da Informação, sobre o WebGoat Project para a disciplina de Gestão de Ameaças e Vulnerabilidades do Prof. MSc. Ricardo Giorgi
Autores:
Cleyton Tsukuda Kano
Danilo Luiz Favacho Lopes
Décio Vicente Castaldi
Paulo Kuester Neto
Confira o documento deste estudo em:
http://www.slideshare.net/CleytonKano/webgoat-project
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 – O Problema
Mundo dependente tecnologicamente
Popularização numa velocidade
evolutiva nunca antes experimentada
Serviços vitais conectados:
Energia
Transportes
Alimentos
Sistemas financeiros
etc
4. 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
5. 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)
6. 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.
7. 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
8. 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
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
20. 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.
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.