View
237
Download
0
Category
Preview:
Citation preview
Implementación de Sistemas de Información Seguros
Cristian Mora Aguilar, CISSP, CISM, MCSE+Security crismora@microsoft.comSecurity ConsultantMicrosoft Security Center of Excellence, SCoE
Agenda Conceptos básicos de seguridad
Triada de Seguridad CIA
Seguridad en Aplicaciones: Más que un problema Tecnológico
Componentes básicos para de Seguridad
Arquitectura
Administración de Riesgo
Defensa en profundidad
Seguridad en Aplicaciones Modelo de Amenazas (Threat Modeling) y STRIDE
Herramientas: FXCop
Caso de Estudio DJ Hell Defacement
Triada de Seguridad CID
Confidencialidad
Integridad
Disponibilidad
Seguridad
Confidencialidad
Integridad Disponibilidad
Administración de Riesgos y soporte para decisiones
Riesgo NO Aceptable
Riesgo Aceptable
El equipo de Seguridad de información define la probabilidad
Ejecución de la vulnerabilidad
Impa
cto
al n
egoc
io
Bajo Alto
Alto
El e
quip
o de
neg
ocio
s de
fine
el im
pact
o
La administración de riesgo define un nivel aceptable del mismo
Ambiente
de Seguridad
Dispositivos
Clientes
Servidores
Físico Red Servidor Apps Datos
Defensa en profundidad
Amenazas de Seguridad de TI
Amenazas
Amenazas
AmenazasAm
enaz
as
Amen
azas
Amen
azas
Análisis de Riesgo
Ambiente de
Seguridad
Dispositivos
Clientes
Servidores
Físico Red Servidor Apps Datos
Defensa en Profundidad
Evaluación de riesgo en cada capa Mejor visión de la situación actual
• Cada sección tiene una clasificación de riesgo y un plan de mitigación
No Aceptable
Control en Progreso
Aceptable
Resultado de Análisis de Riesgo
Ambiente de
Seguridad
Dispositivos
Clientes
Servidores
Físico Red Servidor Apps Datos
Defensa en Profundidad
Ambiente de
Seguridad
Dispositivos
Clientes
Servidores
Físico Red servidor Apps Datos
Defensa en Profundidad
Implementación de Soluciones
Solución
Solución
SoluciónS
oluc
ión
Sol
ució
n
Sol
ució
n
Plan de Evaluación de Resultados
Ambiente de
Seguridad
Dispositivos
Clientes
Servidores
Física Red Servidor Apps Datos
Defensa en Profundidad
Defensa en Profundidad
Medidas de control segmentadas en capas de protección Aplica medidas de control en cada capa de cada componente que
interactúa en una solución, desde la capa de perímetro hasta la capa de datos
Reduce la posibilidad de un único punto de vulnerabilidades cuando el sistema es atacado
Reducción del riesgo por: Análisis de vulnerabilidades presentes en los sistemas
Análisis de amenazas presentes que pueden tomar ventaja de esas vulnerabilidades
Implementación de los medidas de control apropiadas en cada capa
Defensa en Profundidad
Políticas, procedimientos, Concientización
Seguridad Física
Perímetro
Red
Servidor
Aplicación
Datos
Como minimizar la superficie de ataque?
Aseguramiento del SO, Autenticación, Actualizaciones de OS, Detector de Intrusos local
Muros de fuego, Control de acceso de CuarentenaGuardas, Cerrojos, Dispositivos de monitoreo
Segmentación de Red, IPSec, Detector de Intrusos dered
Aseguramiento de App, Antivirus
Listas de Acceso, Encriptación, EFS
Documentación de Seguridad, Educación al Usuario
Políticas, Procedimientos, Concientización
Seguridad Física
Perímetro
Red Interna
Servidor
Aplicación
Datos
Seguridad en la arquitectura
Seguridad en el modelo de desarrollo
Estrategia SD3
Seguridad en el diseño por capas
Holística de la seguridad
Seguridad en el modelo de desarrollo
Planes de pruebascompletados
Diseñoscompletados
Concepto Códigocompletado
Entrega Después dela entrega
“Security push”Preguntas durantelas entrevistas
Determinar los criterios de validación
de la seguridad
Revisiónexterna
Analizaramenazas
Aprender yrefinar
Revisióndel equipo
de seguridad
Entrenar a losmiembrosdel equipo
Pruebas de mutación de datos y mínimos
privilegios
Revisar defectos anteriores, comprobarregistros directrices de programación
segura, usar herramientas
=continuo
Modelo de análisis de Riesgos
Entender las amenazas hacia las aplicaciones/sistema
Uso de modelo de riesgo para identificar riesgos Diferente a la fase de pruebas y servicios
Consideraciones de diseño de alto nivel
Permite una mitigación proactiva de la mitigación de amenazas
Proceso para el Modelo de analisis de riesgo Crear un modelo de la aplicación (UML, DFD,
etc.) Utilizar STRIDE para categorizar los tipos de
amenazas Para cada destino de ataque
Spoofing, Tampering, Repudiation, Information disclosure, DoS, Elevation of privilege
Construcción de un arbol de amenazas Categorizar las amenazas con DREAD
Damage potential, Reproducibility, Exploitability, Affected users, Discoverability
Árbol de Amenazas
STRIDE
DREAD
PROCESS
STRIDETHREAT
STRIDETHREAT
STRIDETHREAT
SUB-THREATSUB-THREAT SUB-THREAT
SUB-THREAT CONDITION
CONDITION CONDITION
STRIDETHREAT
Para cada proceso en el Modelo
Es el proceso susceptible a spoofing?
Puede ser el proceso alterado?
Existe la posibilidad de manejar no repudio en la aplicación?
Pueden un ataque resultar en la vista no autorizada de los datos?
Puede un ataque de DoS deshabilitar el proceso?
Puede ser ejecutado la elevación de privilegios si un proceso ha sido atacado?
Aplicando STRIDEProcesos Afectados
Afecta datos almacenados
Afecta en interacción
Afecta el flujo de datos
S
T
R
I
D
E
Mitigación de Amenazas
Técnicas de Mitigación
S Autenticación, Almacenamiento de credenciales seguras
T Autorización, firmas digitales
R Autenticación, autorización, firmas digitales, bitácoras
I Autorización, Encriptación
D Filtrado, Autenticación, Autorización
E No utilizar identidades las cuales tienen altos niveles de privilegios
Priorización de Amenazas
Utilización del modelo de análisis de riesgo (DREAD) para asignar las prioridades a las áreas mas criticas basado en sus amenazas
Priorizar mitigaciones de seguridad
Priorizar revisiones periódicas
Estrategias de reutilización
Pruebas de los planes de mitigación a amenazas
Necesidad plan de prueba para cada amenaza Pruebas básicas de acceso y funcionalidad
Pruebas intrusivas
El modelo de amenazas dirige el plan de pruebas
Proceso de fin a fin
Probando el plan de mitigación de amenazas
Spoofing Autenticación
Intento de cracking, replay, ver datos “en la red física”
Almacenamiento seguro de las credenciales Intentar compromiso de acceso a información
Tampering Intentar ingresar sin autenticacion
Intentar de invalidar/modificar “hashes” firmas
Probando el plan de mitigación de amenazas
Repudiation Intentar de eludir la autenticación/autorización
Intentar Evitar firmas
Intento de evitar bitácoras, o bien escribir bitácoras falsas
Information Disclosure Intento de acceso a información no autorizada
Intentar de ver el dato en la red (eavesdropping)
Eliminar un proceso, mirar datos sensitivos
Intento de causar errores de condición, mirar las bitácoras
Pruebas de mitigación de amenaza
Denial of Service
Filtrado Envío de datos mal formados
Consumo de recursos
Elevation of Privilege
No poseer acceso a procesos ejecutándose con altos privilegios
Desarrollo de objetivos de seguridad Elevar el nivel de seguridad de la aplicación Identificar cuando y como se requiere autenticación o
autorización Identificar donde y como usted necesita para asegurar la
comunicación de ambos para su aplicación (desde usuarios finales) y entre aplicaciones de terceros
Identificar dificultadas comunes y como evitarlas Identificar riesgos principales y su mitigación relacionada a
la autenticación y a la autorización Evitar minimizar la seguridad de hacer cosas para trabajar Identificar no solamente como y donde, pero también cuando
usar varias características de seguridad Eliminar el miedo, duda e incertidumbre Promover mejores practicas y obtener resultados
predecibles
Desarrollo de Principios básicos de Seguridad Adoptar el principio del mínimo privilegio
Utilizar defensa en profundidad
No confiar en el ingreso de datos de los usuarios
Utilice siempre la seguridad como base de todo proceso de configuración inicial
No confiar en la seguridad por oscuridad
Reducir la superficie de ataque
SI existe una falla que se redirija a un modo seguro
Defensas de PerímetroPolicies, Procedures, and Awareness
Physical SecurityPerimeter
Internal Network
Host
ApplicationData
Defensas de RedPolicies, Procedures, and Awareness
Physical SecurityPerimeter
Internal Network
Host
ApplicationData
Defensa de HostPolicies, Procedures, and Awareness
Physical SecurityPerimeter
Internal Network
Host
ApplicationData
Defensa de AplicaciónPolicies, Procedures, and Awareness
Physical SecurityPerimeter
Internal Network
Host
ApplicationData
Defensa de DatosPolicies, Procedures, and Awareness
Physical SecurityPerimeter
Internal Network
Host
ApplicationData
Ataque de Sitio Web: DJ Hell
Compromiso de sitio web Problemas en algunas capas de Seguridad
Los servidores web no estaban debidamente actualizado (parches)
Claves de administrador no actualizadas
Métodos de acceso: Capa de Aplicación
1 aplicación de consulta no utilizaba estándar de autenticación para consulta de datos.
Capa de Datos
Concepto de mínimo privilegio no utilizado “SysAdmin”
INTENTO ACCESO2005-06-08 19:40:24 SERVERIP GET /msib21/APPHACKED/Capitulo.asp cod=02update%20IS_AREST%20set%20EST_Descripcion%20=%20%27Hacked%20By%20DjHell%27--|32|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_'Hacked'. 80 – IPATTACKER libwww-perl/5.801 - - 500 0 0 8739 348
MODIFICACION DE CODIGO2005-06-08 19:32005-06-08 19:37:25 SERVERIP GET /msib21/APPHACKED/NotasCapitulo.asp cod=01update%20IS_AREST%20set%20EST_Descripcion%20=%20%27Hacked%20By%20DjHell
%27-- 80 - SERVERIP libwww-perl/5.801 - - 200 0 0 10623 3537:25 SERVERIP GET /msib21/APPHACKED/NotasCapitulo.asp cod=01update%20IS_AREST%20set%20EST_Descripcion%20=%20%27Hacked%20By%20DjHell%27-- 80 - 172.17.80.1 libwww-perl/5.801 - - 200 0 0 10623 353
SQL Code Injection
Ataque de Sitio Web: DJ Hell
Code Review of ASP pages from customer's server:=========================================
line 7 of /_Conexi.asp:conn.Open = "DSN=APPHACKED;UID=adminAPP;PWD=XXXXX"
line 2 of /NotasCapitulo.asp<!--#include file="_Conexi.asp"-->
line 11 of /Capitulo.aspsql = "select EST_DATA1, EST_Notas from IS_AREST where EST_DATA = " & cod
Line 11 allows for SQL Injection...making the following request will cause the exact same behavior the customer originally reported:
http://CUSTOMERSITE/msib21/APPHACKED/NotasCapitulo.asp?cob=01 UPDATE IS_AREST SET EST_Descripcion = 'Hacked By SQLInjection'
SQL Code Injection
Ataque de Sitio Web: DJ Hell
FXCop Herramienta FXCop
http://www.gotdotnet.com/team/fxcop/ Diseño de librerías
Localización
Convención de Nombres
Desempeño
Seguridad
Referencias Herramienta FXCop
http://www.gotdotnet.com/team/fxcop/
Modelo de análisis de Amenazas (Threat Modeling) http://msdn.microsoft.com/security/securecode/threatmodeling/defa
ult.aspx
Pagina General de Seguridad http://www.microsoft.com/security
Sitio para Seguridad de desarrollo http://msdn.microsoft.com/security
Sitio de seguridad de MSDN para desarrolladores
Guías de mejores practicas http://www.microsoft.com/resources/practices/guides.mspx
Guías Patterns & Practices
Ejemplos de programación seguro “Writing Secure Code, 2nd edition”
Howard, Leblanc. MS Press, 2003
Recommended