CMPS 4510 Vulnerability Analysis
Catalog Description
CMPS 4510 Vulnerability Analysis (4)
Identification and quantification of security weaknesses in programs, systems and networks. Topics include professional ethics, static binary analysis, dynamic binary analysis, anti-analysis techniques, risk assessment, penetration testing, vulnerability classification and mitigation techniques. Prerequisite: CMPS 3500
Prerequisites by Topic
Knowledge of formal computer language grammar
Basics of computer language translation
Completing CMPS 3140 (Theory of Computation) before taking this course is strongly recommended to obtain a stronger background in automata and formal languages.
Units and Contact Time
4 semester units. 3 units lecture (150 minutes), 1 unit lab (150 minutes).
Type
Selected elective for CS
Required Textbook
The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. Mark Dowd, John McDonald, Justin Schuh. Addison-Wesley, 2007, ISBN-13: 978-0-321-44442-4.
Recommended Textbook and Other Supplemental Materials
None
Coordinator(s)
Melissa Danforth
Student Learning Outcomes
This course covers the following ACM/IEEE CS2013 (Computer Science) Body of Knowledge student learning outcomes:

CS-IAS/Foundational Concepts in Security
CS-IAS/Principles of Secure Design
CS-IAS/Defensive Programming
CS-IAS/Threats and Attacks
CS-PL/Static Analysis
CS-SE/Software Construction

ABET Outcome Coverage
The course maps to the following performance indicators for Computer Science (CAC/ABET):
3e. An understanding of professional, ethical, legal, security, and social issues and responsibilities.
3j. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
Lecture Topics and Rough Schedule
WeekChapter(s)Topics
1Chapters 1 and 2 Classic security goals (confidentiality, integrity, etc.), Threats, Vulnerabilities
2Chapters 1 and 3 Audits, Threat exposure
3Chapter 5 Memory corruption: buffer overflows, heap overflows
4Chapter 5 Memory corruption: global and static data, shellcode, protection mechanisms
5Chapter 6 C/C++ language issues
6Chapter 8 String and character handling issues
7Chapter 4 Auditing tools for source code and binary analysis
8 and 9Chapter 7 Auditing techniques for source code analysis
10 and 11Outside information Auditing techniques for binary analysis
12 and 13Chapters 9 and 10 Vulnerabilities and analysis for Unix/Linux systems
14 and 15Chapters 11 and 12 Vulnerabilities and analysis for Windows systems
Design Content Description
Not applicable to this course.
Prepared By
Melissa Danforth on 31 July 2014
Approval
Approved by CEE/CS Department on [date]
Effective Fall 2016