Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W001247] - SOFTWARE CYBERSECURITYSOFTWARE CYBERSECURITY
Luca SPALAZZI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM12] INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE Master Degree (2 years) - [IM12] COMPUTER AND AUTOMATION ENGINEERING
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 1 - Secondo Semestre
Anno offertaAcademic year: 2019-2020
Anno regolamentoAnno regolamento: 2019-2020
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

ITALIANO

Italian


PREREQUISITI PREREQUISITES

Progettazione e sviluppo di software, in particolare utilizzando il paradigma orientato agli oggetti.

Software design and development, specially using the object-oriented paradigm.


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Lezioni di teoria: 52 ore
Esercizi: 20 ore

Theory: 52 hours
Exercises: 20 hours


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L'insegnamento permette agli studenti di acquisire conoscenze e competenze sulla sicurezza informatica, con particolare riferimento alla sicurezza del software fin dalla sua progettazione e realizzazione. Questo approccio comporta l’acquisizione di conoscenze e competenze sui requisiti di sicurezza, le possibili minacce e le principali tecniche di difesa che possono essere adottate da un software, sia da un punto di vista teorico che pratico.
Tali conoscenze, integrando le nozioni acquisite nell'insegnamento di Project Management per l'ICT, costituiranno degli approfondimenti che dovranno arricchire la conoscenza del settore della progettazione del software, in modo che lo studente acquisisca una chiara consapevolezza delle opportunità e dei rischi che le più attuali tecnologie offrono.


Capacità di applicare conoscenze e comprensione.

Al fine di affrontare tematiche progettuali avanzate, anche di notevole complessità, e curare l'innovazione e lo sviluppo di nuovi sistemi software attraverso l'applicazione delle conoscenze, lo studente dovrà saper applicare correttamente le più attuali metodologie e tecnologie relative alla sicurezza del software. Tale capacità si estrinsecherà attraverso una serie di abilità professionalizzanti, quali:
1. la capacità di progettare un software tenendo in considerazione requisiti di sicurezza;
2. la capacità di realizzare un software tenendo in considerazione i principi di programmazione sicura;
3. la capacità di valutare e utilizzare gli strumenti di difesa più appropriati.


Competenze trasversali.

Il lavorare in gruppo alla risoluzione di un problema e la stesura della relativa relazione contribuiranno a migliorare sia il grado di autonomia di giudizio in generale, sia la capacità comunicativa (che deriva anche dal lavoro in gruppo), sia la capacità di apprendimento in autonomia e di trarre conclusioni dello studente.


Knowledge and Understanding.

The course allows students to acquire knowledge and skills on cybersecurity, with particular regard to software security since its design and implementation. This approach involves the acquisition of knowledge and skills on security requirements, possible threats and the main defense techniques that can be adopted by software,, both from a theoretical and practical point of view.
This knowledge, integrating the notions acquired throughout the course of “Project Management for ICT", will constitute in-depth studies that will enrich the knowledge of the software design, so that the student gains a clear awareness of the opportunities and risks that the most current technologies offer.


Capacity to apply Knowledge and Understanding.

In order to face advanced design issues, even of considerable complexity, and to take care of innovation and the development of new software systems through the application of knowledge, the student must be able to correctly apply the most recent methodologies and technologies related to software security. This ability will be expressed through a number of professional skills, such as:
1. the ability to design software taking into account security requirements;
2. the ability to implement software taking into account the principles of secure programming;
3. the ability to evaluate and use the most appropriate defense tools.


Transversal Skills.

Working in team to solve a problem and writing the related report will improve the independence of judgment in general, the communication ability (also stemming from teamwork), and the ability to autonomously learn and draw conclusions of the student.



PROGRAMMA PROGRAM

Lezioni di teoria
- Unità 1 - Introduzione alla sicurezza informatica
- Unità 2 - Teoria della sicurezza del software: modellazione formale del software e dei suoi requisiti di sicurezza
- Unità 3 - Teoria della sicurezza del software: modellazione formale delle tecniche di difesa e di intrusione
- Unità 4 - Pratica della sicurezza del software: ingegneria sicura del software
- Unità 5 - Pratica della sicurezza del software: programmazione sicura

Esercitazioni pratiche
- Unità 2 e 3: Usare Prism per verificare le specifiche di sicurezza di un software
- Unità 5: Usare AspectJ per realizzare un monitor in Java
- Unità 5: Usare la crittografia in Java

Theory
- Unit 1 – Introduction to cybersecurity
- Unit 2 – Theoretical Software Security: Formal modeling of Software and its Security Requirements
- Unit 3 – Theoretical Software Security: Formal modeling of Defense and Intrusion Techniques
- Unit 4 – Practical Software Security: Secure Software Engineering
- Unit 5 – Practical Software Security: Secure Programming

Practice
- Units 2 and 3: Use Prism to verify the security specifications of a software -
- Unit 5: Use AspectJ to build a monitor in Java
- Unit 5: Use encryption in Java


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

La valutazione dell'apprendimento è suddivisa in due parti:
1) prova orale individuale - discussione su due argomenti trattati nel corso.
2) progetto di gruppo - un gruppo di quattro o cinque studenti deve progettare un sistema concordato con il docente e fare una presentazione del lavoro svolto.


Criteri di valutazione dell'apprendimento.

1) Prova orale individuale - lo studente deve dimostrare di aver ben compreso i metodi, le tecniche e la teoria della sicurezza del software.
2) Progetto di gruppo: il gruppo deve dimostrare di essere in grado di applicare tali metodi e tecniche alla realizzazione di un sistema e di saper redigere una relazione tecnica.


Criteri di misurazione dell'apprendimento.

1) Prova orale - per ogni argomento viene assegnato un punteggio compreso tra zero e dieci. Il voto finale della parte orale è dato dalla media.
2) Progetto di gruppo - viene valutata la completezza e correttezza della relazione (fino a 20 punti), la qualità del sistema progettato (fino a 20 punti), e della presentazione (fino a 20 punti). Il voto finale assegnato al progetto è dato dalla media. Inoltre può essere assegnato un ulteriore punto in base all'autonomia dimostrata dal gruppo.


Criteri di attribuzione del voto finale.

Prova orale individuale: fino a 10 punti
Progetto di gruppo: fino a 21 punti
Voto finale: somma dei due voti. 31 punti danno diritto al "30 e lode".


Learning Evaluation Methods.

The learning evaluation consists of two parts:
1) individual oral exam - a discussion about two topics from the syllabus;
2) group project - a group of 4 or 5 students must design a system agreed with the teacher and present the results.


Learning Evaluation Criteria.

1) Individual oral exam - students must know what are methods, techniques, and theory of software security.
2) Group project - the group must be able to apply such methods and techniques to the development of a system and to produce a final project report.


Learning Measurement Criteria.

1) Individual oral exam: each one of the two topics assigns a score up to 10. The final mark for the oral exam is the average score.
2) Group project - the review process takes into account the completeness and correctness of the final report (up to 20 marks), the system quality (up to 20 marks), and the presentation (up to 20 marks). The final mark for the group project is the average score. Up to 1 bonus mark is assigned according to group autonomy.


Final Mark Allocation Criteria.

Individual oral exam: up to 10 marks
Group project: up to 21 marks
Final mark: the sum of the previous two marks. 31 marks is equivalent to "30 e lode" (full mark with distinction).



TESTI CONSIGLIATI RECOMMENDED READING

- Unità 2-3 - Christel Baier, Joost-Pieter Katoen. Principles of Model Checking. The MIT Press. 2007. [Capitoli 3,5,10].
- Unità 4 - Ian Sommerville. Ingegneria del Software, 10a Edizione. Pearson Italia. 2017. [Capitoli 10-14].
- Unità 5 - David Svoboda, Dean F. Sutherland, Robert C. Seacord, Dhruv Mohindra, Fred Long. The CERT® Oracle® Secure Coding Standard for Java™. Disponibile al seguente indirizzo https://wiki.sei.cmu.edu/confluence/display/java/SEI+CERT+Oracle+Coding+Standard+for+Java
- Unità 1-5 - Materiale didattico e letture consigliate disponibili su piattaforma Moodle di Ateneo: https://learn.univpm.it/

- Units 2-3 - Christel Baier, Joost-Pieter Katoen. Principles of Model Checking. The MIT Press. 2007. [Chapters 3,5,10].
- Unit 4 - Ian Sommerville. Ingegneria del Software, 10a Edizione. Pearson Italia. 2017. [Chapters 10-14].
- Unit 5 - David Svoboda, Dean F. Sutherland, Robert C. Seacord, Dhruv Mohindra, Fred Long. The CERT® Oracle® Secure Coding Standard for Java™. Disponibile al seguente indirizzo https://wiki.sei.cmu.edu/confluence/display/java/SEI+CERT+Oracle+Coding+Standard+for+Java
- Units 1-5 - Teaching material and suggested readings available at University's Moodle platform: https://learn.univpm.it/


E-LEARNING E-LEARNING

NO

NO


Scheda insegnamento erogato nell’A.A. 2019-2020
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2019-2020

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427