Proyecto del curso que enseña diseño seguro

1

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!)

    
pregunta D.W. 05.09.2013 - 22:08
fuente

1 respuesta

2

Como mencionó @David, un sitio web de comercio electrónico o cualquier cosa que maneje datos "confidenciales" será un buen comienzo.

Hablemos de tu segundo requisito. Si está hablando de diseño seguro para aplicaciones web, obviamente desea apuntarlas hacia OWASP Top Ten . Si bien la lista no está completa, es un buen comienzo. Tal vez pídales a sus alumnos que lean el documento y elaboren un documento de diseño que explique cómo mitigarán cada elemento de la lista.

Tu primer requisito es un poco complicado. La revisión de código es un proceso tedioso después de todo. Si sus estudiantes tienen experiencia previa en programación y no los está calificando según la calidad del código en sí, le sugiero que adopte un enfoque completamente negro para la calificación. Haga que los estudiantes intenten atacar el código de cada uno. Respaldo mi respuesta de que la mejor manera de aprender sobre la codificación segura es que alguien la rompa. Quizás pueda pensar en dividir la calificación en tres componentes. El primer componente será el documento de diseño inicial que detalla el análisis del modelo de amenaza por parte del alumno, así como las contramedidas propuestas. El segundo componente será el informe de la "prueba de penetración" contra el código de un par. Esto puede ser un ataque de caja negra o un análisis de código. El tercer componente será un informe que detalle cómo los estudiantes solucionan las fallas encontradas en el código.

De esta manera, sus estudiantes pueden experimentar todo el proceso de desarrollo seguro, hasta solucionar cualquier error que ocurra.

    
respondido por el Ayrx 06.09.2013 - 03:10
fuente

Lea otras preguntas en las etiquetas