CASO 2 - Correo Uniandes

Anuncio
Caso de Estudio:
Sistema de Distribución de Información Correo Electrónico Universidad de Los Andes
PARTE II.
Análisis de Necesidades de Seguridad en Transacciones
Asistente Graduado: Víctor Guana ([email protected]).
Universidad de Los Andes
Departamento de Ingeniería de Sistemas y Computación
Infraestructura Computacional ISIS 2203 (C1)
Caso 2 Análisis de Necesidades de Seguridad en Transacciones
Preparado por: Asistente Graduado Víctor Guana.
Objetivos:

Identificar los requerimientos de seguridad de las transacciones involucrados en la infraestructura
tecnológica del sistema de recepción y envío de correo electrónico de la Universidad de los Andes y
plantear soluciones a los mismos

Construir un prototipo a escala del sistema que permita enfrentar algunos de los requerimientos de
seguridad detectados.
Descripción General:
En la primera parte del caso se presentó el sistema de recepción y envío de correos electrónicos de la
Universidad de Los Andes, adicionalmente usted como consultor dimensionó la infraestructura que
consideró necesaria dadas sus características y requerimientos. Sin embargo se dejó de lado la evaluación de
los requerimientos de seguridad que se involucran en la construcción de la solución. En esta segunda parte
del caso se desarrollará esta temática, desde el punto de vista de las necesidades de la infraestructura
computacional, hasta parte de la arquitectura de la solución.
Problemática:
Como se observó en el caso anterior la principal tarea del sistema de correo es interactuar con sistemas y
usuarios externos, entre estos servidores de intercambio de otras organizaciones (siendo estas abiertas o
cerradas en términos organizacionales, o si se prefiere públicas o privadas), en general el sistema de correo
tiene que interactuar con 4 agentes para sus funciones fundamentales. 1. Recepción y envío de correo
externo relacionados con el dominio @uniandes.edu.co, 2. Recepción y envío de correo interno del
dominio respectivo, 3. Recuperación de correos y retribución de los mismos a clientes web, 4. Recuperación
de correos y retribución de los mismos a clientes de escritorio.
Dado lo anterior es evidente que surgen diversos problemas de seguridad en cada una de las transacciones
que entran y salen del sistema, en este orden de ideas es necesaria una evaluación de la seguridad en las
transacciones para mitigar vulnerabilidades y amenazas que configuran riesgos tales como:




Repudio de transacciones.
Espionaje de transacciones.
Suplantación de identidad en la realización de transacciones.
Integridad de información dentro de las transacciones.
Su tarea en este caso es actuar como consultor para analizar, desde el punto de vista de la seguridad, las
transacciones que pasan a través de la infraestructura computacional que usted diseñó en la resolución del
Caso I. Para este fin usted necesitará tener el Caso I totalmente desarrollado, en especial el punto A del
mismo y realizar las tareas que se presentan a continuación.
Tareas:
A. Análisis y Entendimiento del Problema.
1.
Dadas cada una de las transacciones caracterizadas en la primera parte del caso, y suponiendo que
el sistema no tiene previsto ningún mecanismo de protección:
-
Identifique las amenazas del sistema anterior.
-
Identifique las vulnerabilidades del sistema anterior, teniendo en cuenta únicamente aspectos
técnicos (no organizacionales o de procesos). Identifique vulnerabilidades no sólo en lo
relacionado con la comunicación sino también con el almacenamiento de los datos (cómo se
almacenan, en dónde, cómo se cargan en memoria, entre otros).
Tanto en el caso de las amenazas como de las vulnerabilidades tenga en cuenta solamente
aspectos relacionados con:




Repudio
Espionaje
Suplantación de identidad
Falta de integridad de la información
Explique clara y detalladamente sus respuestas
2.
Modele un escenario de riesgo para cada ítem del punto 1 para cada transacción. El escenario debe
tener los siguientes elementos: Fuente de Amenaza, Fuente de vulnerabilidad, Consolidación del
Riesgo, y Ambiente.
B. Propuesta de Soluciones.
3.
Proponga mecanismos de mitigación (vulnerabilidades o amenazas) con el fin de impedir la
consolidación del riesgo. Establezca en cada uno de los casos identificados en los puntos 1 y 2
mecanismo(os) específico(os) y justifique (los mecanismos propuestos deben ser detallados).
Tenga en cuenta aspectos relacionados con:
- Eficacia
- Costo
- Eficiencia
- Flexibilidad
- Aspectos prácticos
- Otros que considere conveniente considerar
Evalúe si con el plan de mitigación los riesgos se consolidan a pesar de la vulnerabilidad y amenaza
que los conforman (si se mitigan explique cómo, retome los escenarios planteados en el punto
anterior).
4. Analice el impacto que las soluciones planteadas agregan al sistema y la infraestructura en
términos de necesidades infraestructurales y transacciones (adicionales a las planteadas en el caso 1).
Replantee el diagrama de infraestructura según dichas necesidades (¿se necesitan máquinas
adicionales para responder a requerimientos funcionales de su solución?, ¿es necesaria la introducción
de elementos de infraestructura adicionales para responder a atributos de calidad (tiempos de
respuesta, consumo de recursos, entre otros) generados por su solución?
C.
Análisis e Implementación de Prototipo.
1. Su tarea consiste en construir un cliente de correo electrónico de escritorio (bajo la tecnología
JAVA SE) que sepa entenderse con un servidor de correo externo, en este caso usaremos Gmail
(mail.google.com). Es pre-requisito que usted cuente con al menos dos cuentas de correo dentro de
este proveedor. El cliente a construir deberá, 1. Ser capaz de enviar mensajes mediante el
protocolo SMTP, 2. Ser capaz de recuperar los mensajes al cliente dado su cuenta mediante el
protocolo POP3/IMAP. Hay que tener en cuenta que la comunicación con dicho sistema de correo
usa SSL y su cliente debe ser construido para soportarlo. (Su solución deberá estar documentada
con diagramas de clases y arquitectura, deberá tener una interfaz de usuario GUI basada en Java
Swing, las funcionalidades del sistema desarrollado deberán ser distribuidas en entidades lógicas
con bajo acoplamiento y alta cohesión)
2. Al cliente de correo realizado en el punto anterior se le van a agregar las siguientes
funcionalidades:
-
A pesar de que servidores como el de Gmail utilizan SSL, y por lo tanto tienen protección contra
el espionaje, hay algunos servidores que no lo usan. Se va entonces a agregar al cliente de
correo la posibilidad de encriptar los mensajes enviados y desencriptar los recibidos. Lo que
debe hacer entonces es agregar al cliente de correo desarrollado en el punto 1. la posibilidad
de encriptar/desencriptar los mensajes. (a este nivel se deberá implementar un mecanismo de
encripción así este sea redundante al canal de conexión SSL)
Para poder desarrollar el punto anterior debe primero definir los siguientes aspectos:
- ¿Qué tipo de encripción conviene usar, la simétrica o la asimétrica? Justifique.
- ¿Qué mecanismo usar para que el emisor de un mensaje y el receptor puedan ponerse de
acuerdo sobre la(s) llave(s) que se va(n) a usar para encriptar / desencriptar los mensajes?
Justifique.
-
Se desea que los mensajes enviados puedan ser firmados y que se puedan verificar las firmas de
los mensajes recibidos. Agregue al cliente de correo desarrollado en los puntos 1. Y 2. La
posibilidad de firmar y verificar los mensajes enviados.
Para poder desarrollar el punto anterior debe primero definir los siguientes aspectos:
- ¿Qué mecanismo usar para que el emisor de un mensaje y el respectivo receptor puedan
ponerse de acuerdo sobre las llaves que se van a usar para firmar y verificar las firmas?
Justifique.
-
Para autenticar al emisor de un mensaje se van a usar el mecanismo HMAC1. El emisor de un
mensaje debe entonces generar el HMAC correspondiente y el receptor debe entonces hacer la
verificación correspondiente para autenticar al emisor.
Para poder desarrollar el punto anterior debe primero definir los siguientes aspectos:
¿Qué mecanismo usar para que el emisor de un mensaje y el receptor puedan ponerse de
acuerdo sobre la llave que se va a usar para generar / verificar el HMAC?
1
Hash-Based Message Authentication Code
D. Pruebas
1. Realice un plan de pruebas para verificar el funcionamiento de su aplicación a nivel funcional y
no funcional (para este fin es recomendable seguir el siguiente estándar, simplifíquelo y adáptelo
para su solución IEEE 829 Standard for Software Test Documentation, recuerde, este estándar es
una guía)
2. En una sesión adicional su sistema asegurado será entregada a otra pareja del curso con el fin de
que este intente vulnerarla.
Referencias:

Web security, a step by step reference guide, Ed. Addison Wesley, 1998, Caps 2, 3, 4.

Cryptography and network security, W. Stallings, Ed. Prentice Hall, 2003.

Computer Networks 4ta Edición. Andrew S. Tanenbaum. Prentice Hall 2003, Caps 7, 8.

Hardening Linux, James Turnbull, 2005, capítulo 8.

Professional Windows Desktop and Server Hardening (Programmer to Programmer), Roger A. Grimes
2006, capítulo 11.
Documentos relacionados
Descargar