Upload
seccion-de-metodologias-normalizacion-y-calidad-del-software
View
1.622
Download
2
Embed Size (px)
DESCRIPTION
La charla está dividida en dos partes: - SSL/TLS: buenas prácticas. Aspectos a tener en cuenta a la hora de configurar los servicios bajo SSL/TLS, protocolos que debemos usar, tamaños de clave recomendables, algoritmos, herramientas que nos pueden ayudar. (Orientada a gente que configure sistemas) - Recientes avances en la seguridad de aplicaciones web. Ataques como XSS y el ClickJacking. Nuevas técnicas que están siendo implementadas en los navegadores más recientes para minimizar estos riesgos pero que se configuran desde las aplicaciones o desde el servidor. (Orientada tanto a desarrolladores como a administradores de Sistemas).
Citation preview
SSL: buenas prácticas y recientes avances en la seguridad de aplicaciones web.
Javier García Ros Sección de Telemática
2/25
En 20 minutos ...
3/25
SSL: buenas prácticas y recientes avances en la seguridad de aplicaciones web.
• Agenda • Buenas prácticas en la configuración SSL/TLS (~
2/3 )– Protocolos SSL– Certificados y claves– Suites criptográficas– Herramientas de interés– Informes internos
• Nuevos avances en la seguridad web (~ 1/3)– CSP- Content Security Policy– HSST - HTTP Strict Transport Security– X-Frame-Options
4/25
SSL/TLS: Introducción
• SSL (Secure Sockets Layer) – es el protocolo original desarrollado en
1995 por Netscape.• Es fácil de implantar, pero lo que no suele ser
tan común es hacerlo correctamente.• En SSL/TLS hay varios elementos que
debemos tener en cuenta:• certificado
• protocolos
• algoritmos de intercambio de clave
• algoritmos de autenticación
• algoritmos de cifrado
• algoritmos para la creación de MAC
5/25
SSL/TLS: Certificados
• Sospechosos habituales:– Que no haya errores en el nombre/dominio– Certificado aún no válido– Certificado caducado– Uso de certificados autofirmados– CA no conocidas– Certificado revocado
6/25
SSL/TLS: Certificados (II)
• Tamaños de clave:– Usar ya claves de 2048 bits de clave
pública*
• Protección– Renovación a ser posible anual– Protección de las claves en el servidor– Y allí donde vayan a parar como:
• Copias de seguridad
7/25
SSL/TLS: Certificados (IV)
• Nombres de DNS:– El certificado ha de contener TODOS los
nombres que permitan acceder al servicio– Es posible usar certificados tipo:
• *.blogs.um.es
8/25
SSL/TLS: Certificados (IV)
9/25
SSL/TLS: Entidades Raíz y jerarquía (V)
• El servidor debe entregar su certificado y los intermedios
• Han de entregarse en orden: primero la que firma el certificado del servidor y subiendo hasta la entidad raíz
• La entidad raíz puede no entregarse, ya que el cliente ha de tenerla en su propio almacén
• Los certificados intermedios aunque suelen tener periodos de validez mayores también expiran
• Cada navegador reacciona de una manera ante un fallo de jerarquía; mejor probar
10/25
SSL/TLS: Protocolos
• SSLv2– tiene graves fallos de seguridad no debería
usarse nunca• SSLv3 y TLSv1
– TLSv1 es la versión del IETF de SSLv3 • Mayoritáriamente soportado
– TLSv1.1• Algunas mejoras • Bastante soportado
– TLSv1.2 • Más mejoras• Pero aún poco soportado
11/25
SSL/TLS: Renegociación
• El canal SSL puede pararse momentáneamente y permitir que los extremos renegocien la sesión
• No hay una buena razón para que el cliente deba reiniciarla; sólo el servidor debería poder hacerlo, pues puede ser una vía de DoS
• Esto depende del código del servidor
12/25
SSL/TLS: Ataque BEAST
• El 2004 se descubrió un ataque teórico a SSL v3/TLS v.1 conocido como BEAST
• Desde 2011 es un ataque practicable• Desde 2006 TLS v1.1 resuelve este problema,
aunque hay todavía muchos clientes que no soportan TLS v1.1
• La solución es priorizar RC4 que no se ve afectado por este ataque cuando los servidores hablen sólo TLS v1.0 or SSL v3
13/25
SSL/TLS: Apache
• Configurando Apache– SSLProtocol all SSLv2 – SSLHonorCipherOrder on # apache 2.1+– SSLCipherSuite !ADH:!DSS:!RC2:RC4SHA:RC4MD5:HIGH:MEDIUM:+AES128:+3DES
14/25
SSL/TLS: Alguna herramienta
• SSLLABS Server Test• https://www.ssllabs.com/ssltest/index.html
– Herramienta gráfica y sencilla – Nos ayuda a corregir errores– Sólo para servicios web– No podemos ampliar las entidades raíz
• OpenSSL
15/25
SSL/TLS: Resultados
Algunos informes....
16/25
SSL/TLS: Otras recomendaciones
• Usa SSL en aquellos sitios que lo necesiten• Y evita que se acceda sin SSL• Cuidado con el contenido mixto, pues el
usuario es vulnerable a un ataque MITM • Marca las cookies como:
– Secure– Httponly
17/25
SSL/TLS: Resumen
• Usar claves públicas de un mínimo de 2048 bits
• No ofrecer cifrados de clave privada de menos de 128 bits
• No permitir SSLv2; ofrecer TLS1.0 y posteriores
• No permitir Anonymous Diffie Hellman (ADH)
• Todos los nombres DNS que llevan al servicio deben estar incluidos en el certificado
• Protege la clave privada correctamente en todo momento
• Si el protocolo es SSL 3.0/TLS 1.0 utiliza RC4
• Renegociación: siempre segura e iniciada por el servidor
• Sitio web: todas las páginas y elementos por HTTPS
• cookies: márcalas como seguras y HTTPonly
18/25
Avances en seguridad web
19/25
HSTS- HTTP Strict Transport Security
• HSTS (HTTP Strict Transport Security)
– permite forzar el uso de HTTPS
– se trata de una cabecera HTTP
– Chrome viene con lista precargada• El propio navegador se encargaría de utilizar siempre
HTTPS, a partir de la primera visita durante el tiempo de validez definido
• No está soportado por el IE• Pero aún así es conveniente implementarlo: no tiene
apenas coste y puede proteger a algunos usuarios
• Ejemplo
– StrictTransportSecurity: maxage=16070400; includeSubDomains
20/25
X-Frame-Options
• Esta cabecera indica si un navegador puede renderizar una página dentro de <frame> o <iframe>
• Orientado a evitar el clickjacking• Esta opción sí la soportan la mayoría de los
navegadores: IE, FF, Opera, Safari, Chrome,...• Ejemplos:
– X-frame-options: DENY
– X-frame-options: SAMEORIGIN
– X-frame-options: ALLOW-FROM origen
21/25
Content-Security-Policy (CSP)
• Fue desarrollada para minimizar y 'eliminar' el riesgo de XSS, Clickjacking y navegación no segura.
• El fundamento es que el navegador sólo considere válidos determinadas fuentes de las que previamente le hemos informado por política, ignorando el resto
• Necesita de ninguna o poca modificación en la aplicación
• Se notifica al navegador bien
– las cabeceras HTTP
– y etiquetas Meta en el HTML• Tiene 3 partes:
– Definición de políticas
– Forzado de políticas
– Informes de violación de políticas
22/25
Content-Security-Policy (CSP)- II
• Ejemplo : “Limita el contenido a este servidor”
– XContentSecurityPolicy: defaultsrc ‘self’
• Elemplo: “Permite imágenes de cualquier sitio, cotenido de plugins de esta lista de proveedores y scripts de un dominio específico”
– XContentSecurityPolicy: defaultsrc 'self'; imgsrc *; objectsrc tv1.um.es tv2.um.es; scriptsrc fundewebscripts.um.es
• Ensure all content is loaded over TLS:
– XContentSecurityPolicy: defaultsrc https://*:443
23/25
Content-Security-Policy (CSP)- III
• Definida cabecera para testeo:
– X-Content-Security-Policy-Report-Only: policy
• Navegadores que lo implementan:
– Firefox 4+
– Chrome 13+
– Safari 6+
• Navegadores que aún no lo implementan o el soporte es parcial
– IE 10*
– Opera
24/25
SSL/TLS: Resultados
Una propuesta ...
25/25
Gracias por asistir