CloseHelpPrint
Kies de Nederlandse taal
Course module: 201600051
201600051
Software Security
Course infoSchedule
Course module201600051
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact persondr.ing. E. Tews
E-maile.tews@utwente.nl
Lecturer(s)
Examiner
dr.ing. E. Tews
Lecturer
dr.ing. E. Tews
Contactperson for the course
dr.ing. E. Tews
Academic year2021
Starting block
1B
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
Aims
At the end of the course, the student
  • Will understand the basics terms and mechanisms of secure software development and potential attacks against vulnerable programs.
  • Will be able to write code in low and high level programming languages using methods from secure software development.
  • Will be able to analyse programs written in high and low level programming languages for potential security vulnerabilities using methods from static and dynamic analysis and implement countermeasures against those vulnerabilities.
  • Will be able to apply the skills in a modern software development environment.
Content
Synopsis:
The course studies the nature of security vulnerabilities in software systems, the techniques to detect and prevent these problems by proper programming and programming languages, and their embedding in a security-aware software development process.

Contents:
•         Software Security Vulnerabilities (buffer and integer overflows, exploitation techniques, code injection (SQL, XSS), race conditions, information exposure);
•         Principles of Secure Programming (coding standards for secure defaults & failures, least privilege, preventing injection attacks by input validation and output sanitization);
•         Language-Based Security (memory & type safety, access control, static and dynamic semantics, type soundness);
•         Static Analysis Techniques (control, data & information flow analysis).
•         Dynamic Analysis Techniques (runtime monitoring, fuzzing and penetration testing)
•         Integrating security analysis tools in a modern software development environment (DevOps, DevSecOps, security pipelines)
Assumed previous knowledge
Basic knowledge of programming in C; basic knowledge of operating systems/compilers
Previous knowledge can be gained by
BSc courses, like the modules on software systems and computer systems
Resources for self study
Basic tutorial, like https://www.cprogramming.com/tutorial/c-tutorial.html
Participating study
Master Computer Science
Participating study
Master Internet Science and Technology
Required materials
-
Recommended materials
Book
Optional: “Software Security: Building Security In” by Gary McGraw
Course material
Papers & online-material
Instructional modes
Lecture

Remark
online
Other

Remark
Prerecorded videos
Tutorial

Remark
online and on-site
Tests
Written exam, Take home assignments

Remark
Written exam and homework (programming and program analysis) assignments.

CloseHelpPrint
Kies de Nederlandse taal