Seguridad de Datos (Introducción a la Seguridad Computacional) CC51D (2010/02)
Profesor: Alejandro Hevia
Propósito: El propósito del curso es dotar al estudiante
de los conocimientos para evaluar la seguridad computacional
de sistemas así como de las herramientas y técnicas
para diseñar, implementar y evaluar soluciones de seguridad.
Aspectos administrativos:
Cátedra: Lunes, Miércoles 2:30pm-4:00pm, B214
Auxiliar: Viernes 12:10pm-1:30pm, B206
Horario Consulta: Jue 2pm-3pm, Of. 309 DCC
Sitio web oficial (especialmente el Foro de Discusión): ucursos
Carga académica: 10 UD,
Requisitos: (CC42A, CC41B) o Autorización
Carácter del curso: electivo Cs. de la Computación
Novedades
Fechas Importantes
- Presentación del proyecto: Miércoles 8 de Septiembre 2010
- Presentación de Avance proyecto: Viernes 1 de Octubre 2010
- Presentación Final proyecto: Miércoles 24 de Noviembre 2010
- Control 1: Viernes 15 de Octubre 2010
Tareas
- Calendario de Tareas
- Tarea 1: .
Fecha inicio: Jueves 2 de Sept 2010
Fecha término: Jueves 9 de Sept 2010
- Tarea 2:
Fecha inicio: Martes 21 de Sept 2010
Fecha término: Martes 5 de Octubre 2010
- Tarea 3:
Fecha inicio: Miércoles 6 de Octubre 2010
Fecha término: Miércoles 27 de Octubre 2010
- Tarea 4:
Fecha inicio: Jueves 28 de Octubre 2010
Fecha término: Jueves 11 de Noviembre 2010
Lecturas Misceláneas:
- El problema de "verificar" apps para un repositorio (ej.
Apple's appStore): Making apps safe is hard work, Kenneth van Wyk, Computerworld, August 11, 2010.
- SSH Password authentication: Threats and Countermeasures. Dragor Research Group. Buen punto de partida para entender ataques (simples) a SSH y
problemas de configuración.
- iPhone business security framework. Bernd Marienfeldt. Discusión acerca del modelo de seguridad de iPhone (para negocios).
- Reporte con las tasas de detección de malware por parte de principales antivirus. "Cyveillance testing finds AV vendors detect on average less than 19% of malware attacks". Press release. 4/Ago/2010. Nota: Es un "press release" y no he visto el paper (en particular, la metodología), ergo tomar los resultados con moderación.
- McAfee Labs Blog. Varios seguridad, interesante.
Temario
- Introducciónn a la Seguridad Computacional:
- Introducción, propiedades de seguridad, confianza.
- Ataques, vulnerabilidades.
- Por que seguridad es más difícil de lo que parece.
- Criptografía:
- Simétrica vs. Asimétrica
- Encriptación (simétrica), funciones de hash
- Encriptación (asimétrica), firmas digitales
- Autentificación de mensajes
- Confianza: PKI y autoridades certificadoras
- Aplicaciones, otros temas
- Seguridad de Sistemas:
- Control de Acceso: teoría y práctica
- Mecanismos vs. políticas
- Autentificación: contraseñas, biometría,
de una vez, multifactor, mecanismos avanzados
- Estudio de casos y aplicaciones
- Amenazas Actuales:
- Vulnerabilidades y ataques
- Ataques de buffer overflow, Inyección de código
- Malware: virus, gusanos, spyware, bots, phishing, Spam.
Ataques y defensas
- Ingeniera social
- Seguridad de Redes I:
- Protocolos de autentificaciónn, negociaciónn
de claves
- Casos (Kerberos, Single-sign-on, autentificación web) y
aplicaciones
- Infraestructura: TCP, DNS, SMTP, ruteo
- Introducción al Diseño de Software Seguro:
- Atacar y parchar vs. estrategias de largo plazo: principios
- Anánlisis de riesgos
- Programación Segura, metodologías y herramientas
- Confinamiento
- Seguridad de Redes II:
- Ataques de denegación de servicios (DoS)
- Cortafuegos (o firewalls)
- Sistemas de detección/prevenció de intrusos (IDS/IPS)
- Sistemas del mundo real: IPSec, IKE, SSL.
- Seguridad Web
- Temas Misceláneos (opcionales):
- Votación Electrónica
- Sistemas de Anonimato
- Sistemas anti-copia (o Digital Right Management, DRM)
- Aspectos éticos, Sociales
Nota:
La sección temas misceláneos del temario del
curso es potencialmente variable dependiendo de disponibilidad de tiempo.
Evaluación:
La evaluación se basa en un control, un proyecto y un exámen
(sin apuntes, no reemplaza el control) más 5 tareas (no se eliminan
tareas).
El proyecto es desarrollado durante el semestre.
Posibles alternativas para el proyecto incluyen
- Desarrollo de un software de seguridad y/o criptográfico,
- Escritura y presentación de un artículo corto tipo
estado del arte en el área de seguridad,
discusión de artículo reciente, o
investigación en algún tema relativo al curso.
La nota de control NC se calcula como el promedio simple entre el control
1 y el examen. El examen NO reemplaza al control.
La nota de tareas NT se calcula como (PT+NP)/2 donde PT es el promedio
de las 5 tareas y NP es la nota del proyecto.
Para aprobar el curso se requiere tanto que NC sea mayor o igual que 4.0
como que NT
mayor o igual que 4.0.
Posibles Proyectos
- Implementar plugin para firmar correos en Thunderbird
usando tokens en Linux.
- Implementar plugin para autentificarse a sitios web
(Firefox o Chrome) usando tokens en Linux.
- Implementar el módulo de verificador externo para
prototipo de votación electrónica. (Hablar con
el profesor).
- Implementar en una touch-enabled tablet (tipo iPad)
el módulo de emisión del voto
(la Cámara) para
para
prototipo de votación electrónica. (Hablar con
el profesor).
- Implementar en un iPhone o Android
el módulo de emisión del voto (la
Cámara) para
prototipo de votación electrónica. (Hablar con
el profesor).
- Implementar un controlador de botnet usando P2P con mothership
redundante.
- Implementar un esquema de compartición de secretos
verificable.
- Implementar una herramienta que permita monitorear tráfico SSL/TLS
(esto es, haga un ataque "Man-in-the-middle" en el protocol HTTPS por ej.)
inyectando certificados falsos o usando el ataque de renegociación de claves.
- Implementar un "emulador" de cliente NAC (network access control) por ej. para
Microsoft Windows. Este emulador debe ser capaz de convencer a la red que el
cliente está "sano" cuando realmente no lo está.
- Implementar un servicio de "TimeStamping" (notaría) en Facebook usando
este algoritmo basado en funciones de hash.
- Implementar una herramienta que detecte e identifique si es ejecutada
en un ambiente de virtualizacion (VMWare, VirtualBox, VirtualPC, Xen, y otros).
- Implementar un servicio web (cliente, servidor) usando fast-flux (con double flux).
- Implementar un servicio de detección y captura del contenido de un sitio web
hackeado (cuya página principal fue modificada).
- Diseñar e implementar una propuesta para realizar "phishing" con fines
educativos.
Solicitar directamente al profesor el tema, quien le clarificará el
alcance del proyecto.
Cualquier otro tema o posible forma del proyecto queda a criterio del profesor
y debe ser consultado con él.
Tareas
Las tareas consistirán tanto de programación como
de resolución de problemas conceptuales y aplicados.
No se elimina ninguna tarea (habrá una tarea recuperativa de
ser necesario, pero posiblemente de dificultad mayor a la de una tarea normal).
Bibliografía:
-
"Cryptography and Network Security, William Stallings, Editorial Prentice Hall; 4ta edicin (2005)
-
"Building Secure Software: How to Avoid Security Problems the Right Way, John Viega, Gary McGraw, Editorial Addison-Wesley; 1ra edicin (2001)
-
"A Classical Introduction to Cryptography: Applications for Communications Security, Serge Vaudenay, Editorial Springer; 1ra edicin (2005)
-
"Firewalls and Internet Security: Repelling the Wily Hacker, William R. Cheswick, Steven M. Bellovin, Ariel D. Rubin, Editorial Addison-Wesley Professional; 2da edicin (2003)
-
"Inside Network Perimeter Security, Stephen Northcutt, Lenny Zeltser, Scott Winters, Karen Kent, Ronald W. Ritchey, Editorial Sams; 2da edicin (2005)
- Josef Pieprzyk, Thomas Hardjono, Jennifer Seberry, “Foundamentals of Computer Security”, Springer, 2003
- Douglas Stinson, “Cryptography, Theory and Practice”, Second edition, Editorial Cgapman and Hall/CRC, 2002
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC press, 1997
Última modificación: 1 de Septiembre 2010.
|