Análise Dos Riscos De Segurança Testes De Penetração a Aplicações Web
Total Page:16
File Type:pdf, Size:1020Kb
Universidade do Minho Escola de Engenharia Manuel Francisco Mendes Gonçalves HTML5 - Análise dos Riscos de Segurança Testes de Penetração a Aplicações Web Junho de 2014 Universidade do Minho Escola de Engenharia Manuel Francisco Mendes Gonçalves HTML5 - Análise dos Riscos de Segurança Testes de Penetração a Aplicações Web Dissertação de Mestrado Mestrado em Engenharia Informática Trabalho realizado sob orientação de Professor Doutor António Nestor Ribeiro Junho de 2014 \Everytihng should be made as simple as possible, but not simpler" (Albert Einstein) Agradecimentos Em primeiro lugar gostaria de agradecer `aminha fam´ıliapor todo o suporte disponibilizado e por terem oferecido todas as condi¸c~oespara ter chegado ate aqui. Gostaria ainda de agradecer a todos os meus amigos, em especial `aMarisa Rebelo por todo o incentivo. Um especial obrigado `amaincheck e ao Jo~aoRibeiro, pelo tema proposto, pela oportunidade e por toda a disponibilidade apresentada. Finalmente, quero agradecer ao meu orientador pela oportunidade e por toda a paci^enciae suporte apresentados, assim como por me ajudar a concluir este fim de ciclo do meu percurso acad´emico. iv Abstract The new version of HTML, offers impressive enhancements to develop rich web applications. But coupled with new features they always come new security issues that need to be analyzed and covered. Prior to HTML5 already existed certain security threats that affecting the web applications (such as SQLInjection, XSS, CSRF, etc.), and that gain a new poten- tial due to the new HTML features. This study focuses specifically on the analysis of these well known threats, together with the analysis of the security risks asso- ciated with the new features of HTML5, as well as, the presentation of mitigation rules. Additionally are presented a set of modules for detecting HTML5 vulnerabilities in web applications, caused by inadequate use of HTML5 during the development phase. This set of modules corresponds to an extension added to a Black Box Web Application Security Scanner well known called ZAP, which is owned by OWASP. This also implied the adding of some HTML5 features to the Wave ZAP web application, also owned by OWASP, with the intent to perform penetration tests against it, in order to test these new ZAP modules. v Resumo A nova vers~aodo HTML tr´asmelhorias significativas relativamente `aconstru¸c~aode aplica¸c~oesweb mais ricas. Contudo, com as novas funcionalidades v^emacoplados a elas sempre novos riscos de seguran¸caque precisam ser analisados e colmatados. Anteriormente ao HTML5 j´aexistiam determinadas amea¸casde seguran¸caque afetavam as aplica¸c~oesweb (tais como SQLInjection, XSS, CSRF, etc), e que ganham um novo potencial devido aos novos recursos do HTML. Este estudo foca precisamente a an´alisedessas amea¸casbem conhecidas, em conjunto com a an´alisedos riscos de seguran¸caassociados `asnovas funcionalidades do HTML5, assim como `aapresenta¸c~aode regras para atenua¸c~aodas mesmas. Adicionalmente s~aoapresentados um conjunto de m´odulospara dete¸c~aode vulnerabilidades HTML5 em aplica¸c~oes web. As quais s~aooriginadas devido `a m´autiliza¸c~aodo HTML5 durante a fase de desenvolvimento. Esse conjunto de m´oduloscorresponde a uma extens~aoadicionada a um Black Box Web Application Security Scanner bem conhecido da OWASP designado ZAP. Isso implicou adicionar tamb´emalgumas funcionalidades HTML5 a uma aplica¸c~ao web tamb´emda OWASP designada Wave ZAP, cujo objetivo ´eser utilizada para realizar testes de penetra¸c~aoa fim de testar esses novos m´odulos do ZAP. vi Conte´udo Agradecimentos iv Abstractv Resumo vi Lista de Figuras xi Lista de Listagens xiii Lista de Tabelas xv 1 Introdu¸c~ao1 1.1 Conceitos de Seguran¸ca.........................1 1.2 Motiva¸c~ao................................2 1.3 Caso de estudo.............................4 1.4 Objetivos................................5 1.5 Organiza¸c~aodo documento.......................6 2 Abordagens de Testes de Seguran¸ca7 2.1 Introdu¸c~ao................................7 2.2 Teste White Box............................9 2.3 Teste Black Box............................. 11 2.4 Teste Gray Box............................. 13 2.5 S´ıntese.................................. 14 3 Estrutura do BB-WASS 15 3.1 Introdu¸c~ao................................ 15 3.2 Crawling ................................. 17 3.3 Constru¸c~aodo Ataque e Submiss~ao.................. 18 3.4 An´alisedas Respostas......................... 18 3.5 S´ıntese.................................. 19 4 Amea¸casde Seguran¸caem Aplica¸c~oesWeb 21 4.1 Introdu¸c~ao................................ 21 4.2 Inje¸c~ao.................................. 22 vii Conte´udo 4.2.1 SQL Injection.......................... 23 4.2.2 Exemplo............................. 24 4.2.3 Preven¸c~aode SQL Injection.................. 26 4.3 Cross-Site Scripting (XSS)....................... 27 4.3.1 Exemplo............................. 29 4.3.2 Preven¸c~aode Cross-site Scripting............... 30 4.4 Broken Authentication and Session Management........... 31 4.4.1 Preven¸c~aode Broken Authentication and Session Management 32 4.5 Insecure Direct Object References................... 33 4.5.1 Preven¸c~aode Insecure Direct Object References....... 33 4.6 Cross-Site Request Forgery....................... 34 4.6.1 Preven¸c~aode Cross-Site Request Forgery........... 35 4.7 S´ıntese.................................. 36 5 Trabalhos Relacionados 39 5.1 Estado da Arte............................. 39 6 Quest~oesde Seguran¸caIntr´ınsecasao HTML5 45 6.1 Introdu¸c~ao................................ 45 6.2 Novas Funcionalidades do HTML5................... 46 6.3 Suporte dos Browsers para HTML5.................. 48 6.4 Riscos de Seguran¸cado HTML5.................... 50 6.4.1 Cross-Origin Resource Sharing................. 50 6.4.1.1 Riscos de Seguran¸ca................. 52 6.4.1.2 Atenua¸c~ao....................... 54 6.4.2 Web Storage e Indexed Database............... 55 6.4.2.1 Riscos de Seguran¸ca................. 57 6.4.2.2 Atenua¸c~ao....................... 58 6.4.3 Offline Web Application.................... 59 6.4.3.1 Riscos de Seguran¸ca................. 60 6.4.3.2 Atenua¸c~ao....................... 61 6.4.4 Web Messaging......................... 61 6.4.4.1 Riscos de Seguran¸ca................. 63 6.4.4.2 Atenua¸c~ao....................... 65 6.4.5 Custom Scheme and Content Handlers............ 66 6.4.5.1 Riscos de Seguran¸ca................. 66 6.4.5.2 Atenua¸c~ao....................... 67 6.4.6 Web Sockets........................... 67 6.4.6.1 Riscos de Seguran¸ca................. 68 6.4.6.2 Atenua¸c~ao....................... 69 6.5 Outras Caracter´ısticasde Seguran¸cado HTML5........... 70 6.5.1 Web Workers.......................... 71 6.5.2 Novos elementos, atributos e CSS............... 72 6.5.3 Iframe Sandboxing....................... 73 viii Conte´udo 6.5.4 Server-Sent Events....................... 75 6.5.5 Notifica¸c~oesWeb........................ 75 6.5.6 Drag and Drop API....................... 76 6.5.7 Canvas.............................. 78 6.6 Assegurar a Seguran¸cade Aplica¸c~oesHTML5............ 79 6.6.1 Guias de Seguran¸cae Regras de Preven¸c~ao.......... 79 6.6.2 Utilizar os pr´opriosRecursos HTML5............. 79 6.6.3 Valida¸c~aode Input....................... 80 6.6.3.1 AntiSamy....................... 80 6.6.4 Utilizar Web Application Firewalls.............. 81 6.7 S´ıntese.................................. 82 7 Extens~aoao ZAP 83 7.1 Introdu¸c~ao................................ 83 7.2 Website vulner´avel html5vuln..................... 84 7.2.1 Design.............................. 84 7.2.2 Vulnerabilidades........................ 84 7.3 M´odulosAdicionados.......................... 86 7.3.1 Cross-Origin Resource Sharing................. 86 7.3.2 Web Storage........................... 89 7.3.3 Web Messaging......................... 92 7.3.4 Custom Scheme and Content Handlers............ 94 7.3.5 Web Sockets........................... 95 7.3.6 Novas Variantes de XSS.................... 96 7.4 Testes de Dete¸c~ao............................ 97 8 Conclus~aoe Trabalho Futuro 101 8.1 Conclus~ao................................ 101 8.2 Trabalho Futuro............................. 103 Ap^endices 107 Ap^endiceA Informa¸c~aoAdicional Sobre o HTML5 107 A.1 Controlo de Acesso baseado no Cabe¸calhode Origem........ 107 A.2 Offline Web Application........................ 108 A.2.1 Ficheiro Cache Manifest.................... 108 A.2.2 Comportamento do UA quando a Cache ´eEliminada.... 109 A.3 Informa¸c~oes sobre o Atributo sandbox ................. 109 Ap^endiceB Cen´ariosde Ataque 111 B.1 CORS.................................. 111 B.1.1 Recolha de Informa¸c~ao..................... 111 B.1.2 Estabelecimento de uma Shell remota............. 112 B.2 Web Storage............................... 114 ix Conte´udo B.2.1 Hijaking da Sess~ao....................... 114 B.2.2 Rastreamento do utilizador.................. 115 B.3 Web Sockets API............................ 115 B.3.1 Shell remota........................... 115 B.3.2 Botnets baseados na web.................... 116 B.3.3 Scanning de portas....................... 117 Bibliografia 120 x Lista de Figuras 4.1 Ataque do tipo Reflected XSS [Gal´anet al., 2010].......... 28 4.2 Ataque do tipo Stored XSS [Gal´anet al., 2010]............ 28 4.3 Exemplo de um ataque "Reflected XSS"com uma script estrangeira [Hamada, 2012]............................. 30 4.4 Exemplo de um ataque "Stored XSS"que transfere um Cookie [Ha- mada, 2012]............................... 30