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

  1. Presentación del proyecto: Miércoles 8 de Septiembre 2010
  2. Presentación de Avance proyecto: Viernes 1 de Octubre 2010
  3. Presentación Final proyecto: Miércoles 24 de Noviembre 2010
  4. 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:

  1. 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.
  2. SSH Password authentication: Threats and Countermeasures. Dragor Research Group. Buen punto de partida para entender ataques (simples) a SSH y problemas de configuración.
  3. iPhone business security framework. Bernd Marienfeldt. Discusión acerca del modelo de seguridad de iPhone (para negocios).
  4. 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.
  5. McAfee Labs Blog. Varios seguridad, interesante.

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 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:

  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: 1 de Septiembre 2010.