CS 600.643: Advanced Topics in Computer Security

Graduate Seminar

Course description

Topics will vary from year to year, but will focus mainly on network perimeter protection, host-level protection, authentication technologies, intellectual property protection, formal analysis techniques, intrusion detection and similarly advanced subjects. Emphasis in this course is on understanding how security issues impact real systems, while maintaining an appreciation for grounding the work in fundamental science. The course will consist of in-class workshops and interactive discussions. There will be programming assignments and a course project. Students will also be expected to read assigned papers and to present at least one research paper and lead a discussion on it.

ThF 2:30-3:45
Location: Wyman Park 4th floor conference room.

Mailing List

All students must sign up for the class mailing list. Send mail to majordomo@cs.jhu.edu with "subscribe cs643" in the message body. Then, to send mail to the class, send it to cs643 at cs.jhu.edu. Important announcements will be maid via the mailing list, and students will be responsible for any information posted to the list.

Office Hours

I will hold my scheduled office hours at 416 Wyman Park after class, and I'm also available by appointment other times.

Grading

This is an interactive class, so class participation will play a significant role in grading. Besides that, grades will be based on your paper presentation, your participation in discussions and questions, programming assignments and your project.

Course Project

The course project assignment is available here. Here are the teams.

Week 1

9/2

Introduction to the course
First assignment handed out

9/3

Discussion of class project
Papers assigned
Teams formed

Week 2

9/9

First assignment turned in
Each student presents and demos their program
Discussion about second assignment

9/10

In class workshop on class project, by task
Balderdash assignment given out

Week 3

No Classes due to Rosh Hashana

Week 4

9/23

Second assignment turned in
Each student presents and demos their program
Discussion about third assignment

9/24

Practice round of in-class Balderdash
New balderdash assignment given out

Week 5

Task 1 report due.

9/30

Task 1 presentation

10/1

Task 1 Discussion

Week 6

10/7

Bill Cheswick visits - programming Balderdash

10/8

Paper #1 presentation + discussion
Student: Chou

Martin Abadi, Roger Needham. "Prudent Engineering Practice for Cryptographic Protocols", IEEE Transactions on Software Engineering 22, 1 (January 1996), 6-15. (ps)


Week 7

Task 1 revised report due.

10/14

Paper #2 presentation + discussion
Student: Bono

Jim Chow, Ben Pfaff, Tal Garfinkel, Kevin Christopher, Mendel Rosenblum, "Understanding Data Lifetime via Whole System Simulation," 2004 Usenix Security Symposium. (pdf)

10/15

Paper #3 presentation + discussion
Student: Alex Maestretti

Hao Chen, David Wagner. "MOPS: an Infrastructure for Examining Security Properties of Software" , CCS '02 November 18-22, 2002, Washington, DC, USA. (ps)


Week 8

10/21

Paper #4 presentation + discussion
Student: Peter Kimball

Mihai Christodorescu and Somesh Jha, "Static Analysis of Executables to Detect Malicious Patterns", 12th USENIX Security Symposium, 2003. (pdf)

10/22

Paper #5 presentation + discussion
Student: Brandon Finney

Ruby B. Lee, David K. Karig, John P. McGregor, and Zhijie Shi. "Enlisting Hardware Architecture to Thwart Malicious Code Injection", International Conference on Security in Pervasive Computing, 2003. (pdf)


Week 9

Task 2 report due

10/28

Task 2 Presentation

10/29

Task 2 Discussion

Week 10

Task 3 report due

11/4

Task 3 Presentation

11/5

Task 3 Discussion

Week 11

Task 2 final revised report due.

11/11

Paper #6 presentation + discussion
Student: Darrel Sharpe

Rakan El-Khalil and Angelos D. Keromytis, Hydan: Hiding Information in Program Binaries, BlackHat/DefCon, 2004. (pdf)

11/12

Paper #7 presentation + discussion
Student: Joann Chuang and Sujata Doshi

David S. Peterson, Matt Bishop, and Raju Pandey, A Flexible Containment Mechanism for Executing Untrusted Code, USENIX Security Conference, 2002. (pdf)


Week 12

Task 3 revised report due

11/18

Paper #8 presentation + discussion
Student: Lucas Ballard

Hovav Shacham, Matthew Page, Ben Pfaff, Eu-Jin Goh, Nagendra Modadugu, Dan Boneh, "On the Effectiveness of Address-Space Randomization," CCS '04, Oct. 25-29, Washington, DC, USA. (pdf)

11/19

Paper #9 presentation + discussion
Student: Zach Peterson

Dawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf, Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code, Symposium on Operating Systems Principles, 2001. (pdf)


Week 13

THANKSGIVING

Week 14

Task 4 final report due

12/2

Task 4 presentation

12/3

Task 4 discussion



Computer Science Department Academic Integrity Code

The strength of the university depends on academic and personal integrity. In your studies, you must be honest and truthful. Ethical violations include cheating on exams, plagiarism, reuse of assignments, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition.

Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at any other solutions (including program code) to your homework problems or similar problems. However, you may discuss assignment specifications with others to be sure you understand what is required by the assignment.

*If* your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.

Falsifying program output or results is prohibited.

Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor or TA, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.

Students who cheat will suffer a serious course grade penalty in addition to being reported to university officials. You must abide by JHU's Ethics Code: Report any violations you witness to the instructor. You may consult the associate dean of students and/or the chairman of the Ethics Board beforehand. For more information, see the guide on Academic Ethics for Undergraduates (http://www.advising.jhu.edu/ethics.html) and the Ethics Board web site (http://ethics.jhu.edu).