clase xiv

31
Clase XIV Clase XIV [nombre instructor] [nombre instructor] [fecha] [fecha]

Upload: roberto-moreno-donoro

Post on 13-Jun-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Clase xiv

Clase XIVClase XIV•[nombre instructor][nombre instructor]

•[fecha][fecha]

Page 2: Clase xiv

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

Page 3: Clase xiv

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

Page 4: Clase xiv

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

Page 5: Clase xiv

Logical Datacenter DesignerLogical Datacenter Designer

Page 6: Clase xiv

Application DesignerApplication Designer

Page 7: Clase xiv

System DesignerSystem Designer

Page 8: Clase xiv

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

Page 9: Clase xiv

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

Page 10: Clase xiv

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

Page 11: Clase xiv

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

Page 12: Clase xiv

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

Page 13: Clase xiv

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

Page 14: Clase xiv

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

Page 15: Clase xiv

DemoDemo•Métodos de autenticación con IIS

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 16: Clase xiv

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

Page 17: Clase xiv

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

Page 18: Clase xiv

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

Page 19: Clase xiv

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

Page 20: Clase xiv

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

Page 21: Clase xiv

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

Page 22: Clase xiv

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

Page 23: Clase xiv

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

Page 24: Clase xiv

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

Page 25: Clase xiv

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

Page 26: Clase xiv

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

Page 27: Clase xiv

DemoDemo•Validar user input

Se

guri

dad

en

.NE

TS

egu

rida

d e

n .N

ET

Page 28: Clase xiv

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

Page 29: Clase xiv

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

Page 30: Clase xiv

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

Page 31: Clase xiv

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