You are on page 1of 26

Clase XIV

•[nombre instructor]
•[fecha]
Agenda
 Seguridad
 Conceptos generales de seguridad en
aplicaciones de software
 Autenticación y Autorización
 Escribir Código Seguro – Las mejores prácticas
 Modelo de Amenazas
 Consideraciones Generales
 Validar user input
 Criptografía
Agenda
 VSTS
 Introducción
 Seguridad
 Conceptos generales de seguridad en
aplicaciones de software
 Autenticación y Autorización
 Escribir Código Seguro – Las mejores prácticas
 Modelo de Amenazas
 Consideraciones Generales
 Validar user input
 Criptografía
Computación Confiable
La computación confiable tiene cuatro pilares:
 Confiabilidad significa que un sistema de computación es
confiable, esta disponible cuando se lo necesita, y la performace
es la esperada y llega a niveles esperados.
 Seguridad significa un sistema resistente a ataques, la
confidencialidad, integridad, y disponibilidad tanto de los
sistemas como de los datos está protegida.
 Privacidad significa que la gente puede controlar su información
personal y a las organizaciones que usan esta información
fielmente protegida.
 Integridad de Negocio alrededor de las compañías en su
industria que es responsable de ayudar a los clientes a buscar
soluciones apropiadas para sus negocios, localizar problemas con
Seguridad en .NET

productos o servicios, y abrir una interacción con los clientes.

Bill Gates
Julio 18, 2002
Tipos Comunes de
Ataques
Atacantes
Ataques
Organizados

Ataques
Datos Automáticos
restringidos

DoS
Seguridad en .NET

Brechas
Accidentales Falla de Conexión

Virus, Caballos de Negación de


Troya, Servicio
y Gusanos (DoS)
Consecuencias de una Seguridad
Pobre
 Robo de propiedad intelectual
 Sistemas sin productividad (downtime)
 Menor productividad
 Daño a reputación de negocio
 Perdida de confianza de los consumidores
 Varias perdidas financieras debido a perdidas
en el ingreso
Seguridad en .NET
Comunicación Segura –
Tecnologías
 Tecnologías incluidas:
 IPSec
 SSL
 TLS
 Encriptación RPC
SSL/TLS IPSec
RPC Encriptación
Seguridad en .NET
Autentificación – Propósito de la
Autentificación

 Verifica la identidad de un principal


mediante:
 Aceptar credenciales
 Validar estas credenciales
 Comunicaciones Seguras dando por
hecho que la aplicación conoce quién
es el llamador
Seguridad en .NET
Autentificación – Métodos de
Autentificación

 Basic
 Digest
 Firmas digitales y certificados digitales
 Integridad
 Protocolo Kerberos versión 5
 NTLM
 Microsoft Passport
Seguridad en .NET

 Biométrica
Demo
•Métodos de autenticación con IIS
Seguridad en .NET
Autorización - Qué es
autorización?
 Autorización:
 Ocurre después que la petición del cliente
es autentificada
 Es el proceso de confirmar que una
autentificación principal está permitida a
acceder a recursos específicos
 Chequea la correcta asignación de
archivos, carpetas, registro de
configuraciones, aplicaciones, y demás
Seguridad en .NET

 Puede ser basada en roles


 Puede ser basada en código
Autorización – Técnicas comunes de
autorización

 Acceso Web IIS y restricciones IP/DNS


 Seguridad basada en roles .NET
 Código de seguridad de acceso .NET
 Listas de control de acceso NTFS (ACL)
 Logins SQL Server
 Permisos SQL Server
Seguridad en .NET
Demo
•Acceso Web IIS y restricciones IP/DNS
•Logins SQL Server
Seguridad en .NET

•Permisos SQL Server


Adoptar el Framework de
Seguridad SD3
Construir un modelo de defensa
Seguro Conducir revisión de código, test
por de penetración
Diseño Correr código con los mínimos
privilegios

Seguro Minimizar las superficies de


por ataque
Defect Deshabilitar servicios
o innecesarios
Seguridad en .NET

Impulsar mejores prácticas de


Seguro seguridad
en el Crear guías de seguridad
Deploym Construir herramientas para
ent evaluar la seguridad de
aplicaciones
Seguro por Diseño
 Elevar la conciencia de seguridad en el
equipo de diseño
 Usar entrenamiento continuo
 Actitud de desafió - “Lo que no conozco no
me daña” no es aplicable!
 Adquirir seguridad correcta durante la
fase de diseño
 Definir objetivos de seguridad del producto
Seguridad en .NET

 Implementar seguridad como una


característica clave del producto
 Usar modelos de defensa durante la fase
de diseño
Qué es el modelo de
amenazas?
 El modelo de defensa es un análisis basado
en la seguridad que:
 Ayuda a un equipo a entender donde los
productos son más vulnerables
 Evalúa las amenazas de una aplicación
 Apuntar a reducir el riesgo global de seguridad
 Detectar valor
 Descubrir vulnerabilidades
 Identificar amenazas
Seguridad en .NET

 Debe ayudar al diseño de seguridad básica


Beneficios del Modelo de Amenazas

 Ayuda a entender mejor a su


aplicación
 Ayuda a encontrar bugs
 Identifica complejos
bugs en el diseñoVulnerabilidad
 Ayuda a integrar
nuevos miembros
Seguridad en .NET

de equipo Amenaza Activo

 Conduce a un buen
diseño de plan de seguridad
El proceso del modelo de
Amenazas
Amenazas Proceso de Modelado

1 Identificación de Activos
Crear una visión general de
2 Arquitectura

3 Descomponer la Aplicación

4 Identificar las Amenazas


Seguridad en .NET

5 Documentar las Amenazas

6 Evaluar las Amenazas


Mejorar el Proceso del
desarrollo de Aplicación
 Consideraciones de seguridad
 Al inicio del proceso
 A través del desarrollo
 A través de la distribución
 A través de todas las revisiones del
software
Seguridad en .NET

 No parar de revisar bugs en la


seguridad hasta que termine el
proceso de desarrollo
Prueba de Seguridad
 Involucre a un equipo de pruebas al inicio del proyecto
 Use un modelo de amenazas para desarrollar una
estrategia de pruebas seguras
 Piense Mal. Sea Malo. Prueba lo Malo.
 Ataques automáticos con scripts y lenguajes de programación de
bajo nivel
 Introduzca una variedad de datos inválidos
 Borre o deniegue acceso a archivos o entrada al registro
 Pruebe con una cuenta que no es una cuenta de administrador
 Conozca a su enemigo y conozca se a usted mismo
 Qué técnicas y tecnologías van a usar los hackers?
 Qué técnicas y tecnologías van a usar los testers?
Seguridad en .NET
No confíe en las entradas de Usuario
 Validar todas las entradas
 Asuma que todas las entradas son
dañinas hasta probar lo contrario
 Verificar la validación de datos y rechazar
todo en caso contrario
 Restricciones, rechazar entradas de
usuario con
 Chequeo de tipos
 Chequeo de tamaño
 Chequeo de rango check
Seguridad en .NET

 Chequeo de formato

Validator.ValidationExpression =
"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
Demo
•Validar user input
Seguridad en .NET
Criptografía

 Criptografía simétrica
 Criptografía asimétrica
 Firmas digitales
Seguridad en .NET
Qué es criptografía
simétrica?
 Permite transferencia de datos segura
 Confianza segura sobre claves seguras
compartidas
 Intercambio de claves seguras es un desafío

Clave secreta Clave secreta

Datos Datos Encriptados Datos


Algoritmo Algoritmo
Seguridad en .NET

Simétrico Simétrico

Remitente Receptor
encripta los datos desencripta datos
1 confidenciales
usando claves
2 confidenciales
usando claves
secretas secretas
Qué es Criptografía
Asimétrica?
 Permite segura transferencia de datos seguros
 Usan pares de claves relacionadas matemáticamente:
una clave pública y una clave privada

Remitente
encripta los datos Datos Algoritm
Datos
o
1 usando la clave
publica del Clave Asimétri
Encripta
dos
pública del co
receptor Receptor
Seguridad en .NET

Datos
Receptor Encriptad Algoritm
desencripta los o
2 datos usando su
os
Clave Asimétri
Datos
clave privada privada de co
Receptor
Qué es la Firma Digital?
 Puede usar criptografía asimétrica para
asegurar la integridad de los datos

El remitente parte los datos y encripta los


pedazos con su clave privada para generar la
firma
Valores Algoritm
Dato Algorit
Hash o Firma
s mo
Clave primaria de Asimétri
Hash
remitente co

El receptor desencripta la firma con la clave


Seguridad en .NET

pública del remitente y compara los valores con


los pedazos de data
Firmas
Algorit Desencr Algoritmo
Dato Valor Clave
mo Los valores son
iptar Asimétric
s Hash pública
Hash iguales?
Firma o
de
remitent
e

You might also like