publication . Master thesis . 2015

Escudo para Aplicações Web contra injeção de Conteúdo através de Content Security Policy

Vitor Emanuel Freitas Oliveira Magano;
Open Access Portuguese
  • Published: 20 Jul 2015
  • Country: Portugal
Abstract
Este tema de dissertação centrado na segurança foi proposto pela empresa JScrambler que é detentora do produto com o mesmo nome que, por sua vez oferece uma solução de proteção de JavaScript completa. Estando a empresa a par dos progressos nesta área, o mecanismo de segurança Content Security Policy despertou interesse pelas suas potencialidades. De forma geral esta ferramenta limita a execução de conteúdo num website ao declarado através do CSP sendo que a tentativa de injeção de conteúdo que exceda o que foi permitido será bloqueado e reportado ao servidor.Adjacente a esta ferramenta está a grande carga de trabalho necessária à configuração e ma- nutenção da m...
Subjects
free text keywords: Engenharia electrotécnica, electrónica e informática, Electrical engineering, Electronic engineering, Information engineering, :Engenharia electrotécnica, electrónica e informática [Ciências da engenharia e tecnologias], :Electrical engineering, Electronic engineering, Information engineering [Engineering and technology]
Related Organizations
22 references, page 1 of 2

3 Content Security Policy 11 3.1 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Enquadramento Histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Barreiras a Ultrapassar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.5 Vulnerabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.6 Implicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.7 Geração e Análise de Performance . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.8 Aplicações Conhecidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.9 Versões/Suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.10 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Especificação e Implementação da Solução 19 4.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Requisitos da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3 Arquitetura da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3.1 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Validação e Resultados 35 5.1 Processo de Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.1 Análise por Carregamento de um Projeto . . . . . . . . . . . . . . . . . 36 5.2.2 Análise por Crawl a um Website . . . . . . . . . . . . . . . . . . . . . . 37 5.2.3 Tempos de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2.4 Deteção atual no mundo real . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6 Conclusões e Trabalho Futuro 39 6.1 Satisfação dos Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1.1 Investigação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1.2 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.2 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.3 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.1 Código exemplo sem qualquer transformação aplicada . . . . . . . . . . . . . . 6 2.2 Código exemplo com minificação . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Código exemplo com ofuscação . . . . . . . . . . . . . . . . . . . . . . . . . . 7

[29] C0nrad. Generating Content-Security-Policies, the easy way, 2014. Last accessed on 2015- 01-19. URL: http://c0nrad.io/blog/csp.html.

[30] Paweł Krawczyk. Content Security Policy Builder. Last accessed on 2015-01-19. URL: https://cspbuilder.info/static/#/main/.

[31] David Risney. CSP-Fiddler-Extension. Last accessed on 2015-03-30. URL: https:// github.com/david-risney/CSP-Fiddler-Extension.

[32] Mark Percival. Improving Browser Security with CSP, 2011. Last accessed on 2015-01-19. URL: https://blog.twitter.com/2011/ improving-browser-security-csp.

[33] Neil Matatall. CSP to the Rescue: Leveraging the Browser for Security. Last accessed on 2015-01-19. URL: https://blog.twitter.com/2013/ csp-to-the-rescue-leveraging-the-browser-for-security.

[34] Google. Content Security Policy (CSP) - Google Chrome. Last accessed on 2015-01-19. URL: https://developer.chrome.com/extensions/ contentSecurityPolicy.

[35] Joshua Peek. Content Security Policy. Last accessed on 2015-04-05. URL: https:// github.com/blog/1477-content-security-policy.

[36] Usage Statistics and Market Share of Server-side Programming Languages for Websites, June 2015. Last accessed on 2015-06-19. URL: http://w3techs.com/ technologies/overview/programming_language/all.

[37] Usage Statistics and Market Share of Web Servers for Websites, June 2015. Last accessed on 2015-06-19. URL: http://w3techs.com/technologies/overview/web_ server/all.

[38] Jade - Template Engine. Last accessed on 2015-06-19. URL: http://jade-lang.com/.

[39] Necolas. css-parser, 2014. Last accessed on 2015-06-15. URL: https://github.com/ reworkcss/css-parse.

22 references, page 1 of 2
Abstract
Este tema de dissertação centrado na segurança foi proposto pela empresa JScrambler que é detentora do produto com o mesmo nome que, por sua vez oferece uma solução de proteção de JavaScript completa. Estando a empresa a par dos progressos nesta área, o mecanismo de segurança Content Security Policy despertou interesse pelas suas potencialidades. De forma geral esta ferramenta limita a execução de conteúdo num website ao declarado através do CSP sendo que a tentativa de injeção de conteúdo que exceda o que foi permitido será bloqueado e reportado ao servidor.Adjacente a esta ferramenta está a grande carga de trabalho necessária à configuração e ma- nutenção da m...
Subjects
free text keywords: Engenharia electrotécnica, electrónica e informática, Electrical engineering, Electronic engineering, Information engineering, :Engenharia electrotécnica, electrónica e informática [Ciências da engenharia e tecnologias], :Electrical engineering, Electronic engineering, Information engineering [Engineering and technology]
Related Organizations
22 references, page 1 of 2

3 Content Security Policy 11 3.1 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Enquadramento Histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Barreiras a Ultrapassar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.5 Vulnerabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.6 Implicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.7 Geração e Análise de Performance . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.8 Aplicações Conhecidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.9 Versões/Suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.10 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Especificação e Implementação da Solução 19 4.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Requisitos da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3 Arquitetura da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3.1 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Validação e Resultados 35 5.1 Processo de Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.1 Análise por Carregamento de um Projeto . . . . . . . . . . . . . . . . . 36 5.2.2 Análise por Crawl a um Website . . . . . . . . . . . . . . . . . . . . . . 37 5.2.3 Tempos de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2.4 Deteção atual no mundo real . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6 Conclusões e Trabalho Futuro 39 6.1 Satisfação dos Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1.1 Investigação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1.2 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.2 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.3 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.1 Código exemplo sem qualquer transformação aplicada . . . . . . . . . . . . . . 6 2.2 Código exemplo com minificação . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Código exemplo com ofuscação . . . . . . . . . . . . . . . . . . . . . . . . . . 7

[29] C0nrad. Generating Content-Security-Policies, the easy way, 2014. Last accessed on 2015- 01-19. URL: http://c0nrad.io/blog/csp.html.

[30] Paweł Krawczyk. Content Security Policy Builder. Last accessed on 2015-01-19. URL: https://cspbuilder.info/static/#/main/.

[31] David Risney. CSP-Fiddler-Extension. Last accessed on 2015-03-30. URL: https:// github.com/david-risney/CSP-Fiddler-Extension.

[32] Mark Percival. Improving Browser Security with CSP, 2011. Last accessed on 2015-01-19. URL: https://blog.twitter.com/2011/ improving-browser-security-csp.

[33] Neil Matatall. CSP to the Rescue: Leveraging the Browser for Security. Last accessed on 2015-01-19. URL: https://blog.twitter.com/2013/ csp-to-the-rescue-leveraging-the-browser-for-security.

[34] Google. Content Security Policy (CSP) - Google Chrome. Last accessed on 2015-01-19. URL: https://developer.chrome.com/extensions/ contentSecurityPolicy.

[35] Joshua Peek. Content Security Policy. Last accessed on 2015-04-05. URL: https:// github.com/blog/1477-content-security-policy.

[36] Usage Statistics and Market Share of Server-side Programming Languages for Websites, June 2015. Last accessed on 2015-06-19. URL: http://w3techs.com/ technologies/overview/programming_language/all.

[37] Usage Statistics and Market Share of Web Servers for Websites, June 2015. Last accessed on 2015-06-19. URL: http://w3techs.com/technologies/overview/web_ server/all.

[38] Jade - Template Engine. Last accessed on 2015-06-19. URL: http://jade-lang.com/.

[39] Necolas. css-parser, 2014. Last accessed on 2015-06-15. URL: https://github.com/ reworkcss/css-parse.

22 references, page 1 of 2
Powered by OpenAIRE Open Research Graph
Any information missing or wrong?Report an Issue