Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W002176] - SOFTWARE SECURITY AND BLOCKCHAINSOFTWARE SECURITY AND BLOCKCHAIN
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 - Primo Semestre
Anno offertaAcademic year: 2023-2024
Anno regolamentoAnno regolamento: 2023-2024
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. Valutazione dei rischi e analisi rischi-benefici e costi-benefici.

Software design and development, specially using the object-oriented paradigm. Risk assessment, risk-benefit and cost-benefit analysis.


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 si inserisce nell'ambito della sicurezza informatica e si pone l'obiettivo di far acquisire agli studenti conoscenze e competenze sulla progettazione e realizzazione di un software sicuro, con particolare attenzione alle applicazioni decentralizzate (DApp) basate su blockchain. 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, le caratteristiche delle blockchain e lo sviluppo di smart contract, 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 nell'ambito 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 e alle blockchain. 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 realizzare un software utilizzando blockchain e smart contract;
4. 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 is part of the cybersecurity program and aims to allow students to acquire knowledge and skills on designing and developing a secure software, with particular regard to decentralized apps (DApp) based on blockchain. 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, the characteristics of blockchain, and smart contract development, 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 indepth 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 and to blockchain. 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 implement a software based on blockchain and smart contracts;
4. 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, delle tecniche di difesa e di intrusione
- Unità 3 - Pratica della sicurezza del software: ingegneria sicura del software, programmazione sicura, analisi statica del codice e collaudo.
- Unità 4 - Pratica della sicurezza del software: blockchain e smart contract

Esercitazioni pratiche
- Unità 2: Usare Prism per verificare le specifiche di sicurezza di un software
- Unità 3: Usare metodo STRIDE per la risk analysis,
- Unità 4: Usare Ethereum/BESU e Solidity

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

Practice
- Unit 2: Use Prism to verify the security specifications of a software -
- Unit 3: Use STRIDE methodology for risk analysis
- Unit 4: Use Ethereum/Besu and Solidity


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à 3 - Ian Sommerville. Ingegneria del Software, 10a Edizione. Pearson Italia. 2017. [Chapters 10-14].
- Unità 4 - Michael Yuan. Building Blockchain Apps. Pearson Eduication. 2020. [Parts I-IV].
- Unità 1-5 - Materiale didattico e letture consigliate disponibili su piattaforma Moodle di Ateneo: https://learn.univpm.it/

- Unit 3 - Ian Sommerville. Ingegneria del Software, 10a Edizione. Pearson Italia. 2017. [Chapters 10-14].
- Unit 4 - Michael Yuan. Building Blockchain Apps. Pearson Eduication. 2020. [Parts I-IV].
- Units 1-5 - Materiale didattico e letture consigliate disponibili su piattaforma Moodle di Ateneo: https://learn.univpm.it/


E-LEARNING E-LEARNING






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

 


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