Security and Secure Programming

The course is not on the list Without time-table
Code Completion Credits Range Language
MI-BPR Z,ZK 4 2+1 Czech
Department of Computer Systems

Students will learn how to assess security risks and how to take them into account in the design phase of their own code and solutions. After getting familiar with the threat modeling theory, students gain practical experience with running programs with reduced privileges and methods of specifying these privileges, since not every program needs to run with administrator privileges. Students will also be briefly introduced to the principles of securing data and the relationships of security and database systems, web, remote procedure calls, and sockets in general. The module concludes with Denial of Service attacks and countermeasures to these attacks.


Programming in C, knowledge of basic application interfaces and computer systems architectures.

Syllabus of lectures:

1. Introduction to secure programming, current security trends.

2. Threat modeling.

3. The buffer overflow.

4. Writing secure code in C.

5. Security levels, Access Control Lists (ACL).

6. Running a program with low privileges.

7. Data security and integrity.

8. Data input, canonical representation, and security.

9. Security of databases.

10. Security of web applications.

11. Security of sockets and RPC.

12. Defence against Denial of Service attacks.

13. Summary and recapitulation.

Syllabus of tutorials:

1. Threat modeling.

2. The buffer overflow.

3. Running a program with low privileges.

4. Security of databases.

5. Security of web applications.

6. Defence against Denial of Service attacks.

Study Objective:

The aim of the module is to teach the students to take into account the security aspects already in the design phase of their own software applications and solutions. Students will start with theoretical modeling of security threats, and move on to practical exercises with C programs. They will learn to determine the minimal privileges for a program to run. They will also learn to secure data, data communication, remote procedure calls, and websites.

Study materials:

Howard, M., LeBlanc, D. ''Writing Secure Code (2nd Edition)''. Microsoft Press, 2003. ISBN 0735617228.

Howard, M., LeBlanc, D. „Writing Secure Code for Windows Vista“. Microsoft Press, 2007.


Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2019-03-22
For updated information see http://bilakniha.cvut.cz/en/predmet1433606.html