Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2
-
Upload
liarjo -
Category
Technology
-
view
684 -
download
3
description
Transcript of Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2
![Page 1: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/1.jpg)
Introducción a la Seguridad desde la perspectiva del Desarrollador
Juan Pablo García
Gerente de Desarrollo
Datco Chile
http://liarjo.spaces.live.com
Martín Cabrera
Gerente de Arquitectura y Desarrollo
Microsoft Chile
http://liarjo.spaces.live.com
![Page 2: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/2.jpg)
La seguridad y la deformación mediática
![Page 3: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/3.jpg)
Top 10: Errores de desarrollo Web (OWASP)
1. Parámetros no validados
2. Burlar el control de acceso
3. Burlar la administración de cuentas y sesiones
4. Defectos de Cross-Site Scripting (XSS)
5. Buffer Overflows
6. Defectos de Command Injection
7. Problemas de manejo de Errores
8. Uso inseguro de criptografía
9. Errores de administración remota
10. “Misconfiguration” de servidores y aplicaciones
![Page 4: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/4.jpg)
![Page 5: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/5.jpg)
Fundamentos de la Seguridad
![Page 6: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/6.jpg)
Autenticación
• ¿Quién es quien?
• ¿Qué credenciales se necesitan para validar la identidad?
• La complejidad está en que se van a conectar usuarios finales, otras aplicaciones, etc
![Page 7: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/7.jpg)
Técnicas de Autenticación
• Para aplicaciones Web:– Básica– Integrada (Windows)– Certificados digitales – Windows Live (Passport)
• Otras– Smartcards (certificados)– Biometría
![Page 8: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/8.jpg)
Autorización
• Determina las operaciones que un usuario/sistema autenticado puede realizar sobre mi aplicación
• Determina también los recursos/componentes de mi aplicación que un usuario autenticado puede manipular
![Page 9: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/9.jpg)
Técnicas de Autorización
• Custom
• Basadas en roles
• Pueden ser directas o indirectas (ej: delego a la base SQL).
• Se implementa a nivel de todas las capas
![Page 10: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/10.jpg)
Auditoría
• Nos permite saber ¿quién hizo qué? y ¿cuando lo hizo?
• Se implementa tradicionalmente a través de notificaciones y logging.
![Page 11: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/11.jpg)
Técnicas de Auditoría
• Utilizar frameworks de Logging como log4net o System.Diagnostics
• Implementar logging a distintos niveles (Error, Info, Debug)
• Custom
![Page 12: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/12.jpg)
Confidencialidad
• Es la necesidad de que la información únicamente sea conocida por personas autorizadas
• Para garantizar la confidencialidad se deben proteger los datos sensibles mediante control de acceso y encriptación de los datos
![Page 13: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/13.jpg)
Encriptación
• Es el proceso de codificación de la información– Una clave es una cadena de bits que varía el
resultado de una determinada encriptación
• La encriptación sólo es tan fuerte como la fuerza de su clave
Algoritmo de encriptaciónClave
Datos
![Page 14: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/14.jpg)
Encriptación
Termino Criptográfico
Descripción
Encripción Simétrica Encriptado y desencriptado de datos con una clave secreta
Encripción Asimétrica
Encriptado y desencriptado de datos con un par de claves pública/privada
HashingMapeo de una cadena grande de información a una cadena corta y de longitud fija
Firma Digital Hashing de los datos y encriptado asimétrico del hash con la clave privada
![Page 15: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/15.jpg)
Encriptación Simétrica
• Se utiliza la misma clave y el mismo algoritmo para codificar y decodificar la información
• Rápida y eficiente• Es difícil intercambiar las claves de manera
segura con lo que se modifican frecuentemente
DatosDatos
Encriptar Desencriptar
La clave es conocida por el emisor y el receptor
![Page 16: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/16.jpg)
Encriptación Asimétrica
• Dos claves, una privada y una pública
• Los mensajes codificados con la clave pública sólo pueden ser decodificados usando la clave privada y vice versa
• La encriptación asimétrica es más segura que la simétrica, pero no tan eficiente
![Page 17: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/17.jpg)
Encriptación Asimétrica
![Page 18: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/18.jpg)
Integridad
• Es que contenido permanezca inalterado a menos que sea modificado por personal autorizado, y esta modificación sea registrada, asegurando su precisión y confiabilidad.
• La integridad de un mensaje se obtiene adjuntándole otro conjunto de datos de comprobación de la integridad: la “huella digital” (hash)
![Page 19: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/19.jpg)
Integridad
Clave Pública
Clave Privada
Mensaje HashHash
(Encriptado)
MD5
Mensaje
MD5Hash’
Mensaje
Hash (Encriptado)
Hash (Encriptado)
Hash
Hash’ =
Hash
Mensaje integro y autentico
Mensaje manipulado o desconocido
SI
NO
![Page 20: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/20.jpg)
Disponibilidad
• Desde la perspectiva de seguridad, Disponibilidad significa que mi aplicación permanezca activa para usuarios legítimos.
• Controlar intentos de ataques de carga masiva es uno de los aspectos que debemos controlar para asegurar que la aplicación se mantiene disponible.
![Page 21: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/21.jpg)
DisponibilidadMitigación de DOS
En el Código
1. Validación del imput de Datos
2. Trate de no permitir operaciones que consuman mucha CPU, “atomice”
3. Trate de crear pocos cuellos de botella
4. Fije Time Out estrictos
En el Deployment
1. Use balanciadores de Carga
2. Use metodos de Caché
3. Instale aplicaciones de manera distribuida
![Page 22: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/22.jpg)
Buenas Prácticas
• Ejecutar con privilegios mínimos• Reducir las interfaces de ataque• No confiar en el ingreso de datos del usuario• Defensa en capas• No confiarse en la seguridad por ocultamiento• Use la API Data Protection (DPAPI) para proteger sus
secretos• Pruebe la seguridad• Aprenda de sus errores
![Page 23: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/23.jpg)
Lectura Recomendada
![Page 24: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/24.jpg)
GRACIAS!
Nombre:E-mail:
![Page 25: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/25.jpg)
Introducción a la Seguridad desde la perspectiva del Desarrollador
Juan Pablo García
Gerente de Desarrollo
Datco Chile
http://liarjo.spaces.live.com
Martín Cabrera
Gerente de Arquitectura y Desarrollo
Microsoft Chile
http://liarjo.spaces.live.com
![Page 26: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/26.jpg)
BUFFER
![Page 27: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/27.jpg)
Vulnerabilidades más comunes
![Page 28: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/28.jpg)
Principios de Seguridad
![Page 29: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/29.jpg)
Una pelea desigual
Retos Razones
Hackers vs. Defensores
Un hacker necesita conocer UNA vulnerabilidad; el defensor necesita asegurar TODAS las vías de entradaLos hackers disponen de todo el tiempo del mundo
Seguridad vs. Usabilidad
Los sistemas seguros son más difíciles de usarLas contraseñas largas y complejas son difíciles de recordarLos usuarios prefieren contraseñas simples
Seguridad a posteriori
Los programadores y los ‘managers’ suelen pensar que la seguridad no añade ‘valor’ a la soluciónLa seguridad se trata normalmente justo antes de distribuir el producto, cuando corregir los fallos es muy caro
¿Necesito seguridad?
…
![Page 30: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/30.jpg)
Importancia de la seguridad en las aplicaciones
Vulnerabilidades comunes
• Dos fallos principales de seguridad– Confianza en los datos de entrada
• “¡Todos los datos de entrada son culpables hasta que se demuestre lo contrario!”– Son la fuente de los problemas más graves
• Buffer Overruns• Inyección de SQL• Cross-site Scripting
– Todo lo demás
![Page 31: Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2](https://reader036.fdocuments.mx/reader036/viewer/2022062513/554ebc90b4c9053c4b8b46d1/html5/thumbnails/31.jpg)
SDSD33
Prácticas aconsejables de seguridad
Un marco de seguridad
Seguro por Seguro por DiseñoDiseño
(Design)(Design)
Seguro por Seguro por DefectoDefecto(Default)(Default)
Seguro en la Seguro en la Distribución Distribución
(Deployment)(Deployment)
Arquitectura y código segurosArquitectura y código segurosAnálisis de riesgosAnálisis de riesgosReducción de vulnerabilidadesReducción de vulnerabilidades
Reducción del posible área de ataqueReducción del posible área de ataqueCaracterísticas no usadas del producto sin Características no usadas del producto sin habilitar por defectohabilitar por defectoRequerir mínimos privilegios privilegeRequerir mínimos privilegios privilege
Proteger, detectar, defender, recuperar, Proteger, detectar, defender, recuperar, administraradministrarProcesos: How to’s, guías de arquitecturaProcesos: How to’s, guías de arquitecturaFormaciónFormación