Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a thorough understanding of the possible security failures, as well as the protection mechanism. The class will cover network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrusion detection systems; and operating systems and application vulnerabilities, exploits, and countermeasures; distributed denial of service attacks and botnets. The class will not only cover the subjects in theory but instead also provide the students with an extensive hands-on experience. The class will involve a fair amount of programming. Those who take the class are expected to be able to program in C/C++, have some basic knowledge of assembly language, and be familiar with network basics and programming, as well as Unix-like operating systems.
The course requires good programming skills (C, C++), including some knowledge of x86 assembly. Also, a basic background in operating systems (mainly UNIX) and networking.
- CS 506 Introduction to IT Security
- CS 577 (co-requisite)
- CS 590 Algorithms (for grads) or CS 385 Algorithms (undergrads) or CS 182 Introduction to Computer Science Honors II (undergrads)
Computer Security - Principles and Practice 3rd Edition
by Willam Stallings and Lawrie Brown
- Security Engineering
by Ross Anderson
Your final grade will be determined by your performance in the following: