CSCI 4907/6545 Software Security

Instructor Jie Zhou
Email jie.zhou@gwu.edu
Office SEH 4590
Lectures Wed 12:45–3:15 p.m. at MON 110
Office Hours TBD

Description

Software security plays an invisible yet critical role in ensuring reliable and trustworthy services for modern computing platforms. However, we are facing significant challenges in engineering secure software systems. In this course, we will explore these challenges, with an emphasis on low-level software security. We will examine the root causes and exploitation techniques of common software vulnerabilities. We will also discuss the countermeasures, including both classic defenses deployed in production software as well as cutting-edge and experimental mechanisms.

Prerequisites

The core prerequisite is a solid background in computer systems and low-level programming. Computer Architecture (CSCI 6461) and Systems Programming (CSCI 2410), or equivalent courses, are required. Operating Systems (CSCI 3411) is preferred but not strictly necessary. If you do not meet the prerequisites yet are still interested and have a good understanding of systems, please check with the instructor.

Learning Goals

Upon completion of this course, student are expected to:

For a more detailed outline of the topics of this course, see the syllabus and the schedule.

Academic Integrity

Students who take this course must strictly adhere to GW's Code of Academic Integrity.

Use of generative AI: Tools such as ChatGPT are permitted for learning purposes, e.g., generating explanations for concepts. However, they are strictly prohibited from generating content for your machine problems and writing assignments. The instructor may test students with oral questions about your submissions. Failures to answer consistently and clearly will be considered as a violation of academic honesty. First offense incurs a 0 on the assignment, and second one is F in the class.

If you are uncertain about what is permitted and what is not, please ask the instructor.