Introduction

In this semester-long project, students will conduct research on network or systems security in teams of 1-2 people under the instructor's supervision. All teams and project topics must be approved by the instructor. The outcome of this project will be similar to conference-style paper of 10 pages maximum in which you build an argument for studying the open research problems that you advocate investigating — identify why this problem is important and why you believe it is solvable in the near future. The grade will be based on the novelty, depth, correctness, rigor of execution, clarity of presentation and effot.

Project Theme

"Thinking like an adversary" is critial to understand-- (1) the current security and privacy posture of a system; (2) how the existing security policies can be broken; and (3) how to enforce better and robust security policies. In this course, each project, therefore, should be aligned with the following theme: "security analysis of an existing system". The overarching goal of each project would be to design and implement a systematic security evaluation framework using program analysis, sofware testing, formal verfication and applied cryptography. Each project has following two parts and each part in turn has multiple milestones.

Part 1 - Reproducing an existing attack: As the first step of this project, you will reproduce a known attack on an existing system. Your task is to understand a known vulnerability and the corresponding attack, and write an original exploit. You should not contact the paper authors for the exploits or are not allowed to use any pre-packaged attack tools. You may, however, use any open-source and general purpose tools (e.g., gdb, wireshark, and packet sniffers) and scripts. Note that some vulnerabilities may have been fixed in newer sofware or libraries (e.g., Linux, TCP or TLS), so you may need to target an old version.

According to the course ethics policy, you must not test your attack against systems owned by other people. If you need to set up a victim.target, set up your own isolated device/machine/VM as the viticm. You can perform the attack only against your own device/machine.

You need to present a demo of this attack in which you will demonstrate--- (1) what is the vulenrability (2) how it can be exploited and how the attack works and (3) what are the implications of the attack. You will also present how you implemented the exploits, set up the attacks, and while doing so what technical challenges you run into.

Part 2: Based on the insights and lessons you have learned from reproducing a known attack on an existing system, you can extend your project in any of the following directions:

Project Topics

For identifying a known attack on an existing system/network, students are encouraged to check the last few years proceedings of IEEE Security and Privacy (Oakland), ACM CCS, NDSS and USENIX Security. You can also find many interesting attack papers in Blackhat or DEFCON.