Além do HTTPS
Como (tentar) Aumentar a Segurança
de seu Website e Aplicação Web
jeronimo.zucco@owasp.org
@jczucco
Sobre mim
• Blog: http://jczucco.blogspot.com
• Twitter: @jczucco
• http://www.linkedin.com/in/jeronimozucco
• Membro OWAS...
3
Fonte: http://www.wsj.com/articles/SB10001424053111903480904576512250915629460
4
5
6
7
Proteção na Camada de Transporte
8
•Confidencialidade
•Autenticidade
•Integridade
TLS
9
SSL
10Fonte: Trustwave
Versões do Protocol SSL/TLS
• SSL v1, SSL v2, SSL v3 - Não usar
• TLS 1.0 - “ok”
• TLS 1.1 - Ataques práticos atualmente n...
Ataques relevantes ao TLS
• 2011 BEAST
• Atualize para o TLS 1.1
• Use RC4 para protocolos antigos
• 2012 CRIME
• Não use ...
Ataques relevantes ao TLS
• 2014 HeartBleed
• Requisições “heart beat” que
exploravam a memória do servidor
• 2015 Freak, ...
Heartbleed
14
Problemas com as ACs
• Comprometidas
• 2010 - Stuxnet (Realtek, JMicron)
• 2011 - DigiNotar, GlobalSign, Comodo
• 2011, 20...
Baseline de Certificados
(Chrome 42)
• SHA-1: inseguro
• Use CAs e certificados assinados com >
SHA-256 *
• Certificados r...
Certificados são caros
17
TLS é Lento
https://istlsfastyet.com
18
Caches e Filtros
• Uso de CDNs (Content Delivery Network)
com suporte à HTTPS
• Filtros de Next Generation Firewalls ou
Ag...
Chrome irá marcar HTTP como
inseguro em breve
• Seguro (HTTPS válido, outras origens
como (*, localhost, *));
• Duvidoso (...
OK, você venceu:
HTTPS (c/TLS)
21
Um Grande Banco…
22
Além do HTTPS
• Strict Transport Security (HSTS)
• Certificate and Public Key Pinning
• Perfect Forward Secrecy (PFS)
• Di...
Além do HTTPS
• Mantenha seus sistemas atualizados
• Monitoramento da disponibilidade
• Monitoramento de performance
• His...
Strict Transport Security (HSTS)
• RFC 6797 Nov/2012
• Usuários tendem a usar HTTP
• Website é acessível somente via HTTPS...
Strict Transport Security (HSTS)
26
Certificate and Public Key Pinning
• Detecta quando um impostor com um CA
falso tenta se passar pelo verdadeiro
• Cópia da...
Certificate and Public Key Pinning
28
Perfect Forward Secrecy (PFS)
• Cada sessão HTTPS possui a sua chave
• Se a chave privada vazar, o tráfego
capturado anter...
Diffie Hellman Parameters
• https://weakdh.org
• Troca de chaves TLS < 1024 bits
• DHE_EXPORT ciphers
# openssl dhparam -o...
OCSP Stapling
• Online Certificate Status Protocol
• Verifica os status de revogação do
certificado
• Mais eficiente que o...
OCSP Stapling
NGINX:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate certs/full_chaim.pem;
resolver <IP D...
TLS Security Configuration (nginx)
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache sh...
TLS Security Configuration
• https://wiki.mozilla.org/Security/Server_Side_TLS
34
Secure Cookie Flag
• O Cookie só poderá ser transmitido em
canais criptografados
• Use também HttpOnly
35
TLS Maturity Model
• Level 1: Chaos (default)
• Level 2: Configuration
• Level 3: application security (mixed
content, app...
Cabeçalhos Adicionais
• X-Frame-Options SAMEORIGIN
• Proteção contra Clickjacking
• X-XSS-Protection ‘1; mode=block’
• Hab...
CSP - Content Security Policy
38
CSP - Content Security Policy
• Reduz o risco de XSS
• Declara quais recursos dinâmicos são
permitidos e suas origens
• Ja...
CSP - Content Security Policy
40
CSP - Content Security Policy
41
42Fonte: SSLLabs https://www.ssllabs.com/ssltest/clients.html
O que fazer?
• Se prepare para um mundo HTTPS-only
• Atualize seu servers
• Implemente HSTS
• Use Perfect Forward Secrecy
...
O que fazer?
• Não use RC4 e RSA
• Avalie os Browsers utilizados por seus
usuários
• Implemente cabeçalhos adicionais
• Im...
PERGUNTAS?
OBRIGADO!
JERONIMO.ZUCO@OWASP.ORG
@JCZUCCO
Upcoming SlideShare
Loading in …5
×

Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação Web (Beyond HTTPS - How to (try) Improve security in Your Website)

1,982 views

Published on

Segurança em websites é uma tarefa difícil. Apenas uma brecha em um erro de desenvolvimento ou uma configuração esquecida e mal feita e seu portal pode ser comprometido. Não basta mais somente implementar alguns controles ou ter alguns cuidados na hora da implementação de uma aplicação que será exposta para web. Essa palestra irá abordar como (tentar) aumentar a segurança se seu website através da implementação de alguns controles pró-ativos como: hardening TLS, HSTS, certificate and public key pinning, HTTP headers, XSS protections, Cookies protections, Content Security Policy, Hardening Web Server.

Published in: Software

Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação Web (Beyond HTTPS - How to (try) Improve security in Your Website)

  1. 1. Além do HTTPS Como (tentar) Aumentar a Segurança de seu Website e Aplicação Web jeronimo.zucco@owasp.org @jczucco
  2. 2. Sobre mim • Blog: http://jczucco.blogspot.com • Twitter: @jczucco • http://www.linkedin.com/in/jeronimozucco • Membro OWASP Capítulo Porto Alegre • http://www.owasp.org/index.php/ User:Jeronimo_Zucco • Algumas certificações na área de segurança 2
  3. 3. 3 Fonte: http://www.wsj.com/articles/SB10001424053111903480904576512250915629460
  4. 4. 4
  5. 5. 5
  6. 6. 6
  7. 7. 7
  8. 8. Proteção na Camada de Transporte 8 •Confidencialidade •Autenticidade •Integridade
  9. 9. TLS 9 SSL
  10. 10. 10Fonte: Trustwave
  11. 11. Versões do Protocol SSL/TLS • SSL v1, SSL v2, SSL v3 - Não usar • TLS 1.0 - “ok” • TLS 1.1 - Ataques práticos atualmente não conhecidos • TLS 1.2 - Melhor opção atualmente 11 Fonte: AppSec EU15 - Jim Manico
  12. 12. Ataques relevantes ao TLS • 2011 BEAST • Atualize para o TLS 1.1 • Use RC4 para protocolos antigos • 2012 CRIME • Não use compressão de TLS • 2013 BREACH • Baseado no CRIME, mas compressão HTTP 12
  13. 13. Ataques relevantes ao TLS • 2014 HeartBleed • Requisições “heart beat” que exploravam a memória do servidor • 2015 Freak, Logjam • Downgrade e abuso do protocolo (DHE < 1024) • OpenSSL 09/Jul/2015 13
  14. 14. Heartbleed 14
  15. 15. Problemas com as ACs • Comprometidas • 2010 - Stuxnet (Realtek, JMicron) • 2011 - DigiNotar, GlobalSign, Comodo • 2011, 2015 - Duqu 1.0 e Duqu 2.0 • Abusos • 2012 - Trustwave man-in-the-middle • 2012 - Turkish CA Gmail impersonation • 2013 - CA Francesa Gmail impersonation • 2015 - IBM Superfish, CA abuse 15
  16. 16. Baseline de Certificados (Chrome 42) • SHA-1: inseguro • Use CAs e certificados assinados com > SHA-256 * • Certificados restritos até 3 anos de validade a partir de abril/2015 ** 16 Fonte: http://googleonlinesecurity.blogspot.com.br/2014/09/gradually-sunsetting-sha-1.html https://support.servertastic.com/ssl-certificates-to-be-restricted-to-3-year-validity-from-april-2015/
  17. 17. Certificados são caros 17
  18. 18. TLS é Lento https://istlsfastyet.com 18
  19. 19. Caches e Filtros • Uso de CDNs (Content Delivery Network) com suporte à HTTPS • Filtros de Next Generation Firewalls ou Agentes • Bem vindo ao futuro :-) 19
  20. 20. Chrome irá marcar HTTP como inseguro em breve • Seguro (HTTPS válido, outras origens como (*, localhost, *)); • Duvidoso (HTTPS válido mas com recursos em HTTP, HTTPS válido com erros menores no TLS); • Não seguro (broken HTTPS, HTTP). • Usuários 20 Fonte: https://www.chromium.org/Home/chromium-security/marking-http-as-non-secure
  21. 21. OK, você venceu: HTTPS (c/TLS) 21
  22. 22. Um Grande Banco… 22
  23. 23. Além do HTTPS • Strict Transport Security (HSTS) • Certificate and Public Key Pinning • Perfect Forward Secrecy (PFS) • Diffie Hellman Parameters • OCSP Stapling • TLS Security Configuration • SPDY, HTTP 2 • Secure Cookie Flag • Cabeçalhos adicionais << BÔNUS :-) 23
  24. 24. Além do HTTPS • Mantenha seus sistemas atualizados • Monitoramento da disponibilidade • Monitoramento de performance • Histórico de performance • Dependências • Tráfego criptografado em todo o caminho • Desenvolvimento seguro 24
  25. 25. Strict Transport Security (HSTS) • RFC 6797 Nov/2012 • Usuários tendem a usar HTTP • Website é acessível somente via HTTPS • Pode ser pré-embutido no browser * 25 * https://hstspreload.appspot.com
  26. 26. Strict Transport Security (HSTS) 26
  27. 27. Certificate and Public Key Pinning • Detecta quando um impostor com um CA falso tenta se passar pelo verdadeiro • Cópia da chave pública; ou • TOFU (Trust On First Use): Browser, SSH • RFC 7469 - HPKP: HTTP Public Key Pinning extension 27
  28. 28. Certificate and Public Key Pinning 28
  29. 29. Perfect Forward Secrecy (PFS) • Cada sessão HTTPS possui a sua chave • Se a chave privada vazar, o tráfego capturado anteriormente não pode ser descriptografado • TLS: ECDHE-RSA (27%), ECDHE-ECDSA (15%)* 29 Fonte: http://vincent.bernat.im/en/blog/2011-ssl-perfect-forward-secrecy.html
  30. 30. Diffie Hellman Parameters • https://weakdh.org • Troca de chaves TLS < 1024 bits • DHE_EXPORT ciphers # openssl dhparam -out dhparam.pem 2048 nginx: ssl_dhparam /etc/ssl/certs/dhparam.pem; 30
  31. 31. OCSP Stapling • Online Certificate Status Protocol • Verifica os status de revogação do certificado • Mais eficiente que o CRL • Já envia para o cliente o status do certificado assinado pela AC durante o TLS handshake 31
  32. 32. OCSP Stapling NGINX: ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate certs/full_chaim.pem; resolver <IP DNS resolver>; 32
  33. 33. TLS Security Configuration (nginx) ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate certs/full_chaim.pem; resolver <IP DNS resolver>; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers ‘AES128+EECDH:AES128+EDH:!aNULL'; 33
  34. 34. TLS Security Configuration • https://wiki.mozilla.org/Security/Server_Side_TLS 34
  35. 35. Secure Cookie Flag • O Cookie só poderá ser transmitido em canais criptografados • Use também HttpOnly 35
  36. 36. TLS Maturity Model • Level 1: Chaos (default) • Level 2: Configuration • Level 3: application security (mixed content, app cookies sec) • Level 4, commitment (HSTS) • Level 5: robust security (public key pinning) 36
  37. 37. Cabeçalhos Adicionais • X-Frame-Options SAMEORIGIN • Proteção contra Clickjacking • X-XSS-Protection ‘1; mode=block’ • Habilita a proteção contra XSS nos browsers modernos (opção default) • X-Content-Type-Options nosniff • IE8 E Chrome previne MIME-sniffing 37
  38. 38. CSP - Content Security Policy 38
  39. 39. CSP - Content Security Policy • Reduz o risco de XSS • Declara quais recursos dinâmicos são permitidos e suas origens • JavaScript, CSS, HTML frames, fonts, images, Java applets, ActiveX, audio e video files. • Content-Security-Policy • Content-Security-Policy-Report-Only 39
  40. 40. CSP - Content Security Policy 40
  41. 41. CSP - Content Security Policy 41
  42. 42. 42Fonte: SSLLabs https://www.ssllabs.com/ssltest/clients.html
  43. 43. O que fazer? • Se prepare para um mundo HTTPS-only • Atualize seu servers • Implemente HSTS • Use Perfect Forward Secrecy • Configure o TLS de forma segura (ciphers, OCSP • Use Certificate Pinning 43
  44. 44. O que fazer? • Não use RC4 e RSA • Avalie os Browsers utilizados por seus usuários • Implemente cabeçalhos adicionais • Implemente CSP • SPDY -> HTTP 2 • Desenvolvimento Seguro = OWASP 44
  45. 45. PERGUNTAS?
  46. 46. OBRIGADO! JERONIMO.ZUCO@OWASP.ORG @JCZUCCO

×