ECE1776: Computer Security, Cryptography and Privacy
· No class during reading week (February 20th)
· Project Midterm presentations are due March 5th
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
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.
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:
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.
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:
Students will hand in a
project proposal in the second class.
The proposal should be no more than 2 pages long and should:
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.
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
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.
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.
·
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:
|
Week |
Topic |
|
Presenters |
Project
Deadlines |
|
1 01/16 |
Introduction |
|
|
|
|
2 01/23 |
The Bad Guys |
Smashing The Stack For Fun And
Profit. Aleph One. A note on the
confinement problem. 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. A Systematic Approach to
Uncover Security Flaws in GUI Logic 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. 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, 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 |