This unit aims to introduce secure software development issues from the design stage, through to implementation, testing and deployment. Topics studied include the secure software development life cycle, secure software design principles, threat evaluation models, secure coding and development practices, software security testing, deployment and maintenance. You are provided with a range of practical exercises and tasks to reinforce your skills including: identification of security bugs in programs written in different programming languages, design, implementation, and testing of secure concurrent and networked applications and identification of vulnerabilities in networked and mobile/wireless applications.
Minimum total expected workload to achieve the learning outcomes for this unit is 144 hours per semester typically comprising a mixture of scheduled online and face to face learning activities and independent study. Independent study may include associated reading and preparation for scheduled teaching activities.
Investigate, implement and exploit security vulnerabilities in a lab environment.
Understand the fundamentals of software security.
Apply appropriate methods for the design and realisation of secure software for memory exploits and web applications security.
Discuss and evaluate the significance of various software security weaknesses.
Apply a wide range of tools and technologies to evaluate software vulnerabilities.
Model the possible software vulnerabilities and threats for a given application system
Describe and select mitigation strategies for common vulnerabilities and attacks.
Analyse and evaluate security properties of concurrent and networked applications.
