Skip to main content.
Practical Aspects of Security
Advanced Lecture in Summer Term 2009

Teaching Assitants
Lecture Time
Friday 14:15-16:00
Location
E1.3, HS 002
Language
English
Contact
catalin.h
hqdczq2mbf
r
rtv2jy838n
itcu@gmai
9flqt44q2d
l.com

Latest News

Description

This course covers practical aspects of security. We give many examples of how things can go wrong when trying to build secure systems, as well as principles and tools that can help defend against such attacks. The list of topics comprises:

Prerequisites

This course is an advanced practical lecture. It assumes solid knowledge in programming, computer networks and operating systems (Unix in particular). The first and the third projects additionally require experience with a low-level language such as C (maybe also a little x86 ASM for the first project), while the second project might be a little easier if you already know something about web programming (HTML, JavaScript and PHP).

Tutorials

Office Hours

Michael Backes will be available for your questions every Wednesday 14:00 - 15:00 in building E1.1, room 2.11.

Catalin Hritcu will be available for your questions every Tuesday, 14:00 - 15:00 in building E1.1, room 2.10.

Homework

Homework accounts for 20% of the final grade. There will be 4 exercise sheets that each student has to solve individually. Each sheet will contain both questions you have to answer in written form (as preparation for the final exam), as well as simple programming exercises that require you to get familiar with the concepts and tools that are presented in the lecture.

Exercise sheets will be handed out in class and posted on the course page web page roughly every 3 weeks (the precise dates are listed below). The solutions have to be submitted by email in one week's time, and will be graded. Sample solutions to the exercise sheets will be posted on this web site and discussed in the tutorial.

Projects

Three projects account for 50% of the final grade: one on software security, one on web security, and one on network security. The first two projects will require you to mount specific attacks against real systems in a simulated environment (e.g. inside a virtual machine we provide). The attacks you need to mount will vary in difficulty, from easy ones to more sophisticated. For such tasks you will be graded solely by the number of attacks you successfully mount. The second and third project will require you to also defend against specific attacks. For such tasks you will be graded solely by the number of attacks you could successfully defend against. If you go over a certain threshold you might receive bonus points (if that is the case the project description will mention that explicitly).

You can work in teams of up to two people. The first team that manages to perform a certain attack/defense and provides proof of that by email receives additional bonus points. The status of each problem will be displayed on an internal web page, and kept up-to-date as successful exploits/defenses arrive.

The projects are going to be handed out in class and posted on the course page web page roughly every 4 weeks (the precise dates are listed below). Each team has to submit the set of successful exploits/defenses it could produce in three week's time. Sample exploits/defenses will be posted on an internal web page and discussed in the tutorial.

Final Exam

The final exam will be a written test of two hours. It will make up 30% of your final grade, and you need at least 50% to pass the course.

The final exam will take place instead of the last lecture, on the 31st of July at 14:00.

Grading & Requirements for passing the course

The final grade is computed as: 0.2 * H + 0.5 * P + 0.3 * F, where H is the grade obtained for the homework, P the one for the projects and F the grade in the final exam. Because of bonus points P can slightly exceed 100%, and will not be truncated.

To be permitted to the final exam you need to have at least 50% of the weighted sum of the grade obtained for the homework and for the projects, i.e. at least 50% of (0.2 * H + 0.5 * P). Additionally, you need at least 50% in the final exam to pass the course.

Backup Exams

The backup exam will be written. To be permitted to the backup exam you need to fulfill the same condition as for the final: to have at least 50% of (0.2 * H + 0.5 * P). Please note that if you have passed the final exam and also take the backup exam, the better score between the two will count for your final grade.

Date of the backup exam: TBA

Lecture Overview & Material

Date Topics Slides References
2009-04-24 Course Overview
2009-04-24
and 2009-05-08
Secure system design, access control and protection
2009-05-08 Malware
2009-05-15 Control hijacking attacks
2009-05-22 Control hijacking defenses
2009-05-29 Fuzzing
2009-06-05 Web Security: Introduction, SQL Injection and Cross-Site Scripting (XSS)
2009-06-12 Web Browser Security
2009-06-19 Web Authentication
2009-06-26 Security Problems in Network Protocols; TLS
2009-07-03 Network Security Protocols and Defense Mechanisms
2009-07-10 Denial of Service and Spam (Lecture given by Krishna Gummadi, MPI-SWS)
2009-07-24 Side-channel attacks

Bulletin Board

We have set up a bulletin board where you can ask questions and discuss about topics related to the lecture.

Notes

In this course we discuss vulnerabilities and attacks. Most vulnerabilities have been fixed, still some attacks may cause harm. Do not try these at home or anyplace else.