|
Home
Course description
Lecture notes
Assignments
Projects
Reference
|
CS 395T - Theory and Practice of Secure Systems (56605)
Fall 2006
Projects
Proposals.
Project proposals are due October 5. A proposal should be 2 or
3 pages long, and include the following:
-
Names of team members (no more than 3 members per team).
-
Description of the system or network protocol that you are planning to
analyze or implement, or the tool that you intend to build or extend.
-
Description of security properties you intend to investigate.
-
Tools and/or analysis techniques you are planning to use.
-
Clear description of project deliverables. Possible deliverables
are a software prototype, a substantial case study, or, in the case of
a purely theoretical study, proofs (manual or machine-assisted).
Evaluation.
At the end of the project, each team should produce a workshop-quality
10-page paper with novel research results.
Project ideas.
Some ideas are suggested below, but you may propose your own topic.
Analyze a software system
Analyze a substantial program or suite of programs. Your objective is to
verify the presence of known vulnerabilities, or try to find new ones.
Look for both design and implementation vulnerabilities.
I suggest choosing a popular open-source program from, for example,
SourceForge. Pick a program that
you find interesting and would like to learn more about.
I recommend using an analysis tool to start. Some tools are listed
below, but feel free to use a tool not from the list, or even develop
your own tool. If you use an existing tool, your report should include
a detailed evaluation of its strengths and weaknesses.
Examples of static analysis tools:
MOPS;
Cqual;
flawfinder;
Splint;
BOON;
ITS4;
ESC/Java
Examples of dynamic and hybrid tools:
CCured;
CRED;
DynamoRIO;
MEMWATCH
Implement a software protection method
Design and implement a prototype of a new tool for preventing or
containing execution of malicious code. Evaluate its usefulness against
various types of attack. Examples:
-
Implement a novel containment mechanism for applications.
Possibilities include virtual machines, sandboxes, privilege separation,
run-time environments that restrict usage of system resources, etc.
-
Build a tool for detecting when a program's behavior deviates from
"normal."
-
Create a tool for verifying whether the observed behavior of a program
or a network protocol complies with its specification.
Design a secure software application
You have a lot of freedom choosing your application, but your proposal
must be very specific about the project's goals and deliverables.
-
Design a defense against distributed denial of service attacks staged by
zombie "botnets" that does not require any modifications to the existing
TCP/IP clients and servers.
-
Analyze security requirements of attached network storage and propose
a practical method for achieving these requirements.
-
Design a practical logging system to support secure audit and forensic
analysis.
-
Design a new distributed application that takes advantage of tamper-proof
"trusted computing" hardware.
-
Add security and privacy protections to a realistic RFID application.
-
Define what HTTP security means, and implement a network filter for
securing HTTP communications.
-
Develop a secure online chat program.
-
Implement a tool for inferring the global "security perimeter" of the
network from the local policies of firewalls, intrusion detection systems,
and so on.
Design and/or investigate a privacy protection system
Choose an existing or proposed privacy-enhancing system, and rigorously
analyze its strengths and/or weaknesses. You may also propose and
implement a new tool for protecting privacy. Examples:
-
Design an effective defense against phishing.
-
Investigate privacy aspects of a popular networking protocol,
and design a new, privacy-preserving version.
-
Implement a prototype of a privacy-preserving data mining system,
or propose a new privacy-preserving data mining algorithm.
-
Investigate algorithmic aspects (decidability, complexity, etc.) of
some legally mandated privacy policy. For example, what does it take to
enforce HIPAA for medical data, or Gramm-Leach-Bliley for financial data?
-
Determine feasibility of a particular type of attack on an existing
anonymity network (examples: Tor,
Mixminion, JAP).
For examples of attacks on anonymity networks, see anonymity bibliography.
Perform formal analysis of a network protocol
Using a formal verification method to analyze a network protocol for
the presence of security flaws.
Examples of protocols (ask instructor for specific references):
-
Authentication in Bluetooth
-
Secure voice-over-IP protocols (for example, Skype)
-
802.11i wireless security
-
Secure multicast and group key management
-
Secure location verification for mobile devices
-
Secure routing in ad-hoc networks
Examples of protocol analysis tools:
Murphi;
AVISPA;
Constraint solver
(see also CoProVe);
ProVerif;
MOCHA
Do a theoretical study
Examples of theoretical projects include designing and proving security
of a privacy-preserving version of a common distributed protocol, or
giving a cryptographic proof of correctness for an existing protocol.
Talk to instructor if you are interested in this style of project.
|