CIS 751/551, Fall 2009
Computer and Information Security
Course Goals
This course aims at providing a comprehensive understanding of computer and information security.
The course materials cover common attack techniques, application of cryptography in security, authentication and authorization,
network security, enterprise network defense, and web security.
Not only mechanisms for enhancing security will be taught, a great deal of the course is also to discuss when and where things can
go wrong and how design flaws in a system can be exploited to compromise security. Students will have the opportunity to work on
course projects that cover both the defense and offense aspects in cyber space. The goal of the course is to provide a solid
theoretical foundation for computer and information security, and hands-on experience in applying the theory to practice.
Interesting research topics can also be derived from course projects.
Course Schedule
- Aug 25, 2009. Lecture 1: Introduction.
Slides.
Video: Part 1,
Part 2.
- Aug 27, 2009. Lecture 2: Buffer-overflow exploits.
Slides,
Video.
The source code getscore.c .
The sample score file score.txt .
Reading Assignment 1:
Setuid Demystified.
Presentation: Carlos Kirkconnell Valenzue, Sept 8.
-
Sept 1, 2009. Lecture 3: Mitigation of buffer-overflow attacks.
Slides,
Video.
The sample code for generating the malicious input.
A sample program for circumventing stack randomization.
Programming Assignment 1: Remote buffer overflow attack.
Due: Sept 15.
Supplemental readings:
Mitigating buffer overflows by operating system randomization.
On the effectiveness of address-space randomization.
-
Sept 3, 2009. Lecture 4: Limitation of buffer-overflow mitigation mechanisms.
Slides,
Video.
Reading Assignment 2:
StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks.
Presentation: Luis Carranco, Sept 15.
Reading Assignment 3:
Defeating compiler-level buffer overflow protection.
Presentation: Sathya Sundaramurthy, Sept 15.
Reading Assignment 4:
The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86).
Presentation: Naga Vupputuri, Sept 15.
Supplemental readings:
Microsoft compiler flaw technical note.
Bypassing stackguard and stackshield.
Getting around non-executable stack (and fix).
The advanced return-into-lib(c) exploits: PaX case study.
How to hijack the Global Offset Table with pointers for root shells.
Install-time vaccination of windows executables to defend against stack smashing attacks.
Non-control-data attacks are realistic threats.
x86-64 buffer overflow exploits and the borrowed code chunks exploitation technique.
-
Sept 8, 2009.
Paper presentation by Carlos and programming assignment 1.
Slides,
Video.
-
Sept 10, 2009. Lecture 5: Heap buffer-overflow attacks.
Slides,
Video.
-
Sept 15, 2009. Paper presentations by
Luis,
Sathya, and
Murali. Video.
Programming Assignment 2: Heap overflow attack.
Due: Sept 22.
-
Sept 17, 2009. Lecture 6: Introduction to Windows exploits.
Slides,
Video.
-
Sept 22, 2009. Lecture 7: Software exploit summary.
Slides,
Video.
Programming Assignment 3
Due: Sept 29.
Reading Assignment 5:
All Your iFRAMEs Point to Us. Due: Sept 29.
Presentation: Kui Luo, Sept 29.
Supplemental reading:
A Failure to Learn from the Past.
-
Sept 29, 2009.
Paper presentation by Kui.
Slides in Keynote,
Slides in Powerpoint,
Video.
Lecture 8: Software exploit summary (cont'd).
Video.
Homework 1. Due: Oct 6.
Supplemental reading:
Privilege Separated OpenSSH.
-
Oct 1, 2009. Lecture 9: Authentication Overview 1.
Slides,
Video.
-
Oct 6, 2009. Lecture 10: Authentication Overview 2.
Slides,
Video.
Programming Assignment 4.
Due: Oct 15.
Reading Assignment 6:
Chapter 2: Protocols
in
Security Engineering (first edition), by Ross Anderson. Due: Oct 13.
Presentation: Loai Zomlot, Oct 13.
Non-graded assignment: Practice using OpenSSL for crypto operation.
-
Oct 8, 2009. Lecture 11: Two-party authentication protocols.
Slides,
Video.
-
Oct 13, 2009.
Paper presentation by Loai Zomlot.
Slides,
Video.
Lecture 12: Kerberos
Slides,
Video.
Reading Assignment 7 (due Oct 20):
Kerberos: An Authentication Service for Computer Networks
Presentation: Brian Stinson, Oct 20.
Supplemental Reading:
The Evolution of the Kerberos Authentication System.
Limitations of the Kerberos authentication system.
-
Oct 15, 2009. Lecture 13: Public-key infrastructure
Slides,
Video.
Reading Assignment 8 (due Oct 22):
Peter Gutmann's article
on X.509 and his slides.
Presentation: Cory Hardman, Oct 27.
-
Oct 20, 2009.
Paper presentation by Brian Stinson.
Slides,
Video.
Lecture 14: X.509 PKI
Slides,
Video.
Homework 1 Solution.
Homework 2. Due: Oct 27
-
Oct 22, 2009.
Lecture 15: X.509 PKI continued.
Video.
-
Oct 27, 2009. Paper presentation by Cory Hardman.
Slides,
Video.
Lecture 16: Authorization.
Slides,
Video.
Reading Assignment 9:
Binder, a Logic-Based Security Language.
Programming Assignment 5: Logic-based Authentication and Authorization.
Due: Nov 3.
-
Oct 29, 2009. Lecture 17: Logic-based authorization. Video.
Exercise.
-
Nov 5, 2009. Lecture 18: Introduction to Network Security.
Slides,
Video.
Sample solution to Programming Assignment 5.
Solution to HW2.
Programming Assignment 6 (20+5 pts):
A repository manager with logic-based authorization.
Due: Nov 24.
The client code.
Client's private key file.
Sample client credential.
Sample server policy.
Server's transcript.
Client's transcript.
Supplemental reading:
ARP Poisoning Attack.
DNS Cache Poisoning Attack.
IP Spoofing Attack
.
-
Nov 17, 2009. Lecture 19: DNS Security.
Slides,
Video.
Supplemental reading:
Using the Domain Name System for System Break-Ins.
It's the End of the Cache as We Know It.
Dan Kaminsky, Black Hat USA 2008.
DNS Poisoning: Developments, Attacks
and Research Directions,
David Dagon.
USENIX Security 2008.
(The slides and audio of the presentation can be found on Thursday's panel "Setting DNS's Hair on Fire".)
Final Report Due: Dec 17. Past report topics.
-
Nov 19, 2009. Lecture 20: Secure Channel.
Slides,
Video.
Reading Assignments:
-
Nov 24, 2009. Lecture 21: Firewall.
Slides,
Video.
Supplemental reading:
Problems with the FTP PORT Command
US-CERT Vulnerability Note VU#328867
Fang: A firewall analysis engine.
MulVAL: A logic-based network security analyzer.
-
Dec 1, 2009.
Paper presentation by Tomas Budin.
Slides,
Video.
Lecture 22: Enterprise Network Security Management.
Slides,
Video.
-
Dec 3, 2009.
Paper presentation by
Tomas Tvaroh,
Vojtech Smrcek,
Vojtech Novak,
Video.
-
Dec 8, 2009.
Paper presentation by
Stefan Pacinda
David Vavra
-
Dec 10, 2009.
Paper presentation by
Viktor Pesek,
Martin Matuska,
Video.
Instructor and course meeting times
-
Instructor: Xinming (Simon) Ou
-
TA: Su Zhang
-
Meeting time:
TTh 3:55-5:10, at Nichols 122
-
Office hour: Nichols 316B, Friday 9-11 or by appointment.
-
Distance-learning students: lecture videos will be posted the day after the lecture.
Prerequisites
Basic understanding of computer systems, including operating systems, networks, compilers, etc.
This is a course that primarily targets graduate students and junior/senior-level undergraduate students in
computer science and computer engineering.
Grading
There will be on average one assignment per week, which could be a written homework,
a programming project, or a reading assignment.
At the end of the semester,
you must also turn in a final report that focuses on a specific problem in computer and information security. The
topics for the report will be seeked out by the students and approved by the instructor.
There will be a midterm and final exam. The break down
of the final score of the course is:
-
Assignments: 40%
-
Exams and quizzes: 30%
-
Final report: 20%
-
Class participation: 10%
Academic Honesty
Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance that, in academic matters, one's work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reached via the following URL:
http://www.ksu.edu/honor. A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: "On my honor, as a student, I have neither given nor received unauthorized aid on this academic work." A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.
All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Governing Association By Laws, Article VI, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.
Accommodations for Students with Disabilities
Any student with a disability who needs a classroom accommodation, access to technology or other assistance in this course should contact Disability Support Services and/or the instructor.
Acknowledgment
Some materials in the course are adapted from the BlackHat Exploit Laboratory.
We are grateful to Saumil Shah and SK Chong who kindly permit us
to use those materials in this course.
Contact
Questions can be emailed to xou (put some stuff here) ksu (a little dot) edu.