Security in Software Applications 

Sicurezza nelle Applicazioni Software

1st semester  2020-2021


Instructor :   Francesco Parisi-Presicce

Office :  Via Salaria 113, third floor, room 342    

desk phone 06 4991 8512 

Email: parisi (AT) di   (DOT) uniroma1 (DOT) it  (include SoftSecurity in Subject  ) 

Lectures: Tuesday from 8:00 a.m. to 10:00 a.m and Thursday from 8:00 a.m. to 11:00 a.m. in AULA 1 in Via del Castro Laurenziano 

Office Hours:  Tuesday and Thursday from 2:00. to 4:00 p.m. (until 18 December 2020) and by Appointment 



Theory and practice of software security, focusing in particular on some common software security risks, including buffer overflows, race conditions and random number generation, and on the identification of potential threats and vulnerabilities early in the design cycle. The emphasis is on methodologies and tools for identifying and eliminating security vulnerabilities, techniques to prove the absence of vulnerabilities, and ways to avoid security holes in new software, and on essential guidelines for building secure software: how to design software with security in mind from the ground up and to integrate analysis and risk management throughout the software life cycle.


The grade will be determined by a written or an oral exam, the solution of some homework problems and/or small projects periodically assigned by the instructor and possibly (depending on the size of the class) the presentation in class and discussion of a group project agreed upon with the instructor. The project should be developed in teams and deal with theoretical and/or practical aspects of software security. 

NOTE: Access to the exams sessions in January and February is limted to the students who will have turned in the individual projects and the group project by the indicated deadlines

The solutions to the assigned problems and the written/oral examination are *individual* endavours. Substantial overlap or the indication that they have been "shared" will make them void and will cause the 'perpetrators' to (at least) skip an exam session. 

L'esame consiste in una prova scritta, la risoluzione di alcuni problemi e/o piccoli progetti assegnati periodicamente durante il corso dal docente, e (forse: dipende dalle dimensioni della classe) la presentazione a lezione e discussione di un progetto di gruppo concordato con il docente. Il progetto può essere sviluppato in gruppi di due o tre studenti e può riguardare sia aspetti teorici che aspetti pratici della sicurezza nelle applicazioni.

NOTA: Gli appelli della sessione invernale sono riservati agli studenti che avranno consegnato entro le scadenze i progetti individuali e quello di gruppo

La consegna delle soluzioni dei problemi e la prova scritta/orale sono individuali. Se ci sono significativi indizi che portano a credere che il progetto o le soluzioni consegnati siano stati copiati in tutto o in parte, il progetto o le soluzioni sono considerati nulli.


The slides presented in class include material from E.Poll (U. Nijmegen - NL), I.Dillig (UTA -USA), J.Burket (CMU - USA), M.-L. Potet (Verimag - FR) 


An undergraduate security course is not a prerequisite.

Students are expected to have some basic knowledge of programming (C, Java), of Operating Systems and of Databases (SQL)

Non è richiesto il superamento di un corso di sicurezza della triennale, ma conoscenze di sicurezza sono ovviamente utili.

Si presume che lo studente abbia conoscenze adeguate di programmazione (C, Java), di Sistemi Operativi e di Basi di Dati (SQL).

 Schedule of LECTURES / Diario delle LEZIONI 

(frequently updated / in continuo aggiornamento )   



  Useful Links 


Warning In class, we may discuss vulnerabilities in general computer systems. This is NOT intended as an invitation to go and exploit those vulnerabilities. Breaking into other people's systems is inappropriate, and the existence of a security hole is no excuse.