Security in Software Applications

Sicurezza nelle Applicazioni Software

2° semester  2017-2018


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: Wednesday and Friday from 10:30 a.m. to 1:00 p.m. in AULA 2 (aule L di Ingegneria) Via del Castro Laurenziano
Office Hours:  Tuesday and Thursday from 2:00. to 4:00 p.m. (until 2 June 2018) 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 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 project agreed upon with the instructor. The project could be developed in teams and deal with theoretical and/or practical aspects of software security.

NOTE: Access to the exams sessions in June and July 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 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 orale, 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 concordato con il docente. Il progetto può essere sviluppato in gruppi di uno o due studenti e può riguardare sia aspetti teorici che aspetti pratici della sicurezza nelle applicazioni.

NOTA: Gli appelli della sessione estiva 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 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.


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.