ECE1776: Computer Security, Cryptography and Privacy

Announcements

·         No class during reading week (February 20th)

·         Project Midterm presentations are due March 5th

General Information

Instructor: David Lie, SF2001C

Course E-mail: lie@eecg.toronto.edu

Grading Scheme:

1.      Paper Presentation 30%

2.      Project Proposal 5%

3.      Project Midterm Presentation 20%

4.      Project Research Paper 45%

Time: Wednesdays, 1-3PM

Location: BA 4164

Course Format

This course will primarily be a reading course.  Each week students are expected to read the assigned readings and discuss them.  There will also be a course project due at the end of the semester.

Course Readings and Presentations

Students are expected to read the 3 papers assigned each week and come to class prepared to discuss the papers.  Each week a group of 2-3 students will present their views of the papers.  For each paper, one of the students will present pro’s for the paper, and the other will present con’s for the paper, and each student should be pro for at least one paper and con for at least one paper.  A good paper should present a new and practical solution/technique so solve an important problem.  It should also contain a critical evaluation of the merits of the idea, and clearly point out any flaws or shortcomings that could be solved in future work (of if they can be solved at all).  Finally, the paper should clearly indicate past work in the area, and indicate how their solution improves on the existing solutions.  For advice on giving presentations, refer here.

 

Each paper presentation should last approximately 20 minutes (for both presenters) and be in this general format:

  1. Summary of the paper (~10 minutes): You will summarize the objective of the paper, the proposed technique and the results/contributions the authors have presented.  If there is background required to understand the contents of the paper, the presenter should touch upon this as well.  Either the pro or con presenter can handle this part.
  2. The Pro presenter will explain what he/she thought was good about the paper, and argue for why the paper should have been accepted. 
  3. The Con presenter will then argue for why the paper should not have been accepted.

 

The presenters should meet before hand and discuss their views of the paper.  During the presentation some good questions to answer (this list is neither exhaustive nor are they applicable in all cases):

·         Are the authors working on a real problem? 

·         Did the authors miss any critical limitations in their paper?  Was the way they presented their evaluation honest and fair?

·         Did the evaluation test the right aspects of the solution?  For example, did the presenters pick the right benchmark?

·         Is the solution really novel?  Did the authors identify all related work or did they miss work that is very similar to theirs.  You should spend time doing an extended literature search for all papers (Google is your friend).

·         Did the authors clearly differentiate between fundamental aspects of their design as opposed to artifacts of their implementation (that might not exist on another implementation of their design)?

·         In your opinion, will the solution work as the authors indicated?  Is it applicable in the general case or is it very specific to the cases they used in their evaluation?

·         What questions does the paper leave unanswered?  Is there future work or is the problem essentially solved by their solution?  What improvements or additional information might you expect from the authors?  Remember that researchers frequently construct prototypes, not products, so improvements should answer important questions, not be requests for functionality that is incomplete, but would be straightforward to add.

Course Project

Students should work in groups of 1-3 (depending on class size) to do a research oriented course project.  The project will either propose a solution to a security problem, or explore some aspect of computer security.  The project will have three deliverables:

1.    Project Proposal

Students will hand in a project proposal in the second class.  The proposal should be no more than 2 pages long and should:

  • Introduce and motivate the problem they are going to attempt to solve or what previously unanswered question they are going to try and answer.
  • Give an outline of the proposed solution.
  • Provide a list of related work and an explanation of how the advantage they believe their proposal will have over existing solutions

The instructor will meet with students as necessary to discuss their proposals.  The proposals will then be made available to other students the class via this webpage.

2.    Project Midterm Update and Presentation

Approximately midway through the course, students will also provide a written report no longer than 3 pages to the instructor summarizing their progress so far.  A class will be set aside for groups to make an oral presentations to the class explaining their project and progress made up to that point.  They will highlight interesting problems they have had and outline their plans for the remainder of the semester.  The class should comment on the project and try to give advice.  For advice on giving presentations, refer here

3.    Project Research Paper and Presentation

Students will hand in a research paper describing their project.  The paper will be no longer than 10 pages.  The most important goal of any research paper is to confer knowledge that the author learned by doing the research onto the reader.  Thus, when writing the project research paper, students should focus on things they learned in the course of the project, that was not obvious to them before they embarked on the work.  A good research paper should:

·         Introduce and motivate the problem the paper attempts to solve.

·         Provide a description of the proposed solution, as well as any interesting implementation details of the prototype (if one was built)

·         Give a critical analysis of the strengths, weaknesses and limitations of their system, making sure to differentiate fundamental limitations of the solution from limitations specific to the prototype implementation

·         Conclude with no more than 3 points describing the enlightening things that were learned from doing the research.

For more guidance, refer to information on writing research papers in the Course Resources Section.

 

Students will also do a presentation for the class summarizing the points of their research paper.  Such a presentation should be clear and concise.  Students are encouraged to use visual aids if the students desire.

Potential Projects

Below are some potential projects, but students are encouraged to up with their own as well!

 

1.      Combating Phishing Websites:  Phishing websites are websites that fool users into thinking they are a popular website (like a bank) so that they can harvest user information (like username/password).  This project tries to leverage Google as a reputation system to combat phishing websites.  A prototype Firefox extension to get you started will be provided by the instructor.  The goal of this project is to produce a comprehensive evaluation of the effectiveness of such a tool and make enhancements to improve its accuracy. 

2.      Detecting Spyware Behavior:  Spyware gathers information about a user’s browsing habits and sends it to a malicious party.  This project will involve an empirical study of common malware to discovery correlations between web browsing habits and malware behavior.  Students should have a spare machine to experiment with or use VMware and experiment on virtual machines.  There are many resources on spyware available, to get you should read A Crawler-based Study of Spyware on the Web, as well as SpyProxy: Execution-based Detection of Malicious Web Content.

3.       A Taxonomy of Web Vulnerabilities: The number of web applications and vulnerabilities on the web has increased dramatically over the last few years.  This project involves a study and categorization attacks and vulnerabilities in applications, as well as recommendations for solving them.  While there is not a significant implementation component to this project, so a significant amount material and insight is expected.  This is recommended for more advanced graduate students.  A variety of papers have addressed issues in web security including DNS Rebinding, Click Bots and Scripting Languages.

4.       Hypervisor-based Security: The goal is to use hypervisors to provide stronger isolation for legacy applications or security sensitive applications.  Applicants may have access to the Proxos infrastructure described in Splitting Interfaces: Making Trust Between Applications and Operating Systems Configurable if they wish, or they may choose to create their own.

5.       Investigating VOIP Security: With widespread use of VOIP, these is concern over how its security compares with that of traditional phone systems (POTS).  Students may want to look at Language Identification of Encrypted VoIP Traffic: Alejandra y Roberto or Alice and Bob as a starting point.

6.       Investigating Information Flow Policies: A number of research projects have focused on making operating systems more secure by controlling the amount of information that can flow between entities in an operating system.  Some examples (with downloadable source cdoe) include HiStar (http://www.scs.stanford.edu/histar/) and DIFC (http://flume.csail.mit.edu/doku.php?id=flume).  The goal of this project will be to investigate the feasibility of building applications in such environments.

Course Resources

·         Advice on writing/reading papers:

1.      How (and How Not) to Write a Good Systems Paper

2.      Eurosys 2006 Authoring Workshop

3.      Writing Systems and Networking Articles

·         Advice on Presentations from:

  1. Frank Kschischang
  2. Compton & Chang
  3. David Patterson/Mark Hill

Course Schedule

Week

Topic

Readings (To be read by this date)

Presenters

Project Deadlines

1

01/16

Introduction

 

Lecture 1 Slides

 

2 01/23

The Bad Guys

Smashing The Stack For Fun And Profit. Aleph One.

A note on the confinement problem. Butler Lampson.

Computer Virus-Antivirus Coevolution.  Carey Nachenberg. 

Aron Roth

Gary Pong

David Goldman

 

3

01/30

Detecting Exploits

StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks.  Crispin Cowan, Calton Pu, Dave Maier, Heather Hinton, Peat Bakke, Steve Beattie, Aaron Grier, Perry Wagle, and Qian Zhang. 

Dynamic Taint Analysis: Automatic Detection, Analysis, and Signature Generation of Exploit Attacks on Commodity Software. James Newsome and Dawn Song

The Anatomy of Clickbot.A.   Neil Daswani and Michael Stoppelman.

Scott Brissenzen

Bryce Leung

4

02/06

Writing Correct Code

Model checking one million lines of C code. Hao Chen, Drew Dean, and David Wagner.

A Systematic Approach to Uncover Security Flaws in GUI Logic
Shuo Chen, José Meseguer, Ralf Sasse, Helen J. Wang and Yi-Min Wang.

Secure Web Applications via Automatic Partitioning  Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi (Cornell), Krishnaprasad Vikram (Cornell), Lantian Zheng (Cornell), and Xin Zheng (Cornell)

Diego Huang

Peter Michaels

Michael Kipper

Project Proposals

5

02/13

Containment

Secure Execution Via Program Shepherding.  Vladimir Kiriansky, Derek Bruening, Saman Amarasinghe

Application-Level Isolation and Recovery with Solitude.  Shvetank Jain, Fareha Shafique, Vladan Djeric, Ashvin Goel.

Privtrans: Automatically Partitioning Programs for Privilege Separation.  David Brumley and Dawn Song

Bin Li

James Huang

 

6

02/20

Reading Week

7

02/27

Web Security

A Crawler-based Study of Spyware on the Web.  Alexander Moshchuk, Tanya Bragin, Steven D. Gribble, and Henry M. Levy.

Protecting Browsers from DNS Rebinding Attacks.  Collin Jackson, Adam Barth, Andrew Bortz, Weidong Shao, and Dan Boneh

Protection and Communication Abstractions for Web Browsers in MashupOS. Helen J. Wang, Xiaofeng Fan Jon Howell, and Collin Jackson

Shawn Malhotra

Jimmy Choi

Sergio Valle

 

8

03/05

Midterm Oral Presentations

Midterm Report

9

03/12

Operating System Security

Information Flow Control for Standard OS Abstractions .  Maxwell Krohn, Alexander Yip, Micah Brodsky, Natan Cliffer, M. Frans Kaashoek, Eddie Kohler and Robert Morris.

Splitting Interfaces: Making Trust Between Applications and Operating Systems Configurable.  Richard Ta-Min, Lionel Litty and David Lie

SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes.  Arvind Seshadri, Mark Luk, Ning Qu and Adrian Perrig

Mark Teper

Jason Zebchuk

Stan Kvasov

 

10

03/19

Intrusion Detection and Viruses

Intrusion Detection via Static Analysis.  David Wagner and Drew Dean

A Sense of Self for Unix Processes.  S. Forrest, S. A. Hofmeyr, A. Somayaji, and T. A. Longstaff

Semantics-Aware Malware Detection.  Mihai Christodorescu, Somesh Jha, Sanjit Seshia, Dawn Song, Randal E. Bryant

Jarek Marczewki

Ekin Akkus

 

11

03/26

 

Network Security

Automated Worm Fingerprinting.  Sumeet Singh, Cristian Estan, George Varghese and Stefan Savage

Vigilante: End-to-End Containment of Internet Worms.  Manuel Costa, Jon Crowcroft, Miguel Castro, Antony Rowstron, Lidong Zhou, Lintao Zhang, Paul Barham

A Preliminary Investigation of Worm Infections in a Bluetooth Environment

Jing Su, Kelvin K. W. Chan, Andrew G. Miklas, Kenneth Po, Ali Akhavan, Stefan Saroiu, Eyal de Lara, and Ashvin Goel

Lee Chew

Jason Wong

Ekin Akkus

 

12

04/02

Cancelled – Instructor Away

 

13

04/09

Wrap up

 

 

Project Final Presentations