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
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.
4 semester units. 3 units lecture (150 minutes), 1 unit lab (150 minutes).
Selected elective for CS
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.
None
Melissa Danforth
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
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.
-
Week | Chapter(s) | Topics |
1 | Chapters 1 and 2 |
Classic security goals (confidentiality, integrity, etc.), Threats, Vulnerabilities |
2 | Chapters 1 and 3 |
Audits, Threat exposure |
3 | Chapter 5 |
Memory corruption: buffer overflows, heap overflows |
4 | Chapter 5 |
Memory corruption: global and static data, shellcode, protection mechanisms |
5 | Chapter 6 |
C/C++ language issues |
6 | Chapter 8 |
String and character handling issues |
7 | Chapter 4 |
Auditing tools for source code and binary analysis |
8 and 9 | Chapter 7 |
Auditing techniques for source code analysis |
10 and 11 | Outside information |
Auditing techniques for binary analysis |
12 and 13 | Chapters 9 and 10 |
Vulnerabilities and analysis for Unix/Linux systems |
14 and 15 | Chapters 11 and 12 |
Vulnerabilities and analysis for Windows systems |
Not applicable to this course.
Melissa Danforth on 31 July 2014
Approved by CEE/CS Department on [date]
Effective Fall 2016