Secure Software Programming and Vulnerability Analysis

(183.159 Sichere Software und Quellcodeanalyse)

Abstract


The importance of computer systems and their increasing inter-connectivity are well known today. As more software is exposed to a growing number of (often anonymous) users, the number of exploits of software vulnerabilities is rising. These vulnerabilities seriously threaten the correct functionality of software systems and people that depend on these systems.

This class introduces students to common programming errors. The aim is to understand, identify and, ultimately, to avoid such mistakes and produce more reliable, secure software. Examples are used to highlight general error classes, such as stack overflow and format string vulnerabilities. In addition, the complete software development cycle is analyzed to find ways to design more secure and more robust software. The lecture is intended for students with programming experience that want to improve their skills to implement more secure programs.

News


  • Grades are available
  • Written exam will be held on Wednesday, 23.06.04, 17.15 - 18.45 st.
  • Backup class on Thursday, 03.06.04, 13.00 - 14.00 st. at Seminarraum E183-1, Treitlstr. 3, 4.Stock
  • No class on Monday, 24.05.04
  • No class on Monday, 26.04.04

Grades


The total points for this class are calculated as the sum of the points awarded for the talk (25 points) and the points achieved at the written exam (up to 75 points). The final grade is determined from these points using the following table.

PointsGrade
90-100Sehr gut (1)
80-89Gut (2)
70-79Befriedigend (3)
50-69Genuegend (4)
0-49Nicht genuegend (5)

Until end of July, you can improve your grade with an oral exam. Please send me email when you want to use this options. Also, the written exams can be reviewed (Einsichtnahme) any time after sending me an email. Please note that grades will be final by end of July.

MatrikelnummerExamTalkTotal PointsGrade
90279726925 941
982505575251001
992524875251001
00252306825 931
00253136625 911
002554675251001
002759975251001
01250965525 802
02251065525 802
02254944725 723
02256925825 832
02258187125 961
03260555825 832
03270383125 564

Topics


  • Linux and Unix Security Features
  • Input Validation
  • Buffer Overflows
  • Race Conditions
  • Cryptography and Authentication
  • Software Engineering Principles for Secure Code

Organization


The lecture is held blocked and will start after the Easter holidays. The course starts with a preliminary discussion on Monday, 19th April at 2p.m. sharp in HS 13 Ernst Melan. Regular classes will be held on Mondays from 2p.m. to 3p.m. and on Wednesdays from 5p.m. to 6p.m. at the same location.

WhatWhenWhere
Preliminary DiscussionMonday, 19th April 2004, 14.00 st.HS 13 Ernst Melan
LecturesMonday, 14.00 - 15.00 st.HS 13 Ernst Melan
Wednesday, 17.00 - 18.00 st.HS 13 Ernst Melan

Slides


  • Introduction (pdf)
  • Unix and TCP/IP Tutorial (pdf)
  • Architecture (pdf)
  • Input Validation (pdf)
  • Race Conditions (pdf)
  • Buffer Overflows (pdf)
  • Heap Overflows and Format String Vulnerabilities (pdf)
  • Testing and Auditing (pdf)
  • Operations and Denial of Service (pdf)

Paper Discussion


DateTopicPapersPeople
Wed 05.05.04Architecture and Privilege SeparationPreventing Privilege EscalationSzydlowski, M.
A Secure Environment for Untrusted Helper ApplicationsFroihofer, L.
Wed 12.05.04Input ValidationChapter 3, 5, and 6 of A Survey of Prevention Techniques against SQL InjectionStejskal, M.
Cross Site Scripting ExplainedMelbinger, S.
Schanes, C.
Wed 19.05.04Race ConditionsChecking for Race Conditions in File AccessesKittel, G.
Chapter 1, 2, and 3 of Eraser: A Dynamic Data Race Detector for Multithreaded ProgramsKoegler, M.
Wed 02.06.04Stack OverflowBuffer Overflows: Attacks and Defenses for the Vulnerability of the DecadeEgele, M.
Advanced return-into-lib(c) exploits (PaX case study) Jauernig, M.
Maierhofer, A.
Mon 07.06.04Heap OverflowAdvanced Doug Lea's malloc exploitsZendel, O.
Bulla, J.
Mon 14.05.04Source Code AuditingUsing Programmer-Written Compiler Extensions to Catch Security HolesGmeiner, K.
MOPS: an Infrastructure for Examining Security Properties of SoftwareTimmel, P.
Mon 21.05.04Administration and Denial of ServicePractical Network Support for IP TracebackIrlacher, M.
Inferring Internet Denial-of-Service ActivitySchwarz, C.
Strommer, M.