Consegna dell'attività di laboratorio

Il termine per la consegna del report finale è fissata per il 29 Maggio 2020, ore 23.59.

Descrizione generale

Il laboratorio di sicurezza consiste nel completare alcuni esercizi che saranno assegnati durante il corso e produrre, entro la fine del semestre, un report che testimonia il loro svolgimento.

Caratteristiche generali degli esercizi:

  • richiedono l'uso delle tecnologie spiegate a lezione e di appositi strumenti che saranno indicati di volta in volta.
  • richiedono l'utilizzo del Security Lab. Una guida per importare la macchina virtuale in virtual box è disponibile al seguente indirizzo. La password per accedere alla macchina virtuale è securitylab.
  • non richiedono la scrittura di codice.
  • in alcuni casi, richiedono l'interazione via mail con il tutor del laboratorio. Al fine di semplificare l'interazione si consiglia di configurare l'agente di posta installato sulla macchina virtuale (Mozilla Thunderbird) per ricevere/inviare mail dall'account studio.unibo.it. Attenzione: Nel fare questo configurare il client secondo la configurazione indicata dal CESIA a questo indirizzo (non usare la configurazione suggerita da Thunderbird).
  • possono essere svolti in remoto e in qualunque momento del corso, entro la data di consegna.

Il report finale

Il report finale è un file PDF da spedire via mail entro il 29 Maggio 2020, ore 23:59. Regole relative alla consegna di laboratorio:

  • il file PDF deve essere spedito da un indirizzo del dominio studio.unibo.it all'indirizzo email labsicurezza@cs.unibo.it in una mail con
    • Subject [Laboratorio Sicurezza 2019/2020: Report] <cognome> <nome> <numero di matricola>
    • Body vuoto
    • Report allegato come file PDF di nome <numero_di_matricola>-report-finale.pdf
    Non si fanno eccezioni.
  • Non si possono sostenere prove di laboratorio dopo il termine di consegna del report finale, nonostante l'orale sarà sostenuto negli appelli estivi, autunnali o invernali.
  • Ogni file è associato ad un solo studente. Non si possono svolgere esercizi in gruppo.

Valutazione dell'attività di laboratorio

Il voto della prova di laboratorio sarà determinato dal numero di esercitazioni svolte correttamente. Tale voto vale il 60% del voto complessivo, secondo le regole generali del corso.

Ogni esercitazione può essere svolta correttamente o meno: non ci sono valutazioni intermedie.

I risultati possono essere consultati su questa pagina, che sarà aggiornata man mano che si correggono i report di consegna.

Dopo la consegna, gli studenti sono quindi invitati a consultare la pagina dei risultati e, in caso di dubbi, contattare il tutor del corso (labsicurezza@cs.unibo.it) con un ragionevole margine rispetto al termine ultimo di consegna.

Esercitazioni da svolgere durante il corso

1. Crittografia Simmetrica.

L'esercizio consiste nello scambio di una chiave segreta con il tutor per iniziare uno scambio di messaggi cifrati. In particolare, lo studente deve:

  • Creare una chiave segreta:
  • Scambiare la chiave segreta con il tutor:
  • Decifrare il messaggio ricevuto dal tutor e cifrato con algorimto Triple-DES con la chiave segreta.
  • Cifrare il messaggio con un algoritmo AES-256 .
  • Inviare il messaggio cifrato al tutor

Per svolgere l'esercitazione lo studente deve utilizzare il Security Lab, cioè:

  • Collegarsi tramite la macchina virtuale alla pagina http://localhost/esercitazione1/index.php e compilare la form con i seguenti dati:
    • le credenziali studio.unibo.it (servono esclusivamente per ottenere l'autorizzazione ad inviare la mail al tutor con il vostro utente);
    • nome e cognome;
    • chiave segreta.
  • Decifrare con OpenSSL il messaggio inviato dal tutor per email. Il messaggio è cifrato con Triple-DES + Salting
  • Cifrare con OpenSSL il messaggio appena decifrato. Il messaggio va cifrato dallo studente con AES-256 + Salting
  • Inviare il messaggio al tutor utilizzando la form che compare nel passo successivo utilizzando il sistema
  • Inserire nel report le email ricevute dal sistema comprensive degli header. I binari degli attachment non vanno inseriti nel report. Se nel report non ci sarà una copia della mail comprensiva di header, l'esercitazione non sarà considerata superata.

2. Certificati

Scopo di questa esercitazione di verificare che lo studente sappia utilizzare alcune delle funzionalità dei certificati. In particolare, l'esercitazione vuole verificare se lo studente in grado di creare un certificato e di scambiare mail cifrate e firmate. Come svolgere l'esercizio:

  • Lo studente crea il proprio certificato Free Secure Email tramite il servizio di Actalis e lo importa sul proprio client di posta.
    • Il certificato deve essere associato all'indirizzo di posta del dominio studio.unibo.it.
  • Lo studente invia quindi una mail firmata (ma non cifrata) con il proprio certificato al tutor del corso: Luigi Asprino (luigi.asprino@unibo.it).
    • Il subject della mail deve essere [Laboratorio Sicurezza: Esercitazione 2]: Mail firmata da COGNOME NOME MATRICOLA, dove COGNOME, NOME e MATRICOLA sono rispettivamente il cognome, il nome ed il numero di matricola dello studente.
    • Se lo studente utilizza un subject diverso, la mail potrebbe non essere presa in considerazione.
  • Entro i 10 giorni successivi alla data in cui ha ricevuto la mail firmata, il tutor invia allo studente una mail firmata con il proprio certificato Free Secure Email tramite il servizio di Actalis e cifrata per lo studente.
    • Il contenuto di questa mail cambia da studente a studente. E' una sequenza casuale di caratteri.
    • La mail inviata dal tutor in risposta alla mail firmata dallo studente. Dunque, il subject contiene (ma non detto che sia identico a) il subject della mail firmata inviata dallo studente (vedi sopra).
  • Lo studente deve quindi essere in grado di decifrare la mail ricevuta dal tutor.
  • Lo studente supera la prova se nel report di consegna finale indica il messaggio (decifrato) spedito dal tutor.

Una sintesi dell'esercitazione è disponibile sul Security Lab al seguente indirizzo http://localhost/esercitazione2/index.php

3. GPG

Scopo di questa esercitazione è verificare che lo studente sappia usare alcune delle funzionalità di GPG.

In particolare, l'esercitazione vuole verificare se lo studente riesce a leggere un messaggio cifrato e firmato dal tutor del corso.

L'esercitazione consiste nel:

  • Creare coppie di chiavi GPG
  • L'esercitazione va svolta utilizzando il Security Lab
  • L'esercitazione è disponibile all'indirizzo http://localhost/esercitazione3/index.php
  • Caricare la propria chiave pubblica sul sistema
  • Ricevere via mail la chiave pubblica del tutor ed un file di testo firmato e cifrato (con la chiave pubblica appena caricata). Il contenuto del file di testo viene generato casualmente per ogni studente.
  • Decifrare il contenuto del file di testo (dopo aver importato le chiavi nel proprio keyring).

L'esercitazione è considerata superata se il report di consegna riporta tale contenuto decifrato.

4. OTPW

Lo scopo di questa esercitazione è verificare che lo studente sia in grado di utilizzare un sistema con autenticazione one-time-password OTPW.

Come svolgere l'esercizio:

  • Lo studente si collega a http://localhost/esercitazione4/index.php dalla propria macchina virtuale e compila la form.
  • In risposta, lo studente riceve all'indirizzo specificato (del dominio studio.unibo.it) una mail di conferma contenente uno username e una password generati casualmente.
  • Lo studente configura la macchina virtuale per accedere con questi dati usando SSH e OTPW. In particolare aggiunge l'utente specificato nell'email, e per tale utente genera le one-time password usando come prefisso la password inviata via mail
  • Lo studente avvia il server e si autentica usando i dati ricevuti via mail. In particolare:
    • accede al server con un client testuale (SSH), e si logga usando lo username ricevuto nella mail di conferma;
    • riceve dal server una challenge;
    • usa la password one time per autiticarsi per autenticarsi.
  • La prova si considera superata se nella relazione finale lo studente riporta correttamente:
    • una copia del body della mail ricevuta;
    • i log del server che dimostrano la riuscita autenticazione OTPW;
    • uno screenshot relativo all'autenticazione challenge-response via terminale;
    • il response usato per accedere al server.

5. Firewall

Lo scopo di questa esercitazione è verificare che lo studente sia in grado di configurare e usare un firewall basato su regole di packet filtering.

Descrizione generale:

  • Lo studente si collega a http://localhost/esercitazione5/index.php e compila la form.
  • In risposta, lo studente riceve all'indirizzo specificato (del dominio studio.unibo.it) una mail di conferma contenente una coppia di indirizzi IP di macchine del dipartimento (che chiameremo A e B);
  • Configura il firewall basato su regole di packet fitering del tool iptables del framework netfilter per far passare le richieste ICMP alla macchina A e bloccare quelle destinate alla macchina B;
  • Esegue due richieste ICMP alle due macchine e verifica che il firewall funzioni;
  • Inserisce nel report:
    • uno screenshot con con timestamp del packet sniffer wireshark che mostra i pacchetti ICMP spediti;
    • i log con timestamp del firewall che riportano sia i pacchetti scartati che quelli accettati;
    • le regole di configurazione del firewall.