Progetto di corso che insegna design sicuro

1

Sto cercando un progetto di classe che (1) sia scalabile per classi grandi e (2) insegna design sicuro. Questo è per un corso di laurea in sicurezza informatica. Spero che sarebbe educativo e divertente per gli studenti.

  • Il primo requisito è che la valutazione del progetto di classe debba essere scalabile . Il corso ha 300-400 studenti universitari. Ci sono alcune risorse per la valutazione dei progetti dei corsi, ma non molto, quindi qualsiasi progetto di corso deve essere qualcosa che può essere valutato su larga scala.

    Le risorse disponibili per la scala di valutazione in modo lineare con il numero di studenti che frequentano il corso: approssimativamente, il budget per la valutazione di un progetto di corso è di 10-15 minuti da un assistente (per studente al corso), più 20-30 minuti da un selezionatore meno esperto (per laurea nel corso). Gli assistenti di insegnamento sono abbastanza informati sulla sicurezza (in genere uno studente di dottorato che sta facendo attivamente ricerche sulla sicurezza dei computer); i selezionatori, molto meno (tipicamente uno studente che ha precedentemente frequentato il corso sulla sicurezza informatica, ma non ha altra esperienza o conoscenza).

    Naturalmente, se il progetto è un progetto di gruppo con studenti N per gruppo, le risorse disponibili per valutare ciascun progetto sono aumentate di un fattore N . Tuttavia, per motivi pratici, N probabilmente non può essere maggiore di 3 o 4.

    I requisiti di scalabilità escludono molti potenziali progetti che altrimenti sarebbero molto interessanti. Per esempio, se la valutazione del progetto richiede un esperto assistente di insegnamento per leggere un migliaio di righe di codice per studente che segue il corso, allora non è fattibile. Se ciò comporta la lettura di un documento di progettazione di 5-10 pagine e l'esecuzione di un'analisi delle minacce dell'architettura di sistema, potrebbe anche essere difficile.

  • Il secondo requisito è che il progetto di classe dovrebbe insegnare design sicuro . È facile creare progetti di corso in cui gli studenti cercano di attaccare un sistema (ad esempio, trovare vulnerabilità in un'applicazione Web, sfruttare un sovraccarico del buffer, ecc.); Ho un sacco di progetti fantastici di questo tipo. Ma mi piacerebbe anche che gli studenti acquisissero esperienza nella progettazione di sistemi sicuri, ad esempio, dove iniziamo da alcuni requisiti e devono pensare attraverso le opzioni, scegliere un'architettura di sistema o un approccio progettuale e costruirlo.

Questi due requisiti sono in tensione. Un buon design è difficile da valutare; ci vuole tempo per analizzare un progetto proposto e determinare se è buono o meno buono. Ciò rende non banale la realizzazione di un progetto di corso che consente agli studenti di praticare un design sicuro e dove può essere valutato in modo significativo su larga scala. Ho esaminato i progetti del corso da una serie di altri corsi universitari sulla sicurezza dei computer e ho trovato molti progetti scalabili o che insegnano design sicuro, ma non ne ho trovato nessuno che lo faccia contemporaneamente.

Quale sarebbe un progetto di corso che soddisfa questi requisiti?

(Contesto: ho la fortuna di avere un gruppo eccezionale di studenti: gli studenti sono sofisticati, intelligenti e non hanno paura di lavorare sodo, sono tipicamente laureati in informatica al loro 3 ° o 4 ° anno di college. ci sono tutti perché vogliono essere lì, il corso è un corso elettivo, non obbligatorio. Va bene per il progetto coinvolgere la progettazione e / o l'implementazione di qualcosa di non banale.Se il progetto è rilevante per l'industria o la loro futura carriera, tanto meglio!)

    
posta D.W. 05.09.2013 - 22:08
fonte

1 risposta

2

Come menzionato @David, un sito di e-commerce o qualsiasi cosa che gestisca dati "sensibili" sarà un buon inizio.

Parliamo del tuo secondo requisito. Se stai parlando di un design sicuro per le applicazioni web, ovviamente vorresti indirizzarlo verso OWASP Top Ten . Mentre la lista non è quasi completa, è un buon inizio. Forse chiedi ai tuoi studenti di leggerlo e di trovare un documento di progettazione che spieghi come mitigano ciascun elemento nell'elenco.

Il tuo primo requisito è un po 'complicato. La revisione del codice è un processo noioso dopo tutto. Se i tuoi studenti hanno una precedente esperienza di programmazione e non li stai classificando sulla qualità del codice stesso, suggerisco di adottare un approccio completamente nero alla valutazione. Chiedi agli studenti di provare a attaccare il codice degli altri. Resto dalla mia risposta che il modo migliore per conoscere la codifica sicura è che qualcuno lo infrange. Forse puoi pensare a dividere la valutazione in tre componenti. Il primo componente sarà il documento di progettazione iniziale che descrive in dettaglio l'analisi del modello di minaccia da parte dello studente e le contromisure proposte. Il secondo componente sarà la relazione del "test di penetrazione" contro il codice di un pari. Questo può essere un black box o un'analisi del codice. Il terzo componente sarà un rapporto che spiega come gli studenti correggono i difetti riscontrati nel codice.

In questo modo, i tuoi studenti sperimenteranno l'intero processo di sviluppo sicuro, fino a correggere eventuali bug che si verificano.

    
risposta data 06.09.2013 - 03:10
fonte

Leggi altre domande sui tag