Estoy buscando un proyecto de clase que (1) sea escalable a clases grandes, y (2) enseñe diseño seguro. Esto es para un curso de pregrado en seguridad informática. Con suerte, sería educativo y divertido para los estudiantes.
-
El primer requisito es que la calificación del proyecto de clase debe ser escalable . El curso cuenta con 300-400 estudiantes de pregrado. Hay algunos recursos para calificar los proyectos del curso, pero no muchos, por lo que cualquier proyecto del curso debe ser algo que se pueda calificar a escala.
Los recursos disponibles para calificar escalan de manera lineal con la cantidad de estudiantes que toman el curso: en términos generales, el presupuesto para calificar un proyecto del curso es de 10 a 15 minutos de un asistente de enseñanza (por graduado en el curso), más 20-30 minutos de un graduador con menos experiencia (por grado en el curso). Los asistentes de enseñanza tienen bastante conocimiento sobre seguridad (por lo general, un estudiante de doctorado que está haciendo una investigación activa en seguridad informática); los graduadores, y mucho menos (por lo general, un estudiante universitario que previamente tomó el curso de seguridad informática, pero no tiene otra experiencia o conocimiento).
Por supuesto, si el proyecto es un proyecto grupal con N estudiantes por grupo, los recursos disponibles para calificar cada proyecto se incrementan en un factor de N . Sin embargo, por razones prácticas, N probablemente no puede ser mayor que 3 o 4.
Los requisitos de escalabilidad excluyen muchos proyectos potenciales que de otra manera serían muy interesantes. Por ejemplo, si la calificación del proyecto requiere que un asistente de enseñanza con experiencia lea mil líneas de código por estudiante que cursa el curso, eso simplemente no es posible. Si se trata de leer un documento de diseño de 5 a 10 páginas y hacer un análisis de amenazas de la arquitectura del sistema, también podría ser difícil.
-
El segundo requisito es que el proyecto de la clase debe enseñar diseño seguro . Es fácil crear proyectos de cursos en los que los estudiantes intenten atacar algún sistema (por ejemplo, encontrar vulnerabilidades en una aplicación web, explotar un exceso de búfer, etc.); Tengo un montón de proyectos impresionantes de ese tipo. Pero también me gustaría que los estudiantes adquieran experiencia en el diseño de sistemas seguros, por ejemplo, donde partimos de algunos requisitos y tienen que pensar en las opciones, elegir una arquitectura de sistema o un enfoque de diseño, y construirlo.
Estos dos requisitos están en tensión. El buen diseño es difícil de evaluar; lleva tiempo analizar un diseño propuesto y determinar si es bueno o no tan bueno. Eso hace que no sea tan trivial elaborar un proyecto de curso que permita a los estudiantes practicar un diseño seguro, y donde se pueda calificar de manera significativa a escala. He examinado proyectos de cursos de otros cursos de licenciatura en seguridad informática y he encontrado muchos proyectos que son escalables o que enseñan diseño seguro, pero no he encontrado ninguno que haga ambos al mismo tiempo.
¿Qué sería un proyecto de curso que cumpla con estos requisitos?
(Antecedentes: Tengo la suerte de tener un grupo sobresaliente de estudiantes. Los estudiantes son sofisticados, inteligentes y no tienen miedo de trabajar duro. Normalmente son estudiantes de ciencias de la computación en su 3º o 4º año de universidad. está todo allí porque quieren estar allí; el curso es optativo, no obligatorio. Está bien que el proyecto implique diseñar y / o implementar algo no trivial. Si el proyecto es relevante para la industria o su futura carrera, ¡tanto mejor!)