Seguridad de Datos (Introducción a la Seguridad Computacional) CC51D (2009/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 10:15am-11:45am, B214
Auxiliar: Viernes 10:15am-11:45am, Por Anunciar
Horario Consulta: Lunes 12pm-1pm, 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

  • Todos los alumnos deben firmar el documento de ética del estudiante.
  • Importante: Escoger un proyecto y comunicárselo al profesor antes del Jueves 13 de Agosto. Ver listado de proyectos posibles.
  • Fechas Importantes:
    1. Presentación del proyecto: Lunes 24 de Agosto 2009
    2. Presentación de Avance proyecto: Viernes 11 de Septiembre 2009
    3. Presentación Final proyecto: Lunes 18 de Noviembre 2009

Tareas

  • Calendario de Tareas
    • Tarea 1: . Fecha inicio: Lunes 17 de Agosto 2009
      Fecha término: Lunes 31 de Agosto 2009
    • Tarea 2:
      Fecha inicio: Lunes 31 de Agosto 2009
      Fecha término: Lunes 21 de Septiembre 2009
    • Tarea 3:
      Fecha inicio: Lunes 21 de Septiembre 2009
      Fecha término: Lunes 5 de Octubre 2009
    • Tarea 4:
      Fecha inicio: Lunes 5 de Octubre 2009
      Fecha término: Lunes 19 de Octubre 2009
    • Tarea 5:
      Fecha inicio: Lunes 19 de Octubre 2009
      Fecha término: Lunes 9 de Noviembre 2009

Temario

  1. Introducciónn a la Seguridad Computacional:
    1. Introducción, propiedades de seguridad, confianza.
    2. Ataques, vulnerabilidades.
    3. Por que seguridad es más difícil de lo que parece.
  2. Criptografía:
    1. Simétrica vs. Asimétrica
    2. Encriptación (simétrica), funciones de hash
    3. Encriptación (asimétrica), firmas digitales
    4. Autentificación de mensajes
    5. Confianza: PKI y autoridades certificadoras
    6. Aplicaciones, otros temas
  3. Seguridad de Sistemas:
    1. Control de Acceso: teoría y práctica
    2. Mecanismos vs. políticas
    3. Autentificación: contraseñas, biometría, de una vez, multifactor, mecanismos avanzados
    4. Estudio de casos y aplicaciones
  4. Amenazas Actuales:
    1. Vulnerabilidades y ataques
    2. Ataques de buffer overflow, Inyección de código
    3. Malware: virus, gusanos, spyware, bots, phishing, Spam. Ataques y defensas
    4. Ingeniera social
  5. Seguridad de Redes I:
    1. Protocolos de autentificaciónn, negociaciónn de claves
    2. Casos (Kerberos, Single-sign-on, autentificación web) y aplicaciones
    3. Infraestructura: TCP, DNS, SMTP, ruteo
  6. Introducción al Diseño de Software Seguro:
    1. Atacar y parchar vs. estrategias de largo plazo: principios
    2. Anánlisis de riesgos
    3. Programación Segura, metodologías y herramientas
    4. Confinamiento
  7. Seguridad de Redes II:
    1. Ataques de denegación de servicios (DoS)
    2. Cortafuegos (o firewalls)
    3. Sistemas de detección/prevenció de intrusos (IDS/IPS)
    4. Sistemas del mundo real: IPSec, IKE, SSL.
    5. Seguridad Web
  8. Temas Misceláneos (opcionales):
    1. Votación Electrónica
    2. Sistemas de Anonimato
    3. Sistemas anti-copia (o Digital Right Management, DRM)
    4. 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

  1. Desarrollo de un software de seguridad y/o criptográfico,
  2. 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 un sistema de monitoreo (escucha) de chat, o audio, o video sobre IP (por ej. Skype, MSN Messenger, o Google talk).
  • Implementar un controlador de botnet usando P2P con mothership redundante.
  • Implementar algoritmo de broadcast asíncrono seguro. Referencia 1 o bien Referencia 2 . (2 personas).
  • Implementación de algoritmos avanzados para watermarking usando imágenes embebidas en otras imágenes.
  • 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.
  • Implementar una herramienta para monitorear emails (POP, IMAP sin SSL y web-based) en red wireless.
  • 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" (notaria) 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).
  • Escribir un estado del arte (reporte) sobre los kits para contruir phishing, virus y troyanos.
  • Implementar un servicio de detecci&ooacute;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:

  1. "Cryptography and Network Security, William Stallings, Editorial Prentice Hall; 4ta edicin (2005)
  2. "Building Secure Software: How to Avoid Security Problems the Right Way, John Viega, Gary McGraw, Editorial Addison-Wesley; 1ra edicin (2001)
  3. "A Classical Introduction to Cryptography: Applications for Communications Security, Serge Vaudenay, Editorial Springer; 1ra edicin (2005)
  4. "Firewalls and Internet Security: Repelling the Wily Hacker, William R. Cheswick, Steven M. Bellovin, Ariel D. Rubin, Editorial Addison-Wesley Professional; 2da edicin (2003)
  5. "Inside Network Perimeter Security, Stephen Northcutt, Lenny Zeltser, Scott Winters, Karen Kent, Ronald W. Ritchey, Editorial Sams; 2da edicin (2005)
  6. Josef Pieprzyk, Thomas Hardjono, Jennifer Seberry, “Foundamentals of Computer Security”, Springer, 2003
  7. Douglas Stinson, “Cryptography, Theory and Practice”, Second edition, Editorial Cgapman and Hall/CRC, 2002
  8. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC press, 1997

Última modificación: 29 de Julio 2009.