• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2
 

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

on

  • 1,346 views

Presentación de introduccion a la seguridad para programadores.

Presentación de introduccion a la seguridad para programadores.

Statistics

Views

Total Views
1,346
Views on SlideShare
1,340
Embed Views
6

Actions

Likes
2
Downloads
27
Comments
0

2 Embeds 6

http://www.linkedin.com 5
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 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
    • La seguridad y la deformación mediática
    • Top 10: Errores de desarrollo Web (OWASP)
      • Parámetros no validados
      • Burlar el control de acceso
      • Burlar la administración de cuentas y sesiones
      • Defectos de Cross-Site Scripting (XSS)
      • Buffer Overflows
      • Defectos de Command Injection
      • Problemas de manejo de Errores
      • Uso inseguro de criptografía
      • Errores de administración remota
      • “ Misconfiguration” de servidores y aplicaciones
    •  
    • Fundamentos de la Seguridad
    • 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
    • Técnicas de Autenticación
      • Para aplicaciones Web:
        • Básica
        • Integrada (Windows)
        • Certificados digitales
        • Windows Live (Passport)
      • Otras
        • Smartcards (certificados)
        • Biometría
    • 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
    • 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
    • Auditoría
      • Nos permite saber ¿quién hizo qué? y ¿cuando lo hizo?
      • Se implementa tradicionalmente a través de notificaciones y logging.
    • Técnicas de Auditoría
      • Utilizar frameworks de Logging como log4net o System.Diagnostics
      • Implementar logging a distintos niveles (Error, Info, Debug)
      • Custom
    • 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
    • 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ón Clave Datos
    • 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
    • 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
      Datos Datos Encriptar Desencriptar La clave es conocida por el emisor y el receptor
    • 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
    • Encriptación Asimétrica
    • 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)
    • 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
    • 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.
    • Disponibilidad Mitigación de DOS
      • En el Código
      • Validación del imput de Datos
      • Trate de no permitir operaciones que consuman mucha CPU, “atomice”
      • Trate de crear pocos cuellos de botella
      • Fije Time Out estrictos
      • En el Deployment
      • Use balanciadores de Carga
      • Use metodos de Caché
      • Instale aplicaciones de manera distribuida
    • 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
    • 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 [email_address] http://liarjo.spaces.live.com Martín Cabrera Gerente de Arquitectura y Desarrollo Microsoft Chile [email_address] http://liarjo.spaces.live.com
    • BUFFER
    • Vulnerabilidades más comunes
    • Principios de Seguridad
    • Una pelea desigual ¿Necesito seguridad?… Retos Razones Hackers vs. Defensores
      • Un hacker necesita conocer UNA vulnerabilidad; el defensor necesita asegurar TODAS las vías de entrada
      • Los hackers disponen de todo el tiempo del mundo
      Seguridad vs. Usabilidad
      • Los sistemas seguros son más difíciles de usar
      • Las contraseñas largas y complejas son difíciles de recordar
      • Los 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ón
      • La seguridad se trata normalmente justo antes de distribuir el producto, cuando corregir los fallos es muy caro
    • 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
    • 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)
      • Arquitectura y código seguros
      • Análisis de riesgos
      • Reducción de vulnerabilidades
      • Reducción del posible área de ataque
      • Características no usadas del producto sin habilitar por defecto
      • Requerir mínimos privilegios privilege
      • Proteger, detectar, defender, recuperar, administrar
      • Procesos: How to’s, guías de arquitectura
      • Formación