Computer Science Workshop on Security

"We may have created the monster, they'll say, but we didn't set it loose"

Instructor:Mooly Sagiv
Assistant: Greta Yorsh

Class Time and Location: Monday 10-12, Dan-David 204

Prerequisites:


For further information email: gretay at tau dot ac dot il

Goals Methodology Schedule Requirements Registering Projects Bibliography


News


Workshop Goals

This workshop is intended to provide an introduction into security threats of programming errors (bugs), such as buffer overflow. The students will learn the interns of common attack mechanisms and the measures to protect agains these attacks. The students will have a opportunaty to implement and experiment with security attacks, exploiting the vulnarabilities of Linux/Windows to gain access or privileges to the system. This time the focus will be on the classical attacks; the following topics are not in the scope of this workshop: criptography, autenthication, viruses (malicious code that multiplies and distributes itself).
What kind of programming errors are potential security threats? What does it take to conduct an attack? How to protect against an attack? This workshop will attempt to give students a better understanding of the issues raised by such questions.


Workshop Methodology

In the first meeting, the projects will be presented and a brief introduction of the related topics will be provided. The students will split into groups of 2 or 3. Each group is required to choose a project by the end of the second week of the semester. Please, notify us about the chosen project and the group members, as soon as you can. In the second meeting, the projects will be assigned and an introduction to kernel programming will be given.
The first part of the workshop is devoted to collecting, reading and understanding the material on the attack and its implications. Also, in some projects, the students are expected to learn kernel programming utilities to implement a protection mechanism. During the following month, and no later than 08/12/03, each group has to present its plan to the instructor in a personalized meeting. You will have to explain in detail the implementation design and show understanding of the interns of the attack. Emphesizes on implementation and specific project goals will be given by the instructor. You will have to prove in your final presentation that the project goal are fulfilled. You are strongly encoraged to make this meeting as soon as possible.
The second part of the workshop is devoted to implementing an attack and a protection mechanism against the attack. You are expected to test the code, analyze its performance and improve the protection mechansim or reason why it cannot be improved. The projects must not be tested on the university's computers, except the designated computers in Schrieber 005.
The last two weeks of the semester, we will have two meetings in which each group will present their work, including the source code, the demos and the conclusions. Each presentation will be about 25 minutes long, after which each group member will be asked questions about the project, to evaluate her/his performance in workshop. Emphasis will be placed on understanding the details of the attack, its implications (the way it can be exploited) as well as limitations, and protection mechanisms. All students are required to attend the final meetings.

Top


Course Schedule

Top


Course Requirements

  1. Present project plan and get an approval
  2. Present the project and answer questions, following the guidelines in methodology section.
Grade

The grade will consist of the project grade and the understanding/participation grade. The project grade will be based solely on the quality of the implementation and the demonstration. The understanding/participation grade will be based on the instructor's impression of your understanding of the material in meetings and in the project discussion in the final class meeting.

Course Policy

Needless to say, any copying or unauthorized sharing of information will result in a grade penalty or possible disciplinary action. This includes unauthorized (by the teacher) use of publicly available code (such as code provided on the Internet) for some of the tasks you are required to implement.
The use of university's computers, except the designated computers in Shreiber 005, for running/testing/debugging of any sortware related to the projects and the workshop is strictly forbidden.

Registering

Anybody taking this workshop is requested to register by sending mail.

Top


Projects

  1. Buffer overflow (Win/Linux) Implementation using Hooks
    Implementation using CreateRemoteThread
    Slides
    Read Me First File - Important to read!
    (For your convenience - unzip s1,s2 to the libraries into the C:\ base directory)
  2. Linux buffer overflow
  3. WatchDog (Win) [Project Files]
  4. KeyLog (Win) [Project Files]
  5. "Good virus" (Win) [Slides]
  6. OS Detection [Project Homepage]
  7. ExeMonitor [Project Files]

Top


Bibliography and Links

Buffer Overflow Kernel Programming Other Links

For further information email: gretay at tau dot ac dot il


Top Goals Methodology Requirements Registering Projects Bibliography

Last updated: 04/01/04