SOFTWARE ENGINEERING FOR SECURE CLOUD SYSTEMS

Carmine GRAVINO SOFTWARE ENGINEERING FOR SECURE CLOUD SYSTEMS

0522700004
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
SICUREZZA INFORMATICA E TECNOLOGIE CLOUD
2023/2024

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2023
SECONDO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
324LABORATORIO
Obiettivi
L’OBIETTIVO DELL’INSEGNAMENTO È QUELLO DI FORNIRE METODI E TECNICHE PER LA PROGETTAZIONE E L’IMPLEMENTAZIONE DI UNA PIPELINE DI SVILUPPO SICURA PARTENDO DALLA FASE DI ANALISI DEI REQUISITI, CON UN FOCUS SUI REQUISITI DI SICUREZZA INFORMATICA, PER POI PASSARE ALLO SVILUPPO SICURO, IL TESTING DI SICUREZZA IN MODO DA COPRIRE TUTTO IL CICLO DI VITA DI APPLICAZIONI SICURE IN AMBIENTI DI CLOUD COMPUTING.


CONOSCENZA E CAPACITÀ DI COMPRENSIONE
DOPO AVER COMPLETATO IL CORSO, LO STUDENTE DISPORRÀ DI CONOSCENZE E CAPACITÀ DI COMPRENSIONE IN MERITO A
METODI E TECNICHE DELL’INGEGNERIA DEL SOFTWARE PER LA REALIZZAZIONE DI SOFTWARE AFFIDABILE E SICURO (GESTIONE DI PIPELINE DI SVILUPPO SECURE-AWARE, ESTRAZIONE DI REQUISITI, SECURITY BY DESIGN, TESTING, IDENTIFICAZIONE E RIMOZIONE DI VULNERABILITÀ SOFTWARE;
TECNICHE DI ANALISI E VERIFICA DEL SOFTWARE;
PRINCIPI E PRATICHE DELLA PROGRAMMAZIONE SICURA;
METODI E TECNICHE PER LA SICUREZZA NELLE BASI DI DATI E NELLE ARCHITETTURE A MICROSERVIZI;
CONCETTI FONDAMENTALI DEL PENETRATION TESTING E DELL’ETHICAL HACKING, METODOLOGIE, TECNICHE E STRUMENTI PER LA GESTIONE DI PROCESSI DI PENETRATION TESTING;
ARCHITETTURE DEI SISTEMI DISTRIBUITI PER IL CLOUD, CLOUD REFERENCE ARCHITECTURES, MODELLI DI DELIVERY, MODELLI DI DEPLOYMENT;
SHARED RESPONSABILITY IN CIASCUNO DEI MODELLI DI DELIVERY (IAAS, PAAS, SAAS, FAAS) E DI DEPLOYMENT (PUBLIC, PRIVATE, HYBRID).


CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
DOPO AVER COMPLETATO CON SUCCESSO IL CORSO, LO STUDENTE SARÀ IN GRADO DI
UTILIZZARE METODI E TECNICHE DELL’INGEGNERIA DEL SOFTWARE PER LA REALIZZAZIONE, MONITORAGGIO E COLLAUDO DI SOFTWARE AFFIDABILE E SICURO (SECURITY BY DESIGN, DECSECOPS, TESTING,…);
REALIZZARE SISTEMI CON ARCHITETTURE A MICROSERVIZI CHE RISPETTINO STANDARD DI SICUREZZA;
UTILIZZARE LE TECNICHE DI ANALISI E VERIFICA DEL SOFTWARE PIÙ APPROPRIATE RISPETTO AL SOFTWARE DA ANALIZZARE;
REALIZZARE SOFTWARE SICURO EVITANDO VULNERABILITÀ E SFRUTTANDO LE CARATTERISTICHE DI SICUREZZA FORNITE DALLE LIBRERIE; SPECIFICARE E RAFFORZARE LE POLITICHE DI SICUREZZA STATICAMENTE E DINAMICAMENTE;
IDENTIFICARE LE PRINCIPALI VULNERABILITÀ DEI SISTEMI IN RETE, RICONOSCERE I MECCANISMI DI ATTACCO E DI DIFESA E LE OPPORTUNE STRATEGIE PROTEZIONE, APPLICANDO LE STESSE PER DISEGNARE E VALUTARE CONTROMISURE ED ARCHITETTURE SICURE; VALUTARE LA SICUREZZA DI SISTEMI COMPLESSI IN RETE;
ESEGUIRE PENETRATION TEST CONFORMI AGLI STANDARD INTERNAZIONALI;
PROGETTARE SISTEMI DISTRIBUITI SU CLOUD, VALUTANDONE LE PRESTAZIONI, CONFIGURANDO LE SPECIFICHE, SVILUPPARE APPLICAZIONI IN AMBITO CONCORRENTE E PARALLELO;
SAPER INDIVIDUARE L’ADEGUATA ARCHITETTURA DEI SISTEMI DISTRIBUITI PER IL CLOUD.


AUTONOMIA DI GIUDIZIO
DOPO AVER COMPLETATO CON SUCCESSO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
COMUNICARE IN MODO CHIARO ED EFFICACE, IN FORMA SCRITTA E ORALE, PER TRASMETTERE CONOSCENZE, IDEE, PROBLEMI, SOLUZIONI E LA RATIO AD ESSE SOTTESE, ADEGUANDO LE MODALITÀ DI ESPRESSIONE ALLE CARATTERISTICHE CULTURALI E PROFESSIONALI DEI DESTINATARI DELLA COMUNICAZIONE;
UTILIZZARE EFFICACEMENTE STRUMENTI DI COMUNICAZIONE MULTIMEDIALI;
COMUNICARE IN ITALIANO E IN INGLESE CON TECNICI ED ESPERTI CON PROPRIETÀ DI LINGUAGGIO E MOSTRANDO PADRONANZA DELLA TERMINOLOGIA TECNICA;
COMPRENDERE ED ELABORARE TESTI TECNICI IN LINGUA INGLESE DI MEDIA DIFFICOLTÀ;
LAVORARE IN GRUPPO CON ADEGUATE CAPACITÀ RELAZIONALI E DECISIONALI;
RELAZIONARE SULLA PROPRIA ATTIVITÀ LAVORATIVA.


ABILITÀ COMUNICATIVE
DOPO AVER COMPLETATO CON SUCCESSO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
RAGIONARE CRITICAMENTE E PORRE IN DISCUSSIONE SCELTE PROGETTUALI E IMPLEMENTATIVE;
SVILUPPARE RAGIONAMENTI E RIFLESSIONI AUTONOME E INDIPENDENTI;
COMPRENDERE LA RILEVANZA DI UNA PLURALITÀ DI PUNTI DI VISTA E DI APPROCCI ALTERNATIVI;
VALUTARE CRITICAMENTE ASPETTI POSITIVI E NEGATIVI DI SOLUZIONI ALTERNATIVE, PRENDENDO IN CONSIDERAZIONE QUALITÀ E COST/EFFECTIVENESS;
STABILIRE UN ORDINE DI PRIORITÀ AD OBIETTIVI SPESSO CONTRASTANTI;
PRENDERE DECISIONI INCLUDENDO LA RIFLESSIONE SULLE RESPONSABILITÀ SOCIALI ED ETICHE CONNESSE CON L'OPERATIVITÀ DI TALI SOLUZIONI AL FINE DI UTILIZZARE LE TECNICHE DI ATTACCO APPRESE SOLO AL FINE DI MIGLIORARE IL LIVELLO DI SICUREZZA INFORMATICA DI UNA ORGANIZZAZIONE;
LAVORARE CON UN ALTO GRADO DI AUTONOMIA;
PIANIFICARE LA RACCOLTA DI DATI APPROPRIATA PER GLI OBIETTIVI PROPOSTI E INTERPRETARE CRITICAMENTE I DATI RACCOLTI PER DERIVARNE GIUDIZI AUTONOMI SUFFRAGATI DA ANALISI OGGETTIVE E QUANTITATIVE.


CAPACITÀ DI APPRENDIMENTO
DOPO AVER COMPLETATO CON SUCCESSO IL CORSO, LO STUDENTE SARÀ IN GRADO DI:
ORGANIZZARE LE PROPRIE IDEE IN MANIERA CRITICA E SISTEMATICA;
RIFLETTERE SULLA PROPRIA ESPERIENZA DI APPRENDIMENTO E DI ADATTARLA IN RISPOSTA A SUGGERIMENTI E STIMOLI ESTERNI;
RICONOSCERE LA NECESSITÀ DI ULTERIORI STUDI E DI ATTIVITÀ AGGIUNTIVE DI RICERCA.
Prerequisiti
GLI STUDENTI DEVONO AVERE CONOSCENZA PREGRESSA DEI CONCETTI DI BASE DI INGEGNERIA DEL SOFTWARE, IN PARTICOLARE DEI MODELLI DI SVILUPPO SOFTWARE E DEL TESTING DI SISTEMI SOFTWARE.
Contenuti
I CONTENUTI DELL’INSEGNAMENTO SONO ARTICOLATI IN TRE MODULI FORMATIVI.

M1: INGEGNERIA DEL SOFTWARE SICURA (14H DI LEZIONI FRONTALI)
IL PRIMO MODULO INTRODUCE LO STUDENTE AI CICLI DI VITA DI SVILUPPO SOFTWARE CHE INCLUDANO PRATICHE DI SICUREZZA.
- INTRODUZIONE AL CORSO (2 ORE DI LEZIONE FRONTALE)
- MODELLI DI CICLO DI VITA CON SICUREZZA (4 ORE DI LEZIONE FRONTALE)
- INGEGNERIA DEI REQUISITI SICURI (4 ORE DI LEZIONE FRONTALE)
- MODELLAZIONE DELLE MINACCE (2 ORE DI LEZIONE FRONTALE)
- GESTIONE DEL RISCHIO E PIANIFICAZIONE DEI TEST (2 ORE DI LEZIONE FRONTALE)

M2: DEVSECOPS (20H DI LEZIONI FRONTALI E 12H DI LABORATORIO)
IL SECONDO MODULO INTRODUCE LO STUDENTE ALLE PRATICHE DI SVILUPPO SOFTWARE CONNESSE DEVSECOPS PER LO PER LO SVILUPPO DI APPLICAZIONI SICURE IN AMBIENTI DI CLOUD COMPUTING.
- DEVOPS (6 ORE DI LEZIONE FRONTALE)
- SOFTWARE TESTING AND TEST DRIVEN DEVELOPMENT (2 ORE DI LEZIONE FRONTALE E 2 ORE DI LABORATORIO)
- PROGETTAZIONE E SELEZIONE DI CASI DI TEST (2 ORE DI LEZIONE FRONTALE)
- TECNICHE DI ANALISI STATICA E DINAMICA PER LA SICUREZZA DI APPLICAZIONI A MICROSERVIZI (4 ORE DI LEZIONE FRONTALI E 4 ORE DI LABORATORIO)
- CONTINUOUS INTEGRATION & TESTING (2 ORE DI LEZIONE FRONTALE E 2 ORE DI LABORATORIO)
- CONTINUOUS DELIVERY & DEPLOYMENT (2 ORE DI LEZIONE FRONTALE E 2 ORE DI LABORATORIO ORE DI LABORATORIO)
- SECURE DEVOPS (2 ORE DI LEZIONE FRONTALE)

M3: PROGRAMMAZIONE SICURA (14H DI LEZIONI FRONTALI E 12H DI LABORATORIO)
IL TERZO MODULO INTRODUCE LO STUDENTE A PRATICHE DI PROGRAMMAZIONE SICURA:
- VULNERABILITÀ SOFTWARE E TESTING DI PENETRAZIONE (2 ORE DI LEZIONE FRONTALE)
- ISPEZIONE E REVISIONE DEL CODICE (2 ORE DI LEZIONE FRONTALE E 2 ORE DI LABORATORIO)
- METODI LOCALI PER INIETTARE VULNERABILITÀ DEL SOFTWARE (4 ORE DI LEZIONE FRONTALE E 4 ORE DI LABORATORIO)
- METODI REMOTI PER INIETTARE VULNERABILITÀ SOFTWARE (4 ORE DI LEZIONE FRONTALE E 4 ORE DI LABORATORIO)
- DOCUMENTAZIONE DEL TEST DI PENETRAZIONE (2 ORE DI LEZIONE FRONTALE E 2 ORE DI LABORATORIO)
Metodi Didattici
LA PARTE TEORICA DELL'INSEGNAMENTO VIENE SVILUPPATA CON LEZIONI FRONTALI IN AULA (6 CFU, 48 ORE) A CARATTERE TEORICO/METODOLOGICO PER IL TRASFERIMENTO DELLE CONOSCENZE RICHIESTE E DEGLI STRUMENTI NECESSARI PER LE ATTIVITÀ PROGETTUALI.
LA PARTE PRATICA VIENE SVOLTA IN LABORATORIO CON SPERIMENTAZIONE DELLE TECNICHE E DEI CONCETTI PRESENTATI NELLA PARTE TEORICA (3 CFU, 24 ORE).
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL'INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE LA REALIZZAZIONE DI UN PROGETTO INDIVIDUALE O DI GRUPPO E LA CONSEGNA DELLA RELATIVA DOCUMENTAZIONE E UNA PROVA ORALE.
LA CONSEGNA DELLA DOCUMENTAZIONE DEL PROGETTO DI GRUPPO È PROPEDEUTICA ALLA PROVA ORALE.
Testi
SECURING DEVOPS
BY JULIEN VEHENT
RELEASED AUGUST 2018
PUBLISHER(S): MANNING PUBLICATIONS
ISBN: 9781617294136

SOFTWARE SECURITY: BUILDING SECURITY IN
BY GARY MCGRAW
RELEASED JANUARY 2006
PUBLISHER(S): ADDISON-WESLEY PROFESSIONAL
ISBN: 9780321356703
Altre Informazioni
LA FREQUENZA AL CORSO NON È OBBLIGATORIA MA FORTEMENTE CONSIGLIATA. GLI STUDENTI DOVRANNO ESSERE PREPARATI AD AFFRONTARE ATTIVAMENTE IL CORSO, TRAMITE INTERAZIONE CON IL DOCENTE IN AULA E LA FORMAZIONE INDIVIDUALE. IL CORSO PREVEDE UNA FORTE PREDISPOSIZIONE ALL’APPRENDIMENTO DI STRUMENTI SOFTWARE PER LO SVILUPPO DI MODULI SICURI SOFTWARE.

CONTATTI:
GRAVINO@UNISA.IT
DDINUCCI@UNISA.IT
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-05]