Introducción a la Seguridad desde la perspectiva del Desarrollador Juan Pablo García Gerente de Desarrollo Datco Chile [em...
La seguridad y la deformación mediática
Top 10: Errores de desarrollo Web (OWASP) <ul><li>Parámetros no validados </li></ul><ul><li>Burlar el control de acceso </...
 
Fundamentos de la Seguridad
Autenticación <ul><li>¿Quién es quien? </li></ul><ul><li>¿Qué credenciales se necesitan para validar la identidad? </li></...
Técnicas de Autenticación <ul><li>Para aplicaciones Web: </li></ul><ul><ul><li>Básica </li></ul></ul><ul><ul><li>Integrada...
Autorización <ul><li>Determina las operaciones que un usuario/sistema autenticado puede realizar sobre mi aplicación </li>...
Técnicas de Autorización <ul><li>Custom </li></ul><ul><li>Basadas en roles </li></ul><ul><li>Pueden ser directas o indirec...
Auditoría <ul><li>Nos permite saber ¿quién hizo qué? y ¿cuando lo hizo? </li></ul><ul><li>Se implementa tradicionalmente a...
Técnicas de Auditoría <ul><li>Utilizar frameworks de Logging como log4net o System.Diagnostics </li></ul><ul><li>Implement...
Confidencialidad <ul><li>Es la necesidad de que la información únicamente sea conocida por personas autorizadas </li></ul>...
Encriptación <ul><li>Es el proceso de codificación de la información </li></ul><ul><ul><li>Una clave es una cadena de bits...
Encriptación Termino Criptográfico Descripción Encripción Simétrica Encriptado y desencriptado de datos con una clave secr...
Encriptación Simétrica <ul><li>Se utiliza la misma clave y el mismo algoritmo para codificar y decodificar la información ...
Encriptación Asimétrica <ul><li>Dos claves, una privada y una pública </li></ul><ul><li>Los mensajes codificados con la cl...
Encriptación Asimétrica
Integridad <ul><li>Es que contenido permanezca inalterado a menos que sea modificado por personal autorizado, y esta modif...
Integridad SI NO Clave Pública Clave Privada Mensaje  Hash Hash (Encriptado) MD5 Mensaje  MD5 Hash’ Mensaje  Hash (Encript...
Disponibilidad <ul><li>Desde la perspectiva de seguridad, Disponibilidad significa que mi aplicación permanezca activa par...
Disponibilidad Mitigación de DOS <ul><li>En el  Código </li></ul><ul><li>Validación del imput de Datos </li></ul><ul><li>T...
Buenas Prácticas <ul><li>Ejecutar con  privilegios  mínimos </li></ul><ul><li>Reducir las  interfaces  de ataque </li></ul...
Lectura Recomendada
GRACIAS! Nombre: E-mail:
Introducción a la Seguridad desde la perspectiva del Desarrollador Juan Pablo García Gerente de Desarrollo Datco Chile [em...
BUFFER
Vulnerabilidades más comunes
Principios de Seguridad
Una pelea desigual ¿Necesito seguridad?… Retos Razones Hackers vs. Defensores <ul><li>Un hacker necesita conocer UNA vulne...
Importancia de la seguridad en las aplicaciones   Vulnerabilidades comunes <ul><li>Dos fallos principales de seguridad </l...
Prácticas aconsejables de seguridad   Un marco de seguridad SD 3 Seguro por Diseño (Design) Seguro por Defecto (Default) S...
Upcoming SlideShare
Loading in …5
×

Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2

723
-1

Published on

Presentación de introduccion a la seguridad para programadores.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
723
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2

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

    Clipping is a handy way to collect important slides you want to go back to later.

×