Software Security
Cybersecurity
204
3 units
Course Description
The course presents the challenges, principles, mechanisms and tools to make software secure. We will discuss the main causes of vulnerabilities and the means to avoid and defend against them. The focus is on secure programming practice, including specifics for various languages, but also covering system-level defenses (architectural approaches and run-time enforcement). We will also apply software analysis and vulnerability detection tools in different scenarios.
Student Learning Outcomes
- Classify common software security vulnerabilities across various programming languages and application types.
- Assess software systems for security flaws and justify the severity of discovered vulnerabilities to stakeholders.
- Implement secure alternatives to identified insecure programming patterns within a codebase.
- Integrate and oversee secure coding frameworks and lifecycle practices throughout a software project.
