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.
Além do HTTPS: Como Aumentar a Segurança de seu Website
1. Além do HTTPS
Como (tentar) Aumentar a Segurança
de seu Website e Aplicação Web
jeronimo.zucco@owasp.org
@jczucco
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
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. 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. 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
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. 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/
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. 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
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. 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. 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
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
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
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
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
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. 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