clase xiv
TRANSCRIPT
Clase XIVClase XIV•[nombre instructor][nombre instructor]
•[fecha][fecha]
AgendaAgenda VSTSVSTS
IntroducciónIntroducción
SeguridadSeguridad Conceptos generales de seguridad en Conceptos generales de seguridad en
aplicaciones de softwareaplicaciones de software Autenticación y AutorizaciónAutenticación y Autorización Escribir Código Seguro – Las mejores prácticasEscribir Código Seguro – Las mejores prácticas Modelo de AmenazasModelo de Amenazas Consideraciones GeneralesConsideraciones Generales Validar user inputValidar user input CriptografíaCriptografía
AgendaAgenda VSTSVSTS
IntroducciónIntroducción
SeguridadSeguridad Conceptos generales de seguridad en Conceptos generales de seguridad en
aplicaciones de softwareaplicaciones de software Autenticación y AutorizaciónAutenticación y Autorización Escribir Código Seguro – Las mejores prácticasEscribir Código Seguro – Las mejores prácticas Modelo de AmenazasModelo de Amenazas Consideraciones GeneralesConsideraciones Generales Validar user inputValidar user input CriptografíaCriptografía
Visual Studio Team SystemVisual Studio Team System
Change Management
Work Item Tracking
Reporting
Project Site
Visual StudioTeam Foundation Server Integration Services
Project Management
Pro
cess
an
d A
rch
itect
ure
Pro
cess
an
d A
rch
itect
ure
G
uid
an
ceG
uid
an
ce
Dynamic Code Analyzer
Visual Studio Team Edition
Software Architects
Static Code Analyzer
Code Profiler
Unit Testing
Code Coverage
Visio and UML Modeling
Team Foundation Client (includes CAL)
Visual Studio Professional Edition
Load Testing
Manual Testing
Test Case Management
Application Designer
Logical Infra. Designer
Deployment Designer
Visual Studio Team Edition
Software DevelopersVisual Studio Team Edition
Software Testers
Vis
ual S
tud
io In
du
stry
V
isu
al S
tud
io In
du
stry
Part
ners
Part
ners
Team Build
Class Designer
Logical Datacenter DesignerLogical Datacenter Designer
Application DesignerApplication Designer
System DesignerSystem Designer
AgendaAgenda VSTSVSTS
IntroducciónIntroducción
SeguridadSeguridad Conceptos generales de seguridad en Conceptos generales de seguridad en
aplicaciones de softwareaplicaciones de software Autenticación y AutorizaciónAutenticación y Autorización Escribir Código Seguro – Las mejores prácticasEscribir Código Seguro – Las mejores prácticas Modelo de AmenazasModelo de Amenazas Consideraciones GeneralesConsideraciones Generales Validar user inputValidar user input CriptografíaCriptografía
Computación ConfiableComputació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 productos o servicios, y abrir una interacción con los clientes.
Bill GatesJulio 18, 2002
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Tipos Comunes de Tipos Comunes de AtaquesAtaques
Falla de Conexión
Ataques Organizados
Datos restringidos
Brechas Accidentales
Ataques Automáticos
Atacantes
Virus, Caballos de Troya,
y Gusanos
Negación de Servicio (DoS)
DoS
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Consecuencias de una Seguridad PobreConsecuencias 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
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Comunicación Segura – TecnologíasComunicación Segura – Tecnologías
IPSec RPC Encriptación
IPSec RPC Encriptación
SSL/TLSSSL/TLS
Tecnologías incluidas: IPSec SSL TLS Encriptación RPC
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Autentificación – Propósito de la AutentificaciónAutentificació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
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Autentificación – Métodos de AutentificaciónAutentificación – Métodos de Autentificación
Basic Digest Firmas digitales y certificados digitales Integridad
Protocolo Kerberos versión 5 NTLM
Microsoft Passport Biométrica
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
DemoDemo•Métodos de autenticación con IIS
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Autorización - Qué es autorización?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
Puede ser basada en roles Puede ser basada en códigoS
egu
rida
d e
n .N
ET
Se
guri
dad
en
.NE
T
Autorización – Técnicas comunes de Autorización – Técnicas comunes de autorizaciónautorizació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
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
DemoDemo•Acceso Web IIS y restricciones IP/DNS
•Logins SQL Server•Permisos SQL Server
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Adoptar el Framework de Seguridad Adoptar el Framework de Seguridad SD3SD3
Construir un modelo de defensaConducir revisión de código, test de penetraciónCorrer código con los mínimos privilegios
Construir un modelo de defensaConducir revisión de código, test de penetraciónCorrer código con los mínimos privilegios
Seguro por Diseño
Seguro por Diseño
Impulsar mejores prácticas de seguridadCrear guías de seguridadConstruir herramientas para evaluar la seguridad de aplicaciones
Impulsar mejores prácticas de seguridadCrear guías de seguridadConstruir herramientas para evaluar la seguridad de aplicaciones
Minimizar las superficies de ataqueDeshabilitar servicios innecesariosMinimizar las superficies de ataqueDeshabilitar servicios innecesarios
Seguro por Defecto
Seguro por Defecto
Seguro en el
Deployment
Seguro en el
Deployment
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Seguro por DiseñoSeguro 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 Implementar seguridad como una
característica clave del producto Usar modelos de defensa durante la fase
de diseño
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Qué es el modelo de amenazas?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 Debe ayudar al diseño de seguridad
básica
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Beneficios del Modelo de AmenazasBeneficios del Modelo de Amenazas
Ayuda a entender mejor a su aplicación
Ayuda a encontrar bugs Identifica complejos
bugs en el diseño Ayuda a integrar
nuevos miembros
de equipo Conduce a un buen
diseño de plan de seguridad
Amenaza
Vulnerabilidad
Activo
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
El proceso del modelo de AmenazasEl proceso del modelo de Amenazas
Amenazas Proceso de ModeladoAmenazas Proceso de Modelado
Identificación de ActivosIdentificación de Activos11
Crear una visión general de ArquitecturaCrear una visión general de Arquitectura22
Descomponer la AplicaciónDescomponer la Aplicación33
Identificar las AmenazasIdentificar las Amenazas44
Documentar las AmenazasDocumentar las Amenazas55
Evaluar las AmenazasEvaluar las Amenazas66
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Mejorar el Proceso del desarrollo de Mejorar el Proceso del desarrollo de AplicaciónAplicació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 No parar de revisar bugs en la
seguridad hasta que termine el proceso de desarrollo
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Prueba de SeguridadPrueba 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?
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
No confíe en las entradas de UsuarioNo 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 Chequeo de formato
Validator.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";Validator.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
DemoDemo•Validar user input
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Criptografía Criptografía
Criptografía simétrica Criptografía asimétrica Firmas digitales
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Qué es criptografía simétrica?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
AlgoritmoSimétricoAlgoritmoSimétrico
AlgoritmoSimétricoAlgoritmoSimétrico
DatosDatos Datos EncriptadosDatos Encriptados DatosDatos
Clave secreta Clave secreta
Remitente encripta los datos confidenciales usando claves secretas
Remitente encripta los datos confidenciales usando claves secretas11
Receptor desencripta datos confidenciales usando claves secretas
Receptor desencripta datos confidenciales usando claves secretas22
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Qué es Criptografía Asimétrica?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 usando la clave publica del receptor
Remitente encripta los datos usando la clave publica del receptor11
Receptor desencripta los datos usando su clave privada
Receptor desencripta los datos usando su clave privada22
Datos Encriptados
Datos Encriptados
Algoritmo AsimétricoAlgoritmo AsimétricoClave pública
del Receptor Clave pública del Receptor
DatosDatos
DatosDatosAlgoritmoAsimétricoAlgoritmoAsimétricoClave privada
de ReceptorClave privada de Receptor
Datos Encriptados
Datos Encriptados
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET
Qué es la Firma Digital?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 firmaEl remitente parte los datos y encripta los pedazos con su clave privada para generar la firma
FirmaFirmaDatosDatos AlgoritmoHash
AlgoritmoHash Clave primaria de
remitenteClave primaria de
remitente
Algoritmo AsimétricoAlgoritmo Asimétrico
Valores Hash Valores Hash
El receptor desencripta la firma con la clave pública del remitente y compara los valores con los pedazos de dataEl receptor desencripta la firma con la clave pública del remitente y compara los valores con los pedazos de data
FirmasFirmas
DatosDatos AlgoritmoHash
AlgoritmoHash
Algoritmo AsimétricoAlgoritmo Asimétrico
Valor HashValor Hash Clave
pública de remitente
Clave pública de remitente
Desencriptar Firma
Desencriptar FirmaLos valores son iguales?Los valores son iguales?
Se
guri
dad
en
.NE
TS
egu
rida
d e
n .N
ET