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 576 (co-requisite)
- CS 590 Algorithms (for grads) or CS 385 Algorithms (undergrads) or CS 182 Introduction to Computer Science Honors II (undergrads)
If you feel that you possess the skills to follow this course but have not taken the prerequisite courses, contact me to establish whether I can waive the requirements for the course.
Tools that will be used in the lab:
There will be group projects for this class that will result in tools and software for measuring, securing, or attacking systems. The software deliverables must compile and rin on DETER or the Unix lab. For other configurations the permission of the instructor needs to be explicitly provided.
The project consists of:
- A midterm deliverable consisting of 3-5 page paper summarizing your project's progress and a presentation to the class.
- A final deliverable consisting of 8-15 page paper summarizing your project's results and a presentation to the class.
Plan your time carefully! Failing the project most probably will fail you the class.
Your final grade will be determined by your performance in the following:
Labs and projects may be done in groups of 2-3 students.
You can discuss the problems with your classmates, but you must not share details of the solutions. Plagiarism and cheating will automatically give you an F on the lab/project/etc.
Stevens honor system:
"The Honor System at Stevens [..] insures that work submitted
by students can be trusted as their own and was performed in an
atmosphere of honesty and fair play."
Subjects covered in lectures are tentative and may change (last update 8/25/14). Refer to moodle for up-to-date information.