Inicio

Semestre 2023-18


Nombre del curso:  Programación segura
Course Name: Secure Programming
Créditos:  4
Profesor: Martín Ochoa ETH Zurich – Juan David Guarnizo ETH Zurich
Fecha: Del 03 de Junio al 07 de Julio de 2023
Hora: 3, 10, 17 de junio – 8 a 12 AM (Virtual) | 20, 21 y 23 de junio – 6 a 9 PM (Presencial) | 24 de junio – 9 AM a 12 PM (Presencial) | 26, 28 y 30 de junio – 6 a 9 PM (Presencial) | 1 de julio – 9 AM a 12 PM (Presencial) | 4, 5 y 7 de julio – 6 PM a 9 PM (Presencial)

Programación segura

Descripción general del curso

Múltiples incidentes de impacto global relacionados con seguridad en aplicaciones han ocurrido en los últimos años. Por ejemplo, en 2021, se descubrió una vulnerabilidad en la librería de Java Apache Log4j que permitía atacantes ejecutar código remotamente en dispositivos; recordemos que Java es ejecutada sobre más de 3 mil millones de dispositivos, incluyendo servidores y IoT. Incidentes como este han demostrado la necesidad de diseñar software confiable y seguro. Por lo tanto, es importante entender los fundamentos, las soluciones existentes y los retos de esta disciplina. En este curso introduciremos propiedades fundamentales de seguridad y varias definiciones rigurosas de la literatura científica.

Introduciremos también vulnerabilidades comunes en el diseño y la implementación de aplicaciones en múltiples escenarios, tales como aplicaciones nativas, web y descentralizadas (dApps). Discutiremos los impactos de estas vulnerabilidades en relación con las propiedades formales anteriormente introducidas. Adicionalmente, presentaremos diferentes estrategias de verificación y pruebas para detectar vulnerabilidades, y discutiremos sus ventajas y limitaciones. Desarrollaremos ejercicios prácticos de laboratorio y un proyecto para entender a fondo los conceptos introducidos.

El curso cubrirá: 1) Motivación y propiedades fundamentales en la seguridad del software, 2) Flujo de información, control de acceso, seguridad en sistemas distribuidos, 3) Conceptos fundamentales de criptografía: funciones de hash, criptografía simétrica y asimétrica, 4) Principios para desarrollo seguro de software, 5) Vulnerabilidades comunes en aplicaciones Web, 6) Vulnerabilidades comunes en aplicaciones nativas, 7) Pruebas de caja negra y de caja blanca para detectar vulnerabilidades, 8) Ingeniería inversa y ofuscación, 9) Privacidad, 10) Seguridad en infraestructuras criticas, 11) Conceptos y seguridad para desarrollo de aplicaciones Web3.

Diferenciales del curso

  • Un tema de alta importancia en las empresas
  • Profesores expertos
  • Profesores que trabajan en investigación en el tema

Profesor

Martín Ochoa es investigador sénior en ETH Zurich. Anteriormente trabajó como investigador principal de seguridad en Cyxtera Technologies. Tiene un doctorado en Ciencias de la Computación de la TU Dortmund (Alemania) y títulos M.Sc. y B.Sc. en matemáticas e ingeniería de sistemas. Ha publicado más de 40 artículos científicos en Ciberseguridad. Anteriormente fue profesor de cátedra en la Universidad de los Andes, profesor asistente en la Universidad del Rosario, la Universidad de Tecnología y Diseño de Singapur, investigador postdoctoral en la TU München e investigador en Siemens.
Juan David Guarnizo Hernandez es ingeniero de sistemas egresado de la Universidad de los Llanos y magister en Seguridad de la Información de la Universidad de los Andes. En 2022, culminó sus estudios de doctorado en la Universidad de Tecnología y Diseño de Singapur (SUTD), donde realizó investigaciones principalmente en aplicaciones de tecnologías Blockchain para sistemas de seguridad en software. Actualmente, se encuentra vinculado como investigador senior en el grupo de Seguridad de la Información de la Universidad ETH de Zúrich.

Diferenciales del profesor

  • Profesores expertos en el tema, con experiencia internacional (en diferentes países).