CSCI 4907/6545 Software Security

Instructor Jie Zhou
Email jie.zhou@gwu.edu
Office SEH 4590
Lectures Tue & Thurs 09:35–10:50 a.m. at MON 110
Office Hours Thurs 11–12 a.m. or by appointment via email

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.

Grading

Grading is based on solving machine problems, writing summaries and answering questions about readings, and a students-led discussion of a research paper (group work). In addition, class participation is valued, particularly asking questions in class and office hours. There will be no exams.

Machine Problems 40%
Reading Comprehension 45%
Paper Discussion 10%
Class Participation 5%

Lateness Policy

Request for extension will be considered, but the request must be submitted via email before the deadline.

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.