Module Details

Module Code: COMP9056
Title: Software Vulnerabilities
Long Title: Software Vulnerabilities
NFQ Level: Expert
Valid From: Semester 1 - 2017/18 ( September 2017 )
Duration: 1 Semester
Credits: 5
Field of Study: 4811 - Computer Science
Module Delivered in: 4 programme(s)
Module Description: When developing code, developers and designers often unwittingly introduce software vulnerabilities because they are unaware how they are caused or how to avoid them. These vulnerabilities are often very difficult to find and while testers and developers are trained how to test for and locate software bugs, the same is not true for vulnerabilities. In this module students will learn how to design and develop software so that security is an integral part of the process. In addition, students will learn how to locate and identify software vulnerabilities and how to prevent the inclusion of such vulnerabilities in software.
 
Learning Outcomes
On successful completion of this module the learner will be able to:
# Learning Outcome Description
LO1 Evaluate the security of a software system using a threat modelling approach.
LO2 Assess the security of a software system, where the source code is available.
LO3 Review the security of a software system, where only the binary code is available.
LO4 Apply fuzzing techniques to a software system and triage resulting crashed binaries.
LO5 Design a strategy for an software company that identifies best practices and procedures to prevent and identify software vulnerabilities.
Dependencies
Module Recommendations

This is prior learning (or a practical skill) that is strongly recommended before enrolment in this module. You may enrol in this module if you have not acquired the recommended learning but you will have considerable difficulty in passing (i.e. achieving the learning outcomes of) the module. While the prior learning is expressed as named MTU module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).

Incompatible Modules
These are modules which have learning outcomes that are too similar to the learning outcomes of this module. You may not earn additional credit for the same learning and therefore you may not enrol in this module if you have successfully completed any modules in the incompatible list.
12867 COMP9031 Software Security
Co-requisite Modules
No Co-requisite modules listed
Requirements

This is prior learning (or a practical skill) that is mandatory before enrolment in this module is allowed. You may not enrol on this module if you have not acquired the learning specified in this section.

No requirements listed
 
Indicative Content
Threat Modelling
White box and black box Threat Modelling with a view to locating architecture and design related threats and vulnerabilities; ATASM (Architecture, Threats, Attack Surfaces, Mitigations)
Source Code Review
Reviewing code with a view to locating specific vulnerability patterns. User and Kernel mode vulnerability classes associated with pointers and integers (e.g. integer overflow, Use After Free)
Review of Binary Files
Using tools such as IDAPro as an aid to locate vulnerabilities in an binary file. Often using a Black Box approach
Fuzzing
Applying fuzzing techniques and tools to a binary with a view to discovering exploitable vulnerabilities.
Crash Triaging
Examining memory dumps and using real-time memory analysis with a view to determining exploitability
Security Program Design
Designing a strategy to create and manage a security team dedicated to software vulnerability location in a medium/large organisation.
Module Content & Assessment
Assessment Breakdown%
Coursework100.00%

Assessments

Coursework
Assessment Type Project % of Total Mark 30
Timing Week 7 Learning Outcomes 2
Assessment Description
This project will focus on source code analysis, with a view to locating vulnerabilities.
Assessment Type Project % of Total Mark 30
Timing Week 11 Learning Outcomes 3,4
Assessment Description
This project will focus on examining binary files in order to locate vulnerabilities, and will include a proof of concept exploitation.
Assessment Type Project % of Total Mark 40
Timing Sem End Learning Outcomes 1,5
Assessment Description
In this assessment students will use threat modeling techniques to locate threats and vulnerabilities and will also design a strategy for a software security team outlining best practices and procedures to prevent and identify the introduction of software vulnerabilities.
No End of Module Formal Examination
Reassessment Requirement
Coursework Only
This module is reassessed solely on the basis of re-submitted coursework. There is no repeat written examination.

The University reserves the right to alter the nature and timings of assessment

 

Module Workload

Workload: Full Time
Workload Type Contact Type Workload Description Frequency Average Weekly Learner Workload Hours
Lecture Contact Weekly lectures covering essential theory. Every Week 2.00 2
Lab Contact Weekly labs to support lectures. Every Week 1.00 1
Independent Learning Non Contact Weekly student independent learning. Every Week 4.00 4
Total Hours 7.00
Total Weekly Learner Workload 7.00
Total Weekly Contact Hours 3.00
Workload: Part Time
Workload Type Contact Type Workload Description Frequency Average Weekly Learner Workload Hours
Lecture Contact Weekly lectures covering essential theory. Every Week 2.00 2
Lab Contact Weekly labs to support lectures. Every Week 1.00 1
Independent Learning Non Contact Weekly student independent learning. Every Week 4.00 4
Total Hours 7.00
Total Weekly Learner Workload 7.00
Total Weekly Contact Hours 3.00
 
Module Resources
Recommended Book Resources
  • Brook S. E. Schoenfield. (2015), Securing Systems: Applied Security Architecture and Threat Models, CRC Press, [ISBN: 9781482233971].
Supplementary Book Resources
  • Mark Dowd,John McDonald and Justin Schuh. (2006), The Art of Software Security Assessment, Addison Wesley, [ISBN: 9780321444424].
  • Tobias Klein. (2011), A Bug Hunter's Diary: A Guided Tour Through the Wilds of Software Security, No Starch Press, [ISBN: 9781593273859].
  • Chris Eagle. (2011), The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler, 2nd. No Starch Press, [ISBN: 9781593272890].
  • Enrico Perla and Massimiliano Oldani. (2010), A Guide to Kernel Exploitation: Attacking the Core, Syngress, [ISBN: 9781597494861].
  • Daniel Regalado, Shon Harris, Allen Harper, Chris Eagle, Jonathan Ness, Branko Spasojevic, Ryan Linn and Stephen Sims. (2015), Gray Hat Hacking The Ethical Hacker's Handbook, 4th. McGraw-Hill, [ISBN: 9780071832380].
  • Joxean Koret and Elias Bachaalany. (2015), The Antivirus Hacker's Handbook, Wiley, [ISBN: 9781119028758].
  • Bill Blunden. (2012), The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System, 2nd. Jones & Bartlett, [ISBN: 9781449626365].
  • Charlie Miller and Dino Dai Zovi. (2009), The Mac Hacker's Handbook, Wiley, [ISBN: 9780470395363].
Supplementary Article/Paper Resources
Other Resources
 
Module Delivered in
Programme Code Programme Semester Delivery
CR_KINSE_9 Master of Science in Cybersecurity 2 Elective
CR_KSADE_9 Master of Science in Software Architecture & Design 1 Group Elective 1
CR_KSADE_9 Master of Science in Software Architecture & Design 2 Group Elective 1
CR_KINSY_9 Postgraduate Diploma in Science in Cybersecurity 2 Elective