4 credits (3-0-2)
The goal of this course is to introduce challenges in securing computer systems and networks. We will discuss various types of vulnerabilities in existing software interfaces, such as buffer overflows, unsafe libc functions, filesystem design issues, etc. We will also discuss modernday defenses against attacks exploiting these vulnerabilities. In network security, we will discuss security problems in network protocols and routing, such as sniffing, denial of service, viruses, worms, and defenses against them. The course will involve reading research papers on relevant topics, programming assignments, and projects.The course is intended for senior undergraduates and first year graduate students.
The course requires an understanding of operating systems, networking protocols, and a basic understanding of programming languages.
Pre-requisites: CSL374 / CSL672 or equivalent, CSL373 / CSL633 or equivalent
There is no textbook for the class. Instead, we will use research papers mentioned in reading list in every lecture. Schedule will be available soon
There is an online book that might be handy: Secure Programming for Linux and Unix HOWTO, by David Wheeler.
There will be four assignments and one project.You may collaborate when solving the assignments, however when writing up the solutions you must do so on your own.You must submit all assigned work electronically. Submission instructions will be provided.