1 - Principais riscos das aplicações Web - 1
1.1 Open Web Application Security Project (OWASP) - 1
1.1.1 Os riscos de segurança apresentados no OWASP Top 10 2013 - 1
1.1.1.1 Injeção de código (A1) - 2
1.1.1.2 Quebra de autenticação e gerenciamento da sessão (A2) - 2
1.1.1.3 Cross-Site Scripting – XSS (A3) - 2
1.1.1.4 Referência insegura e direta a objetos (A4) - 3
1.1.1.5 Configuração incorreta da segurança (A5) - 3
1.1.1.6 Exposição de dados sensíveis (A6) - 3
1.1.1.7 Falta de função para o controle do nível de acesso (A7) - 4
1.1.1.8 Cross-Site Request Forgery – CSRF (A8) - 4
1.1.1.9 Utilização de componentes vulneráveis conhecidos (A9) - 4
1.1.1.10 Redirecionamentos e encaminhamentos Inválidos (A10) - 5
1.2 Outros riscos de segurança - 6
1.2.1 Clickjacking - 6
1.2.2 Concurrency Flaws - 6
1.2.3 Denial of Service - 7
1.2.4 Expression Language Injection - 7
1.2.5 Information Leakage and Improper Error Handling - 8
1.2.6 Insufficient Anti-automation - 8
1.2.7 Insufficient Login and Accountability - 8
1.2.8 Lack of Intrusion Detection and Response - 9
1.2.9 Malicious File Execution - 9
1.2.10 Mass Assignment - 9
1.2.11 User Privacy - 10
2 - Distribuições Linux desenvolvidas com foco na auditoria e na segurança da informação - 11
2.1 BackBox - 11
2.2 Fedora Security Lab - 12
2.3 Matriux - 13
2.4 FDTK - 14
2.5 CAINE - 15
2.6 Kali Linux - 16
2.7 Tabela de distribuições - 17
3 - Framework Grails - 19
3.1 O que é Groovy - 19
3.2 O que é Grails - 20
3.3 Por que utilizar o Grails - 21
3.4 Grails e segurança - 22
3.5 O que o Grails faz automaticamente em termos de segurança - 23
4 - Preparando o ambiente, desenvolvendo e testando a aplicação - 25
4.1 Ambiente virtualizado para testes - 25
4.1.1 Vantagens na utilização de um ambiente virtualizado - 26
4.1.2 Opções disponíveis de softwares para a virtualização - 26
4.1.3 Cenário dos testes - 26
4.2 Desenvolvimento da aplicação e realização dos testes - 27
4.2.1 Criando a aplicação utilizando o Grails - 28
4.2.2 Criando o banco de dados no MySQL - 40
4.3 Testando a aplicação criada em busca de vulnerabilidades - 41
4.3.1 Testando as falhas de injeção (A1) - 43
4.3.2 Testando a quebra de autenticação e o gerenciamento da sessão (A2) - 48
4.3.3 Testando o Cross-Site Scripting (A3) - 52
4.3.4 Testando a referência insegura e direta a objetos (A4) - 54
4.3.5 Testando a configuração incorreta de segurança (A5) - 54
4.3.6 Testando a exposição de dados sensíveis (A6) - 57
4.3.7 Testando a falta de função para o controle do nível de acesso (A7) - 58
4.3.8 Testando o Cross-Site Request Forgery – CSRF (A8) - 59
4.3.9 Testando a utilização de componentes vulneráveis conhecidos (A9) - 64
4.3.10 Testando redirecionamentos e encaminhamentos inválidos (A10) - 65
4.3.11 Buscando vulnerabilidades com o OWASP ZAP - 65
4.3.11 Realizando a varredura de vulnerabilidades com Vega - 69
Considerações finais - 75
Resumo do trabalho - 75
Conclusão - 77
Referências Bibliográficas - 79
Apêndices - 87
Apêndice A - Instalando o VirtualBox no Ubuntu - 87
Apêndice B - Criando uma máquina com o VirtualBox - 88
Apêndice C - Instalando o Java Development Kit no Ubuntu 14.04 - 102
Apêndice D - Instalando o Grails no Ubuntu - 103
Apêndice E - Instalando o NetBeans 8 no Ubuntu 14.04 - 105
Apêndice F - Instalando o banco de dados MySQL no Ubuntu 14.04 - 114
Apêndice G - Instalando a máquina virtual Kali Linux 1.0.6 - 115
Apêndice H – Lista de bibliotecas do Grails - 132
Apêndice I – Realizando o CheckSum nos arquivos - 143