Vous êtes sur la page 1sur 46

Alm do HTTPS

Como (tentar) Aumentar a Segurana


de seu Website e Aplicao Web
jeronimo.zucco@owasp.org
@jczucco

Sobre mim
Blog: http://jczucco.blogspot.com
Twitter: @jczucco
http://www.linkedin.com/in/jeronimozucco
Membro OWASP Captulo Porto Alegre
http://www.owasp.org/index.php/
User:Jeronimo_Zucco
Algumas certificaes na rea de segurana

Fonte: http://www.wsj.com/articles/SB10001424053111903480904576512250915629460

Proteo na Camada de Transporte

Confidencialidade
Autenticidade
Integridade

TLS
SSL
9

Fonte: Trustwave

10

Verses do Protocol SSL/TLS


SSL v1, SSL v2, SSL v3 - No usar
TLS 1.0 - ok
TLS 1.1 - Ataques prticos atualmente no
conhecidos
TLS 1.2 - Melhor opo atualmente
Fonte: AppSec EU15 - Jim Manico

11

Ataques relevantes ao TLS


2011 BEAST
Atualize para o TLS 1.1
Use RC4 para protocolos antigos
2012 CRIME
No use compresso de TLS
2013 BREACH
Baseado no CRIME, mas compresso
HTTP
12

Ataques relevantes ao TLS


2014 HeartBleed
Requisies heart beat que
exploravam a memria do servidor
2015 Freak, Logjam
Downgrade e abuso do protocolo
(DHE < 1024)
OpenSSL 09/Jul/2015
13

Heartbleed

14

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

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 **
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/
16

Certificados so 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
Agentes
Bem vindo ao futuro :-)

19

Chrome ir marcar HTTP como


inseguro em breve
Seguro (HTTPS vlido, outras origens
como (*, localhost, *));
Duvidoso (HTTPS vlido mas com recursos
em HTTP, HTTPS vlido com erros
menores no TLS);
No seguro (broken HTTPS, HTTP).
Usurios
Fonte: https://www.chromium.org/Home/chromium-security/marking-http-as-non-secure

20

OK, voc venceu:


HTTPS (c/TLS)

21

Um Grande Banco

22

Alm 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
Cabealhos adicionais << BNUS :-)
23

Alm do HTTPS

Mantenha seus sistemas atualizados


Monitoramento da disponibilidade
Monitoramento de performance
Histrico de performance
Dependncias
Trfego criptografado em todo o caminho
Desenvolvimento seguro
24

Strict Transport Security (HSTS)

RFC 6797 Nov/2012


Usurios tendem a usar HTTP
Website acessvel somente via HTTPS
Pode ser pr-embutido no browser *

* https://hstspreload.appspot.com

25

Strict Transport Security (HSTS)

26

Certificate and Public Key Pinning


Detecta quando um impostor com um CA
falso tenta se passar pelo verdadeiro
Cpia da chave pblica; ou
TOFU (Trust On First Use): Browser, SSH
RFC 7469 - HPKP: HTTP Public Key Pinning
extension

27

Certificate and Public Key Pinning

28

Perfect Forward Secrecy (PFS)


Cada sesso HTTPS possui a sua chave
Se a chave privada vazar, o trfego
capturado anteriormente no pode ser
descriptografado
TLS: ECDHE-RSA (27%), ECDHE-ECDSA
(15%)*

Fonte: http://vincent.bernat.im/en/blog/2011-ssl-perfect-forward-secrecy.html

29

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

OCSP Stapling
Online Certificate Status Protocol
Verifica os status de revogao do
certificado
Mais eficiente que o CRL
J envia para o cliente o status do
certificado assinado pela AC durante o TLS
handshake

31

OCSP Stapling
NGINX:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate certs/full_chaim.pem;
resolver <IP DNS resolver>;

32

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

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 tambm HttpOnly

35

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

Cabealhos Adicionais
X-Frame-Options SAMEORIGIN
Proteo contra Clickjacking
X-XSS-Protection 1; mode=block
Habilita a proteo contra XSS nos
browsers modernos (opo default)
X-Content-Type-Options nosniff
IE8 E Chrome previne MIME-sniffing
37

CSP - Content Security Policy

38

CSP - Content Security Policy


Reduz o risco de XSS
Declara quais recursos dinmicos so
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

CSP - Content Security Policy

40

CSP - Content Security Policy

41

Fonte: SSLLabs https://www.ssllabs.com/ssltest/clients.html 42

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

O que fazer?
No use RC4 e RSA
Avalie os Browsers utilizados por seus
usurios
Implemente cabealhos adicionais
Implemente CSP
SPDY -> HTTP 2
Desenvolvimento Seguro = OWASP
44

PERGUNTAS?

OBRIGADO!
JERONIMO.ZUCO@OWASP.ORG
@JCZUCCO

Vous aimerez peut-être aussi