CIS 751/551, Fall 2012
Computer and Information Security
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, web security, and economics of 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.
- Aug 21.
Lecture 1: Introduction
- Aug 23.
Lecture 2: Buffer-overflow exploit
The source code getscore.c .
The sample score file score.txt .
- Aug 28.
Lecture 3: Mitigation of buffer-overflow exploits.
Reading assignment 1:
Reading assignment 2:
StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks.
Reading assignment 3:
The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86).
Defeating compiler-level buffer overflow protection.
Bypassing stackguard and stackshield.
Getting around non-executable stack (and fix).
The advanced return-into-lib(c) exploits: PaX case study.
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.
Programming Assignment 1: Remote buffer overflow attack.
Lecture 4: Heap buffer-overflow attacks.
The sample program
Lecture 5: Basic cryptography
Lecture 6: Basic cryptography (continued)
Lecture 7: Authentication basics.
Programming Assignment 2: Heap overflow attack.
Lecture 8: Example practical authentication protocols.
Lecture 9: Man-in-the-middle attack.
Programming Assignment 3:
Public-key challenge response exercise.
Reading Assignment 4:
Chapter 2: Protocols
Security Engineering (first edition), by Ross Anderson.
Lecture 10: Windows exploit basics. Slides.
Windows Buffer Overflow Demo.
Programming Assignment 4: Widows buffer overflow attack.
Lecture 11: Windows exploit wrap up. Slides Video.
Reading Assignment 5:
All Your iFRAMEs Point to Us.
Reading Assignment 6:
AEG: Automatic Exploit Generation.
Reading Assignment 7:
TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection.
Student paper presentations. Video.
Lecture 12: Software vulnerability summary. Slides Video
Lecture 13: Kerberos.
Reading Assignment 8:
Kerberos: An Authentication Service for Computer Networks
The Evolution of the Kerberos Authentication System.
Limitations of the Kerberos authentication system.
Lecture 14: Kerberos (continued).
Reading Assignment 9:
Peter Gutmann's article
on X.509 and his slides.
Paper presentations by Cole, Brian, Emily, and Kevin.
Lecture slides and videos while Simon is away Oct 22-25.
Report Topics Due: Tuesday Nov 13.
Some past report topics.
Final Report Due: Friday Dec 7.
Programming Assignment 6 (20+5 pts):
A repository manager with logic-based authorization.
Due: Dec 7.
The client code.
Client's private key file.
Sample client credential1.
Sample server policy1.
Sample client credential2.
Sample server policy2.
Introduction to Network Security.
Digging Up Dirt in the DNS Hierarchy. Ron Aitchison, Linux Journal, Jan 2008.
ARP Poisoning Attack.
IP Spoofing Attack
Sathya's tutorial for programming assignment 6. Video.
It's the End of the Cache as We Know It.
Dan Kaminsky, Black Hat USA 2008.
DNS Poisoning: Developments, Attacks and Research Directions,
USENIX Security 2008.
(The slides and audio of the presentation can be found on Thursday's panel "Setting DNS's Hair on Fire".)
Some interesting DNSSEC deployment issues.
Reading Assignment 11:
The Most Dangerous Code in the World: Validating SSL Certificates in Non-Browser Software
Reading Assignment 12:
Priceless: The Role of Payments in Abuse-advertised Goods
DNSSEC (continued). Slides.
DANE: Taking TLS Authentication to the Next Level Using DNSSEC.
The Limits of Formal Security Models.
Reading Assignment 13:
A Framework to Eliminate Backdoors from Response Computable Authentication.
Reading Assignment 14:
Signing Me onto Your Accounts through Facebook and Google: a Traffic-Guided Security Study of Commercially Deployed Single-Sign-On Web Services.
Reading Assignment 15:
The Quest to Replace Passwords: A Framework for Comparative Evaluation of Web Authentication Schemes.
Reading Assignment 16:
Building Verifiable Trusted Path on Commodity X86 Computers.
Review of homework and programming assignment 5.
Reading Assignment 17:
An Evaluation of the Google Chrome Extension Security Architecture.
Reading Assignment 18:
Neuroscience Meets Cryptography:
Designing Crypto Primitives Secure Against Rubber Hose Attacks.
Reading Assignment 19:
On the Feasibility of Side-Channel Attacks with Brain-Computer Interfaces.
Reading Assignment 20:
Gone in 360 Seconds: Hijacking with Hitag2.
Reading Assignment 21:
Progressive authentication: deciding when to authenticate on mobile phones.
Reading Assignment 22:
Origin-Bound Certificates: A Fresh Approach to Strong Client Authentication for the Web.
Reading Assignment 23:
Chimera: A Declarative Language for Streaming Network Traffic Analysis.
Reading Assignment 24:
On Breaking SAML: Be Whoever You Want to Be.
Instructor and course meeting times
Instructor: Xinming (Simon) Ou, N316B
TA: Sathya Chandran Sundaramurthy (sathya at KSU dot EDU>, N127
TTh 3:55-5:10, at Nichols 19
Office hour: Simon: Friday 9-11, Sathya: Thursday 2-3:55.
Distance-learning students: lecture videos will be posted the day after the lecture.
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.
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:
Final exam: 30%
Final report: 20%
Class participation: 10%
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.
Expectation of Classroom Conduct
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 academic assistance in this course should contact Disability Support Services (firstname.lastname@example.org) and/or the instructor. DSS serves students with a wide range of disabilities including, but not limited to, physical disabilities, sensory impairments, learning disabilities, attention deficit disorder, depression, and anxiety.
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.
Questions can be emailed to xou (put some stuff here) ksu (a little dot) edu.