55
Fundamentos Fundamentos de de la la seguridad seguridad de de aplicaciones aplicaciones

Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

Embed Size (px)

Citation preview

Page 1: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

FundamentosFundamentos dede lala seguridadseguridad dede aplicacionesaplicaciones

Page 2: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ContenidoContenido

LaLa importanciaimportancia dede lala seguridadseguridad dede las aplicacioneslas aplicaciones

Recomendaciones para el desarrollo Recomendaciones para el desarrollo de aplicaciones segurasde aplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 3: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

RequisitosRequisitos previosprevios parapara lala sesiónsesión

ExperienciaExperiencia enen desarrollodesarrollo concon MicrosoftMicrosoftVisualVisual Basic®Basic® ,, MicrosoftMicrosoft VisualVisual C++®C++® oo C#C#

NivelNivel 200200

Page 4: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AgendaAgenda

LaLa importanciaimportancia dede lala seguridadseguridad dede las aplicacioneslas aplicaciones

Recomendaciones para el desarrollo Recomendaciones para el desarrollo de aplicaciones segurasde aplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 5: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

InformáticaInformática dignadigna dede confianzaconfianza

“Informática digna de confianza se basa en cuatro pilares: Confiabilidad significa que un sistema informático es seguro, está disponible cuando se necesita, y funciona de la manera esperada y con los niveles apropiados.

Seguridad significa que un sistema es resistente a los ataques, y que la confidencialidad, la integridad y la disponibilidad tanto del sistema como de sus datos están protegidas.

Privacidad significa que los usuarios pueden controlar su información personal y que las organizaciones que utilizan la información la protegen fielmente.

Integridad del negocio se refiere a que las compañías de nuestra industria son responsables ante los clientes y les ayudan a encontrar soluciones adecuadas a sus problemas empresariales, resuelven sus problemas con productos o servicios y están abiertos a interacciones con los clientes.”

- Bill Gates 18 de julio de 2002

Page 6: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

EscenariosEscenarios dede conexiónconexión yy preocupacionespreocupaciones porpor lala seguridadseguridadEscenariosEscenarios dede conexión:conexión:

Redes por cable tradicionalesRedes por cable tradicionales

Empleados que viajan con frecuenciaEmpleados que viajan con frecuencia

Redes inalámbricas públicasRedes inalámbricas públicas

Problemas de seguridad:Problemas de seguridad:Dependencia de las aplicaciones de Dependencia de las aplicaciones de InternetInternet

Dependencia de las empresas de InternetDependencia de las empresas de Internet

Ataques internos a la seguridadAtaques internos a la seguridad

Page 7: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

TiposTipos comunescomunes dede ataquesataques

Errores de conexión

Ataquesorganizativos

Datos restringidos

Infracciones accidentales

de la seguridad

Ataquesautomatizados

Atacantes

Virus, caballos de Troya

y gusanos

Denegación de servicio (DoS)

DoS

Page 8: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

EjemplosEjemplos dede intrusionesintrusiones enen lala seguridadseguridad

CodeRedCodeRed

ILoveYouILoveYou

NimdaNimda

Atacante

Virus

Page 9: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ConsecuenciasConsecuencias dede unauna seguridadseguridad insuficienteinsuficiente

RoboRobo dede propiedadpropiedad intelectualintelectual

Tiempo de inactividad del sistemaTiempo de inactividad del sistema

Pérdida de productividadPérdida de productividad

Daño a la reputación de la empresaDaño a la reputación de la empresa

Pérdida de confianza de los clientesPérdida de confianza de los clientes

Graves pérdidas financieras por pérdida Graves pérdidas financieras por pérdida de ingresosde ingresos

Page 10: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DesafíosDesafíos alal implementarimplementar lala seguridadseguridad

Un atacante sólo necesita entender una vulnerabilidad

El defensor debe proteger todos los puntos de entrada

Los atacantes tienen un tiempo ilimitado

El defensor trabaja con limitaciones de tiempo y de dineroAtacantes frente a defensores

Seguridad frente a facilidad de uso

Los sistemas seguros son más difíciles de utilizar

Las contraseñas complejas y seguras son difíciles de recordar

Los usuarios prefieren emplear contraseñas sencillas

Necesito segurida

d

La seguridad como idea tardía

Los desarrolladores y la dirección creen que la seguridad no aporta ningún valor a la empresa

Resolver vulnerabilidades justo antes del lanzamiento de un producto es muy costoso

Page 11: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ElEl papelpapel dede loslos desarrolladoresdesarrolladores enen la seguridadla seguridad dede laslas aplicacionesaplicacionesLosLos desarrolladoresdesarrolladores deben:deben:

Trabajar con los arquitectos de soluciones y Trabajar con los arquitectos de soluciones y los administradores de sistemas para los administradores de sistemas para garantizar la seguridad de las aplicacionesgarantizar la seguridad de las aplicaciones

Contribuir a la seguridad:Contribuir a la seguridad:Adoptando buenas prácticas de desarrollo para Adoptando buenas prácticas de desarrollo para lograr aplicaciones seguraslograr aplicaciones seguras

Conociendo dónde se producen las Conociendo dónde se producen las vulnerabilidades de seguridad y cómo evitarlasvulnerabilidades de seguridad y cómo evitarlas

Utilizando técnicas de programación segurasUtilizando técnicas de programación seguras

Page 12: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AgendaAgenda

LaLa importanciaimportancia dede lala seguridadseguridad dede laslas aplicacionesaplicaciones

Recomendaciones para el desarrollo Recomendaciones para el desarrollo de aplicaciones segurasde aplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 13: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

EnfoqueEnfoque holísticoholístico dede lala seguridadseguridad

LaLa seguridadseguridad debedebe tenersetenerse enen cuentacuenta en:en:

Todas las etapas de un proyectoTodas las etapas de un proyectoDiseñoDiseño

DesarrolloDesarrollo

ImplementaciónImplementación

Todas las capasTodas las capasRedRed

HostHost

AplicaciónAplicación““LaLa seguridadseguridad eses tantan buenabuena comocomo elel eslabóneslabón másmás débil”débil”

Page 14: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

SeguridadSeguridad aa lolo largolargo deldel ciclociclo dede vidavida deldel proyectoproyecto

PlanesPlanes dede pruebaspruebascompletadoscompletados

DiseñosDiseñoscompletadoscompletados

ConceptoConcepto CódigoCódigocompletadocompletado

EntregaEntrega DespuésDespués dede lala entregaentrega

Empuje de la seguridad

Preguntas durantelas entrevistas

Determinar los criterios de validación

de la seguridad

Revisión externa

Analizar amenazas

Aprender y refinar

Revisión del equipo

de seguridad

Entrenar a los miembros del equipo

Pruebas de mutación de datos y mínimos

privilegios

Revisar defectos anteriores, comprobar registros directrices de programación

segura, usar herramientas

=continuo

Page 15: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

SDSD33

ElEl marcomarco dede seguridadseguridad SDSD33

SeguroSeguro porpor diseñodiseño

SeguroSeguro dede formaforma

predeterminadapredeterminada

SeguroSeguro enen lala implementaciónimplementación

ArquitecturaArquitectura yy códigocódigo segurossegurosAnálisis de amenazasAnálisis de amenazasReducción de vulnerabilidadesReducción de vulnerabilidades

SeSe reducereduce elel áreaárea dede ataquesataquesCaracterísticas no utilizadas Características no utilizadas desactivadas de forma desactivadas de forma predeterminadapredeterminadaUso de privilegios mínimosUso de privilegios mínimosProtección:Protección: detección,detección, defensa,defensa, recuperación,recuperación, administraciónadministraciónProceso: guías de Proceso: guías de procedimientos, guías de procedimientos, guías de arquitecturasarquitecturasPersonas: entrenamientoPersonas: entrenamiento

Page 16: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ModeladoModelado dede amenazasamenazas

ElEl modeladomodelado dede amenazasamenazas es:es:Un análisis de una aplicación basado en Un análisis de una aplicación basado en la seguridadla seguridad

Una parte crucial del proceso de diseñoUna parte crucial del proceso de diseño

Modelado de amenazas:Modelado de amenazas: Reduce el costo de proteger una aplicaciónReduce el costo de proteger una aplicación

Ofrece un proceso lógico y eficienteOfrece un proceso lógico y eficiente

Ayuda al equipo de desarrollo:Ayuda al equipo de desarrollo:Identificar dónde es más vulnerable la Identificar dónde es más vulnerable la aplicaciónaplicación

Determinar qué amenazas requieren mitigación Determinar qué amenazas requieren mitigación y cómo tratar dichas amenazasy cómo tratar dichas amenazas

Page 17: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

EducaciónEducación continuacontinua

OfrezcaOfrezca informacióninformación acercaacerca de:de:Cómo funcionan las características de Cómo funcionan las características de seguridadseguridad

Cómo utilizar las características de Cómo utilizar las características de seguridad para crear sistemas segurosseguridad para crear sistemas seguros

Qué apariencia tienen las vulnerabilidades Qué apariencia tienen las vulnerabilidades de seguridad para poder identificar código de seguridad para poder identificar código defectuosodefectuoso

Cómo evitar vulnerabilidades de seguridad Cómo evitar vulnerabilidades de seguridad frecuentesfrecuentes

Cómo evitar la repetición de erroresCómo evitar la repetición de errores

Page 18: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ValidaciónValidación dede loslos datosdatos dede entradaentrada

DesbordamientosDesbordamientos dede búferbúfer

Inyección de SQLInyección de SQL

Secuencias de comandos Secuencias de comandos entre sitiosentre sitios

“Todos los datos de entrada son perversos mientras no se demuestre lo contrario”

Page 19: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DemostraciónDemostración 11 DesbordamientosDesbordamientos dede búferbúfer

EludirEludir laslas comprobacionescomprobaciones dede seguridadseguridad

Page 20: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

RecomendacionesRecomendaciones parapara mejorarmejorar lala seguridadseguridad

Recomendación Ventaja

Adoptar el modelado de amenazas

Identifica las vulnerabilidades de seguridadAumenta el conocimiento de la arquitectura de las aplicaciones

Entrenar al equipo de desarrollo

Evita defectos comunes de seguridad Correcta aplicación de las tecnologías de seguridad

Revisión de código

Protege el código queTiene acceso a la redSe ejecuta de forma predeterminadaUtiliza protocolos no autenticadosSe ejecuta con privilegios elevados

Usar herramientas Pruebas más coherentes para detectar vulnerabilidades

Usar soluciones de infraestructura Más seguro con SSL/TLS e IPSec

Usar soluciones de componentes

Más robusto con CAPICOM y el espacio de nombres .NET Cryptography

Migrar código administrado Evita vulnerabilidades comunes

Page 21: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AgendaAgenda

LaLa importanciaimportancia dede lala seguridadseguridad dede laslas aplicacionesaplicaciones

Recomendaciones para el desarrollo Recomendaciones para el desarrollo de aplicaciones segurasde aplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 22: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

IntroducciónIntroducción aa laslas tecnologíastecnologías de seguridadde seguridad

LosLos desarrolladoresdesarrolladores necesitannecesitan utilizarutilizar yy aplicar:aplicar:

CifradoCifradoHashingHashingFirmas digitalesFirmas digitalesCertificados digitalesCertificados digitalesComunicación seguraComunicación segura AutenticaciónAutenticaciónAutorizaciónAutorizaciónServidores de seguridadServidores de seguridadAuditoríaAuditoríaService Pack y actualizacionesService Pack y actualizaciones

Page 23: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

CifradoCifrado

ElEl cifradocifrado eses elel procesoproceso dede codificacióncodificación de datosde datos

Para proteger la identidad de un usuario o Para proteger la identidad de un usuario o impedir que se lean los datosimpedir que se lean los datos

Para impedir que se modifiquen los datosPara impedir que se modifiquen los datos

Para comprobar que los datos proceden de Para comprobar que los datos proceden de un usuario en particularun usuario en particular

El cifrado puede ser:El cifrado puede ser:AsimétricoAsimétrico

SimétricoSimétrico

Page 24: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

CifradoCifrado simétricosimétrico frentefrente aa cifradocifrado asimétricoasimétrico

Tipo de algoritmo Descripción

Simétrico

Utiliza una clave para:Cifrar los datosDescifrar los datos

Es rápido y eficiente

Asimétrico

Utiliza dos claves relacionadas matemáticamente:

Clave pública para cifrar los datosClave privada para descifrar los datos

Es más seguro que el cifrado simétricoEs más lento que el cifrado simétrico

Page 25: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ComprobaciónComprobación dede lala integridadintegridad dede loslos datosdatos mediantemediante valoresvalores dede hashhashUsuario A Usuario B

Datos

Datos

Valor de hash

Algoritmo de hash

Datos

Valor de hash

Valor de hash

Algoritmo de hash

Si los valores de hash coinciden, los datos son válidos

El usuario A envía datos y el valor de hash al usuario B

Page 26: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

Usuario A Usuario B

Datos

Valor de hash

Algoritmo de hash

Clave privada del

usuario A

Datos

Valor de hash

Clave pública del

usuario A

Algoritmo de hash

Valor de hash

Si los valores de hash coinciden, los datos

proceden del propietario de la clave privada y son válidos

FirmasFirmas digitalesdigitales

Page 27: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

FuncionamientoFuncionamiento dede loslos certificadoscertificados digitalesdigitales

Clave privada Par de claves

privada y públicaUsuario

Aplicación

Equipo

Servicio

Administrador certificado

Entidad emisora de certificados

Clave pública

Page 28: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ComunicaciónComunicación seguraseguraTecnologíasTecnologías

EntreEntre laslas tecnologíastecnologías sese incluyen:incluyen:IPSecIPSec

SSLSSL

TLSTLS

Cifrado RPCCifrado RPC

SSL/TLS IPSec Cifrado RPC

Page 29: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ComunicaciónComunicación segurasegura FuncionamientoFuncionamiento dede IPSecIPSec

Negociación de la asociación de

seguridad

Capa TCP

Controlador IPSec

Capa TCP

Controlador IPSec

Paquetes IP cifrados

Directiva IPSec

Directiva IPSec

Page 30: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ComunicaciónComunicación segurasegura FuncionamientoFuncionamiento dede SSLSSL

El usuario explora un servidor Web seguro mediante HTTPS

El explorador crea una clave de sesión única y la cifra mediante la clave pública del servidor Web, que se genera a partir del certificado raíz

El servidor Web recibe la clave de sesión y la descifra mediante su clave privada

Una vez establecida la conexión, toda la comunicación que tiene lugar entre el explorador y el servidor Web es segura

1

2

3

4

Certificado raíz delservidor Web

Mensaje

Servidor Web seguro

HTTPSHTTPS

Explorador seguro

1

2

34

Page 31: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DemostraciónDemostración 22 CertificadosCertificados dede servidorservidor SSLSSL

VerVer unun sitiositio WebWeb enen unun servidorservidor queque nono eses

seguroseguroGenerarGenerar unauna solicitudsolicitud dede certificadocertificado

SolicitarSolicitar unun certificadocertificado dede pruebapruebaInstalarInstalar elel certificadocertificado SSLSSL ProbarProbar elel certificadocertificado SSLSSL

Page 32: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticaciónPropósitoPropósito dede lala autenticaciónautenticación

CompruebaComprueba lala identidadidentidad dede unun principal:principal:Aceptando credencialesAceptando credenciales

Validando dichas credencialesValidando dichas credenciales

Protege las comunicaciones al Protege las comunicaciones al asegurarse de que su aplicación sabe asegurarse de que su aplicación sabe quién está llamandoquién está llamando

NoNo bastabasta concon cifrarcifrar loslos datosdatos

Page 33: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación MétodosMétodos dede autenticaciónautenticación

BásicaBásica

De texto implícitaDe texto implícita

Firmas digitales y certificados digitalesFirmas digitales y certificados digitales

IntegradaIntegradaEl protocolo Kerberos versión 5El protocolo Kerberos versión 5

NTLMNTLM

Microsoft PassportMicrosoft Passport

BiométricaBiométrica

Page 34: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación AutenticaciónAutenticación básicabásica

EsEs simplesimple peropero efectivaefectiva

La aceptan los principales La aceptan los principales exploradores y servidoresexploradores y servidores

Es fácil de programar Es fácil de programar y de configurary de configurar

Administra las credenciales Administra las credenciales de usuariode usuario

Requiere SSL/TLSRequiere SSL/TLS

Page 35: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación FuncionamientoFuncionamiento dede lala AutenticaciónAutenticación de textode texto implícitaimplícita

Cliente

1 Solicitud

Servidor

Desafío

2

3Algoritmo de compendio

ContraseñaX$!87ghy5

4

Active Directory

Contraseña5

X$!87ghy5

6

Page 36: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación CertificadosCertificados digitalesdigitales dede clientecliente

SeSe utilizanutilizan enen aplicacionesaplicaciones WebWebEl servidor protege las comunicaciones utilizando El servidor protege las comunicaciones utilizando SSL/TLS con un certificado de servidor X.509SSL/TLS con un certificado de servidor X.509El servidor autentica a los clientes utilizando datos El servidor autentica a los clientes utilizando datos contenidos en el certificado X.509 del cliente, si es contenidos en el certificado X.509 del cliente, si es necesarionecesarioLa entidad emisora de certificados emite un La entidad emisora de certificados emite un certificado para el cual el servidor contiene un certificado para el cual el servidor contiene un certificado raízcertificado raíz

Se utilizan en aplicaciones distribuidasSe utilizan en aplicaciones distribuidasLa aplicación utiliza un canal de comunicaciones La aplicación utiliza un canal de comunicaciones SSL/TLSSSL/TLSLas aplicaciones del cliente y del servidor se Las aplicaciones del cliente y del servidor se autentican mediante certificadosautentican mediante certificados

Pueden implementarse en tarjetas Pueden implementarse en tarjetas inteligentesinteligentes

Page 37: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación CuándoCuándo usarusar lala AutenticaciónAutenticación integradaintegrada

Cliente

¿Intranet?¿Intranet? NoNo puedepuede utilizarutilizar AutenticaciónAutenticación integradaintegrada

NoNo

SíSí

ServidorServidor dede seguridadseguridad

SíSí

NoNo NTLMNTLM

Autenticación Autenticación del servidordel servidor

NoNo

SíSí

¿Dominio¿Dominio dedeActive Directory?Active Directory?

KerberosKerberos

Autenticación de Autenticación de cliente y servidorcliente y servidor

IntegradaIntegrada

de Windowsde Windows

¿Windows¿Windows 20002000o posterior?o posterior?

Page 38: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutenticaciónAutenticación CómoCómo utilizarutilizar KerberosKerberos versiónversión 55

Inicio de sesión inicial

1

Vale de concesión de vales

KDC

TGT en caché local

3

TGT

Solicitud de servicio

Cliente

KDC

Servidorde destino

Vale de servicio ST

Cliente

2

TGT

1

TGT

3ST

2

ST

Se establece sesión

4

Page 39: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DemostraciónDemostración 33 TécnicasTécnicas dede

autenticaciónautenticación de IISde IIS

UsoUso dede AutenticaciónAutenticación anónimaanónimaUsoUso dede AutenticaciónAutenticación básicabásica

UsoUso dede AutenticaciónAutenticación dede WindowsWindows integradaintegrada

Page 40: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutorizaciónAutorizaciónQuéQué eses lala autorizaciónautorización

Autorización:Autorización:Ocurre una vez autenticada la solicitud del Ocurre una vez autenticada la solicitud del clientecliente

Es el proceso de confirmar que un principal Es el proceso de confirmar que un principal autenticado tiene permitido el acceso a autenticado tiene permitido el acceso a determinados recursosdeterminados recursos

Comprueba los derechos asignados para Comprueba los derechos asignados para archivos, carpetas, valores del Registro, archivos, carpetas, valores del Registro, aplicaciones, etc.aplicaciones, etc.

Puede estar basada en funcionesPuede estar basada en funciones

Puede estar basada en códigoPuede estar basada en código

Page 41: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutorizaciónAutorizaciónTécnicasTécnicas frecuentesfrecuentes dede autorizaciónautorización

PermisosPermisos WebWeb (y(y restriccionesrestricciones IP/DNS)IP/DNS) dede IISIIS

Seguridad basada en funciones de .NETSeguridad basada en funciones de .NET

Seguridad de acceso a código de .NETSeguridad de acceso a código de .NET

Listas de control de acceso (ACL) de Listas de control de acceso (ACL) de NTFSNTFS

Inicios de sesión de SQL ServerInicios de sesión de SQL Server

Permisos de SQL ServerPermisos de SQL Server

Page 42: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutorizaciónAutorización ModeloModelo dede suplantación/delegaciónsuplantación/delegación

LaLa identidadidentidad deldel clientecliente sese utilizautiliza parapara tenertener accesoacceso aa recursosrecursos inferioresinferiores

Servidor Web o de aplicaciones

Servidor de base de datos o de otros

recursosAA

BB

CC

AA

BB

CC

Page 43: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AutorizaciónAutorización ModeloModelo dede subsistemasubsistema dede confianzaconfianza

AA loslos clientesclientes sese lesles asignanasignan funcionesfunciones

Se utilizan cuentas de servicio de Windows Se utilizan cuentas de servicio de Windows dedicadas para cada función al tener acceso dedicadas para cada función al tener acceso a recursos inferioresa recursos inferiores

Servidor Web o de aplicaciones

Servidor de base de datos o de otros

recursosAA

BB

CC

11

22

Función1

Función2

Page 44: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DemostraciónDemostración 44 TécnicasTécnicas dede autorizaciónautorización deldel

modelomodelo SubsistemaSubsistema dede confianzaconfianza

RevisarRevisar lala aplicaciónaplicaciónEstablecerEstablecer lala autenticaciónautenticación enen elel servidorservidor

WebWebCrearCrear cuentascuentas dede servicioservicio enen elel servidorservidor

WebWebEstablecerEstablecer lala autorizaciónautorización enen elel servidorservidor dede

basebase de datosde datos

Page 45: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ServidoresServidores dede seguridadseguridad

LosLos servidoresservidores dede seguridadseguridad puedenpueden ofrecer:ofrecer:

Puerta de enlace segura hacia Internet Puerta de enlace segura hacia Internet para los clientes internospara los clientes internos

Filtrado de paquetesFiltrado de paquetes

Filtrado en el nivel de circuitoFiltrado en el nivel de circuito

Filtrado de aplicacionesFiltrado de aplicaciones

AuditoríaAuditoría

Los servidores de seguridad no Los servidores de seguridad no pueden ofrecer:pueden ofrecer:

Protección contra ataques en el nivel de Protección contra ataques en el nivel de aplicación sobre HTTP o HTTPSaplicación sobre HTTP o HTTPS

Page 46: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AuditoríaAuditoría

EntreEntre laslas accionesacciones dede auditoríaauditoría sese incluyeincluye el seguimientoel seguimiento de:de:

Acceso a recursos y uso de los mismosAcceso a recursos y uso de los mismos

Intentos correctos y fallidos de inicio de Intentos correctos y fallidos de inicio de sesiónsesión

Errores de aplicacionesErrores de aplicaciones

Entre las ventajas de la auditoría cabe Entre las ventajas de la auditoría cabe citar:citar:

Ayuda a los administradores a detectar Ayuda a los administradores a detectar intrusiones y actividades sospechosasintrusiones y actividades sospechosas

Seguimiento en caso de disputas legales Seguimiento en caso de disputas legales por no incumplimientopor no incumplimiento

Diagnóstico de brechas en la seguridadDiagnóstico de brechas en la seguridad

Page 47: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ServiceService PackPack yy actualizacionesactualizaciones

Actualización de seguridad Descripción

RevisiónResuelve un único problema o un número reducido de problemasPuede combinarse mediante QChain

Paquete de seguridad

Varias revisiones empaquetadas para facilitar su instalación

Service Pack

Ofrece actualizaciones importantesConjunto acumulativo de actualizaciones anterioresPuede contener revisiones no anunciadas previamentePuede contener cambios en características

Page 48: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AgendaAgenda

LaLa importanciaimportancia dede lala seguridadseguridad dede laslas aplicacionesaplicaciones

Recomendaciones para el desarrollo de Recomendaciones para el desarrollo de aplicaciones segurasaplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 49: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

DesarrolloDesarrollo proactivoproactivo dede lala seguridadseguridad

IntegrarIntegrar mejorasmejoras aa lala seguridadseguridad enen todotodo elel procesoproceso dede desarrollodesarrollo

Al centrarse en la seguridad y proteger Al centrarse en la seguridad y proteger el código puede resistir nuevos ataquesel código puede resistir nuevos ataques

Fomentar el papel clave que Fomentar el papel clave que desempeña la educacióndesempeña la educación

Aumentar la concienciación dentro de su Aumentar la concienciación dentro de su equipoequipo

Aprender de sus errores y de los errores de Aprender de sus errores y de los errores de otrosotros

Page 50: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

AdopciónAdopción deldel marcomarco dede seguridadseguridad SD3SD3

CreeCree modelosmodelos dede amenazasamenazasRealice revisiones de código, Realice revisiones de código, pruebas de penetraciónpruebas de penetraciónEjecute código con privilegios Ejecute código con privilegios mínimosmínimos

MinimiceMinimice lala superficiesuperficie dede ataqueataqueHabilite los servicios de manera Habilite los servicios de manera

segurasegura

AprovecheAproveche laslas recomendacionesrecomendaciones de seguridadde seguridadCree consejos sobre seguridadCree consejos sobre seguridad Cree herramientas para evaluar la Cree herramientas para evaluar la seguridad de las aplicacionesseguridad de las aplicaciones

SeguroSeguro porpor diseñodiseño

SeguroSeguro dede formaforma

predeterminadapredeterminada

SeguroSeguro enen lala implementaciónimplementación

Page 51: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ResumenResumen dede lala sesiónsesión

LaLa importanciaimportancia dede lala seguridadseguridad dede laslas aplicacionesaplicaciones

Recomendaciones para el desarrollo Recomendaciones para el desarrollo de aplicaciones segurasde aplicaciones seguras

Tecnologías de seguridadTecnologías de seguridad

Directrices para el desarrollo seguroDirectrices para el desarrollo seguro

Page 52: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

PasosPasos siguientessiguientes1.1. MantenerseMantenerse informadoinformado sobresobre lala

seguridadseguridad Suscribirse a boletines de seguridad:Suscribirse a boletines de seguridad:

http://www.microsoft.com/security/security_bulletins/alerts2.ahttp://www.microsoft.com/security/security_bulletins/alerts2.asp sp (este sitio está en inglés) (este sitio está en inglés)

Obtener las directrices de seguridad de Microsoft Obtener las directrices de seguridad de Microsoft más recientes:más recientes:http://www.microsoft.com/security/guidance/http://www.microsoft.com/security/guidance/ (este sitio está (este sitio está en inglés)en inglés)

2.2. Obtener información de seguridad Obtener información de seguridad adicionaladicional

1.1. Buscar seminarios de aprendizaje en línea y Buscar seminarios de aprendizaje en línea y presenciales:presenciales:http://www.microsoft.com/seminar/events/http://www.microsoft.com/seminar/events/security.mspxsecurity.mspx (este (este sitio está en inglés)sitio está en inglés)

1.1. Buscar un CTEC local que ofrezca cursos prácticos:Buscar un CTEC local que ofrezca cursos prácticos:http://www.microsoft.com/learning/http://www.microsoft.com/learning/ (este sitio está en inglés) (este sitio está en inglés)

Page 53: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

ParaPara obtenerobtener másmás informacióninformación

SitioSitio dede seguridadseguridad dede MicrosoftMicrosoft (todos(todos loslos usuarios)usuarios)

http://www.microsoft.com/securityhttp://www.microsoft.com/security (este (este sitio está en inglés)sitio está en inglés)

Sitio de seguridad de MSDN Sitio de seguridad de MSDN (desarrolladores)(desarrolladores)

http://http://msdn.microsoft.commsdn.microsoft.com/security/security (este (este sitio está en inglés)sitio está en inglés)

Sitio de seguridad de TechNet Sitio de seguridad de TechNet (profesionales de IT)(profesionales de IT)

http://www.microsoft.com/technet/securityhttp://www.microsoft.com/technet/security (este sitio está en inglés)(este sitio está en inglés)

Page 54: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones

PreguntasPreguntas yy respuestasrespuestas

Page 55: Fundamentos de la seguridad de aplicaciones. Contenido La importancia de la seguridad de las aplicaciones Recomendaciones para el desarrollo de aplicaciones